def show_protectable_instance(items, server_name, protectable_item_type): if server_name is None: raise RequiredArgumentMissingError(""" Server name missing. Please provide a valid server name using --target-server-name. """) if protectable_item_type is None: az_error = RequiredArgumentMissingError(""" Protectable item type missing. Please provide a valid protectable item type name using --target-server-type. """) recommendation_text = "{} are the allowed values.".format( str(list(protectable_item_type_map.keys()))) az_error.set_recommendation(recommendation_text) raise az_error protectable_item_type = _check_map(protectable_item_type, protectable_item_type_map) # Protectable Item Type filter filtered_items = [ item for item in items if item.properties.protectable_item_type is not None and item.properties.protectable_item_type.lower() == protectable_item_type.lower() ] # Server Name filter filtered_items = [ item for item in filtered_items if item.properties.server_name.lower() == server_name.lower() ] return cust_help.get_none_one_or_many(filtered_items)
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_protectable_item(items, name, server_name, protectable_item_type): protectable_item_type = _check_map(protectable_item_type, protectable_item_type_map) # Name filter if cust_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() ] # Server Name filter filtered_items = [ item for item in filtered_items if item.properties.server_name.lower() == server_name.lower() ] # Protectable Item Type filter filtered_items = [ item for item in filtered_items if item.properties.protectable_item_type.lower() == protectable_item_type.lower() ] return cust_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_protectable_instance(items, server_name, protectable_item_type): if protectable_item_type_map.get(protectable_item_type) is not None: protectable_item_type = protectable_item_type_map[protectable_item_type] # Server Name filter filtered_items = [item for item in items if item.properties.server_name.lower() == server_name.lower()] # Protectable Item Type filter filtered_items = [item for item in filtered_items if item.properties.protectable_item_type.lower() == protectable_item_type.lower()] return cust_help.get_none_one_or_many(filtered_items)
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 _get_log_time_range(cmd, resource_group_name, vault_name, item, use_secondary_region): container_uri = cust_help.get_protection_container_uri_from_id(item.id) item_uri = cust_help.get_protected_item_uri_from_id(item.id) filter_string = cust_help.get_filter_string({ 'restorePointQueryType': 'Log'}) client = recovery_points_cf(cmd.cli_ctx) if use_secondary_region: client = recovery_points_crr_cf(cmd.cli_ctx) # Get recovery points recovery_points = client.list(vault_name, resource_group_name, fabric_name, container_uri, item_uri, filter_string) paged_recovery_points = cust_help.get_none_one_or_many(cust_help.get_list_from_paged_response(recovery_points)) _check_none_and_many(paged_recovery_points, "Log time range") return paged_recovery_points.properties.time_ranges
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 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)