Module OSCPlugin :: Class IPlugin
[hide private]
[frames] | no frames]

Class IPlugin

source code

object --+
         |
        IPlugin
Known Subclasses:

The base interface for various Storage Connect plug-in interfaces.

The class tree of the Storage Connect API is as follows:

Class Hierarchy for IPlugin
Class Hierarchy for IPlugin


Note: All logging should be done through the logger instance set in the IPlugin class.

Instance Methods [hide private]

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __init__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Methods [hide private]
str
getPluginType(klass)
Return the plugin type.
source code
 
getTemporaryFile(klass, mode='w+b', bufsize=-1, suffix='', prefix='tmpfil', directory=None)
This method is identical to the standard tempfile.TemporaryFile() method.
source code
 
getNamedTemporaryFile(klass, mode='w+b', bufsize=-1, suffix='', prefix='tmpfil', directory=None, delete=True)
This method is identical to the standard tempfile.NamedTemporaryFile() method.
source code
Static Methods [hide private]
a new object with type S, a subtype of T
__new__(cls, *args, **kwargs)
Override the method to enforce that no Storage Connect classes be instantiated.
source code
dict
__get_key_value_pairs__(key_val_s, result_dict={})
Create a dict from a string in the form of attr=value[,...].
source code
str
__set_key_value_pairs__(key_val_d)
This method will create a string in the form of key=value[,...] from a dict.
source code
 
