CLI commands — python-ironicclient — branch stable/2026.2
Branch
stable/2026.2@af2ceeb9c4f2— repository https://opendev.org/openstack/python-ironicclient — analysed on 2026-11-01
python-ironicclient exposes no API of its own. It is a **plugin of the openstack command line**, plus a separate baremetal shell. Both turn commands into calls to the Ironic REST API. Its contract with the outside world is the requests it sends: see interactions and the client contract.
[observed] means seen against a local stub, which is not Ironic.
1. Shared mechanics
Plugin and command loading
- Plugin:
openstack.cli.extension = baremetal(pyproject.toml:45,ironicclient/osc/plugin.py:17), loaded byopenstackclient:openstackclient/common/clientmanager.py:279. Commands are inopenstack.baremetal.v1(pyproject.toml:47), one entry per command. - Base classes:
ironicclient/osc/command.py:49only adds typing to the osc-lib and cliff classes. Output type follows from the class:Lister(24 commands),ShowOne(28),Commandwith no table (66). - Client construction:
ironicclient/osc/plugin.py:53builds oneironicclient.v1.client.Clientper process, on first use. It takes the session from osc-lib and resolves the endpoint at once from the catalog, withbaremetal_endpoint_overridetaking priority (osc-lib:osc_lib/clientmanager.py:285). The client does not read the version documents of the service. It passes nomax_retries, so the defaults apply (ironicclient/common/http.py:57).
API version selection
The option is --os-baremetal-api-version (env OS_BAREMETAL_API_VERSION), ironicclient/osc/plugin.py:103. Values are 1, 1.1 to 1.115, latest.
| Value | Header sent first | On a 406 | Source |
|---|---|---|---|
none, latest, 1 | 1.115 | negotiate down, then retry [observed] | ironicclient/osc/plugin.py:69, ironicclient/v1/client.py:78 |
1.N | 1.N | Requested API version 1.N is not supported…, exit 1 [observed] | ironicclient/osc/plugin.py:155, ironicclient/common/http.py:222 |
| out of range, by option | none | argparse error, exit 2 [observed] | ironicclient/osc/plugin.py:107 |
| out of range, by env | none | Invalid baremetal client version '1.999', exit 1 [observed] | osc-lib:osc_lib/utils/__init__.py:467 |
Negotiation itself is in 03 § 3.
Client-side checks
- Version gates: nearly all version checks are the server's. The exceptions are runbooks, at 1.112:
--descriptionon create, set and unset (ironicclient/osc/v1/baremetal_runbook.py:119,ironicclient/osc/v1/baremetal_runbook.py:256,ironicclient/osc/v1/baremetal_runbook.py:359) and the 4 trait operations (ironicclient/v1/runbook.py:174,ironicclient/v1/runbook.py:206,ironicclient/v1/runbook.py:240,ironicclient/v1/runbook.py:270).check_api_version_supportcompares with the version the client is set to, not with the server's (ironicclient/common/utils.py:522), and accepts an unparsable version. - List arguments: a negative
--limitis refused before any request, for exampleironicclient/osc/v1/baremetal_node.py:958[observed].--fieldschoices come from the*_DETAILED_RESOURCEtables ofironicclient/v1/resource_fields.py:269. - Exclusive arguments:
--clean-stepsor--runbookis required onclean(ironicclient/osc/v1/baremetal_node.py:338).--runbookwith--disable-ramdiskis refused atironicclient/osc/v1/baremetal_node.py:117[observed].
Value conversion
- **
key=valueincreateand in--extra-style options**: split on the first=, and the value is parsed as JSON if possible (ironicclient/common/utils.py:52), so--extra a=1gives a number. - **
setandunsetsend a JSON Patch**:args_array_to_patchbuildsaddorremoveoperations (ironicclient/common/utils.py:108).setusesadd, neverreplace. Each value goes through the same JSON parsing, so--name 123sends a number [observed]. - JSON arguments (
--steps,--deploy-steps,--network-data, and so on) accept a JSON string, a YAML or JSON file, or-for stdin (ironicclient/common/utils.py:449). A file is checked first (ironicclient/common/utils.py:403).
Several resources in one command
| Behaviour | Commands | Source |
|---|---|---|
| continue, print each success, report all failures at the end, exit 1 [observed] | every delete, trait add and remove | ironicclient/osc/v1/baremetal_node.py:719 |
| stop at the first failure; earlier resources stay changed [observed] | provision states, power, boot device, boot mode, secure boot, console, maintenance, inject NMI, node set, node unset | ironicclient/osc/v1/baremetal_node.py:122, ironicclient/osc/v1/baremetal_node.py:1208 |
Lists
--limit absent: one request, next is ignored. --limit 0: follow next to the end. --limit N: send limit=N, follow next until N items are there (ironicclient/common/base.py:189) [observed]. --marker is passed through. --sort is applied by the client, on the page received (ironicclient/osc/v1/baremetal_node.py:994). --long asks for detail, --fields for a subset; they exclude each other in the parser and in the manager (ironicclient/v1/node.py:1453).
2. Functional description by resource
Nodes (baremetal node, 51 commands)
A node is one physical server managed by Ironic. Commands fall into groups:
- Registration:
createneeds--driver. It sends aPOST /v1/nodesholding only the options given (ironicclient/osc/v1/baremetal_node.py:668), and hideslinks,ports,portgroups,statesandvolumefrom the result (ironicclient/osc/v1/baremetal_node.py:686).deleteunregisters. - Read:
listhas 27 filter and display options, translated atironicclient/v1/node.py:1457.show --instancelooks a node up by Nova instance, throughGET /v1/nodes/detail?instance_uuid=, and reportsNot Foundunless exactly one node matches (ironicclient/v1/node.py:363) [observed].validateshows the result per driver interface (ironicclient/osc/v1/baremetal_node.py:2126). - Provision state: 13 commands send
PUT /v1/nodes/{id}/states/provisionwith atarget(ironicclient/v1/node.py:785). The command name and the target often differ: | Command | Target |--waitexpects | Poll interval | Extra | |---|---|---|---|---| |manage|manage|manageable| 2 s | | |provide|provide|available| 10 s | | |inspect|inspect|manageable| 2 s | | |deploy|active|active| 10 s |--config-drive,--deploy-steps| |undeploy|deleted|available| 10 s | | |rebuild|rebuild|active| 10 s |--config-drive,--deploy-steps| |clean|clean|manageable| 10 s |--clean-stepsor--runbook;--disable-ramdisk| |service|service|active| 10 s |--service-stepsor--runbook;--disable-ramdisk| |rescue|rescue|rescue| 10 s |--rescue-passwordrequired | |unrescue|unrescue|active| 10 s | | |adopt|adopt|active| 2 s | | |abort|abort| no--wait| | | |unhold|unhold| no--wait| | | Sources:ironicclient/v1/utils.py:27,ironicclient/osc/v1/baremetal_node.py:61. These calls only start the action: the response comes before the end of it.--waitis client-side polling, see 05. The response code and the node states come from Ironic; seereverse-spec-ironic/. - Config drive (
ironicclient/v1/node.py:787): a JSON object is sent as is. A file is read, and sent as JSON if it holds JSON, otherwise as text. A directory is made into an ISO by a local binary (ironicclient/common/utils.py:261). Any other string fails, despite the help. - Power and boot:
power on,power off [--soft],reboot [--soft]with--power-timeout(ironicclient/v1/node.py:572);softmaps tosoft power offandsoft rebooting[observed].boot device set|show,boot mode set,secure boot on|off,inject nmi,console enable|disable|show,maintenance set|unset. - Attributes:
setandunsetcover the fields ofironicclient/osc/v1/baremetal_node.py:1689, interfaces,properties,extra,driver_info,instance_infoandnetwork_data.--target-raid-configuses its ownPUT .../states/raid, sent first, because the node may be renamed in the same command (ironicclient/osc/v1/baremetal_node.py:1678).--reset-interfacesneeds--driverand goes as a query parameter (ironicclient/v1/node.py:390). No value given: a warningPlease specify what to set., exit 0 (ironicclient/osc/v1/baremetal_node.py:1748). - Traits:
trait add|list|remove.add traitandremove traitare older names of the same classes, kept for compatibility (pyproject.toml:74).remove --allis oneDELETE .../traits. - VIFs:
vif attach|detach|list, with free--vif-info key=valueentries;idis reserved (ironicclient/v1/node.py:494). - Inventory data:
bios setting list|show,firmware list,history list|get,inventory save,children list.inventory saveprints JSON on stdout, or writes--file(ironicclient/osc/v1/baremetal_node.py:2604). - Vendor passthru:
passthru list,passthru callwith--http-methodand--arg. The answer is printed raw (ironicclient/osc/v1/baremetal_node.py:1130).
Ports, port groups, volume connectors and targets
The NICs and storage links of a node. CRUD on /v1/ports, /v1/portgroups, /v1/volume/connectors, /v1/volume/targets. port show --address and port group show --address look up through a filtered list and need exactly one match (ironicclient/v1/port.py:76, ironicclient/v1/portgroup.py:105). volume target create refuses a negative --boot-index (ironicclient/osc/v1/baremetal_volume_target.py:99).
Allocations
Ask Ironic to pick a node: allocation create needs --resource-class, or --node for a backfill (ironicclient/osc/v1/baremetal_allocation.py:103). --wait polls every second (ironicclient/v1/allocation.py:89). Failure shows last_error.
Chassis, conductors, shards, drivers
chassis: plain CRUD on/v1/chassis.conductor list|show,shard list: read only.driver listalways sendsdetail=(ironicclient/osc/v1/baremetal_driver.py:74).driver showhideslinksandproperties.driver property list,driver raid property list,driver passthru list|call.
Deploy templates, runbooks, inspection rules
deploy template: CRUD on/v1/deploy_templates,--stepsrequired on create.runbook: CRUD on/v1/runbooksplustrait add|list|remove.--publicand--disable-ramdisktake an explicit boolean string (ironicclient/common/utils.py:324).inspection rule: CRUD on/v1/inspection_rules,--actionsrequired,--conditionsoptional, JSON values. See the defects in 02 § 5. No unit test covers these 6 commands.
Bulk creation (baremetal create)
Reads .yaml or .json files that may nest chassis → nodes → portgroups → ports (ironicclient/v1/create_resources.py:26). It first validates all files against a small JSON schema, and creates nothing if one fails (ironicclient/v1/create_resources.py:69). It then creates each resource in turn, skips the children of a failed parent, and reports all errors at the end (ironicclient/v1/create_resources.py:80). Nothing is rolled back. traits on a node goes through a separate PUT (ironicclient/v1/create_resources.py:184).
3. The baremetal shell
ironicclient/shell.py:108 is a cliff App with the same entry points and with the baremetal prefix removed from the names (ironicclient/shell.py:95). Differences from the plugin:
| Topic | openstack baremetal | baremetal | Source |
|---|---|---|---|
| Default auth | Keystone password flow | none | ironicclient/shell.py:33 |
| Endpoint | catalog or override | --os-endpoint [observed], clouds.yaml, catalog | ironicclient/shell.py:78 |
| Default version | 1.115 with downgrade | same [observed] | ironicclient/shell.py:67 |
--os-baremetal-api-version 1.N | checked against a list | not checked by the parser | ironicclient/shell.py:130 |
latest | replaced by 1.115, first request has no GET /v1 | passed through: negotiates first, GET /v1 then the request [observed] | ironicclient/common/http.py:436 |
| Retries | fixed at 5 and 2 s | --max-retries, --retry-interval [observed with 0] | ironicclient/shell.py:138 |
With no endpoint and no credentials: The Bare Metal API endpoint cannot be detected…, exit 1 [observed].
4. Python API
Both shells use it, and other tools can too (ironicclient/client.py:30, ironicclient/client.py:132).
get_client('1', endpoint=…, token=…)picks the auth type:admin_tokenornonewith an endpoint,tokenwith a token and URL, otherwisepassword(ironicclient/client.py:74). It does not readclouds.yaml(ironicclient/client.py:88).Clientholds one manager per resource (ironicclient/v1/client.py:105).- Each manager method takes
os_ironic_api_versionandglobal_request_id, for one request (ironicclient/common/base.py:223). - Passing no version uses the cache, or 1.9 (
ironicclient/common/http.py:44,ironicclient/v1/client.py:82). This is the only path that reads the cache, and the default differs a lot from the 1.115 of the shells. - Methods without a command, from
_rewrite/python-api-probe_stable-2026.2.json:chassis.list_nodes,driver.update,driver.delete,events.create,node.list_ports,node.list_volume_connectors,node.list_volume_targets,node.states,portgroup.list_ports.driver.updateanddriver.deletetarget routes that Ironic's reverse-spec does not list, and that were not found in its driver controller [inferred]. wait_for_provision_stateandallocation.waitare usable directly, with a custompoll_delay_function.
5. Which request each option produces
_rewrite/wire-options_stable-2026.2.json has one run per optional argument: 397 runs against the {} stub. options_on_wire in _rewrite/client-contract_stable-2026.2.json is the short form: route, query parameters, body keys or patch paths. Example, --chassis on node list becomes the query parameter chassis_uuid, and --port-group on port create becomes the body key portgroup_uuid.
6. All commands
Generated from _rewrite/client-contract_stable-2026.2.json. "Requests observed" joins the runs against the 404 and {} stubs with synthetic arguments, and reflects the client only. A few commands need one option to send anything; it is added by the EXTRA table of _rewrite/probe_plugin_stable-2026.2.py. {id} stands for any name or UUID.
(top level) (1)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal create | Create resources from files | ironicclient/osc/v1/baremetal_create.py:23 | none | 1 (1) | 2 | POST /v1/chassis |
allocation (6)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal allocation create | Create a new baremetal allocation. | ironicclient/osc/v1/baremetal_allocation.py:31 | single | 9 (0) | 8 | POST /v1/allocations |
baremetal allocation delete | Unregister baremetal allocation(s). | ironicclient/osc/v1/baremetal_allocation.py:274 | none | 1 (1) | 3 | DELETE /v1/allocations/{id} |
baremetal allocation list | List baremetal allocations. | ironicclient/osc/v1/baremetal_allocation.py:169 | list | 9 (0) | 9 | GET /v1/allocations |
baremetal allocation set | Set baremetal allocation properties. | ironicclient/osc/v1/baremetal_allocation.py:311 | none | 3 (1) | 3 | PATCH /v1/allocations/{id} |
baremetal allocation show | Show baremetal allocation details. | ironicclient/osc/v1/baremetal_allocation.py:125 | single | 2 (1) | 2 | GET /v1/allocations/{id} |
baremetal allocation unset | Unset baremetal allocation properties. | ironicclient/osc/v1/baremetal_allocation.py:361 | none | 3 (1) | 5 | PATCH /v1/allocations/{id} |
chassis (6)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal chassis create | Create a new chassis. | ironicclient/osc/v1/baremetal_chassis.py:34 | single | 3 (0) | 4 | POST /v1/chassis |
baremetal chassis delete | Delete a chassis. | ironicclient/osc/v1/baremetal_chassis.py:85 | none | 1 (1) | 3 | DELETE /v1/chassis/{id} |
baremetal chassis list | List the chassis. | ironicclient/osc/v1/baremetal_chassis.py:123 | list | 5 (0) | 6 | GET /v1/chassis |
baremetal chassis set | Set chassis properties. | ironicclient/osc/v1/baremetal_chassis.py:211 | none | 3 (1) | 4 | PATCH /v1/chassis/{id} |
baremetal chassis show | Show chassis details. | ironicclient/osc/v1/baremetal_chassis.py:261 | single | 2 (1) | 5 | GET /v1/chassis/{id} |
baremetal chassis unset | Unset chassis properties. | ironicclient/osc/v1/baremetal_chassis.py:307 | none | 3 (1) | 4 | PATCH /v1/chassis/{id} |
conductor (2)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal conductor list | List baremetal conductors | ironicclient/osc/v1/baremetal_conductor.py:34 | list | 5 (0) | 5 | GET /v1/conductors |
baremetal conductor show | Show baremetal conductor details | ironicclient/osc/v1/baremetal_conductor.py:120 | single | 2 (1) | 5 | GET /v1/conductors/{id} |
deploy template (6)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal deploy template create | Create a new deploy template | ironicclient/osc/v1/baremetal_deploy_template.py:40 | single | 4 (2) | 4 | POST /v1/deploy_templates |
baremetal deploy template delete | Delete deploy template(s). | ironicclient/osc/v1/baremetal_deploy_template.py:246 | none | 1 (1) | 4 | DELETE /v1/deploy_templates/{id} |
baremetal deploy template list | List baremetal deploy templates. | ironicclient/osc/v1/baremetal_deploy_template.py:284 | list | 5 (0) | 5 | GET /v1/deploy_templates |
baremetal deploy template set | Set baremetal deploy template properties. | ironicclient/osc/v1/baremetal_deploy_template.py:143 | none | 4 (1) | 3 | PATCH /v1/deploy_templates/{id} |
baremetal deploy template show | Show baremetal deploy template details. | ironicclient/osc/v1/baremetal_deploy_template.py:97 | single | 2 (1) | 2 | GET /v1/deploy_templates/{id} |
baremetal deploy template unset | Unset baremetal deploy template properties. | ironicclient/osc/v1/baremetal_deploy_template.py:203 | none | 2 (1) | 4 | PATCH /v1/deploy_templates/{id} |
driver (6)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal driver list | List the enabled drivers. | ironicclient/osc/v1/baremetal_driver.py:32 | list | 3 (0) | 7 | GET /v1/drivers |
baremetal driver passthru call | Call a vendor passthru method for a driver. | ironicclient/osc/v1/baremetal_driver.py:156 | single | 4 (2) | 3 | POST /v1/drivers/{id}/vendor_passthru/{id} |
baremetal driver passthru list | List available vendor passthru methods for a driver. | ironicclient/osc/v1/baremetal_driver.py:211 | list | 1 (1) | 2 | GET /v1/drivers/{id}/vendor_passthru/methods |
baremetal driver property list | List the driver properties. | ironicclient/osc/v1/baremetal_driver.py:100 | list | 1 (1) | 2 | GET /v1/drivers/{id}/properties |
baremetal driver raid property list | List a driver's RAID logical disk properties. | ironicclient/osc/v1/baremetal_driver.py:128 | list | 1 (1) | 2 | GET /v1/drivers/{id}/raid/logical_disk_properties |
baremetal driver show | Show information about a driver. | ironicclient/osc/v1/baremetal_driver.py:249 | single | 2 (1) | 5 | GET /v1/drivers/{id} |
inspection rule (6)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal inspection rule create | Create a new rule | ironicclient/osc/v1/baremetal_inspection_rule.py:32 | single | 7 (1) | 0 | POST /v1/inspection_rules |
baremetal inspection rule delete | Delete rule(s). | ironicclient/osc/v1/baremetal_inspection_rule.py:304 | none | 1 (1) | 0 | DELETE /v1/inspection_rules/{id} |
baremetal inspection rule list | List baremetal rules. | ironicclient/osc/v1/baremetal_inspection_rule.py:350 | list | 5 (0) | 0 | GET /v1/inspection_rules |
baremetal inspection rule set | Set baremetal rule properties. | ironicclient/osc/v1/baremetal_inspection_rule.py:151 | none | 6 (1) | 0 | PATCH /v1/inspection_rules/{id} |
baremetal inspection rule show | Show baremetal rule details. | ironicclient/osc/v1/baremetal_inspection_rule.py:105 | single | 2 (1) | 0 | GET /v1/inspection_rules/{id} |
baremetal inspection rule unset | Unset baremetal rule properties. | ironicclient/osc/v1/baremetal_inspection_rule.py:227 | none | 6 (1) | 0 | PATCH /v1/inspection_rules/{id} |
node (51)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal node abort | Set provision state of baremetal node to 'abort' | ironicclient/osc/v1/baremetal_node.py:196 | none | 2 (1) | 1 | PUT /v1/nodes/{id}/states/provision |
baremetal node add trait | Add traits to a node. | ironicclient/osc/v1/baremetal_node.py:2309 | none | 2 (2) | 4 | PUT /v1/nodes/{id}/traits/{id} |
baremetal node adopt | Set provision state of baremetal node to 'adopt' | ironicclient/osc/v1/baremetal_node.py:204 | none | 3 (1) | 3 | PUT /v1/nodes/{id}/states/provision |
baremetal node bios setting list | List a node's BIOS settings. | ironicclient/osc/v1/baremetal_node.py:2400 | list | 3 (1) | 3 | GET /v1/nodes/{id}/bios |
baremetal node bios setting show | Show a specific BIOS setting for a node. | ironicclient/osc/v1/baremetal_node.py:2464 | single | 2 (2) | 1 | GET /v1/nodes/{id}/bios/{id} |
baremetal node boot device set | Set the boot device for a node | ironicclient/osc/v1/baremetal_node.py:212 | none | 3 (2) | 4 | PUT /v1/nodes/{id}/management/boot_device |
baremetal node boot device show | Show the boot device information for a node | ironicclient/osc/v1/baremetal_node.py:252 | single | 2 (1) | 2 | GET /v1/nodes/{id}/management/boot_device |
baremetal node boot mode set | Set the boot mode for the next baremetal node deployment | ironicclient/osc/v1/baremetal_node.py:295 | none | 2 (2) | 1 | PUT /v1/nodes/{id}/states/boot_mode |
baremetal node children list | Get a list of nodes associated as children. | ironicclient/osc/v1/baremetal_node.py:2611 | single | 1 (1) | 1 | GET /v1/nodes/{id}/children |
baremetal node clean | Set provision state of baremetal node to 'clean' | ironicclient/osc/v1/baremetal_node.py:328 | none | 6 (1) | 9 | PUT /v1/nodes/{id}/states/provision |
baremetal node console disable | Disable console access for a node | ironicclient/osc/v1/baremetal_node.py:400 | none | 1 (1) | 1 | PUT /v1/nodes/{id}/states/console |
baremetal node console enable | Enable console access for a node | ironicclient/osc/v1/baremetal_node.py:426 | none | 1 (1) | 1 | PUT /v1/nodes/{id}/states/console |
baremetal node console show | Show console information for a node | ironicclient/osc/v1/baremetal_node.py:452 | single | 1 (1) | 1 | GET /v1/nodes/{id}/states/console |
baremetal node create | Register a new node with the baremetal service | ironicclient/osc/v1/baremetal_node.py:482 | single | 32 (1) | 33 | POST /v1/nodes |
baremetal node delete | Unregister baremetal node(s) | ironicclient/osc/v1/baremetal_node.py:697 | none | 1 (1) | 3 | DELETE /v1/nodes/{id} |
baremetal node deploy | Set provision state of baremetal node to 'deploy' | ironicclient/osc/v1/baremetal_node.py:732 | none | 5 (1) | 7 | PUT /v1/nodes/{id}/states/provision |
baremetal node firmware list | List all Firmware Components of a node | ironicclient/osc/v1/baremetal_node.py:2646 | list | 1 (1) | 1 | GET /v1/nodes/{id}/firmware |
baremetal node history get | Get history event for a baremetal node. | ironicclient/osc/v1/baremetal_node.py:2540 | single | 2 (2) | 1 | GET /v1/nodes/{id}/history/{id} |
baremetal node history list | Get history events for a baremetal node. | ironicclient/osc/v1/baremetal_node.py:2499 | list | 2 (1) | 1 | GET /v1/nodes/{id}/history |
baremetal node inject nmi | Inject NMI to baremetal node | ironicclient/osc/v1/baremetal_node.py:2252 | none | 1 (1) | 2 | PUT /v1/nodes/{id}/management/inject_nmi |
baremetal node inspect | Set provision state of baremetal node to 'inspect' | ironicclient/osc/v1/baremetal_node.py:763 | none | 3 (1) | 4 | PUT /v1/nodes/{id}/states/provision |
baremetal node inventory save | Get hardware inventory of a node (in JSON format) or save it to file. | ironicclient/osc/v1/baremetal_node.py:2579 | none | 2 (1) | 1 | GET /v1/nodes/{id}/inventory |
baremetal node list | List baremetal nodes | ironicclient/osc/v1/baremetal_node.py:771 | list | 27 (0) | 32 | GET /v1/nodes |
baremetal node maintenance set | Set baremetal node to maintenance mode | ironicclient/osc/v1/baremetal_node.py:1001 | none | 2 (1) | 3 | PUT /v1/nodes/{id}/maintenance |
baremetal node maintenance unset | Unset baremetal node from maintenance mode | ironicclient/osc/v1/baremetal_node.py:1035 | none | 1 (1) | 2 | DELETE /v1/nodes/{id}/maintenance |
baremetal node manage | Set provision state of baremetal node to 'manage' | ironicclient/osc/v1/baremetal_node.py:1062 | none | 3 (1) | 4 | PUT /v1/nodes/{id}/states/provision |
baremetal node passthru call | Call a vendor passthru method for a node | ironicclient/osc/v1/baremetal_node.py:1078 | none | 4 (2) | 3 | POST /v1/nodes/{id}/vendor_passthru/{id} |
baremetal node passthru list | List vendor passthru methods for a node | ironicclient/osc/v1/baremetal_node.py:1133 | list | 1 (1) | 1 | GET /v1/nodes/{id}/vendor_passthru/methods |
baremetal node power off | Power off a node | ironicclient/osc/v1/baremetal_node.py:1214 | none | 3 (1) | 6 | PUT /v1/nodes/{id}/states/power |
baremetal node power on | Power on a node | ironicclient/osc/v1/baremetal_node.py:1234 | none | 2 (1) | 3 | PUT /v1/nodes/{id}/states/power |
baremetal node provide | Set provision state of baremetal node to 'provide' | ironicclient/osc/v1/baremetal_node.py:1242 | none | 3 (1) | 4 | PUT /v1/nodes/{id}/states/provision |
baremetal node reboot | Reboot baremetal node | ironicclient/osc/v1/baremetal_node.py:1250 | none | 3 (1) | 5 | PUT /v1/nodes/{id}/states/power |
baremetal node rebuild | Set provision state of baremetal node to 'rebuild' | ironicclient/osc/v1/baremetal_node.py:1295 | none | 5 (1) | 5 | PUT /v1/nodes/{id}/states/provision |
baremetal node remove trait | Remove trait(s) from a node. | ironicclient/osc/v1/baremetal_node.py:2349 | none | 3 (1) | 6 | DELETE /v1/nodes/{id}/traits |
baremetal node rescue | Set provision state of baremetal node to 'rescue' | ironicclient/osc/v1/baremetal_node.py:1326 | none | 4 (2) | 4 | PUT /v1/nodes/{id}/states/provision |
baremetal node secure boot off | Turn secure boot off | ironicclient/osc/v1/baremetal_node.py:1373 | none | 1 (1) | 1 | PUT /v1/nodes/{id}/states/secure_boot |
baremetal node secure boot on | Turn secure boot on | ironicclient/osc/v1/baremetal_node.py:1347 | none | 1 (1) | 1 | PUT /v1/nodes/{id}/states/secure_boot |
baremetal node service | Set provision state of baremetal node to 'service' | ironicclient/osc/v1/baremetal_node.py:364 | none | 6 (1) | 8 | PUT /v1/nodes/{id}/states/provision |
baremetal node set | Set baremetal properties | ironicclient/osc/v1/baremetal_node.py:1399 | none | 54 (1) | 59 | PATCH /v1/nodes/{id} |
baremetal node show | Show baremetal node details | ironicclient/osc/v1/baremetal_node.py:1751 | single | 3 (1) | 6 | GET /v1/nodes/{id} |
baremetal node trait add | Add traits to a node. | ironicclient/osc/v1/baremetal_node.py:2309 | none | 2 (2) | 4 | PUT /v1/nodes/{id}/traits/{id} |
baremetal node trait list | List a node's traits. | ironicclient/osc/v1/baremetal_node.py:2279 | list | 1 (1) | 1 | GET /v1/nodes/{id}/traits |
baremetal node trait remove | Remove trait(s) from a node. | ironicclient/osc/v1/baremetal_node.py:2349 | none | 3 (1) | 6 | DELETE /v1/nodes/{id}/traits |
baremetal node undeploy | Set provision state of baremetal node to 'deleted' | ironicclient/osc/v1/baremetal_node.py:1810 | none | 3 (1) | 4 | PUT /v1/nodes/{id}/states/provision |
baremetal node unhold | Set provision state of baremetal node to 'unhold' | ironicclient/osc/v1/baremetal_node.py:1070 | none | 2 (1) | 1 | PUT /v1/nodes/{id}/states/provision |
baremetal node unrescue | Set provision state of baremetal node to 'unrescue' | ironicclient/osc/v1/baremetal_node.py:1818 | none | 3 (1) | 3 | PUT /v1/nodes/{id}/states/provision |
baremetal node unset | Unset baremetal properties | ironicclient/osc/v1/baremetal_node.py:1826 | none | 36 (1) | 38 | PATCH /v1/nodes/{id} |
baremetal node validate | Validate a node's driver interfaces | ironicclient/osc/v1/baremetal_node.py:2102 | list | 1 (1) | 2 | GET /v1/nodes/{id}/validate |
baremetal node vif attach | Attach VIF to a given node | ironicclient/osc/v1/baremetal_node.py:2170 | none | 5 (2) | 4 | POST /v1/nodes/{id}/vifs |
baremetal node vif detach | Detach VIF from a given node | ironicclient/osc/v1/baremetal_node.py:2223 | none | 2 (2) | 1 | DELETE /v1/nodes/{id}/vifs/{id} |
baremetal node vif list | Show attached VIFs for a node | ironicclient/osc/v1/baremetal_node.py:2139 | list | 1 (1) | 1 | GET /v1/nodes/{id}/vifs |
port (6)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal port create | Create a new port | ironicclient/osc/v1/baremetal_port.py:34 | single | 13 (2) | 13 | POST /v1/ports |
baremetal port delete | Delete port(s). | ironicclient/osc/v1/baremetal_port.py:497 | none | 1 (1) | 4 | DELETE /v1/ports/{id} |
baremetal port list | List baremetal ports. | ironicclient/osc/v1/baremetal_port.py:534 | list | 8 (0) | 8 | GET /v1/ports |
baremetal port set | Set baremetal port properties. | ironicclient/osc/v1/baremetal_port.py:334 | none | 14 (1) | 15 | PATCH /v1/ports/{id} |
baremetal port show | Show baremetal port details. | ironicclient/osc/v1/baremetal_port.py:157 | single | 3 (1) | 3 | GET /v1/ports/{id} |
baremetal port unset | Unset baremetal port properties. | ironicclient/osc/v1/baremetal_port.py:219 | none | 10 (1) | 11 | PATCH /v1/ports/{id} |
port group (6)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal port group create | Create a new baremetal port group. | ironicclient/osc/v1/baremetal_portgroup.py:34 | single | 11 (1) | 9 | POST /v1/portgroups |
baremetal port group delete | Unregister baremetal port group(s). | ironicclient/osc/v1/baremetal_portgroup.py:299 | none | 1 (1) | 3 | DELETE /v1/portgroups/{id} |
baremetal port group list | List baremetal port groups. | ironicclient/osc/v1/baremetal_portgroup.py:192 | list | 8 (0) | 8 | GET /v1/portgroups |
baremetal port group set | Set baremetal port group properties. | ironicclient/osc/v1/baremetal_portgroup.py:336 | none | 11 (1) | 14 | PATCH /v1/portgroups/{id} |
baremetal port group show | Show baremetal port group details. | ironicclient/osc/v1/baremetal_portgroup.py:132 | single | 3 (1) | 3 | GET /v1/portgroups/{id} |
baremetal port group unset | Unset baremetal port group properties. | ironicclient/osc/v1/baremetal_portgroup.py:466 | none | 7 (1) | 9 | PATCH /v1/portgroups/{id} |
runbook (9)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal runbook create | Create a new runbook | ironicclient/osc/v1/baremetal_runbook.py:40 | single | 8 (2) | 7 | POST /v1/runbooks |
baremetal runbook delete | Delete runbook(s). | ironicclient/osc/v1/baremetal_runbook.py:385 | none | 1 (1) | 4 | DELETE /v1/runbooks/{id} |
baremetal runbook list | List baremetal runbooks. | ironicclient/osc/v1/baremetal_runbook.py:423 | list | 5 (0) | 5 | GET /v1/runbooks |
baremetal runbook set | Set baremetal runbook properties. | ironicclient/osc/v1/baremetal_runbook.py:187 | none | 8 (1) | 5 | PATCH /v1/runbooks/{id} |
baremetal runbook show | Show baremetal runbook details. | ironicclient/osc/v1/baremetal_runbook.py:141 | single | 2 (1) | 2 | GET /v1/runbooks/{id} |
baremetal runbook trait add | Add traits to a runbook. | ironicclient/osc/v1/baremetal_runbook.py:541 | none | 2 (2) | 2 | PUT /v1/runbooks/{id}/traits/{id} |
baremetal runbook trait list | List a runbook's traits. | ironicclient/osc/v1/baremetal_runbook.py:513 | list | 1 (1) | 1 | GET /v1/runbooks/{id}/traits |
baremetal runbook trait remove | Remove trait(s) from a runbook. | ironicclient/osc/v1/baremetal_runbook.py:579 | none | 3 (1) | 3 | DELETE /v1/runbooks/{id}/traits |
baremetal runbook unset | Unset baremetal runbook properties. | ironicclient/osc/v1/baremetal_runbook.py:299 | none | 7 (1) | 6 | PATCH /v1/runbooks/{id} |
shard (1)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal shard list | List baremetal shards. | ironicclient/osc/v1/baremetal_shard.py:27 | list | 0 (0) | 1 | GET /v1/shards |
volume connector (6)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal volume connector create | Create a new baremetal volume connector. | ironicclient/osc/v1/baremetal_volume_connector.py:33 | single | 5 (3) | 7 | POST /v1/volume/connectors |
baremetal volume connector delete | Unregister baremetal volume connector(s). | ironicclient/osc/v1/baremetal_volume_connector.py:244 | none | 1 (1) | 5 | DELETE /v1/volume/connectors/{id} |
baremetal volume connector list | List baremetal volume connectors. | ironicclient/osc/v1/baremetal_volume_connector.py:147 | list | 6 (0) | 12 | GET /v1/volume/connectors |
baremetal volume connector set | Set baremetal volume connector properties. | ironicclient/osc/v1/baremetal_volume_connector.py:282 | none | 5 (1) | 9 | PATCH /v1/volume/connectors/{id} |
baremetal volume connector show | Show baremetal volume connector details. | ironicclient/osc/v1/baremetal_volume_connector.py:99 | single | 2 (1) | 4 | GET /v1/volume/connectors/{id} |
baremetal volume connector unset | Unset baremetal volume connector properties. | ironicclient/osc/v1/baremetal_volume_connector.py:351 | none | 2 (1) | 4 | PATCH /v1/volume/connectors/{id} |
volume target (6)
| Command | Purpose | Defined at | Output | Args (required) | Unit vectors | Requests observed |
|---|---|---|---|---|---|---|
baremetal volume target create | Create a new baremetal volume target. | ironicclient/osc/v1/baremetal_volume_target.py:33 | single | 7 (4) | 9 | POST /v1/volume/targets |
baremetal volume target delete | Unregister baremetal volume target(s). | ironicclient/osc/v1/baremetal_volume_target.py:261 | none | 1 (1) | 5 | DELETE /v1/volume/targets/{id} |
baremetal volume target list | List baremetal volume targets. | ironicclient/osc/v1/baremetal_volume_target.py:164 | list | 6 (0) | 12 | GET /v1/volume/targets |
baremetal volume target set | Set baremetal volume target properties. | ironicclient/osc/v1/baremetal_volume_target.py:299 | none | 7 (1) | 13 | PATCH /v1/volume/targets/{id} |
baremetal volume target show | Show baremetal volume target details. | ironicclient/osc/v1/baremetal_volume_target.py:118 | single | 2 (1) | 5 | GET /v1/volume/targets/{id} |
baremetal volume target unset | Unset baremetal volume target properties. | ironicclient/osc/v1/baremetal_volume_target.py:391 | none | 3 (1) | 6 | PATCH /v1/volume/targets/{id} |
Source: reverse-spec-python-ironicclient/01-cli-commands_stable-2026.2.md. The _rewrite/ and _inventory/ files are not published on the site.