in src/ansible_collections/alibaba/apsarastack/plugins/modules/ali_rds_backup.py [0:0]
def main():
argument_spec = common_argument_spec()
argument_spec.update(dict(
state=dict(default='present', choices=['present', 'absent']),
db_instance_id=dict(type='str', aliases=['instance_id'], required=True),
db_name=dict(type='list', elements='str'),
backup_id=dict(type='list', elements='str'),
backup_method=dict(type='str', default='Physical'),
backup_strategy=dict(type='str', default="instance"),
backup_type=dict(type='str', default='Auto')
))
module = AnsibleModule(argument_spec=argument_spec)
rds = rds_connect(module)
if HAS_FOOTMARK is False:
module.fail_json(msg="Footmark required for this module")
# Get values of variable
state = module.params['state']
backup_id = module.params['backup_id']
db_name = module.params['db_name']
if backup_id:
module.params['backup_id'] = ','.join(backup_id)
if db_name:
module.params['db_name'] = ','.join(db_name)
if state == 'absent':
try:
# changed = rds.delete_backup(**module.params)
module.exit_json(changed=True, backup={})
except Exception as e:
module.fail_json(msg=str("Unable to delete backup error:{0}".format(e)))
if state == 'present':
try:
kwargs_filter = {
"backup_status": "Success",
"db_instance_id": module.params["db_instance_id"]
}
backup = rds.describe_backups(**kwargs_filter)
original_backups_count = len(backup)
create_backup = rds_create_backup(module, rds)
time_sleep = 10
i = 1
create = False
while time_sleep * i < time_sleep * 6 *10:
backup_now = rds.describe_backups(**kwargs_filter)
if len(backup_now) > original_backups_count:
create = True
break
time.sleep(10)
i += 1
if create:
module.exit_json(changed=True, backup=create_backup)
else:
module.fail_json(msg=str("Unable to create backup error"))
except Exception as e:
module.fail_json(msg=str("Unable to create backup error:{0}".format(e)))