sushy.resources package¶
Subpackages¶
- sushy.resources.chassis package
 - sushy.resources.compositionservice package
- Submodules
 - sushy.resources.compositionservice.compositionservice module
 - sushy.resources.compositionservice.constants module
 - sushy.resources.compositionservice.mappings module
 - sushy.resources.compositionservice.resourceblock module
 - sushy.resources.compositionservice.resourcezone module
 - Module contents
 
 - sushy.resources.fabric package
 - sushy.resources.manager package
 - sushy.resources.oem package
 - sushy.resources.registry package
 - sushy.resources.sessionservice package
 - sushy.resources.system package
- Subpackages
 - Submodules
 - sushy.resources.system.bios module
 - sushy.resources.system.constants module
 - sushy.resources.system.ethernet_interface module
 - sushy.resources.system.mappings module
 - sushy.resources.system.processor module
 - sushy.resources.system.simple_storage module
 - sushy.resources.system.system module
 - Module contents
 
 - sushy.resources.taskservice package
 - sushy.resources.updateservice package
 
Submodules¶
sushy.resources.base module¶
- 
class 
sushy.resources.base.AbstractDataReader¶ Bases:
object- 
abstract 
get_data()¶ Based on data source get data and parse to JSON
- 
set_connection(connector, path)¶ Sets mandatory connection parameters
- Parameters
 connector – A Connector instance
path – path of the resource
- 
abstract 
 
- 
class 
sushy.resources.base.CompositeField(*args, **kwargs)¶ Bases:
collections.abc.Mapping,sushy.resources.base.FieldBase class for fields consisting of several sub-fields.
- 
class 
sushy.resources.base.DictionaryField(*args, **kwargs)¶ Bases:
sushy.resources.base.FieldBase class for fields consisting of dictionary of several sub-fields.
- 
class 
sushy.resources.base.Field(path, required=False, default=None, adapter=<function Field.<lambda>>)¶ Bases:
objectDefinition for fields fetched from JSON.
- 
class 
sushy.resources.base.FieldData(status_code, headers, json_doc)¶ Bases:
objectContains data to be used when constructing Fields
- 
property 
headers¶ The headers
- 
property 
json_doc¶ The parsed JSON body
- 
property 
status_code¶ The status code
- 
property 
 
- 
class 
sushy.resources.base.JsonArchiveReader(archive_file)¶ Bases:
sushy.resources.base.AbstractDataReaderGets the data from JSON file in archive
- 
get_data()¶ Gets JSON file from archive. Currently supporting ZIP only
- 
 
- 
class 
sushy.resources.base.JsonDataReader¶ Bases:
sushy.resources.base.AbstractDataReaderGets the data from HTTP response given by path
- 
get_data()¶ Gets JSON file from URI directly
- 
 
- 
class 
sushy.resources.base.JsonPackagedFileReader(resource_package_name)¶ Bases:
sushy.resources.base.AbstractDataReaderGets the data from packaged file given by path
- 
get_data()¶ Gets JSON file from packaged file denoted by path
- 
 
- 
class 
sushy.resources.base.JsonPublicFileReader¶ Bases:
sushy.resources.base.AbstractDataReaderLoads the data from the Internet
- 
get_data()¶ Get JSON file from full URI
- 
 
- 
class 
sushy.resources.base.ListField(*args, **kwargs)¶ Bases:
sushy.resources.base.FieldBase class for fields consisting of a list of several sub-fields.
- 
class 
sushy.resources.base.MappedField(field, mapping, required=False, default=None)¶ Bases:
sushy.resources.base.FieldField taking real value from a mapping.
- 
class 
sushy.resources.base.MappedListField(field, mapping, required=False, default=None)¶ Bases:
sushy.resources.base.FieldField taking a list of values with a mapping for the values
Given JSON {‘field’:[‘xxx’, ‘yyy’]}, a sushy resource definition and mapping {‘xxx’:’a’, ‘yyy’:’b’}, the sushy object to come out will be like resource.field = [‘a’, ‘b’]
- 
class 
sushy.resources.base.MessageListField(*args, **kwargs)¶ Bases:
sushy.resources.base.ListFieldList of messages with details of settings update status
- 
message= <sushy.resources.base.Field object>¶ Human readable message, if provided
- 
message_args= <sushy.resources.base.Field object>¶ List of message substitution arguments for the message referenced by message_id from the message registry
- 
message_id= <sushy.resources.base.Field object>¶ The key for this message which can be used to look up the message in a message registry
- 
resolution= <sushy.resources.base.Field object>¶ Used to provide suggestions on how to resolve the situation that caused the error
- 
severity= <sushy.resources.base.MappedField object>¶ Severity of the error
- 
 
