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.Field
Base class for fields consisting of several sub-fields.
-
class
sushy.resources.base.
DictionaryField
(*args, **kwargs)¶ Bases:
sushy.resources.base.Field
Base 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:
object
Definition for fields fetched from JSON.
-
class
sushy.resources.base.
FieldData
(status_code, headers, json_doc)¶ Bases:
object
Contains 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.AbstractDataReader
Gets 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.AbstractDataReader
Gets 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.AbstractDataReader
Gets 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.AbstractDataReader
Loads the data from the Internet
-
get_data
()¶ Get JSON file from full URI
-
-
class
sushy.resources.base.
ListField
(*args, **kwargs)¶ Bases:
sushy.resources.base.Field
Base 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.Field
Field taking real value from a mapping.
-
class
sushy.resources.base.
MappedListField
(field, mapping, required=False, default=None)¶ Bases:
sushy.resources.base.Field
Field 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.ListField
List 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_vendors
attribute.- 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_refresh
is 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_type
object- Parameters
identity – The identity of the
_resource_type
- Returns
The
_resource_type
object- Raises
ResourceNotFoundError
-
get_members
()¶ Return a list of
_resource_type
objects present in collection- Returns
A list of
_resource_type
objects
-
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.CompositeField
Reference 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.ListField
This 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.CompositeField
This 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.CompositeField
The 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
SettingsUpdate
object 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:
object
Contains Settings update status and details of the update
-
property
messages
¶ List of
MessageListField
with 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