diff --git a/README.md b/README.md index 44ea7c5d..26333900 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Carbon Black Cloud Python SDK -**Latest Version:** 1.5.5 +**Latest Version:** 1.5.6
-**Release Date:** July 11, 2024 +**Release Date:** July 26, 2024 [![Coverage Status](https://coveralls.io/repos/github/carbonblack/carbon-black-cloud-sdk-python/badge.svg?t=Id6Baf)](https://coveralls.io/github/carbonblack/carbon-black-cloud-sdk-python) [![Codeship Status for carbonblack/carbon-black-cloud-sdk-python](https://app.codeship.com/projects/9e55a370-a772-0138-aae4-129773225755/status?branch=develop)](https://app.codeship.com/projects/402767) diff --git a/VERSION b/VERSION index 9075be49..eac1e0ad 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.5 +1.5.6 diff --git a/docs/changelog.rst b/docs/changelog.rst index ba79530b..5adb42bb 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -13,6 +13,13 @@ Changelog ========= +CBC SDK 1.5.6 - Released July 26, 2024 +-------------------------------------- + +Bug Fixes: + +* Fixed a failure of large file transfers with the Live Response API. + CBC SDK 1.5.5 - Released July 11, 2024 -------------------------------------- diff --git a/docs/conf.py b/docs/conf.py index f3f784b9..6257e709 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -23,7 +23,7 @@ author = 'Developer Relations' # The full version, including alpha/beta/rc tags -release = '1.5.5' +release = '1.5.6' # -- General configuration --------------------------------------------------- diff --git a/src/cbc_sdk/__init__.py b/src/cbc_sdk/__init__.py index 6949ac52..0b6ccc38 100644 --- a/src/cbc_sdk/__init__.py +++ b/src/cbc_sdk/__init__.py @@ -15,7 +15,7 @@ __author__ = 'Carbon Black Developer Network' __license__ = 'MIT' __copyright__ = 'Copyright 2020-2024 Broadcom Inc. Carbon Black' -__version__ = '1.5.5' +__version__ = '1.5.6' from .rest_api import CBCloudAPI from .cache import lru diff --git a/src/cbc_sdk/live_response_api.py b/src/cbc_sdk/live_response_api.py index c0b3cb41..223316fb 100644 --- a/src/cbc_sdk/live_response_api.py +++ b/src/cbc_sdk/live_response_api.py @@ -211,7 +211,7 @@ def get_raw_file(self, file_name, timeout=None, delay=None, async_mode=False): object: Contains the data of the file. """ file_id, command_id = self._submit_get_file(file_name) - if file_id and command_id: + if file_id is not None and command_id is not None: if async_mode: return command_id, self._async_submit(lambda arg, kwarg: self._get_raw_file(command_id, file_id, diff --git a/src/tests/unit/fixtures/live_response/mock_command.py b/src/tests/unit/fixtures/live_response/mock_command.py index bff78fb3..fbc8710a 100755 --- a/src/tests/unit/fixtures/live_response/mock_command.py +++ b/src/tests/unit/fixtures/live_response/mock_command.py @@ -125,7 +125,7 @@ "count": 0, "file_id": "f0245f97-67dd-42c4-9548-b35dca12f185" }, - "id": 7, + "id": 0, "name": "get file", "result_code": 0, "result_desc": "", diff --git a/src/tests/unit/test_live_response_api.py b/src/tests/unit/test_live_response_api.py index 46b38c0f..b91d7766 100755 --- a/src/tests/unit/test_live_response_api.py +++ b/src/tests/unit/test_live_response_api.py @@ -465,7 +465,7 @@ def test_get_file(cbcsdk_mock, connection_mock): cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/devices/2468', DEVICE_RESPONSE) cbcsdk_mock.mock_request('POST', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands', GET_FILE_COMMAND_RESP) - cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/7', + cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/0', GET_FILE_END_RESP) cbcsdk_mock.mock_request('DELETE', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468', None) manager = LiveResponseSessionManager(cbcsdk_mock.api) @@ -480,7 +480,7 @@ def test_get_file_cancelled(cbcsdk_mock, connection_mock): cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/devices/2468', DEVICE_RESPONSE) cbcsdk_mock.mock_request('POST', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands', GET_FILE_COMMAND_RESP) - cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/7', + cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/0', GET_FILE_CANCELLED_RESP) cbcsdk_mock.mock_request('DELETE', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468', None) manager = LiveResponseSessionManager(cbcsdk_mock.api) @@ -497,7 +497,7 @@ def test_get_file_cancelled_async(cbcsdk_mock, connection_mock): cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/devices/2468', DEVICE_RESPONSE) cbcsdk_mock.mock_request('POST', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands', GET_FILE_COMMAND_RESP) - cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/7', + cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/0', GET_FILE_CANCELLED_RESP) cbcsdk_mock.mock_request('DELETE', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468', None) manager = LiveResponseSessionManager(cbcsdk_mock.api) @@ -515,13 +515,13 @@ def test_get_file_async(cbcsdk_mock, connection_mock): cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/devices/2468', DEVICE_RESPONSE) cbcsdk_mock.mock_request('POST', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands', GET_FILE_COMMAND_RESP) - cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/7', + cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/0', GET_FILE_END_RESP) cbcsdk_mock.mock_request('DELETE', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468', None) manager = LiveResponseSessionManager(cbcsdk_mock.api) with manager.request_session(2468) as session: command_id, _ = session.get_file('c:\\\\test.txt', async_mode=True) - assert command_id == 7 + assert command_id == 0 def test_get_raw_file_async(cbcsdk_mock, connection_mock): @@ -531,13 +531,13 @@ def test_get_raw_file_async(cbcsdk_mock, connection_mock): cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/devices/2468', DEVICE_RESPONSE) cbcsdk_mock.mock_request('POST', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands', GET_FILE_COMMAND_RESP) - cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/7', + cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/0', GET_FILE_END_RESP) cbcsdk_mock.mock_request('DELETE', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468', None) manager = LiveResponseSessionManager(cbcsdk_mock.api) with manager.request_session(2468) as session: command_id, _ = session.get_raw_file('c:\\\\test.txt', async_mode=True) - assert command_id == 7 + assert command_id == 0 def test_command_status(cbcsdk_mock): @@ -1596,7 +1596,7 @@ def test_get_file_job(cbcsdk_mock, connection_mock): cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/devices/2468', DEVICE_RESPONSE) cbcsdk_mock.mock_request('POST', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands', GET_FILE_COMMAND_RESP) - cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/7', + cbcsdk_mock.mock_request('GET', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468/commands/0', GET_FILE_END_RESP) cbcsdk_mock.mock_request('DELETE', '/appservices/v6/orgs/test/liveresponse/sessions/1:2468', None) manager = LiveResponseSessionManager(cbcsdk_mock.api)