def role_list(endpoint_id):
    """
    Executor for `globus access endpoint-role-list`
    """
    client = get_client()
    roles = client.endpoint_role_list(endpoint_id)

    resolved_ids = LazyIdentityMap(
        x["principal"] for x in roles if x["principal_type"] == "identity"
    )

    def principal_str(role):
        principal = role["principal"]
        if role["principal_type"] == "identity":
            username = resolved_ids.get(principal)
            return username or principal
        elif role["principal_type"] == "group":
            return (u"https://app.globus.org/groups/{}").format(principal)
        else:
            return principal

    formatted_print(
        roles,
        fields=[
            ("Principal Type", "principal_type"),
            ("Role ID", "id"),
            ("Principal", principal_str),
            ("Role", "role"),
        ],
    )
def role_list ( endpoint_id ) : client = get_client ( ) roles = client . endpoint_role_list ( endpoint_id ) resolved_ids = LazyIdentityMap ( x [ "principal" ] for x in roles if x [ "principal_type" ] == "identity" ) def principal_str ( role ) : principal = role [ "principal" ] if role [ "principal_type" ] == "identity" : username = resolved_ids . get ( principal ) return username or principal elif role [ "principal_type" ] == "group" : return ( u"https://app.globus.org/groups/{}" ) . format ( principal ) else : return principal formatted_print ( roles , fields = [ ( "Principal Type" , "principal_type" ) , ( "Role ID" , "id" ) , ( "Principal" , principal_str ) , ( "Role" , "role" ) , ] , )
Executor for `globus access endpoint-role-list`