def unregister_container(cmd, client, vault_name, resource_group_name, container_name, backup_management_type=None): container = None container_type = custom_help.validate_and_extract_container_type( container_name, backup_management_type) if not custom_help.is_native_name(container_name): containrs_client = backup_protection_containers_cf(cmd.cli_ctx) container = show_container(cmd, containrs_client, container_name, resource_group_name, vault_name, backup_management_type) container_name = container.name if container_type.lower() == "azurestorage": return custom_afs.unregister_afs_container(cmd, client, vault_name, resource_group_name, container_name) if container_type.lower() == "azureworkload": return custom_wl.unregister_wl_container(cmd, client, vault_name, resource_group_name, container_name) return None
def unregister_container(cmd, client, vault_name, resource_group_name, container_name, backup_management_type=None): container = None container_friendly_name = None container_type = custom_help.validate_and_extract_container_type( container_name, backup_management_type) containrs_client = backup_protection_containers_cf(cmd.cli_ctx) container = show_container(cmd, containrs_client, container_name, resource_group_name, vault_name, backup_management_type) container_name = container.name container_friendly_name = container.properties.friendly_name if container_type.lower() == "azurestorage": return custom_afs.unregister_afs_container(cmd, client, vault_name, resource_group_name, container_name) if container_type.lower() == "azureworkload": return custom_wl.unregister_wl_container(cmd, client, vault_name, resource_group_name, container_name) if container_type.lower() == "mab": mab_client = registered_identities_cf(cmd.cli_ctx) mab_client.delete(resource_group_name, vault_name, container_friendly_name) return None
def undelete_protection(cmd, client, resource_group_name, vault_name, container_name, item_name, backup_management_type=None, workload_type=None): container_type = custom_help.validate_and_extract_container_type( container_name, backup_management_type) items_client = backup_protected_items_cf(cmd.cli_ctx) item = show_item(cmd, items_client, resource_group_name, vault_name, container_name, item_name, container_type, workload_type) custom_help.validate_item(item) if isinstance(item, list): raise ValidationError( "Multiple items found. Please give native names instead.") if item.properties.backup_management_type.lower() == "azureiaasvm": return custom.undelete_protection(cmd, client, resource_group_name, vault_name, item) if item.properties.backup_management_type.lower() == "azureworkload": return custom_wl.undelete_protection(cmd, client, resource_group_name, vault_name, item) return None
def show_item(cmd, client, resource_group_name, vault_name, container_name, name, backup_management_type=None, workload_type=None): if custom_help.is_native_name(name) and custom_help.is_native_name( container_name): client = protected_items_cf(cmd.cli_ctx) return client.get(vault_name, resource_group_name, fabric_name, container_name, name) container_type = custom_help.validate_and_extract_container_type( container_name, backup_management_type) items = list_items(cmd, client, resource_group_name, vault_name, workload_type, container_name, container_type) if custom_help.is_native_name(name): filtered_items = [ item for item in items if item.name.lower() == name.lower() ] else: filtered_items = [ item for item in items if item.properties.friendly_name.lower() == name.lower() ] return custom_help.get_none_one_or_many(filtered_items)
def show_recovery_point(cmd, client, resource_group_name, vault_name, container_name, item_name, name, workload_type=None, backup_management_type=None, use_secondary_region=None): items_client = backup_protected_items_cf(cmd.cli_ctx) item = show_item(cmd, items_client, resource_group_name, vault_name, container_name, item_name, backup_management_type, workload_type, use_secondary_region) custom_help.validate_item(item) if isinstance(item, list): raise CLIError( "Multiple items found. Please give native names instead.") # Get container and item URIs container_uri = custom_help.get_protection_container_uri_from_id(item.id) item_uri = custom_help.get_protected_item_uri_from_id(item.id) container_type = custom_help.validate_and_extract_container_type( container_name, backup_management_type) if use_secondary_region: if container_type and container_type.lower() == "azurestorage": raise InvalidArgumentValueError(""" --use-secondary-region flag is not supported for --backup-management-type AzureStorage. Please either remove the flag or query for any other backup-management-type. """) client = recovery_points_crr_cf(cmd.cli_ctx) recovery_points = client.list(vault_name, resource_group_name, fabric_name, container_uri, item_uri, None) paged_rps = custom_help.get_list_from_paged_response(recovery_points) filtered_rps = [ rp for rp in paged_rps if rp.name.lower() == name.lower() ] recovery_point = custom_help.get_none_one_or_many(filtered_rps) if recovery_point is None: raise InvalidArgumentValueError( "The recovery point provided does not exist. Please provide valid RP." ) return recovery_point try: response = client.get(vault_name, resource_group_name, fabric_name, container_uri, item_uri, name) except Exception as ex: errorMessage = str(ex) raise InvalidArgumentValueError( "Specified recovery point can not be fetched - \n" + errorMessage) return response
def show_container(cmd, client, name, resource_group_name, vault_name, backup_management_type=None, status="Registered"): if custom_help.is_native_name(name): return protection_containers_cf(cmd.cli_ctx).get( vault_name, resource_group_name, fabric_name, name) container_type = custom_help.validate_and_extract_container_type( name, backup_management_type) containers = _get_containers(client, container_type, status, resource_group_name, vault_name, name) return custom_help.get_none_one_or_many(containers)
def show_container(cmd, client, name, resource_group_name, vault_name, backup_management_type=None, status="Registered", use_secondary_region=None): container_type = custom_help.validate_and_extract_container_type( name, backup_management_type) if use_secondary_region: if container_type and container_type.lower() in crr_not_supported_bmt: raise InvalidArgumentValueError(""" --use-secondary-region flag is not supported for this backup management type. Please either remove the flag or query for any other container type. """) containers = _get_containers(client, container_type, status, resource_group_name, vault_name, name, use_secondary_region) return custom_help.get_none_one_or_many(containers)
def show_item(cmd, client, resource_group_name, vault_name, container_name, name, backup_management_type=None, workload_type=None, use_secondary_region=None): container_type = custom_help.validate_and_extract_container_type( container_name, backup_management_type) if use_secondary_region: if container_type and container_type.lower() in crr_not_supported_bmt: raise InvalidArgumentValueError(""" --use-secondary-region flag is not supported for this backup management type. Please either remove the flag or query for any other container type. """) else: if custom_help.is_native_name(name) and custom_help.is_native_name( container_name): client = protected_items_cf(cmd.cli_ctx) return client.get(vault_name, resource_group_name, fabric_name, container_name, name) items = list_items(cmd, client, resource_group_name, vault_name, workload_type, container_name, container_type, use_secondary_region) if custom_help.is_native_name(name): filtered_items = [ item for item in items if item.name.lower() == name.lower() ] else: filtered_items = [ item for item in items if item.properties.friendly_name.lower() == name.lower() ] return custom_help.get_none_one_or_many(filtered_items)
def unregister_container(cmd, client, vault_name, resource_group_name, container_name, backup_management_type=None): container = None # container_friendly_name = None container_type = custom_help.validate_and_extract_container_type( container_name, backup_management_type) if not custom_help.is_native_name(container_name): containrs_client = backup_protection_containers_cf(cmd.cli_ctx) container = show_container(cmd, containrs_client, container_name, resource_group_name, vault_name, backup_management_type) container_name = container.name # container_friendly_name = container.properties.friendly_name if container_type.lower() == "azurestorage": return custom_afs.unregister_afs_container(cmd, client, vault_name, resource_group_name, container_name) if container_type.lower() == "azureworkload": return custom_wl.unregister_wl_container(cmd, client, vault_name, resource_group_name, container_name) # if container_type.lower() == "mab": # if container_friendly_name is None: # containrs_client = backup_protection_containers_cf(cmd.cli_ctx) # container = show_container(cmd, containrs_client, container_name, resource_group_name, vault_name, # backup_management_type) # container_friendly_name = container.properties.friendly_name # mab_client = registered_identities_cf(cmd.cli_ctx) # result = mab_client.delete(resource_group_name, vault_name, container_friendly_name, # cls=custom_help.get_pipeline_response) # return custom_help.track_mab_unregister_operation(cmd.cli_ctx, result, vault_name, resource_group_name, # container_name) return None
def show_container(cmd, client, name, resource_group_name, vault_name, backup_management_type=None, status="Registered", use_secondary_region=None): container_type = custom_help.validate_and_extract_container_type( name, backup_management_type) if use_secondary_region: if container_type and container_type.lower() == "azurestorage": raise InvalidArgumentValueError(""" --use-secondary-region flag is not supported for container of type AzureStorage. Please either remove the flag or query for any other container type. """) if custom_help.is_native_name(name): return protection_containers_cf(cmd.cli_ctx).get( vault_name, resource_group_name, fabric_name, name) containers = _get_containers(client, container_type, status, resource_group_name, vault_name, name, use_secondary_region) return custom_help.get_none_one_or_many(containers)