mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-24 11:21:25 -07:00
rds_instance module and tests (#43789)
* Add functions to retrieve the allowed and required parameters for boto3 client methods * Add custom waiter for stopping an RDS DB instance * Add rds_instance module * Add rds_instance integration tests * address requested changes from ryansb * address requested changes from willthames * address requested changes from dmsimard * Fix final snapshots Fix idempotence with already-deleting DB instances Remove unused import from module_utils/aws/core.py Consolidate function to get all boto3 client method parameters and the subset of required parameters * Add some additional rds_instance integration tests * Add some common functions to module_utils/aws/rds * Move common code out of rds_instance * Remove hardcoded engine choices and require the minimum boto3 * Document wait behavior * Provide a list of valid engines in the error message if it is invalid Add supported methods to whitelist Remove AWSRetry around waiter Wait for a less crazy amount of time Remove unused variables * Add a test for an invalid engine option * pep8 * Missed adding a method to the whitelist * Use retries * Fix some little things * Fix more things * Improve error message * Support creating cross-region read replicas * Remove unused imports * Add retry when getting RDS instance * Soft-check required options so module fails properly when options are missing * Fix mariadb parameter version * Fix cross-region read_replica creation and tests * fix modify tests * Fix a modification test * Fix typo * Remove test for option_group_name that exists for this account but may not for others and added as a TODO to do properly
This commit is contained in:
parent
ef8ce6b2f3
commit
113336d6f1
18 changed files with 2789 additions and 0 deletions
|
@ -283,3 +283,15 @@ def is_boto3_error_code(code, e=None):
|
|||
if isinstance(e, ClientError) and e.response['Error']['Code'] == code:
|
||||
return ClientError
|
||||
return type('NeverEverRaisedException', (Exception,), {})
|
||||
|
||||
|
||||
def get_boto3_client_method_parameters(client, method_name, required=False):
|
||||
op = client.meta.method_to_api_mapping.get(method_name)
|
||||
input_shape = client._service_model.operation_model(op).input_shape
|
||||
if not input_shape:
|
||||
parameters = []
|
||||
elif required:
|
||||
parameters = list(input_shape.required_members)
|
||||
else:
|
||||
parameters = list(input_shape.members.keys())
|
||||
return parameters
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue