def _try_get_protectable_item_for_afs(cli_ctx, vault_name, resource_group_name, afs_name, storage_account_name): backup_protectable_items_client = backup_protectable_items_cf(cli_ctx) filter_string = helper.get_filter_string({ 'backupManagementType': backup_management_type, 'workloadType': workload_type}) protectable_items_paged = backup_protectable_items_client.list(vault_name, resource_group_name, filter_string) protectable_items = helper.get_list_from_paged_response(protectable_items_paged) result = protectable_items if helper.is_native_name(storage_account_name): result = [protectable_item for protectable_item in result if protectable_item.id.split('/')[12] == storage_account_name.lower()] else: result = [protectable_item for protectable_item in result if protectable_item.properties.parent_container_friendly_name.lower() == storage_account_name.lower()] if helper.is_native_name(afs_name): result = [protectable_item for protectable_item in result if protectable_item.name.lower() == afs_name.lower()] else: result = [protectable_item for protectable_item in result if protectable_item.properties.friendly_name.lower() == afs_name.lower()] if len(result) > 1: raise CLIError("Could not find a unique resource, Please pass native names instead") if len(result) == 1: return result[0] return None
def show_recovery_config(cmd, client, resource_group_name, vault_name, restore_mode, container_name, item_name, rp_name=None, target_item_name=None, log_point_in_time=None, target_server_type=None, target_server_name=None, workload_type=None): target_item = None if target_item_name is not None: protectable_items_client = backup_protectable_items_cf(cmd.cli_ctx) target_item = show_protectable_instance(cmd, protectable_items_client, resource_group_name, vault_name, target_server_name, target_server_type, workload_type, container_name) return custom_wl.show_recovery_config(cmd, client, resource_group_name, vault_name, restore_mode, container_name, item_name, rp_name, target_item, target_item_name, log_point_in_time)
def auto_enable_for_azure_wl(cmd, client, resource_group_name, vault_name, policy_name, protectable_item_name, protectable_item_type, server_name, workload_type): policy_object = show_policy(protection_policies_cf(cmd.cli_ctx), resource_group_name, vault_name, policy_name) protectable_items_client = backup_protectable_items_cf(cmd.cli_ctx) protectable_item = show_protectable_item(cmd, protectable_items_client, resource_group_name, vault_name, protectable_item_name, server_name, protectable_item_type, workload_type) return custom_wl.auto_enable_for_azure_wl(client, resource_group_name, vault_name, policy_object, protectable_item)
def show_recovery_config(cmd, client, resource_group_name, vault_name, restore_mode, container_name, item_name, rp_name=None, target_item_name=None, log_point_in_time=None, target_server_type=None, target_server_name=None, workload_type=None, backup_management_type="AzureWorkload", from_full_rp_name=None, filepath=None, target_container_name=None, target_resource_group=None, target_vault_name=None): target_resource_group = resource_group_name if target_resource_group is None else target_resource_group target_vault_name = vault_name if target_vault_name is None else target_vault_name target_container_name = container_name if target_container_name is None else target_container_name target_item = None if target_item_name is not None: protectable_items_client = backup_protectable_items_cf(cmd.cli_ctx) target_item = show_protectable_instance( cmd, protectable_items_client, target_resource_group, target_vault_name, target_server_name, target_server_type, workload_type, target_container_name) target_container = None if target_container_name is not None: container_client = backup_protection_containers_cf(cmd.cli_ctx) target_container = common.show_container(cmd, container_client, target_container_name, target_resource_group, target_vault_name, backup_management_type) if isinstance(target_container, list): raise ValidationError(""" Multiple containers with same Friendly Name found. Please give native names instead. """) return custom_wl.show_recovery_config( cmd, client, resource_group_name, vault_name, restore_mode, container_name, item_name, rp_name, target_item, target_item_name, log_point_in_time, from_full_rp_name, filepath, target_container, target_resource_group, target_vault_name)
def disable_auto_for_azure_wl(cmd, client, resource_group_name, vault_name, protectable_item_name, protectable_item_type, server_name, workload_type): protectable_items_client = backup_protectable_items_cf(cmd.cli_ctx) protectable_item = show_protectable_item(cmd, protectable_items_client, resource_group_name, vault_name, protectable_item_name, server_name, protectable_item_type, workload_type) custom_help.validate_protectable_item(protectable_item) return custom_wl.disable_auto_for_azure_wl(cmd, client, resource_group_name, vault_name, protectable_item)
def _try_get_protectable_item_for_vm(cli_ctx, vault_name, vault_rg, vm_name, vm_rg): backup_protectable_items_client = backup_protectable_items_cf(cli_ctx) filter_string = _get_filter_string({ 'backupManagementType': 'AzureIaasVM'}) protectable_items_paged = backup_protectable_items_client.list(vault_name, vault_rg, filter_string) protectable_items = _get_list_from_paged_response(protectable_items_paged) for protectable_item in protectable_items: item_vm_name = _get_vm_name_from_vm_id(protectable_item.properties.virtual_machine_id) item_vm_rg = _get_resource_group_from_id(protectable_item.properties.virtual_machine_id) if item_vm_name.lower() == vm_name.lower() and item_vm_rg.lower() == vm_rg.lower(): return protectable_item return None