Onboard baremetal appliances into Ironic from Rackspace
DCX inventory data alone, when there is no BMC access and no NIC MACs.
The new `enroll-dcx-netdev <device_number> --name-prefix Thing` command
fetches a device's switch ports and location from the DCX API, then
reuses `netdev_reconciler.enroll()` to create (idempotently) a netdev
Ironic node `<prefix>-<device_number>` with a baremetal port per data
port.
Per port it sets local_link_connection (placeholder switch_id,
switch_info from the DCX switch hostname, port_id Ethernet1/<n>),
category=network, a deterministic locally-administered MAC (stable
across re-runs), and a physical_network derived from the switch pair.
The node's extra carries external_cmdb_id,
rack, and position. resource_class defaults to the lowercased name
prefix.
DCX auth token is read from DCX_TOKEN; OS_CLOUD selects the Ironic
target. --dry-run builds and logs the payload without touching Ironic.
Onboard baremetal appliances into Ironic from Rackspace
DCX inventory data alone, when there is no BMC access and no NIC MACs.
The new enroll-dcx-netdev <device_number> --name-prefix Thing command
fetches a device's switch ports and location from the DCX API, then
reuses netdev_reconciler.enroll() to create (idempotently) a netdev
Ironic node <prefix>-<device_number> with a baremetal port per data
port.
Per port it sets local_link_connection (placeholder switch_id,
switch_info from the DCX switch hostname, port_id Ethernet1/),
category=network, a deterministic locally-administered MAC (stable
across re-runs), and a physical_network derived from the switch pair.
The node's extra carries external_cmdb_id,
rack, and position. resource_class defaults to the lowercased name
prefix.
DCX auth token is read from DCX_TOKEN; OS_CLOUD selects the Ironic
target. --dry-run builds and logs the payload without touching Ironic.