From cd01b035e747f0c1fbf9ff12afe8f5d93f720bff Mon Sep 17 00:00:00 2001 From: meichler Date: Tue, 18 Jun 2024 12:26:45 +0300 Subject: [PATCH 1/7] cisco webex rename integration context --- .../CiscoWebexEventCollector.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.py b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.py index 26b08518ae3d..d3db7f289e37 100644 --- a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.py +++ b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.py @@ -22,6 +22,17 @@ ''' HELPER FUNCTIONS ''' +def remove_integration_context_for_user(user: str): + """ + Remove integration context for a user + Args: + user: The user to remove the integration context for. + """ + integration_context = get_integration_context() + integration_context[user] = {} + set_integration_context(integration_context) + + def date_time_to_iso_format(date_time: datetime) -> str: """ Gets a datetime object and returns s string represents a datetime is ISO format. @@ -488,6 +499,7 @@ def main() -> None: # pragma: no cover elif demisto.command() == 'cisco-webex-oauth-start': client = admin_client if args.get('user') == 'admin' else compliance_officer_client + remove_integration_context_for_user(client.user) result = oauth_start(client) return_results(result) From 6f2c3fb67f6b4fc902137cfa2f9ac7bd4b01521a Mon Sep 17 00:00:00 2001 From: meichler Date: Tue, 18 Jun 2024 13:56:40 +0300 Subject: [PATCH 2/7] change the access token to body --- .../CiscoWebexEventCollector/CiscoWebexEventCollector.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.py b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.py index d3db7f289e37..1aab355f4498 100644 --- a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.py +++ b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.py @@ -124,7 +124,7 @@ def create_access_token(self, grant_type: str, code: str | None = None, refresh_ client_secret=self.client_secret, redirect_uri=self.redirect_uri, ) - return self._http_request(method='POST', url_suffix='access_token', headers=headers, params=params) + return self._http_request(method='POST', url_suffix='access_token', headers=headers, data=params) def save_tokens_to_integration_context(self, result: dict): """ From 004360be58c336bef90a90f96c1c9b2049e938fc Mon Sep 17 00:00:00 2001 From: meichler Date: Tue, 18 Jun 2024 14:24:45 +0300 Subject: [PATCH 3/7] add ut and rn --- .../CiscoWebexEventCollector_test.py | 18 ++++++++++++++++++ Packs/CiscoSpark/ReleaseNotes/1_0_7.md | 6 ++++++ Packs/CiscoSpark/pack_metadata.json | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 Packs/CiscoSpark/ReleaseNotes/1_0_7.md diff --git a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py index a8d0ac53be1b..2d31bcc6e85f 100644 --- a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py +++ b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py @@ -4,6 +4,8 @@ import requests_mock from freezegun import freeze_time +from Packs.CiscoSpark.Integrations.CiscoWebexEventCollector import CiscoWebexEventCollector + """ UTILS """ @@ -66,6 +68,22 @@ def get_access_token(self): """ TEST HELPER FUNCTION """ +def mock_set_integration_context(context: dict = None) -> dict | None: + return context + + +def test_remove_integration_context_for_user(mocker): + from CiscoWebexEventCollector import remove_integration_context_for_user + + mock_integration_context = {'test_user': {'context_key': 'context_value'}} + mocker.patch.object(CiscoWebexEventCollector, 'get_integration_context', return_value=mock_integration_context) + mock_context = mocker.patch('CiscoWebexEventCollector.set_integration_context', side_effect=mock_set_integration_context) + + assert CiscoWebexEventCollector.get_integration_context() == mock_integration_context + remove_integration_context_for_user('test_user') + assert mock_context.call_args.args[0] == {'test_user': {}} + + @freeze_time("2023-12-20 13:40:00 UTC") def test_create_last_run(): """ diff --git a/Packs/CiscoSpark/ReleaseNotes/1_0_7.md b/Packs/CiscoSpark/ReleaseNotes/1_0_7.md new file mode 100644 index 000000000000..33e9164d78b9 --- /dev/null +++ b/Packs/CiscoSpark/ReleaseNotes/1_0_7.md @@ -0,0 +1,6 @@ + +#### Integrations + +##### Cisco Webex Event Collector + +Fixed and issue where the ***cisco-webex-oauth-complete*** command failed on bad request. diff --git a/Packs/CiscoSpark/pack_metadata.json b/Packs/CiscoSpark/pack_metadata.json index 45ea48644d61..606ffd820749 100644 --- a/Packs/CiscoSpark/pack_metadata.json +++ b/Packs/CiscoSpark/pack_metadata.json @@ -2,7 +2,7 @@ "name": "Cisco Webex Teams", "description": "Send messages, create rooms and more, via the Cisco Webex Teams (Cisco Spark) API.", "support": "xsoar", - "currentVersion": "1.0.6", + "currentVersion": "1.0.7", "author": "Cortex XSOAR", "url": "https://www.paloaltonetworks.com/cortex", "email": "", From 84902a34181a8b7809eabe6acfbdb4eeca4303c4 Mon Sep 17 00:00:00 2001 From: meichler Date: Tue, 18 Jun 2024 14:32:44 +0300 Subject: [PATCH 4/7] fix import --- .../CiscoWebexEventCollector_test.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py index 2d31bcc6e85f..ca414247d28f 100644 --- a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py +++ b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py @@ -4,8 +4,6 @@ import requests_mock from freezegun import freeze_time -from Packs.CiscoSpark.Integrations.CiscoWebexEventCollector import CiscoWebexEventCollector - """ UTILS """ @@ -73,14 +71,14 @@ def mock_set_integration_context(context: dict = None) -> dict | None: def test_remove_integration_context_for_user(mocker): - from CiscoWebexEventCollector import remove_integration_context_for_user + import CiscoWebexEventCollector mock_integration_context = {'test_user': {'context_key': 'context_value'}} mocker.patch.object(CiscoWebexEventCollector, 'get_integration_context', return_value=mock_integration_context) mock_context = mocker.patch('CiscoWebexEventCollector.set_integration_context', side_effect=mock_set_integration_context) assert CiscoWebexEventCollector.get_integration_context() == mock_integration_context - remove_integration_context_for_user('test_user') + CiscoWebexEventCollector.remove_integration_context_for_user('test_user') assert mock_context.call_args.args[0] == {'test_user': {}} From d58ea150880d29d9ae6f3a5bcedd0535c9ca0053 Mon Sep 17 00:00:00 2001 From: meichler Date: Tue, 18 Jun 2024 16:11:58 +0300 Subject: [PATCH 5/7] fix ut --- .../CiscoWebexEventCollector/CiscoWebexEventCollector_test.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py index ca414247d28f..419cdc5c93a1 100644 --- a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py +++ b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector_test.py @@ -209,8 +209,7 @@ def test_oauth_complete(client): with requests_mock.Mocker() as m: m.post( - 'https://url.com/access_token?grant_type=authorization_code&code=123456&client_id=1&client_secret=1' - '&redirect_uri=https%3A%2F%2Fredirect.com', + 'https://url.com/access_token', json=mock_get_access_token() ) results = oauth_complete(client, {'code': '123456'}) From f79ebc8bc59c803cb26188db36fa3a60a13c98cc Mon Sep 17 00:00:00 2001 From: meichler Date: Tue, 18 Jun 2024 17:17:35 +0300 Subject: [PATCH 6/7] docker --- .../CiscoWebexEventCollector/CiscoWebexEventCollector.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.yml b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.yml index 4ff6aa98fd04..b5eebeff0f51 100644 --- a/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.yml +++ b/Packs/CiscoSpark/Integrations/CiscoWebexEventCollector/CiscoWebexEventCollector.yml @@ -147,7 +147,7 @@ script: name: since_datetime description: Gets events from Cisco Webex. name: cisco-webex-get-compliance-officer-events - dockerimage: demisto/python3:3.10.13.84405 + dockerimage: demisto/python3:3.10.14.98471 isfetchevents: true runonce: false script: '' From 466cd77b375e540482750e7b33f12dd3f8b6eadb Mon Sep 17 00:00:00 2001 From: meichler Date: Tue, 18 Jun 2024 22:20:02 +0300 Subject: [PATCH 7/7] fix RN --- Packs/CiscoSpark/ReleaseNotes/1_0_7.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Packs/CiscoSpark/ReleaseNotes/1_0_7.md b/Packs/CiscoSpark/ReleaseNotes/1_0_7.md index 33e9164d78b9..c2917e17bc92 100644 --- a/Packs/CiscoSpark/ReleaseNotes/1_0_7.md +++ b/Packs/CiscoSpark/ReleaseNotes/1_0_7.md @@ -2,5 +2,5 @@ #### Integrations ##### Cisco Webex Event Collector - -Fixed and issue where the ***cisco-webex-oauth-complete*** command failed on bad request. +- Updated the Docker image to: *demisto/python3:3.10.14.98471*. +- Fixed an issue where the ***cisco-webex-oauth-complete*** command failed on a bad request.