How to use enable_snapshot_copy method in localstack

Best Python code snippet using localstack_python

redshift_cross_region_snapshots.py

Source:redshift_cross_region_snapshots.py Github

copy

Full Screen

...85 response = self.client.describe_clusters(86 ClusterIdentifier=self.cluster_name87 )88 return response['Clusters'][0].get('ClusterSnapshotCopyStatus')89 def enable_snapshot_copy(self, destination_region, grant_name, retention_period):90 if grant_name:91 self.client.enable_snapshot_copy(92 ClusterIdentifier=self.cluster_name,93 DestinationRegion=destination_region,94 RetentionPeriod=retention_period,95 SnapshotCopyGrantName=grant_name,96 )97 else:98 self.client.enable_snapshot_copy(99 ClusterIdentifier=self.cluster_name,100 DestinationRegion=destination_region,101 RetentionPeriod=retention_period,102 )103 def disable_snapshot_copy(self):104 self.client.disable_snapshot_copy(105 ClusterIdentifier=self.cluster_name106 )107 def modify_snapshot_copy_retention_period(self, retention_period):108 self.client.modify_snapshot_copy_retention_period(109 ClusterIdentifier=self.cluster_name,110 RetentionPeriod=retention_period111 )112def requesting_unsupported_modifications(actual, requested):113 if (actual['SnapshotCopyGrantName'] != requested['snapshot_copy_grant'] or114 actual['DestinationRegion'] != requested['destination_region']):115 return True116 return False117def needs_update(actual, requested):118 if actual['RetentionPeriod'] != requested['snapshot_retention_period']:119 return True120 return False121def run_module():122 argument_spec = ec2_argument_spec()123 argument_spec.update(124 dict(125 cluster_name=dict(type='str', required=True, aliases=['cluster']),126 state=dict(type='str', choices=['present', 'absent'], default='present'),127 region=dict(type='str', required=True, aliases=['source']),128 destination_region=dict(type='str', required=True, aliases=['destination']),129 snapshot_copy_grant=dict(type='str', aliases=['copy_grant']),130 snapshot_retention_period=dict(type='int', required=True, aliases=['retention_period']),131 )132 )133 module = AnsibleAWSModule(134 argument_spec=argument_spec,135 supports_check_mode=True136 )137 result = dict(138 changed=False,139 message=''140 )141 connection = module.client('redshift')142 snapshot_controller = SnapshotController(client=connection,143 cluster_name=module.params.get('cluster_name'))144 current_config = snapshot_controller.get_cluster_snapshot_copy_status()145 if current_config is not None:146 if module.params.get('state') == 'present':147 if requesting_unsupported_modifications(current_config, module.params):148 message = 'Cannot modify destination_region or grant_name. ' \149 'Please disable cross-region snapshots, and re-run.'150 module.fail_json(msg=message, **result)151 if needs_update(current_config, module.params):152 result['changed'] = True153 if not module.check_mode:154 snapshot_controller.modify_snapshot_copy_retention_period(155 module.params.get('snapshot_retention_period')156 )157 else:158 result['changed'] = True159 if not module.check_mode:160 snapshot_controller.disable_snapshot_copy()161 else:162 if module.params.get('state') == 'present':163 result['changed'] = True164 if not module.check_mode:165 snapshot_controller.enable_snapshot_copy(module.params.get('destination_region'),166 module.params.get('snapshot_copy_grant'),167 module.params.get('snapshot_retention_period'))168 module.exit_json(**result)169def main():170 run_module()171if __name__ == '__main__':...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run localstack automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful