Skip to main content

Redfish Python Library

Project description

python-redfish-library
==============

.. image:: https://travis-ci.org/DMTF/python-redfish-library.svg?branch=master
:target: https://travis-ci.org/DMTF/python-redfish-library
.. image:: https://img.shields.io/pypi/v/redfish.svg?maxAge=2592000
:target: https://pypi.python.org/pypi/redfish
.. image:: https://img.shields.io/github/release/DMTF/python-redfish-library.svg?maxAge=2592000
:target:
.. image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg
:target: https://raw.githubusercontent.com/DMTF/python-redfish-library/master/LICENSE
.. image:: https://img.shields.io/pypi/pyversions/redfish.svg?maxAge=2592000
:target: https://pypi.python.org/pypi/redfish
.. image:: https://api.codacy.com/project/badge/Grade/1283adc3972d42b4a3ddb9b96660bc07
:target: https://www.codacy.com/app/rexysmydog/python-redfish-library?utm_source=github.com&utm_medium=referral&utm_content=DMTF/python-redfish-library&utm_campaign=Badge_Grade


.. contents:: :depth: 1


Description
----------

REST (Representational State Transfer) is a web based software architectural style consisting of a set of constraints that focuses on a system's resources. The Redfish library performs the basic HTTPS operations GET, POST, PUT, PATCH and DELETE on resources using the HATEOAS (Hypermedia as the Engine of Application State) Redfish architecture. API clients allow you to manage and interact with the system through a fixed URL and several URIs. Go to the `wiki <../../wiki>`_ for more details.


Installing
----------

.. code-block:: console

pip install redfish


Building from zip file source
~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: console

python setup.py sdist --formats=zip (this will produce a .zip file)
cd dist
pip install python-redfish-library-x.x.x.zip


Requirements
----------

Ensure the system does not have the OpenStack "python-redfish" module installed on the target system. This module is using a conflicting package name that this library already uses. The module in question can be found here: https://pypi.org/project/python-redfish/


Usage
----------

A set of examples is provided under the examples directory of this project. In addition to the directives present in this paragraph, you will find valuable implementation tips and tricks in those examples.


Import the relevant python module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For a Redfish compliant application import the relevant python module.

For Redfish compliant application:

.. code-block:: python

import redfish


Create a Redfish Object
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The Redfish Objects contain 3 parameters: the target secured URL (i.e. "https://IP" or "https://X.Y.Z.T"), an user name and its password.
To crete a Redfish Object, call the redfish_client method:
.. code-block:: python

REDFISH_OBJ = redfish.redfish_client(base_url=login_host, username=login_account, \
password=login_password, default_prefix='/redfish/v1')


Login to the server
~~~~~~~~~~~~~~~~~~~~~~~~~

The login operation is performed when creating the REDFISH_OBJ. You can continue with a basic authentication, but it would less secure.

.. code-block:: python

REDFISH_OBJ.login(auth="session")


Perform a GET operation
~~~~~~~~~~~~~~~~~~~~~~~~~

A simple GET operation can be performed to obtain the data present in any valid path.
An example of rawget operation on the path "/redfish/v1/systems/1 is shown below:

.. code-block:: python

response = REDFISH_OBJ.get("/redfish/v1/systems/1", None)


Logout the created session
~~~~~~~~~~~~~~~~~~~~~~~~~

Make sure you logout every session you create as it will remain alive until it times out.

.. code-block:: python

REDFISH_OBJ.logout()

A logout deletes the current sesssion from the system. The redfish_client object destructor includes a logout statement.


Contributing
----------

1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D


Release Process
----------

1. Update `CHANGELOG.md` with the list of changes since the last release
2. Update the `__version__` variable in `src/redfish/__init__.py`, and `setup.py` to reflect the new library version
3. Push changes to Github
4. Create a new release in Github
5. Push the new library version to pypi.org


Copyright and License
---------------------

Copyright Notice:
Copyright 2016-2018 DMTF. All rights reserved.
License: BSD 3-Clause License. For full text see link: `https://github.com/DMTF/python-redfish-library/blob/master/LICENSE.md <https://github.com/DMTF/python-redfish-library/blob/master/LICENSE.md>`_

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

redfish-2.0.3.tar.gz (30.9 kB view details)

Uploaded Source

File details

Details for the file redfish-2.0.3.tar.gz.

File metadata

  • Download URL: redfish-2.0.3.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.5

File hashes

Hashes for redfish-2.0.3.tar.gz
Algorithm Hash digest
SHA256 8c6e617d9ae44d6fc5d0802ccabbd244beac926f6009975acd89230df74382cd
MD5 88f78bfde555d2ecbbbbc1001c0f449b
BLAKE2b-256 e3f3804ac4699b0f2de016b5f27ca776469840761bc2604ab2b4701753da60ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page