[WIP] Add Redfish OOB driver to Drydock

Not yet ready for review.

Change-Id: I354a630f36606f830d9abf2cad539651462c46cb
This commit is contained in:
Hemanth Nakkina 2018-07-19 21:41:41 +05:30
parent 43b300cdc5
commit 49038f53d5
1 changed files with 119 additions and 0 deletions

119
specs/redfish_oob.rst Normal file
View File

@ -0,0 +1,119 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==============================================
Introduce Redfish based OOB Driver for Drydock
==============================================
Proposal to add new OOB driver Redfish for Drydock.
Links
=====
https://storyboard.openstack.org/#!/story/2003007
Problem description
===================
Currently Drydock uses Phygmi as OOB driver to manage/configure servers.
Phygmi is basically a python implementation for IPMI functionality. Currently
phygmi supports few commands related to power on/off, boot, events and Lenovo
OEM functions. Introducing a new IPMI command in pyghmi is complex and requires
to know the low level details of the functionality like Network Function,
Command and the data bits to be sent.
DMTF's have proposed a new Standard Platform management API Redfish using a
data model representation inside of hypermedia RESTful interface. Vendors like
Dell, HP supports Redfish and Rest API are exposed to perform any actions.
Being a REST and model based standard makes it easy for the client side
implementations.
Impacted components
===================
The following Airship components would be impacted by this solution:
#. Drydock - new oob driver Redfish
Proposed change
===============
Implement new OOB driver for Drydock.
Implement the existing OOB actions for Redfish
- ValidateOobServices
- ConfigNodePxe
- SetNodeBoot
- PowerOffNode
- PowerOnNode
- PowerCycleNode
- InterrogateOob
To use the Redfish driver as OOB, the OOB type in Host profile need to be
set as ``redfish``
Sample Host profile with OOB type redfish::
---
schema: drydock/HostProfile/v1
metadata:
schema: metadata/Document/v1
name: global
storagePolicy: cleartext
labels:
hosttype: global_hostprofile
layeringDefinition:
abstract: true
layer: global
data:
oob:
type: 'redfish'
network: 'oob'
account: 'tier4'
Security impact
---------------
None
Performance impact
------------------
None
Implementation
==============
* Add redfish driver to drydock configuration parameter ``oob_driver``
* Implement base Redfish driver derived from oob_driver.OobDriver with
oob_types_supported `redfish`
* Implement an abstract Redfish client class that takes care of intricacies
of data models from different vendors.
TODO: Mention the servers/firmware that will be supported as part of this
blueprint
* Implement OOB action classes specified in Proposed change
Assignee(s)
-----------
Primary assignee:
Hemanth Nakkina
Other contributors:
PradeepKumar KS
Gurpreet Singh
Dependencies
============
None
References
==========
.. _Redfish_standard: https://www.dmtf.org/standards/redfish