Skip to content

Commit 52c9dfb

Browse files
shalev007Shalev Avhar
and
Shalev Avhar
authored
[Integration][AWS] bug fix aws breaking the resync on permission issues (#1186)
- **fix: do not exit resync on permission issues** - **docs: add version** # Description What - Do not stop the resync in case of permission issues Why - It breaks the API of what we had so far How - logging and evading permission errors thrown ## Type of change Please leave one option from the following and delete the rest: - [X] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] New Integration (non-breaking change which adds a new integration) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] Non-breaking change (fix of existing functionality that will not change current behavior) - [ ] Documentation (added/updated documentation) <h4> All tests should be run against the port production environment(using a testing org). </h4> ### Core testing checklist - [ ] Integration able to create all default resources from scratch - [ ] Resync finishes successfully - [ ] Resync able to create entities - [ ] Resync able to update entities - [ ] Resync able to detect and delete entities - [ ] Scheduled resync able to abort existing resync and start a new one - [ ] Tested with at least 2 integrations from scratch - [ ] Tested with Kafka and Polling event listeners - [ ] Tested deletion of entities that don't pass the selector ### Integration testing checklist - [ ] Integration able to create all default resources from scratch - [ ] Resync able to create entities - [ ] Resync able to update entities - [ ] Resync able to detect and delete entities - [ ] Resync finishes successfully - [ ] If new resource kind is added or updated in the integration, add example raw data, mapping and expected result to the `examples` folder in the integration directory. - [ ] If resource kind is updated, run the integration with the example data and check if the expected result is achieved - [ ] If new resource kind is added or updated, validate that live-events for that resource are working as expected - [ ] Docs PR link [here](#) ### Preflight checklist - [ ] Handled rate limiting - [ ] Handled pagination - [ ] Implemented the code in async - [ ] Support Multi account ## Screenshots Include screenshots from your environment showing how the resources of the integration will look. ## API Documentation Provide links to the API documentation used for this integration. --------- Co-authored-by: Shalev Avhar <shalev@getport.io>
1 parent ef25e49 commit 52c9dfb

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

integrations/aws/CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
<!-- towncrier release notes start -->
99

10+
## 0.2.63 (2024-11-25)
11+
12+
13+
### Bug Fixes
14+
15+
- Do not break delete entities when a region is not accessible
16+
1017
## 0.2.62 (2024-11-25)
1118

1219

@@ -385,7 +392,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
385392
### Bug Fixes
386393

387394
- Add auto-discover for available regions in case global resources do not have permissions in default region
388-
- Add access denied handler to STS:AssumeRole
395+
- Add access denied handler to STS:AssumeRole
389396
- Add access denied handler to custom kind resync
390397

391398

integrations/aws/main.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,10 @@ async def resync_resources_for_account(
101101
):
102102
yield batch
103103
except Exception as exc:
104+
if is_access_denied_exception(
105+
exc
106+
): # skip access denied errors since we do not want to skip deleting resources from port
107+
continue
104108
regions.append(session.region_name)
105109
errors.append(exc)
106110
continue

integrations/aws/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "aws"
3-
version = "0.2.62"
3+
version = "0.2.63"
44
description = "This integration will map all your resources in all the available accounts to your Port entities"
55
authors = ["Shalev Avhar <shalev@getport.io>", "Erik Zaadi <erik@getport.io>"]
66

integrations/aws/utils/resources.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,5 +255,10 @@ async def resync_cloudcontrol(
255255
if not next_token:
256256
break
257257
except Exception as e:
258-
logger.error(f"Error resyncing {kind} in region {region}, {e}")
258+
if is_access_denied_exception(e):
259+
logger.warning(
260+
f"Skipping resyncing {kind} in region {region} in account {account_id} due to missing access permissions"
261+
)
262+
else:
263+
logger.error(f"Error resyncing {kind} in region {region}, {e}")
259264
raise e

0 commit comments

Comments
 (0)