def set_policy(cmd, client, resource_group_name, vault_name, policy=None, name=None, fix_for_inconsistent_items=None, backup_management_type=None, tenant_id=None): if backup_management_type is None and policy is not None: policy_object = custom_help.get_policy_from_json(client, policy) backup_management_type = policy_object.properties.backup_management_type.lower( ) is_critical_operation = custom_help.has_resource_guard_mapping( cmd.cli_ctx, resource_group_name, vault_name, "updatePolicy") if backup_management_type.lower() == "azureiaasvm": return custom.set_policy(cmd, client, resource_group_name, vault_name, policy, name, tenant_id, is_critical_operation) if backup_management_type.lower() == "azurestorage": return custom_afs.set_policy(cmd, client, resource_group_name, vault_name, policy, name, tenant_id, is_critical_operation) if backup_management_type.lower() == "azureworkload": return custom_wl.set_policy(cmd, client, resource_group_name, vault_name, policy, name, fix_for_inconsistent_items, tenant_id, is_critical_operation) return None
def create_policy(client, resource_group_name, vault_name, name, policy): policy_object = helper.get_policy_from_json(client, policy) policy_object.name = name if backup_management_type is not None: policy_object.properties.backup_management_type = backup_management_type policy_object.properties.work_load_type = workload_type return client.create_or_update(vault_name, resource_group_name, name, policy_object)
def set_policy(cmd, client, resource_group_name, vault_name, policy, policy_name, fix_for_inconsistent_items, tenant_id=None, is_critical_operation=False): if policy_name is None: raise CLIError( """ Policy name is required for set policy. """) if policy is not None: policy_object = cust_help.get_policy_from_json(client, policy) if is_critical_operation: existing_policy = common.show_policy(client, resource_group_name, vault_name, policy_name) if cust_help.is_retention_duration_decreased(existing_policy, policy_object, "AzureWorkload"): # 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 = [ cust_help.get_resource_guard_operation_request(cmd.cli_ctx, resource_group_name, vault_name, "updatePolicy")] else: if fix_for_inconsistent_items: policy_object = common.show_policy(client, resource_group_name, vault_name, policy_name) policy_object.properties.make_policy_consistent = True else: raise CLIError( """ Please provide policy object. """) return client.create_or_update(vault_name, resource_group_name, policy_name, policy_object)
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 create_policy(client, resource_group_name, vault_name, policy_name, policy, workload_type): workload_type = workload_type_map[workload_type] policy_object = cust_help.get_policy_from_json(client, policy) policy_object.properties.backup_management_type = "AzureWorkload" policy_object.properties.workload_type = workload_type policy_object.name = policy_name return client.create_or_update(vault_name, resource_group_name, policy_name, policy_object)
def new_policy(client, resource_group_name, vault_name, policy, policy_name, container_type, workload_type): policy_object = custom_help.get_policy_from_json(client, policy) policy_object.properties.backup_management_type = container_type policy_object.properties.workload_type = workload_type return client.create_or_update(vault_name, resource_group_name, policy_name, policy_object)
def set_policy(client, resource_group_name, vault_name, policy, name=None): policy_object = custom_help.get_policy_from_json(client, policy) if policy_object.properties.backup_management_type.lower() == "azureiaasvm": return custom.set_policy(client, resource_group_name, vault_name, policy, name) if policy_object.properties.backup_management_type.lower() == "azurestorage": return custom_afs.set_policy(client, resource_group_name, vault_name, policy, name) if policy_object.properties.backup_management_type == "AzureWorkload": return custom_wl.set_policy(client, resource_group_name, vault_name, policy, name) return None
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 = cust_help.get_policy_from_json(client, policy) 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)
def set_policy(client, resource_group_name, vault_name, policy=None, name=None, fix_for_inconsistent_items=None, backup_management_type=None): if backup_management_type is None and policy is not None: policy_object = custom_help.get_policy_from_json(client, policy) backup_management_type = policy_object.properties.backup_management_type.lower() if backup_management_type.lower() == "azureiaasvm": return custom.set_policy(client, resource_group_name, vault_name, policy, name) if backup_management_type.lower() == "azurestorage": return custom_afs.set_policy(client, resource_group_name, vault_name, policy, name) if backup_management_type.lower() == "azureworkload": return custom_wl.set_policy(client, resource_group_name, vault_name, policy, name, fix_for_inconsistent_items) return None
def set_policy(client, resource_group_name, vault_name, policy, policy_name, fix_for_inconsistent_items): if policy_name is None: raise CLIError( """ Policy name is required for set policy. """) if policy is not None: policy_object = cust_help.get_policy_from_json(client, policy) else: if fix_for_inconsistent_items: policy_object = common.show_policy(client, resource_group_name, vault_name, policy_name) policy_object.properties.make_policy_consistent = True else: raise CLIError( """ Please provide policy object. """) return client.create_or_update(vault_name, resource_group_name, policy_name, policy_object)