From 692d291ecaa2e83f4ad360464690287dc8701f1f Mon Sep 17 00:00:00 2001
From: Fellype Cavalcante <fellypefca@lsd.ufcg.edu.br>
Date: Fri, 8 Sep 2017 11:22:58 -0300
Subject: [PATCH] Documentation for 'oneview' hardware type

Updated driver documentation for ``oneview`` hardware type
for boot, console, deploy, inspect, management and power interfaces.

Co-Authored-By: Xavier <marcusrafael@lsd.ufcg.edu.br>
Change-Id: I08a3b4b43ce9518b0b783a3da5c47a3733587666
Closes-Bug: 1715885
---
 doc/source/admin/drivers/oneview.rst          | 117 +++++++++++++++++-
 .../admin/upgrade-to-hardware-types.rst       |  28 +++--
 2 files changed, 131 insertions(+), 14 deletions(-)

diff --git a/doc/source/admin/drivers/oneview.rst b/doc/source/admin/drivers/oneview.rst
index bebd7c31ea..2793af870f 100644
--- a/doc/source/admin/drivers/oneview.rst
+++ b/doc/source/admin/drivers/oneview.rst
@@ -14,16 +14,23 @@ instance. In this context, the ``HP OneView driver`` for ironic enables the
 users of OneView to use ironic as a bare metal provider to their managed
 physical hardware.
 
-Currently there are two OneView drivers:
+HPE OneView hardware is supported by the ``oneview`` hardware type and the
+following classic drivers:
 
 * ``iscsi_pxe_oneview``
 * ``agent_pxe_oneview``
 
+Classic Drivers
+===============
+
 The ``iscsi_pxe_oneview`` and ``agent_pxe_oneview`` drivers implement the
 core interfaces of an ironic Driver [2]_, and use the ``python-oneviewclient``
 [3]_ to provide communication between ironic and OneView through OneView's
 REST API.
 
+.. note::
+   Classic drivers will be deprecated in favor of Hardware Types.
+
 To provide a bare metal instance there are four components involved in the
 process:
 
@@ -96,6 +103,114 @@ Tested platforms
   in general, the hardware also needs to run version 4.2.3 of iLO, with
   Redfish enabled.
 
+Hardware Interfaces
+===================
+
+The ``oneview`` hardware type supports the following hardware interfaces:
+
+* boot
+    Supports only ``pxe``. It can be enabled by using the
+    ``[DEFAULT]enabled_boot_interfaces`` option in ``ironic.conf``
+    as given below:
+
+    .. code-block:: ini
+
+        [DEFAULT]
+        enabled_hardware_types = oneview
+        enabled_boot_interfaces = pxe
+
+* console
+    Supports only ``no-console``. It can be enabled by using the
+    ``[DEFAULT]enabled_console_interfaces``
+    option in ``ironic.conf`` as given below:
+
+    .. code-block:: ini
+
+        [DEFAULT]
+        enabled_hardware_types = oneview
+        enabled_console_interfaces = no-console
+
+* deploy
+    Supports ``oneview-direct`` and ``oneview-iscsi``. The default is
+    ``oneview-iscsi``. They can be enabled by using the
+    ``[DEFAULT]enabled_deploy_interfaces`` option in ``ironic.conf``
+    as given below:
+
+    .. code-block:: ini
+
+        [DEFAULT]
+        enabled_hardware_types = oneview
+        enabled_deploy_interfaces = oneview-iscsi,oneview-direct
+
+* inspect
+    Supports ``oneview`` and ``no-inspect``. The default is ``oneview``.
+    They can be enabled by using the ``[DEFAULT]enabled_inspect_interfaces``
+    option in ``ironic.conf`` as given below:
+
+    .. code-block:: ini
+
+        [DEFAULT]
+        enabled_hardware_types = oneview
+        enabled_inspect_interfaces = oneview,no-inspect
+
+* management
+    Supports only ``oneview``. It can be enabled by using the
+    ``[DEFAULT]enabled_management_interfaces`` option in ``ironic.conf`` as
+    given below:
+
+    .. code-block:: ini
+
+        [DEFAULT]
+        enabled_hardware_types = oneview
+        enabled_management_interfaces = oneview
+
+* power
+    Supports only ``oneview``. It can be enabled by using the
+    ``[DEFAULT]enabled_power_interfaces`` option in ``ironic.conf`` as given
+    below:
+
+    .. code-block:: ini
+
+        [DEFAULT]
+        enabled_hardware_types = oneview
+        enabled_power_interfaces = oneview
+
+The ``oneview`` hardware type also supports the standard *network* and
+*storage* interfaces.
+
+To enable the same feature set as provided by all oneview classic drivers,
+apply the following configuration:
+
+.. code-block:: ini
+
+    [DEFAULT]
+    enabled_hardware_types = oneview
+    enabled_deploy_interfaces = oneview-direct,oneview-iscsi
+    enabled_inspect_interfaces = oneview
+    enabled_power_interfaces = oneview
+    enabled_management_interfaces = oneview
+
+The following commands can be used to enroll a node with the same
+feature set as one of the classic drivers, but using the ``oneview``
+hardware type:
+
+* ``oneview-direct``:
+
+  .. code-block:: console
+
+    openstack baremetal node create --os-baremetal-api-version=1.31 \
+        --driver oneview \
+        --deploy-interface oneview-direct
+
+* ``oneview-iscsi``:
+
+  .. code-block:: console
+
+    openstack baremetal node create --os-baremetal-api-version=1.31 \
+       --driver oneview \
+       --deploy-interface oneview-iscsi
+
+
 Drivers
 =======
 
