sushy.resources.system.storage package

Submodules

sushy.resources.system.storage.constants module

class sushy.resources.system.storage.constants.RAIDType(value)

Bases: enum.Enum

An enumeration.

NONE = 'None'

A placement policy with no redundancy at the device level.

RAID0 = 'RAID0'

A placement policy where consecutive logical blocks of data are uniformly distributed across a set of independent storage devices without offering any form of redundancy.

RAID00 = 'RAID00'

A placement policy that creates a RAID 0 stripe set over two or more RAID 0 sets.

RAID01 = 'RAID01'

A data placement policy that creates a mirrored device (RAID 1) over a set of striped devices (RAID 0).

RAID1 = 'RAID1'

A placement policy where each logical block of data is stored on more than one independent storage device.

RAID10 = 'RAID10'

A placement policy that creates a striped device (RAID 0) over a set of mirrored devices (RAID 1).

RAID10E = 'RAID10E'

A placement policy that uses a RAID 0 stripe set over two or more RAID 10 sets.

RAID10_TRIPLE = 'RAID10Triple'

A placement policy that uses a striped device (RAID 0) over a set of triple mirrored devices (RAID 1Triple).

RAID1E = 'RAID1E'

A placement policy that uses a form of mirroring implemented over a set of independent storage devices where logical blocks are duplicated on a pair of independent storage devices so that data is uniformly distributed across the storage devices.

RAID1_TRIPLE = 'RAID1Triple'

A placement policy where each logical block of data is mirrored three times across a set of three independent storage devices.

RAID3 = 'RAID3'

A placement policy using parity-based protection where logical bytes of data are uniformly distributed across a set of independent storage devices and where the parity is stored on a dedicated independent storage device.

RAID4 = 'RAID4'

A placement policy using parity-based protection where logical blocks of data are uniformly distributed across a set of independent storage devices and where the parity is stored on a dedicated independent storage device.

RAID5 = 'RAID5'

A placement policy using parity-based protection for storing stripes of ‘n’ logical blocks of data and one logical block of parity across a set of ‘n+1’ independent storage devices where the parity and data blocks are interleaved across the storage devices.

RAID50 = 'RAID50'

A placement policy that uses a RAID 0 stripe set over two or more RAID 5 sets of independent storage devices.

RAID6 = 'RAID6'

A placement policy using parity-based protection for storing stripes of ‘n’ logical blocks of data and two logical blocks of independent parity across a set of ‘n+2’ independent storage devices where the parity and data blocks are interleaved across the storage devices.

RAID60 = 'RAID60'

A placement policy that uses a RAID 0 stripe set over two or more RAID 6 sets of independent storage devices.

RAID6TP = 'RAID6TP'

A placement policy that uses parity-based protection for storing stripes of ‘n’ logical blocks of data and three logical blocks of independent parity across a set of ‘n+3’ independent storage devices where the parity and data blocks are interleaved across the storage devices.

class sushy.resources.system.storage.constants.VolumeInitializeType(value)

Bases: enum.Enum

An enumeration.

FAST = 'Fast'

The volume is prepared for use quickly, typically by erasing just the beginning and end of the space so that partitioning can be performed.

SLOW = 'Slow'

The volume is prepared for use slowly, typically by completely erasing the volume.

class sushy.resources.system.storage.constants.VolumeType(value)

Bases: enum.Enum

An enumeration.

MIRRORED = 'Mirrored'

The volume is a mirrored device.

NON_REDUNDANT = 'NonRedundant'

The volume is a non-redundant storage device.

RAW_DEVICE = 'RawDevice'

The volume is a raw physical device without any RAID or other virtualization applied.

SPANNED_MIRRORS = 'SpannedMirrors'

The volume is a spanned set of mirrored devices.

SPANNED_STRIPES_WITH_PARITY = 'SpannedStripesWithParity'

The volume is a spanned set of devices which uses parity to retain redundant information.

STRIPED_WITH_PARITY = 'StripedWithParity'

The volume is a device which uses parity to retain redundant information.

sushy.resources.system.storage.drive module

class sushy.resources.system.storage.drive.Drive(connector, path='', redfish_version=None, registries=None, reader=None, json_doc=None, root=None)

Bases: sushy.resources.base.ResourceBase

