Search
  • Software
    • Overview
    • OpenStack Components
    • SDKs
    • Deployment Tools
    • OpenStack Map
    • Sample Configs
  • Use Cases
    • Users in Production

    • Ironic Bare Metal
    • Edge Computing
    • Telecom & NFV
    • Science and HPC
    • Containers
    • Enterprise
    • User Survey
  • Events
    • OpenInfra Summit
    • Project Teams Gathering
    • OpenDev
    • Community Events
    • OpenStack & OpenInfra Days
    • Summit Videos
  • Community
    • Welcome! Start Here
    • OpenStack Technical Committee
    • Speakers Bureau
    • OpenStack Wiki
    • Get Certified (COA)
    • Jobs
    • Marketing Resources
    • Community News
    • Superuser Magazine

    • OpenInfra Foundation Supporting Organizations
    • OpenInfra Foundation
  • Marketplace
    • Training
    • Distros & Appliances
    • Public Clouds
    • Hosted Private Clouds
    • Remotely Managed Private Clouds
    • Consulting & Integrators
    • Drivers
  • Blog
  • Docs
  • Join
    • Sign up for Foundation Membership
    • Sponsor the Foundation
    • More about the Foundation
  • Log In

OSC commands to get descriptions of driver-related information

OSC commands to get descriptions of driver-related information¶

  • https://bugs.launchpad.net/python-ironicclient/+bug/1619052

  • https://bugs.launchpad.net/python-ironicclient/+bug/1619053

Almost all the ironic CLI commands have corresponding OpenStack Client (OSC) commands. This was done in Implementation of ironic commands as an OSC plugin.

There are two ironic CLI commands:

  • ironic driver-properties and

  • ironic driver-raid-logical-disk-properties

that do not have corresponding OSC commands. This specification proposes OSC commands for them.

Properties of hardware types with non-default interfaces is addressed in RFE to get properties for a dynamic driver and non-default interfaces. That proposal will most likely result in a richer REST API (and corresponding OSC commands). In light of that, we propose simple OSC commands with the goal of providing equivalent behaviours to the ironic CLI commands, and nothing more.

Problem description¶

This table shows the ironic driver-related commands and their associated OSC commands.

ironic

openstack baremetal

driver-get-vendor-passthru-methods <driver>

driver passthru list <driver>

driver-list

driver list

driver-show <driver>

driver show <driver>

driver-vendor-passthru <driver> <method> …

driver passthru call <driver> <method> …

driver-properties <driver>

?

driver-raid-logical-disk-properties <driver>

?

The question is what to use for the OSC commands corresponding to these ironic commands:

  • ironic driver-properties <driver>

  • ironic driver-raid-logical-disk-properties <driver>.

These commands return tables with two columns; the names and descriptions for driver-related information.

To complicate things a bit, there is a lack of symmetry. Although the names (and descriptions) are available via the driver, the values for these are specified via the nodes that use these drivers, rather than directly via the driver.

There have been a few discussions related to this:

  • http://lists.openstack.org/pipermail/openstack-dev/2016-September/103490.html

  • briefly discussed at the OpenStack PTG in Atlanta in February 2017, see “How to call (a name for it) the OSC command for listing RAID properties? (dtantsur)” in the PTG operations etherpad.

Properties of hardware types with non-default interfaces is addressed in RFE to get properties for a dynamic driver and non-default interfaces. That proposal will most likely result in a richer REST API (and corresponding OSC commands). In light of that, we propose simple OSC commands with the goal of providing equivalent behaviours to the ironic CLI commands, and nothing more.

ironic driver-properties <driver>¶

The ironic driver-properties <driver> command returns the “properties” of a driver that must be specified via the nodes that use that driver.

For example, ironic driver-properties agent_ipmitool returns a table of information:

+--------------------------+---------------------------------------------+
| Property                 | Description                                 |
+--------------------------+---------------------------------------------+
| deploy_forces_oob_reboot | Whether Ironic should force a reboot of t...|
| deploy_kernel            | UUID (from Glance) of the deployment kern...|
| deploy_ramdisk           | UUID (from Glance) of the ramdisk that is...|
| image_http_proxy         | URL of a proxy server for HTTP connection...|
| image_https_proxy        | URL of a proxy server for HTTPS connectio...|
| image_no_proxy           | A comma-separated list of host names, IP ...|
| ...                      | ...                                         |
+--------------------------+---------------------------------------------+

The values for these driver properties are set per node, for each node that uses the driver. The information is in the node’s driver_info dictionary field. They can be set when creating a node or when updating a node, for example with openstack baremetal node set <node> --driver-info.

ironic driver-raid-logical-disk-properties <driver>¶

The ironic driver-raid-logical-disk-properties <driver> command returns the RAID logical disk properties that can be specified for a particular driver.

