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)
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)