This class represents a disk drive or other physical storage medium.

block_size_bytes = <sushy.resources.base.Field object>

The size of the smallest addressable unit of this drive in bytes

capacity_bytes = <sushy.resources.base.Field object>

The size in bytes of this Drive

identifiers = <sushy.resources.common.IdentifiersListField object>

The Durable names for the drive

identity = <sushy.resources.base.Field object>

The Drive identity string

indicator_led = <sushy.resources.base.MappedField object>

Whether the indicator LED is lit or off

manufacturer = <sushy.resources.base.Field object>

This is the manufacturer of this drive

media_type = <sushy.resources.base.Field object>

The type of media contained in this drive

model = <sushy.resources.base.Field object>

This is the model number for the drive

name = <sushy.resources.base.Field object>

The name of the resource

part_number = <sushy.resources.base.Field object>

The part number for this drive

protocol = <sushy.resources.base.MappedField object>

Protocol this drive is using to communicate to the storage controller

revision = <sushy.resources.base.Field object>

The firmware/hardware version of the drive.

serial_number = <sushy.resources.base.Field object>

The serial number for this drive

set_indicator_led(state)

Set IndicatorLED to the given state.

Parameters

state – Desired LED state, an IndicatorLED value.

Raises

InvalidParameterValueError, if any information passed is invalid.

status = <sushy.resources.common.StatusField object>

This type describes the status and health of the drive

property volumes

A list of volumes that this drive is part of.

Volumes that this drive either wholly or only partially contains.

Raises

MissingAttributeError if @odata.id’ field is missing.

Returns

A list of Volume instances

sushy.resources.system.storage.storage module

class sushy.resources.system.storage.storage.Storage(connector, path='', redfish_version=None, registries=None, reader=None, json_doc=None, root=None)

Bases: sushy.resources.base.ResourceBase

This class represents the storage subsystem resources.

A storage subsystem represents a set of storage controllers (physical or virtual) and the resources such as drives and volumes that can be accessed from that subsystem.

property drives

Return a list of Drive objects present in the storage resource.

It is set once when the first time it is queried. On subsequent invocations, it returns a cached list of Drives objects until it is marked stale.

Returns

A list of Drive objects

Raises

ResourceNotFoundError

drives_identities = <sushy.resources.base.Field object>

A tuple with the drive identities

property drives_max_size_bytes

Max size available in bytes among all Drives of this collection.

property drives_sizes_bytes

Sizes of all Drives in bytes in Storage resource.

Returns the list of cached values until it (or its parent resource) is refreshed.

get_drive(drive_identity)

Given the drive identity return a Drive object

Parameters

drive_identity – The identity of the Drive

Returns

The Drive object

Raises

ResourceNotFoundError

identity = <sushy.resources.base.Field object>

The Storage identity string

name = <sushy.resources.base.Field object>

The name of the resource

status = <sushy.resources.common.StatusField object>

Describes the status and health of the resource and its children.

storage_controllers = <sushy.resources.system.storage.storage.StorageControllersListField object>

The storage devices associated with this resource.

property volumes

Property to reference VolumeCollection instance

It is set once when the first time it is queried. On refresh, this property is marked as stale (greedy-refresh not done at that point). Here only the actual refresh of the sub-resource happens, if resource is stale.

class sushy.resources.system.storage.storage.StorageCollection(connector, path, redfish_version=None, registries=None, root=None)

Bases: sushy.resources.base.ResourceCollectionBase

This class represents the collection of Storage resources

property drives_sizes_bytes

Sizes of each Drive in bytes in Storage collection resource.

Returns the list of cached values until it (or its parent resource) is refreshed.

property max_drive_size_bytes

Max size available (in bytes) among all Drive resources.

Returns the cached value until it (or its parent resource) is refreshed.

property max_volume_size_bytes

Max size available (in bytes) among all Volume resources.

Returns the cached value until it (or its parent resource) is refreshed.

property volumes_sizes_bytes

Sizes of each Volume in bytes in Storage collection resource.

Returns the list of cached values until it (or its parent resource) is refreshed.

class sushy.resources.system.storage.storage.StorageControllersListField(*args, **kwargs)

Bases: sushy.resources.base.ListField

The set of storage controllers represented by this resource.