For example, ironic driver-raid-logical-disk-properties agent_ipmitool returns a table of information:

+--------------------------+---------------------------------------------+
| Property                 | Description                                 |
+--------------------------+---------------------------------------------+
| controller               | Controller to use for this logical disk. ...|
| disk_type                | The type of disk preferred. Valid values ...|
| interface_type           | The interface type of disk. Valid values ...|
| is_root_volume           | Specifies whether this disk is a root vol...|
| number_of_physical_disks | Number of physical disks to use for this ...|
| physical_disks           | The physical disks to use for this logica...|
| raid_level               | RAID level for the logical disk. Valid va...|
| share_physical_disks     | Specifies whether other logical disks can...|
| size_gb                  | Size in GiB (Integer) for the logical dis...|
| ...                      | ...                                         |
+--------------------------+---------------------------------------------+

The values for these disk properties are set per node, for each node that uses the driver and RAID. This information is in the node’s target_raid_config field and can be set (in JSON format) via the node’s set raid config API, or via openstack baremetal node set <node> --target-raid-config.

Proposed change¶

The OpenStackClient command structure is:

openstack [<global-options>] <object-1> <action> [<object-2>] [<command-arguments>]

ironic driver-properties <driver>¶

The <object-1> part will be “baremetal driver property”.

For the <action>, there were discussions at the PTG about the merits of using “list” versus “show”. In the context of existing OSC commands using these two action words, neither of these action words seems to fit with the two commands, since they return descriptions (or documentation) on what is available. However, since this will very likely be replaced by a richer set of OSC commands (resulting from RFE to get properties for a dynamic driver and non-default interfaces), we keep it simple and use “list”. (Using “list” might imply that a corresponding “show” exists to drill down and get more information. The converse is true too though; using “show” might imply a corresponding “list” command.)

The OSC command is:

openstack baremetal driver property list <driver>

For example:

$ openstack baremetal driver property list agent_ipmitool

+--------------------------+---------------------------------------------+
| Property                 | Description                                 |
+--------------------------+---------------------------------------------+
| deploy_forces_oob_reboot | Whether Ironic should force a reboot of t...|
| deploy_kernel            | UUID (from Glance) of the deployment kern...|
| deploy_ramdisk           | UUID (from Glance) of the ramdisk that is...|
| image_http_proxy         | URL of a proxy server for HTTP connection...|
| image_https_proxy        | URL of a proxy server for HTTPS connectio...|
| image_no_proxy           | A comma-separated list of host names, IP ...|
| ...                      | ...                                         |
+--------------------------+---------------------------------------------+

ironic driver-raid-logical-disk-properties <driver>¶

Again, since this will very likely be replaced by a richer set of OSC commands (that will result from RFE to get properties for a dynamic driver and non-default interfaces), we propose a simple OSC command.

<object-1> would be “baremetal driver raid property” and <action> would be “list”:

openstack baremetal driver raid property list <driver>

Alternatives¶

There are alternatives, but in the interest of keeping this simple and deprecating it when RFE to get properties for a dynamic driver and non-default interfaces is available, we are focussed here on only providing OSC-equivalent commands that may not be flexible or extensible, but provide equivalence to the ironic CLI ones.

Data model impact¶

None.

State Machine Impact¶

None.

REST API impact¶

None.

Client (CLI) impact¶

This specification is about the OSC CLI.

“ironic” CLI¶

None.

“openstack baremetal” CLI¶

See above.

RPC API impact¶

None.

Driver API impact¶

None.

Nova driver impact¶

None.

Ramdisk impact¶

None.

Security impact¶

None.

Other end user impact¶

None.

Scalability impact¶

None.

Performance Impact¶

None.

Other deployer impact¶

None.

Developer impact¶

None.

Implementation¶

Assignee(s)¶

Primary assignee: rloo (Ruby Loo)

Other contributors: galyna (Galyna Zholtkevych)

Work Items¶

  • Code the two OSC commands in python-ironicclient.

Dependencies¶

None.

Testing¶

Unit and functional testing similar to what exists for other OSC commands.

Upgrades and Backwards Compatibility¶

None.

Documentation Impact¶

None. ironic doesn’t have OSC-command related documentation.

References¶

  • Implementation of ironic commands as an OSC plugin

  • OpenStackClient command

  • PTG operations etherpad

  • updating a node

  • node’s set raid config

  • http://lists.openstack.org/pipermail/openstack-dev/2016-September/103490.html

  • RFE to get properties for a dynamic driver and non-default interfaces