- 
class 
sushy.resources.base.ResourceBase(connector, path='', redfish_version=None, registries=None, reader=None, json_doc=None)¶ Bases:
object- 
clone_resource(new_resource, path='')¶ Instantiate given resource using existing BMC connection context
- 
get_oem_extension(vendor)¶ Get the OEM extension instance for this resource by OEM vendor
- Parameters
 vendor – the OEM vendor string which is the vendor-specific extensibility identifier. Examples are ‘Contoso’, ‘Hpe’. Possible value can be got from
oem_vendorsattribute.- Returns
 the Redfish resource OEM extension instance.
- Raises
 OEMExtensionNotFoundError
- 
invalidate(force_refresh=False)¶ Mark the resource as stale, prompting refresh() before getting used.
If
force_refreshis set to True, then it invokesrefresh()on the resource.- Parameters
 force_refresh – will invoke refresh on the resource, if set to True.
- Raises
 ResourceNotFoundError
- Raises
 ConnectionError
- Raises
 HTTPError
- 
property 
json¶ 
- 
oem_vendors= <sushy.resources.base.Field object>¶ The list of OEM extension names for this resource.
- 
property 
path¶ 
- 
redfish_version= None¶ The Redfish version
- 
refresh(force=True, json_doc=None)¶ Refresh the resource
Freshly retrieves/fetches the resource attributes and invokes
_parse_attributes()method on successful retrieval. It is recommended not to override this method in concrete ResourceBase classes. Resource classes can place their refresh specific operations in_do_refresh()method, if needed. This method represents the template method in the paradigm of Template design pattern.- Parameters
 force – if set to False, will only refresh if the resource is marked as stale, otherwise neither it nor its subresources will be refreshed.
json_doc – parsed JSON document in form of Python types.
- Raises
 ResourceNotFoundError
- Raises
 ConnectionError
- Raises
 HTTPError
- 
property 
registries¶ 
- 
property 
resource_name¶ 
- 
 
- 
class 
sushy.resources.base.ResourceCollectionBase(connector, path, redfish_version=None, registries=None)¶ Bases:
sushy.resources.base.ResourceBase- 
get_member(identity)¶ Given the identity return a
_resource_typeobject- Parameters
 identity – The identity of the
_resource_type- Returns
 The
_resource_typeobject- Raises
 ResourceNotFoundError
- 
get_members()¶ Return a list of
_resource_typeobjects present in collection- Returns
 A list of
_resource_typeobjects
- 
members_identities= <sushy.resources.base.Field object>¶ A tuple with the members identities
- 
name= <sushy.resources.base.Field object>¶ The name of the collection
- 
 
- 
sushy.resources.base.get_reader(connector, path, reader=None)¶ Create and configure the reader.
- Parameters
 connector – A Connector instance
path – sub-URI path to the resource.
reader – Reader to use to fetch JSON data.
- Returns
 the reader
sushy.resources.common module¶
- 
class 
sushy.resources.common.ActionField(*args, **kwargs)¶ Bases:
sushy.resources.base.CompositeField- 
operation_apply_time_support= <sushy.resources.common.OperationApplyTimeSupportField object>¶ 
- 
target_uri= <sushy.resources.base.Field object>¶ 
- 
 
- 
class 
sushy.resources.common.IdRefField(*args, **kwargs)¶ Bases:
sushy.resources.base.CompositeFieldReference to the resource odata identity field.
- 
resource_uri= <sushy.resources.base.Field object>¶ The unique identifier for a resource
- 
 
