def main(self): if self.args.get('recursive') or self.args.get('pretend'): # Figure out what we have to delete req = GetInstanceProfile( config=self.config, service=self.service, InstanceProfileName=self.args['InstanceProfileName'], DelegateAccount=self.args.get('DelegateAccount')) response = req.main() roles = [] for role in response.get('InstanceProfile', {}).get('Roles') or []: roles.append({ 'arn': role.get('Arn'), 'name': role.get('RoleName') }) else: # Just in case roles = [] if self.args.get('pretend'): return {'roles': roles} else: if self.args.get('recursive'): for role in roles: req = RemoveRoleFromInstanceProfile( config=self.config, service=self.service, RoleName=role['name'], InstanceProfileName=self.args['InstanceProfileName'], DelegateAccount=self.args.get('DelegateAccount')) req.main() return self.send()