def add()

in modular-service-cli/modular_service_cli/group/policy.py [0:0]


def add(ctx: ContextObj, name, permission, permissions_admin,
        path_to_permissions, customer_id):
    """
    Creates policy.
    """
    permissions = list(permission)
    if path_to_permissions:
        try:
            with open(path_to_permissions, 'r') as fp:
                data = json.load(fp)
        except FileNotFoundError:
            return ApiResponse.build(f'File {path_to_permissions} not found')
        except json.JSONDecodeError:
            return ApiResponse.build(f'File {path_to_permissions} contains invalid JSON')
        except Exception:
            return ApiResponse.build(f'Could not load file {path_to_permissions}')
        if not isinstance(data, list) and not all([isinstance(i, str) for i in data]):
            return ApiResponse.build('File should contain list of strings')
        permissions.extend(data) 

    return ctx.api_client.create_policy(
        name=name,
        permissions=permissions,
        permissions_admin=permissions_admin,
        customer_id=customer_id
    )