- 
class 
sushy.resources.common.IdentifiersListField(*args, **kwargs)¶ Bases:
sushy.resources.base.ListFieldThis type describes any additional identifiers for a resource.
- 
durable_name= <sushy.resources.base.Field object>¶ This indicates the world wide, persistent name of the resource.
- 
durable_name_format= <sushy.resources.base.MappedField object>¶ This represents the format of the DurableName property.
- 
 
- 
class 
sushy.resources.common.InitializeActionField(*args, **kwargs)¶ Bases:
sushy.resources.common.ActionField- 
allowed_values= <sushy.resources.base.Field object>¶ 
- 
 
- 
class 
sushy.resources.common.OperationApplyTimeSupportField¶ Bases:
sushy.resources.base.CompositeField- 
maintenance_window_duration_in_seconds= <sushy.resources.base.Field object>¶ The expiry time of maintenance window in seconds
- 
maintenance_window_start_time= <sushy.resources.base.Field object>¶ The start time of a maintenance window
- 
supported_values= <sushy.resources.base.Field object>¶ The client is allowed request when performing a create, delete, or action operation
- 
 
- 
class 
sushy.resources.common.ResetActionField(*args, **kwargs)¶ Bases:
sushy.resources.common.ActionField- 
allowed_values= <sushy.resources.base.Field object>¶ 
- 
 
- 
class 
sushy.resources.common.StatusField(*args, **kwargs)¶ Bases:
sushy.resources.base.CompositeFieldThis Field describes the status of a resource and its children.
This field shall contain any state or health properties of a resource.
- 
health= <sushy.resources.base.MappedField object>¶ Represents health of resource w/o considering its dependent resources
- 
health_rollup= <sushy.resources.base.MappedField object>¶ Represents health state of resource and its dependent resources
- 
state= <sushy.resources.base.MappedField object>¶ Indicates the known state of the resource, such as if it is enabled.
- 
 
sushy.resources.constants module¶
- 
sushy.resources.constants.INDICATOR_LED_BLINKING= 'indicator led blinking'¶ The Indicator LED is blinking
- 
sushy.resources.constants.INDICATOR_LED_LIT= 'indicator led lit'¶ The Indicator LED is lit
- 
sushy.resources.constants.INDICATOR_LED_OFF= 'indicator led off'¶ The Indicator LED is off
- 
sushy.resources.constants.INDICATOR_LED_UNKNOWN= 'indicator led unknown'¶ The state of the Indicator LED cannot be determine
- 
sushy.resources.constants.POWER_STATE_OFF= 'off'¶ The resource is powered off, although some components may continue to have AUX power such as management controller
- 
sushy.resources.constants.POWER_STATE_ON= 'on'¶ The resource is powered on
- 
sushy.resources.constants.POWER_STATE_POWERING_OFF= 'powering off'¶ A temporary state between On and Off. The power off action can take time while the OS is in the shutdown process
- 
sushy.resources.constants.POWER_STATE_POWERING_ON= 'powering on'¶ A temporary state between Off and On. This temporary state can be very short
- 
sushy.resources.constants.RESET_TYPE_FORCE_OFF= 'force off'¶ Turn the unit off immediately (non-graceful shutdown)
- 
sushy.resources.constants.RESET_TYPE_FORCE_ON= 'force on'¶ Turn the unit on immediately
- 
sushy.resources.constants.RESET_TYPE_FORCE_RESTART= 'force restart'¶ Perform an immediate (non-graceful) shutdown, followed by a restart
- 
sushy.resources.constants.RESET_TYPE_GRACEFUL_RESTART= 'graceful restart'¶ Perform a graceful shutdown followed by a restart of the system
- 
sushy.resources.constants.RESET_TYPE_GRACEFUL_SHUTDOWN= 'graceful shutdown'¶ Perform a graceful shutdown and power off
- 
sushy.resources.constants.RESET_TYPE_NMI= 'nmi'¶ Generate a Diagnostic Interrupt (usually an NMI on x86 systems) to cease normal operations, perform diagnostic actions and typically halt the system
- 
sushy.resources.constants.RESET_TYPE_ON= 'on'¶ Turn the unit on
- 
sushy.resources.constants.RESET_TYPE_POWER_CYCLE= 'power cycle'¶ Perform a power cycle of the unit
- 
sushy.resources.constants.RESET_TYPE_PUSH_POWER_BUTTON= 'push power button'¶ Simulate the pressing of the physical power button on this unit
sushy.resources.mappings module¶
sushy.resources.settings module¶
- 
class 
sushy.resources.settings.MaintenanceWindowField(*args, **kwargs)¶ Bases:
sushy.resources.base.CompositeField- 
maintenance_window_duration_in_seconds= <sushy.resources.base.Field object>¶ The expiry time of maintenance window in seconds
- 
maintenance_window_start_time= <sushy.resources.base.Field object>¶ The start time of a maintenance window
- 
 
