Metadata-Version: 1.1
Name: ironic-oneview-cli
Version: 1.2.0
Summary: Command Line Interface to ease the use of OneView Driver for Ironic
Home-page: http://git.lsd.ufcg.edu.br/ironic-drivers/ironic-oneview-cli
Author: OpenStack
Author-email: thiagop@lsd.ufcg.edu.br
License: UNKNOWN
Description: [![PyPI version](https://badge.fury.io/py/ironic-oneview-cli.svg)](https://badge.fury.io/py/ironic-oneview-cli)
        [![Build Status](https://travis-ci.org/HewlettPackard/ironic-oneview-cli.svg?branch=master)](https://travis-ci.org/HewlettPackard/ironic-oneview-cli)
        [![Coverage Status](https://coveralls.io/repos/github/HewlettPackard/ironic-oneview-cli/badge.svg)](https://coveralls.io/github/HewlettPackard/ironic-oneview-cli)
        
        Ironic-OneView CLI
        ==================
        
        Overview
        --------
        
        Ironic-OneView CLI is a command line interface tool for easing the use of the OneView Drivers for Ironic. It allows the user to easily manage:
        
        -   Ironic nodes compatible with OneView Server Hardware objects;
        -   Nova flavors matching available Ironic nodes that use OneView drivers;
        -   Ironic ports mapping Server Hardware ports.
        
        > **note**
        >
        > This tool works with OpenStack Identity API v2.0 and v3.
        
        > **note**
        >
        > This tool works with OpenStack Ironic API microversion '1.31'.
        
        * * * * *
        
        For more information on *HPE OneView* entities, see [here](https://www.hpe.com/us/en/integrated-systems/software.html).
        
        Installation
        ------------
        
        To install Ironic-OneView CLI from PyPI, use the following command:
        
            $ pip install ironic-oneview-cli
        
        > **note**
        >
        > Ocata/Newton users, we recommend using version 0.6.0
        
        Configuration
        -------------
        
        Ironic-Oneview CLI uses credentials loaded into environment variables by the *OpenStack RC* file (downloaded from OpenStack Horizon), and the Ironic OneView CLI RC file, which sample file can be generated using the following `genrc` subcommand:
        
            $ ironic-oneview genrc > ironic-oneviewrc.sh
        
        Once the `ironic-oneviewrc.sh` is populated with OneView credentials using any text editor, it can be loaded by running the following:
        
            $ source ironic-oneviewrc.sh
        
        Credentials can be passed alternatively as command line parameters. A help message informing of which parameters should be used is shown by running the command the following:
        
            $ ironic-oneview help
        
        For more information how to obtain and load the *OpenStack RC* file, see [here](http://docs.openstack.org/user-guide/common/cli_set_environment_variables_using_openstack_rc.html).
        
        Usage
        -----
        
        Once the necessary environment variables and command line parameters are set, Ironic OneView CLI is ready to be used. The current version of Ironic-OneView CLI provides the following interactive subcommands:
        
        <table>
        <col width="23%" />
        <col width="76%" />
        <tbody>
        <tr class="odd">
        <td align="left"><blockquote>
        <p>node-create</p>
        </blockquote></td>
        <td align="left">Creates Ironic nodes based on available HPE OneView Server Hardware.</td>
        </tr>
        <tr class="even">
        <td align="left"><blockquote>
        <p>flavor-create</p>
        </blockquote></td>
        <td align="left">Creates Nova flavors based on available Ironic nodes.</td>
        </tr>
        <tr class="odd">
        <td align="left"><blockquote>
        <p>port-create</p>
        </blockquote></td>
        <td align="left">Creates a Ironic Port based on available Ironic nodes.</td>
        </tr>
        <tr class="even">
        <td align="left"><blockquote>
        <p>server-profile-template-list</p>
        </blockquote></td>
        <td align="left">Lists HPE OneView Server Profile Templates.</td>
        </tr>
        <tr class="odd">
        <td align="left"><blockquote>
        <p>server-hardware-list</p>
        </blockquote></td>
        <td align="left">Lists HPE OneView Server Hardware.</td>
        </tr>
        <tr class="even">
        <td align="left"><blockquote>
        <p>node-delete</p>
        </blockquote></td>
        <td align="left">Deletes multiple Ironic nodes.</td>
        </tr>
        <tr class="odd">
        <td align="left"><blockquote>
        <p>genrc</p>
        </blockquote></td>
        <td align="left">Generates a sample Ironic-OneView CLI RC file.</td>
        </tr>
        <tr class="even">
        <td align="left"><blockquote>
        <p>help</p>
        </blockquote></td>
        <td align="left">Displays help about this program or one of its subcommands.</td>
        </tr>
        </tbody>
        </table>
        
        Any ironic-oneview-cli subcommand can be run in debugging mode with the --debug parameter, as in the following command:
        
            $ ironic-oneview --debug node-create
        
        Features
        --------
        
        ### Node creation
        
        To create Ironic nodes based on available HPE OneView `Server Hardware` objects, use the following command:
        
            $ ironic-oneview node-create
        
        The tool retrieves all server profile templates previously created in OneView. It builds a list with the Name, Enclosure Group Name and Server Hardware Type Name (as shown in the table), and assigns an id that should be used by the administrator to select which `Server Profile Template` should be used for node creation:
        
            +----+------------------------+----------------------+---------------------------+
            | Id | Name                   | Enclosure Group Name | Server Hardware Type Name |
            +----+------------------------+----------------------+---------------------------+
            | 1  | template-dcs-virt-enc3 | virt-enclosure-group | BL460c Gen8 3             |
            | 2  | template-dcs-virt-enc4 | virt-enclosure-group | BL660c Gen9 1             |
            +----+------------------------+----------------------+---------------------------+
        
        Once the user has chosen a valid `Server Profile Template`, the tool lists the available `Server Hardware` matching it as shown in the following table:
        
            +----+-----------------+------+-----------+----------+----------------------+---------------------------+
            | Id | Name            | CPUs | Memory MB | Local GB | Enclosure Group Name | Server Hardware Type Name |
            +----+-----------------+------+-----------+----------+----------------------+---------------------------+
            | 1  | VIRT-enl, bay 5 | 8    | 32768     | 120      | virt-enclosure-group | BL460c Gen8 3             |
            | 2  | VIRT-enl, bay 8 | 8    | 32768     | 120      | virt-enclosure-group | BL460c Gen8 3             |
            +----+-----------------+------+-----------+----------+----------------------+---------------------------+
        
        Notice that multiple Ironic nodes can be created at once. That can be achieved, by selecting multiple `Server Hardware` IDs separated by blank spaces. The created Ironic nodes will be in the *enroll* provisioning state.
        
        This command also creates an Ironic port to be used by the node, the port is created in the same way as the port-create command (see below) with the parameter `--mac` also optional.
        
        > **note**
        >
        > If *os\_inspection\_enabled = True*, the created node will not have the hardware properties (*cpus*, *memory\_mb*, *local\_gb*, *cpu\_arch*) set in the node properties. This will be discovered during the Ironic Hardware Inspection.
        
        * * * * *
        
        Alternatively, the `Server Profile Template` and `Server Hardware` can be specified using the parameters `--server-profile-template` and `--server-hardware-uuid` respectively, as shown in the following command:
        
            $ ironic-oneview node-create [--server-profile-template | -t <spt>] [--server-hardware-uuid | -s <server_hardware>]
        
        A collection of nodes sharing the same `Server Profile Template` can be set up in a batch by using the following command:
        
            $ ironic-oneview node-create [--number | -n <number>]
        
        > **note**
        >
        > You can use both arguments at once.
        
        In order to enable *Networking OneView ML2 Driver*, the following command to create a node with this information set to its driver\_info field:
        
            $ ironic-oneview node-create --use-oneview-ml2-driver
        
        For more information on *Networking OneView ML2 Driver*, see [here](https://github.com/HewlettPackard/ironic-driver-oneview/tree/master/networking-oneview).
        
        With the Driver composition reform, the default behavior is to create a node using a hardware type. With this feature, specific hardware type compatible interfaces can be dynamically set to the node, such as: `OpenStack Power Interface`, `OpenStack Management Interface`, `OpenStack Inspect Interface`, `OpenStack Deploy Interface`. Use the following command to create a node with this hardware type and interfaces:
        
            $ ironic-oneview node-create --os-driver <hardware_type> --os-power-interface <power_interface>
              --os-management-interface <management_interface> --os-inspect-interface <inspect_interface>
              --os-deploy-interface <deploy_interface>
        
        If you want to create the node using the classic driver, use the following command:
        
            $ ironic-oneview node-create --classic
        
        For more information on the *Driver composition reform*, see [here](https://specs.openstack.org/openstack/ironic-specs/specs/approved/driver-composition-reform.html).
        
        * * * * *
        
        To list all nodes in Ironic, use the following command:
        
            $ openstack baremetal node list
        
        For more information about the created Ironic node, use the following command:
        
            $ openstack baremetal node show <node>
        
        ### Flavor creation
        
        In order to launch bare metal instances, the user needs to specify a flavor compatible with an available Ironic Node, which maps directly to an available `Server Hardware`. The following interactive command can be used to create Nova flavors:
        
            $ ironic-oneview flavor-create
        
        The tool will prompt with a list of possible new flavors, according to the configuration of enrolled Ironic nodes:
        
            +----+------+---------+-----------+-------------------------------------+----------------------+-------------------------+
            | Id | CPUs | Disk GB | Memory MB | Server Profile Template             | Server Hardware Type | Enclosure Group Name    |
            +----+------+---------+-----------+-------------------------------------+----------------------+-------------------------+
            | 1  | 8    | 120     | 8192      | second-virt-server-profile-template | BL460c Gen9 1        | virtual-enclosure-group |
            +----+------+---------+-----------+-------------------------------------+----------------------+-------------------------+
        
        After choosing a valid configuration, the user can optionally specify a name for the new flavor. If left blank, a default name will be used. Additional information from Server Hardware Type, Enclosure Group and Server Profile Template is automatically added by default to the flavor metadata. Use Horizon to delete the Enclosure Group info, for example, so that a flavor matches Server Hardware in all available enclosures.
        
        Alternatively, you can set a Ironic `node`, and optionally flavor `name` through the command:
        
            $ ironic-oneview flavor-create [--node <node>] [--name <name>]
        
        * * * * *
        
        To list all flavors in Nova, use the command:
        
            $ openstack flavor list
        
        For more information about the created Nova flavor, use the command:
        
            $ openstack flavor show <flavor>
        
        ### Port creation
        
        Creates a port for an existing Ironic node. The following interactive command can be used to create Ironic ports:
        
            $ ironic-oneview port-create [--mac | -m <mac>] <node>
        
        In the case when the user does not specify a port, the result will be an Ironic port for the first `-a` available port at the `Server Hardware` used by ironic-node.
        
        To list all ports in Ironic, use the command:
        
            $ openstack baremetal port list
        
        For more information about the created Ironic port, use the following command:
        
            $ openstack baremetal port show <port>
        
        ### Server Profile Template List
        
        The tool offers a command to list `Server Profile Templates`. For that use the following command:
        
            $ ironic-oneview server-profile-template-list
        
        ### Server Hardware List
        
        The tool offers a command to list `Server Hardware` compatible with a specific `Server Profile Template`. For that use the following command:
        
            $ ironic-oneview server-hardware-list
        
        ### Node delete
        
        The tool also offers the option to delete a specific number of Ironic nodes. For that use the following command:
        
            $ ironic-oneview node-delete --number <number>
        
        To delete all Ironic nodes, use the following command:
        
            $ ironic-oneview node-delete --all
        
        ### Contributing
        
        Fork it, branch it, change it, commit it, and pull-request it. We are passionate about improving this project, and are glad to accept help to make it better. However, keep the following in mind: We reserve the right to reject changes that we feel do not fit the scope of this project. For feature additions, please open an issue to discuss your ideas before doing the work.
        
        ### Feature Requests
        
        If you have a need not being met by the current implementation, please let us know (via a new issue). This feedback is crucial for us to deliver a useful product. Do not assume that we have already thought of everything, because we assure you that is not the case.
        
        ### Testing
        
        We have already packaged everything you need to do to verify if the code is passing the tests. The tox script wraps the unit tests execution against Python 2.7, 3.5 and pep8 validations. Run the following command:
        
            $ tox
        
        
Platform: UNKNOWN
Classifier: Environment :: OpenStack
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
