How to use assume_role method in localstack

Best Python code snippet using localstack_python

alicloud_ecs.py

Source:alicloud_ecs.py Github

copy

Full Screen

...75 else:76 raise AnsibleACSError(77 "Unknown problem connecting to region %s for acs module %s." % (region, acs_module.__name__))78 return conn79def get_assume_role(params):80 """ Return new params """81 sts_params = get_acs_connection_info(params)82 assume_role = {}83 if params.get('assume_role'):84 assume_role['alicloud_assume_role_arn'] = params['assume_role'].get('role_arn')85 assume_role['alicloud_assume_role_session_name'] = params['assume_role'].get('session_name')86 assume_role['alicloud_assume_role_session_expiration'] = params['assume_role'].get('session_expiration')87 assume_role['alicloud_assume_role_policy'] = params['assume_role'].get('policy')88 assume_role_params = {89 'role_arn': params.get('alicloud_assume_role_arn') if params.get('alicloud_assume_role_arn') else assume_role.get('alicloud_assume_role_arn'),90 'role_session_name': params.get('alicloud_assume_role_session_name') if params.get('alicloud_assume_role_session_name')91 else assume_role.get('alicloud_assume_role_session_name'),92 'duration_seconds': params.get('alicloud_assume_role_session_expiration') if params.get('alicloud_assume_role_session_expiration')93 else assume_role.get('alicloud_assume_role_session_expiration', 3600),94 'policy': assume_role.get('alicloud_assume_role_policy', {})95 }96 try:97 sts = connect_to_acs(footmark.sts, params.get('alicloud_region'), **sts_params).assume_role(**assume_role_params).read()98 sts_params['acs_access_key_id'], sts_params['acs_secret_access_key'], sts_params['security_token'] \99 = sts['access_key_id'], sts['access_key_secret'], sts['security_token']100 except AnsibleACSError as e:101 params.fail_json(msg=str(e))102 return sts_params103def get_profile(params):104 if not params['alicloud_access_key'] and not params['ecs_role_name'] and params['profile']:105 path = params['shared_credentials_file'] if params['shared_credentials_file'] else os.getenv('HOME') + '/.aliyun/config.json'106 auth = {}107 with open(path, 'r') as f:108 for pro in json.load(f)['profiles']:109 if params['profile'] == pro['name']:110 auth = pro111 if auth:112 if auth['mode'] == 'AK' and auth.get('access_key_id') and auth.get('access_key_secret'):113 params['alicloud_access_key'] = auth.get('access_key_id')114 params['alicloud_secret_key'] = auth.get('access_key_secret')115 params['alicloud_region'] = auth.get('region_id')116 params = get_acs_connection_info(params)117 elif auth['mode'] == 'StsToken' and auth.get('access_key_id') and auth.get('access_key_secret') and auth.get('sts_token'):118 params['alicloud_access_key'] = auth.get('access_key_id')119 params['alicloud_secret_key'] = auth.get('access_key_secret')120 params['security_token'] = auth.get('sts_token')121 params['alicloud_region'] = auth.get('region_id')122 params = get_acs_connection_info(params)123 elif auth['mode'] == 'EcsRamRole':124 params['ecs_role_name'] = auth.get('ram_role_name')125 params['alicloud_region'] = auth.get('region_id')126 params = get_acs_connection_info(params)127 elif auth['mode'] == 'RamRoleArn' and auth.get('ram_role_arn'):128 params['alicloud_access_key'] = auth.get('access_key_id')129 params['alicloud_secret_key'] = auth.get('access_key_secret')130 params['security_token'] = auth.get('sts_token')131 params['ecs_role_name'] = auth.get('ram_role_name')132 params['alicloud_assume_role_arn'] = auth.get('ram_role_arn')133 params['alicloud_assume_role_session_name'] = auth.get('ram_session_name')134 params['alicloud_assume_role_session_expiration'] = auth.get('expired_seconds')135 params['alicloud_region'] = auth.get('region_id')136 params = get_assume_role(params)137 elif params.get('alicloud_assume_role_arn') or params.get('assume_role'):138 params = get_assume_role(params)139 else:140 params = get_acs_connection_info(params)141 return params142def ecs_connect(module):143 """ Return an ecs connection"""144 ecs_params = get_profile(module.params)145 # If we have a region specified, connect to its endpoint.146 region = module.params.get('alicloud_region')147 if region:148 try:149 ecs = connect_to_acs(footmark.ecs, region, **ecs_params)150 except AnsibleACSError as e:151 module.fail_json(msg=str(e))152 # Otherwise, no region so we fallback to the old connection method...

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