- 
sushy.resources.settings.NO_UPDATES= 4¶ No updates made
- 
class 
sushy.resources.settings.SettingsApplyTimeField¶ Bases:
sushy.resources.base.CompositeField- 
apply_time= <sushy.resources.base.Field object>¶ When the future configuration should be applied
- 
apply_time_allowable_values= <sushy.resources.base.Field object>¶ The list of allowable ApplyTime values
- 
maintenance_window_duration_in_seconds= <sushy.resources.base.Field object>¶ The expiry time of maintenance window in seconds
- 
maintenance_window_start_time= <sushy.resources.base.Field object>¶ The start time of a maintenance window
- 
 
- 
class 
sushy.resources.settings.SettingsField¶ Bases:
sushy.resources.base.CompositeFieldThe settings of a resource
Represents the future state and configuration of the resource. The field is added to resources that support future state and configuration.
This field includes several properties to help clients monitor when the resource is consumed by the service and determine the results of applying the values, which may or may not have been successful.
- 
commit(connector, value)¶ Commits new settings values
The new values will be applied when the system or a service restarts.
- Parameters
 connector – A Connector instance
value – Value representing JSON whose structure is specific to each resource and the caller must format it correctly
- 
get_status(registries)¶ Determines the status of last update based
Uses message id-s and severity to determine the status.
- Parameters
 registries – registries to use to parse message
- Returns
 SettingsUpdateobject containing status and any messages
- 
property 
maintenance_window¶ MaintenanceWindow field
Indicates if a given resource has a maintenance window assignment for applying settings or operations
- 
messages= <sushy.resources.base.MessageListField object>¶ Represents the results of the last time the values of the Settings resource were applied to the server
- 
property 
operation_apply_time_support¶ OperationApplyTimeSupport field
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 
resource_uri¶ 
- 
time= <sushy.resources.base.Field object>¶ Indicates the time the settings were applied to the server
- 
 
- 
class 
sushy.resources.settings.SettingsUpdate(status, messages)¶ Bases:
objectContains Settings update status and details of the update
- 
property 
messages¶ List of
MessageListFieldwith messages from the update
- 
property 
status¶ The status of the update
- 
property 
 
- 
sushy.resources.settings.UPDATE_FAILURE= 2¶ Update encountered errors
- 
sushy.resources.settings.UPDATE_PENDING= 3¶ Update waiting for being applied
- 
sushy.resources.settings.UPDATE_SUCCESS= 1¶ Update was successful
- 
sushy.resources.settings.UPDATE_UNKNOWN= 0¶ Update status unknown
sushy.resources.task_monitor module¶
- 
class 
sushy.resources.task_monitor.TaskMonitor(connector, path='', redfish_version=None)¶ Bases:
sushy.resources.base.ResourceBase- 
property 
in_progress¶ Checks the status of the async task
- Returns
 True if the async task is still in progress, False otherwise
- 
property 
location_header¶ The Location header returned from the GET on the Task Monitor
- Returns
 The Location header (an absolute URL)
- 
property 
response¶ The response from the last TaskMonitor in_progress check
- Returns
 The requests response object or None
- 
property 
retry_after¶ Time the client should wait before querying the task status
- Returns
 The Retry-After time in datetime format
- 
set_retry_after(value)¶ Set the time the client should wait before querying the task status
- Parameters
 value – The value of the Retry-After header, which can be the number of seconds to wait or an HTTP-date string as defined by RFC 7231
- Returns
 The TaskMonitor object
- 
property 
sleep_for¶ Seconds the client should wait before querying the operation status
- Returns
 The number of seconds to wait
- 
property