Sushy is a small Python library to communicate with Redfish based systems
Go to file
Lucas Alvares Gomes 392a4a6272 Sushy to adhere to the resource identifier portion of the spec
This patch is intended to make the handle of the resources
identification more flexible in the library. Prior to this patch the
library had some assumptions about the path of a given resource and
tried to build such paths within it. Turns out that it's not that
simple, the Redfish specification does allow things like resources from
a different authority to be registered in a different controller [0].
I quote:

"Resources within the same authority as the request URI shall be
represented according to the rules of path-absolute defined by that
specification. That is, they shall always start with a single forward
slash ("/"). Resources within a different authority as the request URI
shall start with a double-slash ("//") followed by the authority and
path to the resource."

That means that, members of a collection could
be either: "/redfish/v1/Systems/12345" or
"//another-service.com/redfish/v1/Systems/12345"

This breaks many of the assumptions we had before of how to handle these
resources from the controller.

So, this patch is basically making sushy more "dumb" about the location
of the resources by not trying to build the URI for it but instead just
relying on the URI returned from the members of a collection or other
attributes of a specific resource. One example here was the "target"
attribute of the #ComputerSystem.Reset reset action, prior to this patch
we needed to strip portions of the URI (the /redfish/v1) in order to fit
the model that we use to construct the URLs now, that's not needed
anymore.

Note that, this patch is non-backward compatible and changes the usage
of the library but, since we haven't had any release yet (so it's not
even alpha or beta, but completely under-development) it seems to be the
right time for such a change.

[0] http://redfish.dmtf.org/schemas/DSP0266_1.1.html#resource-identifier-property

Change-Id: Ia4211ebb3b99f6cc4bd695b5dbea2018d301de33
2017-03-24 14:28:16 +00:00
doc/source Sushy to adhere to the resource identifier portion of the spec 2017-03-24 14:28:16 +00:00
releasenotes Initial commit 2017-02-13 22:04:23 +00:00
sushy Sushy to adhere to the resource identifier portion of the spec 2017-03-24 14:28:16 +00:00
tools Redfish-simulator: Do not cache the connection 2017-03-14 10:56:46 +00:00
.coveragerc Refining test coverage 2017-02-28 17:09:53 -05:00
.gitignore Initial commit 2017-02-13 22:04:23 +00:00
.gitreview Initial commit 2017-02-13 22:04:23 +00:00
.mailmap Initial commit 2017-02-13 22:04:23 +00:00
.testr.conf Initial commit 2017-02-13 22:04:23 +00:00
CONTRIBUTING.rst Initial commit 2017-02-13 22:04:23 +00:00
HACKING.rst Initial commit 2017-02-13 22:04:23 +00:00
LICENSE Initial commit 2017-02-13 22:04:23 +00:00
MANIFEST.in Initial commit 2017-02-13 22:04:23 +00:00
README.rst Separate documentation readme.rst 2017-03-02 23:10:24 -05:00
babel.cfg Initial commit 2017-02-13 22:04:23 +00:00
requirements.txt Updated from global requirements 2017-03-02 11:56:16 +00:00
setup.cfg Initial commit 2017-02-13 22:04:23 +00:00
setup.py Updated from global requirements 2017-03-02 11:56:16 +00:00
test-requirements.txt Updated from global requirements 2017-03-02 17:54:14 +00:00
tox.ini Refining test coverage 2017-02-28 17:09:53 -05:00

README.rst

Sushy

Sushy is a Python library to communicate with Redfish based systems.

The goal of the library is to be extremely simple, small, have as few dependencies as possible and be very conservative when dealing with BMCs by issuing just enough requests to it (BMCs are very flaky).

Therefore, the scope of the library has been limited to what is supported by the OpenStack Ironic project. As the project grows and more features from Redfish are needed we can expand Sushy to fullfil those requirements.