copy(src, dst)
This will do a block copy from the source to the destination
source code
Class Variables [hide private]
str name = 'IPlugin'
Class name.
list of str plugin_api_version = ['1', '2', '7']
The over arching API version for the plugin interface.
list of str required_api_vers = None
The minimum API version required by the plugin.
logging object logger = None
Logging instance to be used by the plugin.
str iscsiadm = '/sbin/iscsiadm'
Location of the iscsiadm executable.
str plugin_type = 'inv'
Specific type of plugin.
str plugin_name = ''
The name of the plugin - Name used to populate the user interface drop down list.
str vendor_name = ''
Name of the Vendor supplying the plugin.
str plugin_version = ''
Version of the plugin.
str ss_extra_info_help = 'None'
The help text that will be displayed for the extra info to the user when creating the Storage Server.
str se_extra_info_help = 'None'
The help text that will be displayed for the extra info to the user when creating a Storage Element.
str fs_extra_info_help = 'None'
The help text that will be displayed for the extra info to the user when creating a File System.
str file_extra_info_help = 'None'
The help text that will be displayed for the extra info to the user when creating a File.
dict plugin_ability = {'access_control': 255, 'backing_device_type'...
Capabilities that this specific plugin support.
str dev_path_prefix = '/dev/mapper'
This is the device path prefix that plug-ins should use when filling in the path in the SERecord.
str dev_name_regex = '^[0-9a-zA-Z]+'
This is the device name regex that plug-ins should use when scanning through the devices to fill in the path in SERecord.
str SANStorage = 'SAN'
Used to designate that the plugin can handle all types of SCSI storage (FC, FCoE, SAS, SATA, etc.) except iSCSI.
str iSCSIStorage = 'iSCSI'
Used to designate that the plugin can handle iSCSI storage.
str FileSysStorage = 'FileSys'
Used to designate that the plugin handle File System storage.
str NetworkFileSystem = 'NetworkFS'
Used to designate that the plugin is for a network file system.
str LocalFileSystem = 'LocalFS'
Used to designate that the plugin is for a local file system.
dict __access_grp_fields__ = {'grp_entries': (<type 'list'>, True),...
Field list for the access group.
dict __vol_group_fields__ = {'vol_alloc_sz': (<type 'int'>, False),...
Field list for the volume group.
dict __qos_vals_fields__ = {'priority': (<type 'int'>, True), 'valu...
Field list for the qos_vals.
dict __SSRecord__ = {'access_grps': [{'grp_entries': [''], 'grp_mod...
Storage Server record.
dict __SSRecord_fields__ = {'access_grps': (<type 'list'>, True), '...
Field list for the Storage Server record.
dict __SERecord__ = {'access_grp_names': [''], 'array_path': '', 'e...
Storage Element record.
dict __SERecord_fields__ = {'access_grp_names': (<type 'list'>, Tru...
Field list for the Storage Element record.
str LUNType = 'LUN'
Used to designate that the SE record represent a LUN.
str GhostLUNType = 'GhostLUN'
Used to designate that the SE record represent a Ghost LUN.
str SnapType = 'Snapshot'
Used to designate that the SE record represent a Snapshot.
str SnapCloneType = 'SnapClone'
Used to designate that the SE record represent a clone from a snapshot.
list __SETypes__ = ['LUN', 'GhostLUN', 'Snapshot', 'SnapClone']
Known Storage Element types.
dict __FSRecord__ = {'access_grp_names': [''], 'access_path': '', '...
File System record.
dict __FSRecord_fields__ = {'access_grp_names': (<type 'list'>, Tru...
Field list for the File System record.
dict __BackingDeviceRecord__ = {'description': '', 'free_sz': 0, 'n...
Backing device record.
dict __BackingDeviceRecord_fields__ = {'description': (<type 'str'>...
Field list for the backing device records.
dict __MountRecord__ = {'extra_info': '', 'fs_uuid': '', 'mount_poi...
Mount point record.
dict __MountRecord_fields__ = {'extra_info': (<type 'str'>, False),...
Field list for the Mount point records.
dict __FileRecord__ = {'extra_info': '', 'file_path': '', 'file_sz'...
File record.
dict __FileRecord_fields__ = {'extra_info': (<type 'str'>, False), ...
Field list for the File System record.
str FileType = 'File'
Used to designate that the FR record represent a file.
str DirType = 'Directory'
Used to designate that the FR record represent a directory.
str SymLinkType = 'SymbolicLink'
Used to designate that the FR record represent a symbolic link.
str CharDevType = 'CharDevice'
Used to designate that the FR record represent a character device.
str BlkDevType = 'BlockDevice'
Used to designate that the FR record represent a block device.
str FifoType = 'FIFOFile'
Used to designate that the FR record represent a FIFO file.
str SockFileType = 'SocketFile'
Used to designate that the FR record represent a socket file.
list __FRTypes__ = ['File', 'Directory', 'SymbolicLink', 'CharDevic...
Known File record types.
str __osc_install_dir__ = '/opt/storage-connect'
The Oracle Storage Connect installation directory.
str __plugin_top_dir__ = '/opt/storage-connect/plugins'
Top directory under which all Storage Connect plugins will be installed.
list __plugin_types__ = ['isa', 'ifs']
Known Oracle Storage Connect plugin types.
str __plugin_temp_dir__ = '/var/tmp/storage-connect'
Directory where temporrary files woud be created under.
bool __generic_plugin__ = False
Flag if this is a generic Plugin - Vendor implemented plugins should NOT change this!
bool __cluster_required__ = False
Flag if this Plugin requires the cluster to be up - Vendor implemented plugins should NOT change this!
cache object cache = OSCCache.OSCDefaultCache()
Caching that can be used by the plugin.
Instance Variables [hide private]
dict __access_grp__ = {'grp_entries': [''], 'grp_modes': [''], 'grp...
Access group.
dict __vol_group__ = {'vol_alloc_sz': 0, 'vol_desc': '', 'vol_free_...
Volume group.
dict __qos_vals__ = {'priority': 0, 'value': ''}
Quality-of-Service.
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__new__(cls, *args, **kwargs)
Static Method

source code 

Override the method to enforce that no Storage Connect classes be instantiated.

Returns: a new object with type S, a subtype of T
Overrides: object.__new__

__get_key_value_pairs__(key_val_s, result_dict={})
Static Method

source code 

Create a dict from a string in the form of attr=value[,...].

Parameters:
  • key_val_s (str) - String containing key value pairs in key=val[,...] form.
  • result_dict (dict) - Optional dictionary to update with the parsed string.
Returns: dict
dict with all the parsed key value pairs in the string.

__set_key_value_pairs__(key_val_d)
Static Method

source code 

This method will create a string in the form of key=value[,...] from a dict.

Parameters:
  • key_val_d (dict) - dict containing all the values to inserted in the string.
Returns: str
String in with all keys in the dict in the format of key=value[,...]

copy(src, dst)
Static Method

source code 

This will do a block copy from the source to the destination

Parameters:
  • src (str) - Source for the block copy operation.
  • dst (str) - Destination for the block copy operation.

getPluginType(klass)
Class Method

source code 

Return the plugin type.

Returns: str
plugin_type for this specific plugin

getTemporaryFile(klass, mode='w+b', bufsize=-1, suffix='', prefix='tmpfil', directory=None)
Class Method

source code 

This method is identical to the standard tempfile.TemporaryFile() method. Please see the tempfile.TemporaryFile() documentation on how to use it.

getNamedTemporaryFile(klass, mode='w+b', bufsize=-1, suffix='', prefix='tmpfil', directory=None, delete=True)
Class Method

source code 

This method is identical to the standard tempfile.NamedTemporaryFile() method. Please see the tempfile.NamedTemporaryFile() documentation on how to use it.


Class Variable Details [hide private]

plugin_ability

Capabilities that this specific plugin support. Version of the API have the following fields:
    Name                                   Comment
--------------------------------------------------------------------
"snapshot":                   # Set to ONLINE/OFFLINE if the plugin
                              #   can create snapshots, NO if not.
"custom_snap_name":           # Set this to YES if a custom name can
                              #   be given to the snapshot.
"snap_is_sync":               # Set this to YES if creating the
                              #   snapshot is synchronously.
"clone":                      # Set to ONLINE/OFFLINE if the plugin
                              #   can create clones, NO if not.
"custom_clone_name":          # Set this to YES if a custom name can
                              #   be given to the new clone.
"clone_is_sync":              # Set this to YES if creating the
                              #   clone is synchronously.
"resize":                     # Set to ONLINE/OFFLINE if the plugin
                              #   can resize Storage Elements, NO
                              #   if not.
"resize_is_sync":             # Set this to YES if resizing the
                              #   Storage Element is synchronously.
"splitclone":                 # Set to ONLINE/OFFLINE if the plugin
                              #   can split clones, NO if not.
"splitclone_is_sync":         # Set this to YES if splitting the
                              #   clones is synchronously.
"splitclone_while_open":      # Set this to YES if the plugin allows
                              #   the clones to open when splitting.
"snapclone":                  # Set to ONLINE/OFFLINE if the plugin
                              #   can create a clone from a snapshot,
                              #   NO if not.
"snapclone_is_sync":          # Set this to YES if cloning from a
                              #   snapshot is synchronously.
"require_storage_name":       # Set this to YES if the plugin require
                              #   the user to supply a Storage Name
                              #   (normally used by storage
                              #    concentrators and appliances)
"backing_device_type":        # This is for File System plugins ONLY,
                              #   it defines what type of backing device
                              #   the file system use when creating a
                              #   file system. 
"access_control":             # Set this to YES if the plugin support
                              #   access control groups.
"max_access_entries":         # Set this to the maximum number any one
                              #   access group can contain.
Type:
dict
Value:
{'access_control': 255,
 'backing_device_type': 5,
 'clone': 255,
 'clone_is_sync': 255,
 'custom_clone_name': 255,
 'custom_snap_name': 255,
 'max_access_entries': 0,
 'require_storage_name': 255,
...

__access_grp_fields__

Field list for the access group. Version of the API have the following fields:
    Name               Type                    Comment
--------------------------------------------------------------------
"grp_name":         str         # Name of the access group.
"grp_entries":      list        # This is the access control entries
                                #   for the group. For example,
                                #   SAN would have a list of WWNs,
                                #   iSCSI, a list of initiator names
                                #   and for network file systems, a
                                #   list of host names.
"grp_modes":        list        # Optional list of modes associated
                                #   with the access group, for
                                #   example the export mode for a
                                #   network file system.
Type:
dict
Value:
{'grp_entries': (<type 'list'>, True),
 'grp_modes': (<type 'list'>, False),
 'grp_name': (<type 'str'>, True)}

__vol_group_fields__

Field list for the volume group. Version of the API have the following fields:
    Name               Type                    Comment
--------------------------------------------------------------------
"vol_name":         str         # Name of the volume group.
"vol_total_sz":     int         # Total size of the volume group.
"vol_used_sz":      int         # Currently used space.
"vol_free_sz":      int         # Currently available space.
"vol_alloc_sz":     int         # Currently allocated space.
"vol_desc":         str         # Volume group description.
Type:
dict
Value:
{'vol_alloc_sz': (<type 'int'>, False),
 'vol_desc': (<type 'str'>, False),
 'vol_free_sz': (<type 'int'>, True),
 'vol_name': (<type 'str'>, True),
 'vol_total_sz': (<type 'int'>, True),
 'vol_used_sz': (<type 'int'>, True)}

__qos_vals_fields__

Field list for the qos_vals. Version of the API have the following fields:
    Name               Type                    Comment
--------------------------------------------------------------------
"priority":         int         # Priority of the QoS value,
                                #   zero (0) being the highest
                                #   priority. It is not required for
                                #   the values to follow numerically
"value":            str         # Quality-of-Service name as known
                                #   by the Storage Server.
Type:
dict
Value:
{'priority': (<type 'int'>, True), 'value': (<type 'str'>, True)}

__SSRecord__

Storage Server record. All the known fields and if the key is mandatory are listed in SSRecord.
Type:
dict
Value:
{'access_grps': [{'grp_entries': [''],
                  'grp_modes': [''],
                  'grp_name': ''}],
 'access_host': '',
 'access_port': '',
 'admin_host': '',
 'admin_passwd': '',
 'admin_user': '',
...

__SSRecord_fields__

Field list for the Storage Server record. Version of the API have the following fields:
    Name               Type                    Comment
--------------------------------------------------------------------
"name":                str      # Name of the Storage Server as
                                #   shown in the Oracle VM Manager.
"uuid":                str      # UUID string of the Storage Server
                                #   Record.
"storage_server_id":   str      # Storage Server unique identifier.
                                #   This is for use solely by the 
                                #   plug-in to uniquely identify 
                                #   the Storage Server.
"storage_type":        str      # Storage type: SAN, iSCSI or
                                #   FileSys.
"access_host":         str      # Host/IP address used to access the
                                #   storage.
"access_port":         str      # Port number to access the storage.
"username":            str      # Storage server username.
"passwd":              str      # Storage server password.
"chap":                bool     # Does storage server require CHAP?
"admin_host":          str      # Host/IP address to admin the
                                #   storage.
"admin_user":          str      # Storage administrator user name.
"admin_passwd":        str      # Storage administrator password.
"netdevs":             list     # Network device(s) used to access
                                #   the storage.
"storage_name":        str      # Actual name of the Storage Server.
"status":              str      # Status of the Storage Server.
"total_sz":            int      # Total size in bytes.
"used_sz":             int      # Actual space already used.
"free_sz":             int      # Available space in bytes.
"alloc_sz":            int      # Allocated/reserved space in bytes.
"access_grps":         list     # List of access groups. See
                                #   __access_grp_fields__
"vol_groups":          list     # List of vol_groups. See
                                #   __vol_group_fields__
"storage_id":          str      # Storage identifier (iSCSI target
                                #   name).
"storage_desc":        str      # Storage description.
"extra_info":          str      # Extra info (open format).

NOTE: Depending on the storage types some fields would not be in the
      dict for instance SAN would not have the username, passwd etc.
      also if the start method does not return a updated record with
      the storage_id set it would not be passed in subsequent
      operations.
Type:
dict
Value:
{'access_grps': (<type 'list'>, True),
 'access_host': (<type 'str'>, False),
 'access_port': (<type 'str'>, False),
 'admin_host': (<type 'str'>, True),
 'admin_passwd': (<type 'str'>, True),
 'admin_user': (<type 'str'>, True),
 'alloc_sz': (<type 'int'>, False),
 'chap': (<type 'bool'>, False),
...

__SERecord__

Storage Element record. All the known fields and if the key is mandatory are listed in SERecord.
Type:
dict
Value:
{'access_grp_names': [''],
 'array_path': '',
 'extra_info': '',
 'id': '',
 'name': '',
 'page83_id': '',
 'path': [''],
 'product_id': '',
...

__SERecord_fields__

Field list for the Storage Element record. Version of the API have the following fields:
    Name               Type                    Comment
--------------------------------------------------------------------
"se_type":          str         # See __SETypes__.
"ss_uuid":          str         # UUID for the owning SSRecord.
"name":             str         # User friendly name.
"uuid":             str         # UUID string for the device.
"page83_id":        str         # SCSI Page 83 unique LUN ID.
"id":               str         # ID for the SE (LUN/Snap ID).
"vendor":           str         # Vendor as seen by a SCSI INQ.
"product_id":       str         # Product as seen by a SCSI INQ.
"path":             list        # System path(s) to the device.
"array_path":       str         # Path on the array for the device.
"size":             int         # Size in bytes.
"status":           str         # Returned status of the SE.
"vol_group_name":   str         # Volume group this SE belongs to.
"access_grp_names": list        # List of access group names.
"qos":              str         # Quality-of-Service for the SE.
"state":            SE_STATES   # Current state of the SE.
"extra_info":       str         # Extra info (open format).

NOTE: Depending on the storage types some fields would not be in the
      dict for instance SAN would not have the username, passwd etc.
Type:
dict
Value:
{'access_grp_names': (<type 'list'>, True),
 'array_path': (<type 'str'>, False),
 'extra_info': (<type 'str'>, False),
 'id': (<type 'str'>, False),
 'name': (<type 'str'>, True),
 'page83_id': (<type 'str'>, True),
 'path': (<type 'list'>, True),
 'product_id': (<type 'str'>, False),
...

__SETypes__

Known Storage Element types. A SERecord must be of these types. Version of the API define the following types:
    Type                              Comment
--------------------------------------------------------------------
LUNType         # Normal block device LUN.
GhostLUNType    # Ghost LUN.
SnapType        # Snapshot created for a LUN, File system or File.
SnapCloneType   # Clone created from a snapshot. This is a special
                #   case since it can become a full LUN in the
                #   future. We need to keep track as on most arrays
                #   the snap is locked until the snap clone is
                #   deleted or split from the snapshot.
Type:
list
Value:
['LUN', 'GhostLUN', 'Snapshot', 'SnapClone']

__FSRecord__

File System record. All the known fields and if the key is mandatory are listed in FSRecord.
Type:
dict
Value:
{'access_grp_names': [''],
 'access_path': '',
 'array_path': '',
 'backing_device': '',
 'extra_info': '',
 'mount_options': [''],
 'name': '',
 'qos': '',
...

__FSRecord_fields__

Field list for the File System record. Version of the API have the following fields:
    Name               Type                    Comment
--------------------------------------------------------------------
"access_path":      str         # Access path for the file system, 
                                #   this is only used for networked
                                #   file systems.
"ss_uuid":          str         # UUID of the SS Record owning this
                                #   file system.
"name":             str         # User friendly name of the file
                                #   system.
"mount_options":    list        # List of default mount options for
                                #   the file system.
"array_path":       str         # Path on storage server for the
                                #   file system.
"uuid":             str         # UUID of the the file system.
"size":             int         # Size, returned, supplied for
                                #   resizing.
"status":           str         # Status of the file system for
                                #   display.
"state":            FS_STATES   # State of the file system.
"access_grp_names": list        # List of access group names the
                                #   file system is (or will be)
                                #   exported to.
"qos":              str         # Quality-of-Service for the FS.
"backing_device":   str/list    # This is used to specify what type
                                #   of device the File System
                                #   requires.
"extra_info":       str         # Extra info (open format extra
                                #   info).

NOTE: Depending on the file system type some fields would not be in
      the dict.
Type:
dict
Value:
{'access_grp_names': (<type 'list'>, True),
 'access_path': (<type 'str'>, False),
 'array_path': (<type 'str'>, False),
 'backing_device': (<type 'str'>, False),
 'extra_info': (<type 'str'>, False),
 'mount_options': (<type 'list'>, False),
 'name': (<type 'str'>, True),
 'qos': (<type 'str'>, False),
...

__BackingDeviceRecord__

Backing device record. All the known fields and if the key is mandatory are listed in BackingDeviceRecord.
Type:
dict
Value:
{'description': '',
 'free_sz': 0,
 'name': '',
 'total_sz': 0,
 'value': ''}

__BackingDeviceRecord_fields__

Field list for the backing device records. Version of the API have the following fields:
    Name               Type                    Comment
--------------------------------------------------------------------
"name":             str         # Name of the backing device.
"total_sz":         int         # Total size of the backing device.
"free_sz":          int         # Available free size in the backing
                                #   device.
"value":            str         # Value that need to be passed back
                                #   to the plugin to use this backing
                                #   device.
"description":      str         # User friendly description for the
                                #   backing device that will be.
Type:
dict
Value:
{'description': (<type 'str'>, False),
 'free_sz': (<type 'int'>, True),
 'name': (<type 'str'>, True),
 'total_sz': (<type 'int'>, True),
 'value': (<type 'list'>, True)}

__MountRecord__

Mount point record. All the known fields and if the key is mandatory are listed in MountRecord.
Type:
dict
Value:
{'extra_info': '',
 'fs_uuid': '',
 'mount_point': '',
 'options': [''],
 'shared_path': '',
 'status': '',
 'uuid': ''}

__MountRecord_fields__

Field list for the Mount point records. Version of the API have the following fields:
    Name               Type                    Comment
--------------------------------------------------------------------
"uuid":             str         # UUID of this mount point.
"fs_uuid":          str         # UUID of the File System owning
                                #   this mount point.
"mount_point":      str         # Path file system should be or is
                                #   mounted on.
"options":          list        # List of mount options for this
                                #   specific mount point.
"status":           str         # Status of the mount point for
                                #   display.
"extra_info":       str         # Extra info (open format extra
                                #   info).
Type:
dict
Value:
{'extra_info': (<type 'str'>, False),
 'fs_uuid': (<type 'str'>, True),
 'mount_point': (<type 'str'>, True),
 'options': (<type 'list'>, False),
 'status': (<type 'str'>, True),
 'uuid': (<type 'str'>, True)}

__FileRecord__

File record. All the known fields and if the key is mandatory are listed in FileRecord.
Type:
dict
Value:
{'extra_info': '',
 'file_path': '',
 'file_sz': 0,
 'fr_type': '',
 'fs_uuid': '',
 'name_pattern': '',
 'ondisk_sz': 0,
 'snap_name': ''}

__FileRecord_fields__

Field list for the File System record. Version of the API have the following fields:
    Name               Type                    Comment
--------------------------------------------------------------------
"fr_type":          str         # See __FRTypes__.
"file_path":        str         # Absolute path to the file.
"fs_uuid":          str         # UUID of the file system containing
                                #   the file.
"name_pattern":     str         # This would optionally contain the
                                #   pattern the file or directory
                                #   name should match when listing.
"snap_name":        str         # Name of the snap.
"extra_info":       str         # Extra info (open format).

NOTE: Depending on the file system type some fields would not be in
      the dict.
Type:
dict
Value:
{'extra_info': (<type 'str'>, False),
 'file_path': (<type 'str'>, True),
 'file_sz': (<type 'int'>, True),
 'fr_type': (<type 'str'>, True),
 'fs_uuid': (<type 'str'>, True),
 'name_pattern': (<type 'str'>, False),
 'ondisk_sz': (<type 'int'>, True),
 'snap_name': (<type 'str'>, False)}

__FRTypes__

Known File record types. A FileRecord must be of these types. Version of the API define the following types:
    Type                              Comment
--------------------------------------------------------------------
FileType        # Normal file.
DirType         # Directory.
SymLinkType     # Symbolic link.
CharDevType     # Character device file.
BlkDevType      # Block device file.
FifoType        # FIFO pipe file.
SocketType      # Socket file.
SnapType        # Snapshot / RefLink created of the file.
SnapCloneType   # Clone created from a snapshot. This is a special
                #   case since in some file systems the Snapshot
                #   must stay around as long as there is a clone
                #   based on it. It is only used when the file
                #   system have this restriction.
Type:
list
Value:
['File',
 'Directory',
 'SymbolicLink',
 'CharDevice',
 'BlockDevice',
 'FIFOFile',
 'SocketFile',
 'Snapshot',
...

Instance Variable Details [hide private]

__access_grp__

Access group. All the known fields and if the key is mandatory are listed in Access Group fields.
Type:
dict
Value:
{'grp_entries': [''], 'grp_modes': [''], 'grp_name': ''}

__vol_group__

Volume group. All the known fields and if the key is mandatory are listed in Volume group fields.
Type:
dict
Value:
{'vol_alloc_sz': 0,
 'vol_desc': '',
 'vol_free_sz': 0,
 'vol_name': '',
 'vol_total_sz': 0,
 'vol_used_sz': 0}

__qos_vals__

Quality-of-Service. All the known fields and if the key is mandatory are listed in QoS fields.
Type:
dict
Value:
{'priority': 0, 'value': ''}