Source code for models.disk

# -*- coding: utf-8 -*-
# Copyright 2021 Cohesity Inc.

import cohesity_management_sdk.models.disk_block
import cohesity_management_sdk.models.disk_partition

[docs]class Disk(object): """Implementation of the 'Disk' model. Specifies information about a disk and partitions in a volume. Attributes: disk_blocks (list of DiskBlock): Array of Disk Blocks. Specifies a set of disk blocks by defining the location and offset of disk blocks in a disk. disk_format (DiskFormatEnum): Specifies the format of the virtual disk. 'kVMDK' indicates VMware's Virtual Disk format. 'kVHD' indicates Microsoft's Virtual Hard Drive format. 'kVHDx' indicates Microsoft's Hyper-V Virtual Hard Drive format. 'kRaw' indicates Raw disk format used by KVM, Acropolis. 'kUnknow' indicates Unknown disk format. disk_partitions (list of DiskPartition): Array of Partitions. Specifies information about all the partitions in this disk. partition_table_format (PartitionTableFormatEnum): Specifies partition table format on a disk. 'kNoPartition' indicates missing partition table. 'kMBRPartition' indicates partition table is in Master Boot Record format. 'kGPTPartition' indicates partition table is in Guid Partition Table format. 'kSGIPartition' indicates partition table uses SGI scheme. 'kSUNPartition' indicates partition table uses SUN scheme. sector_size_bytes (long|int): Specifies the sector size of hard disk. It is used for mapping the disk blocks of the disk file into a linear list of sectors. uuid (string): Specifies the disk uuid. vmdk_file_name (string): Specifies the disk file name. This is the VMDK name and not the flat file name. vmdk_size_bytes (long|int): Specifies the disk size in bytes. """ # Create a mapping from Model property names to API property names _names = { "disk_blocks":'diskBlocks', "disk_format":'diskFormat', "disk_partitions":'diskPartitions', "partition_table_format":'partitionTableFormat', "sector_size_bytes":'sectorSizeBytes', "uuid":'uuid', "vmdk_file_name":'vmdkFileName', "vmdk_size_bytes":'vmdkSizeBytes' } def __init__(self, disk_blocks=None, disk_format=None, disk_partitions=None, partition_table_format=None, sector_size_bytes=None, uuid=None, vmdk_file_name=None, vmdk_size_bytes=None): """Constructor for the Disk class""" # Initialize members of the class self.disk_blocks = disk_blocks self.disk_format = disk_format self.disk_partitions = disk_partitions self.partition_table_format = partition_table_format self.sector_size_bytes = sector_size_bytes self.uuid = uuid self.vmdk_file_name = vmdk_file_name self.vmdk_size_bytes = vmdk_size_bytes
[docs] @classmethod def from_dictionary(cls, dictionary): """Creates an instance of this model from a dictionary Args: dictionary (dictionary): A dictionary representation of the object as obtained from the deserialization of the server's response. The keys MUST match property names in the API description. Returns: object: An instance of this structure class. """ if dictionary is None: return None # Extract variables from the dictionary disk_blocks = None if dictionary.get('diskBlocks') != None: disk_blocks = list() for structure in dictionary.get('diskBlocks'): disk_blocks.append(cohesity_management_sdk.models.disk_block.DiskBlock.from_dictionary(structure)) disk_format = dictionary.get('diskFormat') disk_partitions = None if dictionary.get('diskPartitions') != None: disk_partitions = list() for structure in dictionary.get('diskPartitions'): disk_partitions.append(cohesity_management_sdk.models.disk_partition.DiskPartition.from_dictionary(structure)) partition_table_format = dictionary.get('partitionTableFormat') sector_size_bytes = dictionary.get('sectorSizeBytes') uuid = dictionary.get('uuid') vmdk_file_name = dictionary.get('vmdkFileName') vmdk_size_bytes = dictionary.get('vmdkSizeBytes') # Return an object of this model return cls(disk_blocks, disk_format, disk_partitions, partition_table_format, sector_size_bytes, uuid, vmdk_file_name, vmdk_size_bytes)