summaryrefslogtreecommitdiff
path: root/ironic/drivers/redfish.py
diff options
context:
space:
mode:
authorLucas Alvares Gomes <lucasagomes@gmail.com>2017-02-27 17:03:28 +0000
committerLucas Alvares Gomes <lucasagomes@gmail.com>2017-04-21 11:06:24 +0100
commitc21149454a02514bd3889a793eadff712e4e6c33 (patch)
tree97eeabfb572ea54c2631545b902583268965eb11 /ironic/drivers/redfish.py
parent1fcb6c52a22c9c025dbf27931720ce2eda08704f (diff)
downloadironic-c21149454a02514bd3889a793eadff712e4e6c33.tar.gz
Add redfish driver
This patch is adding a redfish driver based on the sushy library. This is just a basic driver that currently supports: * Power: Hard power on/off/reboot, soft power off/reboot * Management: Setting the boot device (PXE, disk, cd-rom and bios) and its frequency (persistent or not) * Management: NMI Injection * SSL authentication Unittest coverage for the redfish modules is now in 100%, let's try to keep it this way (-: Documentation and DevStack updates will be done on subsequent patches. Partial-Bug: #1526477 Change-Id: I14470edff65cd14bb73263ec7310559a8eaa6c84
Diffstat (limited to 'ironic/drivers/redfish.py')
-rw-r--r--ironic/drivers/redfish.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/ironic/drivers/redfish.py b/ironic/drivers/redfish.py
new file mode 100644
index 000000000..ecf7c789a
--- /dev/null
+++ b/ironic/drivers/redfish.py
@@ -0,0 +1,32 @@
+# Copyright 2017 Red Hat, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from ironic.drivers import generic
+from ironic.drivers.modules.redfish import management as redfish_mgmt
+from ironic.drivers.modules.redfish import power as redfish_power
+
+
+class RedfishHardware(generic.GenericHardware):
+ """Redfish hardware type."""
+
+ @property
+ def supported_management_interfaces(self):
+ """List of supported management interfaces."""
+ return [redfish_mgmt.RedfishManagement]
+
+ @property
+ def supported_power_interfaces(self):
+ """List of supported power interfaces."""
+ return [redfish_power.RedfishPower]