def _get_enviroments_with_role_from_project()

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


def _get_enviroments_with_role_from_project(datazone, args, fallback_role_arn):
    environment_lists = []
    paginator = datazone.get_paginator('list_environments')
    for page in paginator.paginate(domainIdentifier=args.domain_id, projectIdentifier=args.project_id):
        for environment in page['items']:
            provisioned_resources = datazone.get_environment(
                domainIdentifier=args.domain_id,
                identifier=environment['id']
            )['provisionedResources']
            try:
                user_role = [resource for resource in provisioned_resources if resource['name'] == 'userRoleArn'][0]
                role_arn = user_role['value']
            except (IndexError, KeyError):
                # Use fallback role if userRoleArn is not found
                role_arn = fallback_role_arn
            environment_lists.append(EnvironmentWithRole(environment['name'], environment['id'], role_arn))
    return environment_lists