this page last updated: 2018-02-27 10:53:38
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug
  • Guides
  • Install Guides
  • User Guides
  • Configuration Guides
  • Operations and Administration Guides
  • API Guides
  • Contributor Guides
  • Languages
  • Deutsch (German)
  • Français (French)
  • Bahasa Indonesia (Indonesian)
  • Italiano (Italian)
  • 日本語 (Japanese)
  • 한국어 (Korean)
  • Português (Portuguese)
  • Türkçe (Türkiye)
  • 简体中文 (Simplified Chinese)

Ironic Specs 0.0.1.dev773

  • 2025.2 Project Work Items
  • 2025.1 Project Work Items
  • 2024.2 Project Work Items
  • 2024.1 Project Work Items
  • 2023.2 Project Work Items
  • 2023.1 Project Work Items
  • Zed Project Themes
  • Yoga Project Themes
  • Xena Project Themes
  • Wallaby Project Priorities
  • Victoria Project Priorities
  • Ussuri Project Priorities
  • Train Project Priorities
  • Stein Project Priorities
  • Rocky Project Priorities
  • Queens Project Priorities
  • Pike Project Priorities
  • Ocata Project Priorities
  • Newton Project Priorities
  • Mitaka Project Priorities
  • Add a field to accept the default verify_ca path
  • Attestation Interface and Keylime Integration
  • Boot configuration API
  • Deployment of Bootable Containers (bootc)
  • Dell EMC hardware firmware update
  • API Evolution: etag ID
  • Expose supported power states
  • Graphical Console Support
  • HTTPBoot
  • Migrate inspection rules from Inspector
  • Redfish Proxy for Ironic Node Power Controls
  • Kea DHCP backend
  • Project Mercury
  • Merge Inspector into Ironic
  • Hardware that cannot be powered off
  • Support NIC Firmware Updates in Firmware Interface
  • No IPA to conductor communication
  • Nodes tagging
  • OCI (Container Registry) URL Support
  • Override PXE options via Glance property
  • Self-Service via Runbooks
  • Synchronize events with Neutron
  • Introduce Driver Capabilities
  • BMC event framework
  • Add new node name filter API
  • Obtaining Steps
  • Support a new hardware type for Fujitsu PRIMEQUEST MMB
  • Support per driver sensor meters
  • Anaconda deploy interface
  • Provide Redfish BIOS Attribute Registry data in API
  • Apply pre-defined system hardware configuration in single step
  • System Scoped Role Based Access Control
  • Ironic L3 based deployment
  • In-band Deploy Steps
  • Allow a ramdisk deploy user to specify their boot ISO
  • New Release Model for Ironic
  • Indicator management
  • Allow Leasable Nodes
  • Support for node retirement
  • Boot and network management for in-band inspection
  • Allow Node Owners to Administer Nodes
  • Define idrac Hardware Type Support of Redfish Interfaces
  • Out-of-band disk-erase for Gen10 and above HPE Proliant Servers
  • Support for Software RAID
  • Add Intel® Speed Select Support
  • Allocation API
  • Deploy Templates
  • Huawei iBMC Driver
  • Out-of-band RAID configuration for Gen10 and above HPE Proliant Servers
  • Ownership Information Storage
  • Smart NIC Networking
  • The direct deploy interface provisioning with HTTP server
  • Expose conductor information from API
  • Promote iPXE to separate boot interface
  • Out of Band Inspection support for redfish hardware type
  • Boot from a Ramdisk
  • Conductor/node grouping affinity
  • Deployment Steps Framework
  • Hardware interface for BIOS configuration
  • Future of classic drivers
  • Add Inspect Wait State
  • Support baremetal inspection abort
  • Power fault recovery
  • SIGHUP on ironic services
  • Promote Ansible deploy interface to ironic
  • UEFI iSCSI Boot for iLO drivers
  • Implement Rescue Mode
  • Node Traits
  • Lenovo XClarity Driver
  • ironic-python-agent API Versioning and Negotiation
  • Change CLI default API version to latest known ironic API version
  • Add more capabilities to ironic inspection
  • Support Rolling Upgrade
  • Boot from Volume - Reference Drivers
  • Dynamic port groups
  • Physical Network Awareness
  • Add volume connection information for Ironic nodes
  • Redfish hardware type and interfaces
  • OSC commands to get descriptions of driver-related information
  • Add notifications about resources CRUD and node states
  • Driver composition reform
  • Enhance Power Interface for Soft Power Off and NMI
  • Interface Attach and Detach API
  • Ironic Neutron Integration
  • Add notification support to ironic
  • Add InfiniBand Support
  • Collect logs from agent ramdisk
  • iPXE to use Swift Temporary URLs
  • Implementation of ironic commands as an OSC plugin
  • Third Party Driver Continuous Integration Testing
  • Add pluggable metrics backend for Ironic and IPA
  • Promote agent vendor passthru to core API
  • Collect system logs from IPA
  • Keystone Policy Support
  • Pluggable network providers
  • Add node resource_class field
  • Nova-compatible Serial Console
  • Dynamic allocation of nodes for the OneView drivers
  • Active Node Creation
  • Partition image support for agent driver
  • HTTP(S) proxy support for agent images downloading
  • Switch periodic tasks to the Futurist library
  • In-band RAID configuration using agent ramdisk
  • New driver interface for RAID configuration
  • Manual cleaning
  • In-band cleaning support in iSCSI deploy drivers
  • New driver in Ironic for OneView
  • Ceph Object Gateway Temp URL support
  • SSH Console
  • Bare Metal Trust Using Intel TXT
  • Cisco IMC PXE Driver
  • Deprecate the bash ramdisk
  • Boot Interface in Ironic
  • Make ilo drivers standalone in ironic by removing swift dependency
  • Cisco UCS PXE driver
  • DRAC vendor passthru for BIOS settings management
  • Add “enroll” state to the state machine
  • Move Ironic to a feature-based release model
  • iRMC Virtual Media Deploy Driver for Ironic
  • Open CloudServer (OCS) power driver
  • Determinable supported boot device list
  • UEFI Secure Boot support for pxe_iLO driver
  • Client Caching Of Negotiated Version
  • Wake-On-Lan (WOL) power driver
  • AMT PXE Driver
  • Ironic Microversions
  • automate-uefi-bios-iso-creation
  • Driver Internal Info
  • Allow drivers to have their own periodic tasks
  • Expose configdrive to instances
  • Extend Vendor Passthru
  • Implement Cleaning Operations for iLO drivers
  • iLO Management Interface
  • Discover node properties and capabilities for iLO drivers
  • Implement Cleaning States
  • In-band hardware properties introspection via ironic-discoverd
  • iRMC Management Driver for Ironic
  • iRMC Power Driver for Ironic
  • Discover node properties with node-set-provision-state
  • Add support for VirtualBox through WebService
  • Local boot support with partition images
  • Ironic Logical Names
  • Add maintenance reason field
  • A proposal for the New Ironic State Machine.
  • Support for non-glance image references
  • Root device hints
  • Seamicro Serial Console
  • UEFI Secure Boot support for iLO drivers
  • Whole Disk Image Support
  • Add instance_info field to Node model
  • Add Support for Retry on NodeLocked Exceptions
  • Agent Driver
  • Mechanism to cleanup all ImageCaches
  • More robust device status checking with fuser
  • DRAC Management driver for Ironic
  • DRAC Power Driver for Ironic
  • Enabling IPMI double bridge support
  • API to Get driver_info Properties
  • iLO IPA Deploy Driver
  • iPXE boot
  • iLO Power Driver for Ironic
  • iLO Virtual Media iSCSI Deploy Driver
  • Power driver for SNMP-enabled smart PDUs
  • New driver ManagementInterface
  • Send Sensor Data to Ceilometer
  • Support external DHCP providers
  • Swift Temporary URLs
  • UEFI support for Ironic deploy drivers
  • Discover node properties and capabilities for ucs drivers
  • Out-of-band RAID configuration using Cisco UCS drivers
  • iPXE Dynamic Configuration
  • OpenBMC Driver
  • Petitboot boot driver
  • Snapshot support
  • VNC Graphical console

