Aws organizations organizationalunit idempotency #92
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Title: Implement idempotency for OrganizationalUnit creation in CreateHandler
Description:
This pull request implements idempotency for OrganizationalUnit creation in the CreateHandler. The changes ensure that attempting to create an OrganizationalUnit that already exists results in an appropriate error response rather than attempting to create a duplicate OrganizationalUnit.
Key Changes:
Modified CreateHandler to check for existing OrganizationalUnits before attempting creation.
Implemented a new checkIfOrganizationalUnitExists method to perform the existence check.
Updated handleRequest method to return an AlreadyExists error when an OrganizationalUnit with the same name is found under the same parent.
Updated CallbackContext to track the pre-existence check and OrganizationalUnit creation status.
Refactored unit tests to align with the new idempotent behavior.
Specific Updates:
In CreateHandler:
Added checkIfOrganizationalUnitExists method to query existing OrganizationalUnits.
Updated handleRequest to use checkIfOrganizationalUnitExists and handle already existing OrganizationalUnits.
Modified error handling to return appropriate error codes and messages.
In CreateHandlerTest:
Updated existing test cases to account for the new idempotency check.
Added new test cases:
handleRequest_OrganizationalUnitAlreadyExists
handleRequest_OrganizationalUnitDoesNotExist
Modified other affected test cases to align with the new behavior.
In CallbackContext:
Added isPreExistenceCheckComplete and isDidResourceAlreadyExist flags.
Testing:
All existing unit tests have been updated and pass.
New unit tests have been added to cover the idempotency scenarios.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.