def _copy_inline_policies_arn()

in migration/bring-your-own-role/byor.py [0:0]


def _copy_inline_policies_arn(source_role, dest_role, iam_client, execute_flag):
    paginator = iam_client.get_paginator('list_role_policies')
    for page in paginator.paginate(RoleName=source_role['Role']['RoleName']):
        for policy_name in page['PolicyNames']:
            policy_document = iam_client.get_role_policy(
                RoleName=source_role['Role']['RoleName'],
                PolicyName=policy_name
            )['PolicyDocument']
            if execute_flag:
                iam_client.put_role_policy(
                    RoleName=dest_role['Role']['RoleName'],
                    PolicyName=policy_name,
                    PolicyDocument=str(policy_document).replace("'", '"')
                )
            else:
                print(f"New inline policy `{policy_name}` would be copied to role `{dest_role['Role']['RoleName']}` is:")
                pprint(policy_document)
                print(f"Skipping copy new inline policy `{policy_name}` to role `{dest_role['Role']['RoleName']}`, set --execute flag to True to do the actual copy.\n")
    if execute_flag:
        print(f"Successfully copied inline policies to role: `{dest_role['Role']['RoleName']}`\n")