controller_protocols = <sushy.resources.base.MappedListField object>

The protocols by which this storage controller can be communicated to

device_protocols = <sushy.resources.base.MappedListField object>

The protocols which the controller can use tocommunicate with devices

identifiers = <sushy.resources.common.IdentifiersListField object>

The Durable names for the storage controller.

member_id = <sushy.resources.base.Field object>

Uniquely identifies the member within the collection.

name = <sushy.resources.base.Field object>

The name of the storage controller

raid_types = <sushy.resources.base.MappedListField object>

The set of RAID types supported by the storage controller.

speed_gbps = <sushy.resources.base.Field object>

The maximum speed of the storage controller’s device interface.

status = <sushy.resources.common.StatusField object>

Describes the status and health of the resource and its children.

sushy.resources.system.storage.volume module

class sushy.resources.system.storage.volume.ActionsField(*args, **kwargs)

Bases: sushy.resources.base.CompositeField

initialize = <sushy.resources.common.InitializeActionField object>
class sushy.resources.system.storage.volume.Volume(connector, path='', redfish_version=None, registries=None, reader=None, json_doc=None, root=None)

Bases: sushy.resources.base.ResourceBase

This class adds the Storage Volume resource

block_size_bytes = <sushy.resources.base.Field object>

The size of the smallest addressable unit of this volume in bytes.

capacity_bytes = <sushy.resources.base.Field object>

The size in bytes of this Volume.

delete(payload=None, apply_time=None, timeout=500)

Delete the volume.

Parameters
  • payload – May contain @Redfish.OperationApplyTime property

  • apply_time – When to update the attributes. Optional. An sushy.ApplyTime value.

  • timeout – Max time in seconds to wait for blocking async call.

Raises

ConnectionError

Raises

HTTPError

Returns

TaskMonitor if async task or None if successful deletion

encrypted = <sushy.resources.base.Field object>

Is this Volume encrypted.

get_allowed_initialize_volume_values()

Get the allowed values for initializing the volume.

Returns

A set with the allowed values.

identifiers = <sushy.resources.common.IdentifiersListField object>

The Durable names for the volume.

identity = <sushy.resources.base.Field object>

The Volume identity string

initialize(value=VolumeInitializeType.FAST, apply_time=None, timeout=500)

Initialize the volume.

Parameters
  • value – The InitializeType value.

  • apply_time – When to update the attributes. Optional. An sushy.ApplyTime value.

  • timeout – Max time in seconds to wait for blocking async call.

Raises

InvalidParameterValueError, if the target value is not allowed.

Raises

ConnectionError

Raises

HTTPError

Returns

TaskMonitor if async task or None if successful init

name = <sushy.resources.base.Field object>

The name of the resource

operation_apply_time_support = <sushy.resources.common.OperationApplyTimeSupportField object>

Indicates if a client is allowed to request for a specific apply time of a create, delete, or action operation of a given resource

raid_type = <sushy.resources.base.MappedField object>

The RAID type of this volume.

volume_type = <sushy.resources.base.MappedField object>

The type of this volume.

class sushy.resources.system.storage.volume.VolumeCollection(connector, path, redfish_version=None, registries=None, root=None)

Bases: sushy.resources.base.ResourceCollectionBase

This class represents the Storage Volume collection

create(payload, apply_time=None, timeout=500)

Create a volume.

Parameters
  • payload – The payload representing the new volume to create.

  • apply_time – When to update the attributes. Optional. An sushy.ApplyTime value.

  • timeout – Max time in seconds to wait for blocking async call.

Raises

ConnectionError

Raises

HTTPError

Returns

Newly created Volume resource or TaskMonitor if async task

property max_size_bytes

Max size available (in bytes) among all Volume resources.

Returns the cached value until it (or its parent resource) is refreshed.

property max_volume_size_bytes

Max size available (in bytes) among all Volume resources.

Returns the cached value until it (or its parent resource) is refreshed.

operation_apply_time_support = <sushy.resources.common.OperationApplyTimeSupportField object>

Indicates if a client is allowed to request for a specific apply time of a create, delete, or action operation of a given resource

property volumes_sizes_bytes

Sizes of all Volumes in bytes in VolumeCollection resource.

Returns the list of cached values until it (or its parent resource) is refreshed.

Module contents