diff --git a/doc/source/admin/upgrade-to-hardware-types.rst b/doc/source/admin/upgrade-to-hardware-types.rst
index e6b95cb0f1..f3ce3c345f 100644
--- a/doc/source/admin/upgrade-to-hardware-types.rst
+++ b/doc/source/admin/upgrade-to-hardware-types.rst
@@ -13,19 +13,21 @@ It is necessary to figure out which hardware types and hardware interfaces
 correspond to which classic drivers used in your deployment.
 Use the following table:
 
-================ ============= ==================== ====== ========== =========
- Classic Driver  Hardware Type         Boot         Deploy Management   Power
-================ ============= ==================== ====== ========== =========
-pxe_ilo          ilo           ilo-pxe              iscsi  ilo        ilo
-agent_ilo        ilo           ilo-virtual-media    direct ilo        ilo
-iscsi_ilo        ilo           ilo-virtual-media    iscsi  ilo        ilo
-pxe_ipmitool     ipmi          pxe                  iscsi  ipmitool   ipmitool
-agent_ipmitool   ipmi          pxe                  direct ipmitool   ipmitool
-pxe_irmc         irmc          irmc-pxe             iscsi  irmc       irmc
-iscsi_irmc       irmc          irmc-virtual-media   iscsi  irmc       irmc
-agent_irmc       irmc          irmc-virtual-media   direct irmc       irmc
-pxe_snmp         snmp          pxe                  iscsi  fake       snmp
-================ ============= ==================== ====== ========== =========
+================== ============= ==================== ============== ========== =========
+  Classic Driver   Hardware Type         Boot             Deploy     Management   Power
+================== ============= ==================== ============== ========== =========
+pxe_ilo            ilo           ilo-pxe              iscsi          ilo        ilo
+agent_ilo          ilo           ilo-virtual-media    direct         ilo        ilo
+iscsi_ilo          ilo           ilo-virtual-media    iscsi          ilo        ilo
+pxe_ipmitool       ipmi          pxe                  iscsi          ipmitool   ipmitool
+agent_ipmitool     ipmi          pxe                  direct         ipmitool   ipmitool
+pxe_irmc           irmc          irmc-pxe             iscsi          irmc       irmc
+iscsi_irmc         irmc          irmc-virtual-media   iscsi          irmc       irmc
+agent_irmc         irmc          irmc-virtual-media   direct         irmc       irmc
+agent_pxe_oneview  oneview       pxe                  oneview-direct oneview    oneview
+iscsi_pxe_oneview  oneview       pxe                  oneview-iscsi  oneview    oneview
+pxe_snmp           snmp          pxe                  iscsi          fake       snmp
+================== ============= ==================== ============== ========== =========
 
 .. TODO(dtantsur): finish this table