Page Contents

  • OSC commands to get descriptions of driver-related information
    • Problem description
      • ironic driver-properties <driver>
      • ironic driver-raid-logical-disk-properties <driver>
    • Proposed change
      • ironic driver-properties <driver>
      • ironic driver-raid-logical-disk-properties <driver>
      • Alternatives
      • Data model impact
      • State Machine Impact
      • REST API impact
      • Client (CLI) impact
        • “ironic” CLI
        • “openstack baremetal” CLI
      • RPC API impact
      • Driver API impact
      • Nova driver impact
      • Ramdisk impact
      • Security impact
      • Other end user impact
      • Scalability impact
      • Performance Impact
      • Other deployer impact
      • Developer impact
    • Implementation
      • Assignee(s)
      • Work Items
    • Dependencies
    • Testing
    • Upgrades and Backwards Compatibility
    • Documentation Impact
    • References

OpenStack

  • Projects
  • OpenStack Security
  • Blog
  • News

Community

  • User Groups
  • Events
  • Jobs
  • Companies
  • Contribute

Documentation

  • OpenStack Manuals
  • Getting Started
  • API Documentation
  • Wiki

Branding & Legal

  • Legal Docs
  • Logos & Guidelines
  • Trademark Policy
  • Privacy Policy
  • OpenInfra CLA

Stay In Touch

The OpenStack project is provided under the Apache 2.0 license. Docs.openstack.org is powered by Rackspace Cloud Computing.