Beispiel #1
0
def set_policy(cmd,
               client,
               resource_group_name,
               vault_name,
               policy,
               policy_name,
               tenant_id=None,
               is_critical_operation=False):
    if policy_name is None:
        raise CLIError("""
            Policy name is required for set policy.
            """)

    policy_object = helper.get_policy_from_json(client, policy)
    policy_object.properties.work_load_type = workload_type
    existing_policy = common.show_policy(client, resource_group_name,
                                         vault_name, policy_name)
    helper.validate_update_policy_request(existing_policy, policy_object)
    if is_critical_operation:
        if helper.is_retention_duration_decreased(existing_policy,
                                                  policy_object,
                                                  "AzureStorage"):
            # update the payload with critical operation and add auxiliary header for cross tenant case
            if tenant_id is not None:
                client = get_mgmt_service_client(
                    cmd.cli_ctx,
                    RecoveryServicesBackupClient,
                    aux_tenants=[tenant_id]).protection_policies
            policy_object.properties.resource_guard_operation_requests = [
                helper.get_resource_guard_operation_request(
                    cmd.cli_ctx, resource_group_name, vault_name,
                    "updatePolicy")
            ]
    return client.create_or_update(vault_name, resource_group_name,
                                   policy_name, policy_object)
Beispiel #2
0
def set_policy(client, resource_group_name, vault_name, policy, policy_name):
    if policy_name is None:
        raise CLIError(
            """
            Policy name is required for set policy.
            """)

    policy_object = helper.get_policy_from_json(client, policy)
    policy_object.properties.work_load_type = workload_type
    existing_policy = common.show_policy(client, resource_group_name, vault_name, policy_name)
    helper.validate_update_policy_request(existing_policy, policy_object)

    return client.create_or_update(vault_name, resource_group_name, policy_name, policy_object)