Update api-ref for dynamic drivers

Updates reference for drivers API as well as nodes API to match the
merged driver composition reform work.

Change-Id: I89a7b1998a858d5c39f21c6653893aa8d7ad15bd
Partial-Bug: 1524745
This commit is contained in:
Mario Villaplana 2017-02-02 22:00:18 +00:00
parent 1275a275de
commit d33faedbac
15 changed files with 745 additions and 89 deletions

View File

@ -11,12 +11,13 @@ fi
OS_AUTH_TOKEN=$(openstack token issue | grep ' id ' | awk '{print $4}') OS_AUTH_TOKEN=$(openstack token issue | grep ' id ' | awk '{print $4}')
IRONIC_URL="http://127.0.0.1:6385" IRONIC_URL="http://127.0.0.1:6385"
IRONIC_API_VERSION="1.29" IRONIC_API_VERSION="1.31"
export OS_AUTH_TOKEN IRONIC_URL export OS_AUTH_TOKEN IRONIC_URL
DOC_CHASSIS_UUID="dff29d23-1ded-43b4-8ae1-5eebb3e30de1" DOC_CHASSIS_UUID="dff29d23-1ded-43b4-8ae1-5eebb3e30de1"
DOC_NODE_UUID="6d85703a-565d-469a-96ce-30b6de53079d" DOC_NODE_UUID="6d85703a-565d-469a-96ce-30b6de53079d"
DOC_DYNAMIC_NODE_UUID="2b045129-a906-46af-bc1a-092b294b3428"
DOC_PORT_UUID="d2b30520-907d-46c8-bfee-c5586e6fb3a1" DOC_PORT_UUID="d2b30520-907d-46c8-bfee-c5586e6fb3a1"
DOC_PORTGROUP_UUID="e43c722c-248e-4c6e-8ce8-0d8ff129387a" DOC_PORTGROUP_UUID="e43c722c-248e-4c6e-8ce8-0d8ff129387a"
DOC_PROVISION_UPDATED_AT="2016-08-18T22:28:49.946416+00:00" DOC_PROVISION_UPDATED_AT="2016-08-18T22:28:49.946416+00:00"
@ -91,7 +92,8 @@ GET 'v1' > api-v1-root-response.json
########### ###########
# DRIVER APIs # DRIVER APIs
GET v1/drivers > drivers-list-response.json GET v1/drivers > drivers-list-response.json
GET v1/drivers/agent_ipmitool > driver-get-response.json GET v1/drivers?detail=true > drivers-list-detail-response.json
GET v1/drivers/ipmi > driver-get-response.json
GET v1/drivers/agent_ipmitool/properties > driver-property-response.json GET v1/drivers/agent_ipmitool/properties > driver-property-response.json
GET v1/drivers/agent_ipmitool/raid/logical_disk_properties > driver-logical-disk-properties-response.json GET v1/drivers/agent_ipmitool/raid/logical_disk_properties > driver-logical-disk-properties-response.json
@ -124,7 +126,7 @@ PATCH v1/chassis/$CID chassis-update-request.json > chassis-update-response.json
# Create a node with a real driver, but missing ipmi_address, # Create a node with a real driver, but missing ipmi_address,
# then do basic commands with it # then do basic commands with it
POST v1/nodes node-create-request.json > node-create-response.json POST v1/nodes node-create-request-classic.json > node-create-response.json
NID=$(cat node-create-response.json | grep '"uuid"' | sed 's/.*"\([0-9a-f\-]*\)",*/\1/') NID=$(cat node-create-response.json | grep '"uuid"' | sed 's/.*"\([0-9a-f\-]*\)",*/\1/')
if [ "$NID" == "" ]; then if [ "$NID" == "" ]; then
exit 1 exit 1
@ -132,6 +134,16 @@ else
echo "Node created. UUID: $NID" echo "Node created. UUID: $NID"
fi fi
# Also create a node with a dynamic driver for viewing in the node list
# endpoint
DNID=$(POST v1/nodes node-create-request-dynamic.json | grep '"uuid"' | sed 's/.*"\([0-9a-f\-]*\)",*/\1/')
if [ "$DNID" == "" ]; then
exit 1
else
echo "Node created. UUID: $DNID"
fi
# get the list of passthru methods from agent* driver # get the list of passthru methods from agent* driver
GET v1/nodes/$NID/vendor_passthru/methods > node-vendor-passthru-response.json GET v1/nodes/$NID/vendor_passthru/methods > node-vendor-passthru-response.json
@ -251,6 +263,7 @@ GET v1/nodes/$NID/vifs > node-vif-list-response.json
# Replace automatically generated UUIDs by already used in documentation # Replace automatically generated UUIDs by already used in documentation
sed -i "s/$CID/$DOC_CHASSIS_UUID/" *.json sed -i "s/$CID/$DOC_CHASSIS_UUID/" *.json
sed -i "s/$NID/$DOC_NODE_UUID/" *.json sed -i "s/$NID/$DOC_NODE_UUID/" *.json
sed -i "s/$DNID/$DOC_DYNAMIC_NODE_UUID/" *.json
sed -i "s/$PID/$DOC_PORT_UUID/" *.json sed -i "s/$PID/$DOC_PORT_UUID/" *.json
sed -i "s/$PGID/$DOC_PORTGROUP_UUID/" *.json sed -i "s/$PGID/$DOC_PORTGROUP_UUID/" *.json
sed -i "s/$(hostname)/$DOC_IRONIC_CONDUCTOR_HOSTNAME/" *.json sed -i "s/$(hostname)/$DOC_IRONIC_CONDUCTOR_HOSTNAME/" *.json

View File

@ -4,18 +4,31 @@
Drivers (drivers) Drivers (drivers)
================= =================
A driver is a Python object containing all the logic to manage the bare metal Ironic has two types of drivers: *classic* drivers and *dynamic* drivers.
nodes enrolled within Ironic. A driver may be loaded within one or more
``ironic-conductor`` services. Each driver contains a pre-determined set of A *classic* driver is a Python object containing all the logic to manage the
instantiated interfaces. Each type of interface (eg, ``power`` or ``boot``) bare metal nodes enrolled within Ironic. A driver may be loaded within one or
more ``ironic-conductor`` services. Each driver contains a pre-determined set
of instantiated interfaces. Each type of interface (eg, ``power`` or ``boot``)
performs a specific hardware function. performs a specific hardware function.
As of API version 1.30, the REST API also exposes information about *dynamic*
drivers. *Dynamic* drivers are supported via hardware types, which are Python
classes enabled via entry points. Unlike *classic* drivers, which have
pre-determined interfaces, a hardware type may support multiple types of
interfaces. For example, the ``ipmi`` hardware type may support multiple
methods for enabling node console. Which interface a node of a particular
hardware type uses is determined at runtime. This collection of interfaces is
called a *dynamic* driver. For more information about this, see the node API
documentation.
The REST API exposes the list of drivers and which ``ironic-conductor`` The REST API exposes the list of drivers and which ``ironic-conductor``
processes have loaded that driver via the Driver resource (``/v1/drivers`` processes have loaded that driver via the Driver resource (``/v1/drivers``
endpoint). This can be useful for operators to validate their configuration in endpoint). This can be useful for operators to validate their configuration in
a heterogeneous hardware environment. Each ``ironic-conductor`` process may a heterogeneous hardware environment. Each ``ironic-conductor`` process may
load one or more drivers, and does not necessarily need to load the same load one or more drivers, and does not necessarily need to load the same
drivers as another ``ironic-conductor``. *classic* drivers as another ``ironic-conductor``. Each ``ironic-conductor``
with the same hardware types must have the same hardware interfaces enabled.
The REST API also exposes details about each driver, such as what properties The REST API also exposes details about each driver, such as what properties
must be supplied to a node's ``driver_info`` for that driver to manage must be supplied to a node's ``driver_info`` for that driver to manage
@ -40,6 +53,11 @@ Normal response codes: 200
Request Request
------- -------
.. rest_parameters:: parameters.yaml
- type: driver_type
- detail: driver_detail
Response Parameters Response Parameters
------------------- -------------------
@ -51,15 +69,46 @@ drivers supported by this Ironic service.
- drivers: drivers - drivers: drivers
- name: driver_name - name: driver_name
- hosts: hosts - hosts: hosts
- type: response_driver_type
- links: links - links: links
- properties: driver_property_links - properties: driver_property_links
Additionally, if the request has the "detail" URL parameter set to true, each
driver will also include the following fields.
.. rest_parameters:: parameters.yaml
- default_boot_interface: default_boot_interface
- default_console_interface: default_console_interface
- default_deploy_interface: default_deploy_interface
- default_inspect_interface: default_inspect_interface
- default_management_interface: default_management_interface
- default_network_interface: default_network_interface
- default_power_interface: default_power_interface
- default_raid_interface: default_raid_interface
- default_vendor_interface: default_vendor_interface
- enabled_boot_interfaces: enabled_boot_interfaces
- enabled_console_interfaces: enabled_console_interfaces
- enabled_deploy_interfaces: enabled_deploy_interfaces
- enabled_inspect_interfaces: enabled_inspect_interfaces
- enabled_management_interfaces: enabled_management_interfaces
- enabled_network_interfaces: enabled_network_interfaces
- enabled_power_interfaces: enabled_power_interfaces
- enabled_raid_interfaces: enabled_raid_interfaces
- enabled_vendor_interfaces: enabled_vendor_interfaces
Response Example Response Example
---------------- ----------------
Example for a request with detail=false (the default):
.. literalinclude:: samples/drivers-list-response.json .. literalinclude:: samples/drivers-list-response.json
:language: javascript :language: javascript
Example for a request with detail=true:
.. literalinclude:: samples/drivers-list-detail-response.json
:language: javascript
Show driver details Show driver details
=================== ===================
@ -84,6 +133,25 @@ Response Parameters
- name: driver_name - name: driver_name
- hosts: hosts - hosts: hosts
- type: response_driver_type
- default_boot_interface: default_boot_interface
- default_console_interface: default_console_interface
- default_deploy_interface: default_deploy_interface
- default_inspect_interface: default_inspect_interface
- default_management_interface: default_management_interface
- default_network_interface: default_network_interface
- default_power_interface: default_power_interface
- default_raid_interface: default_raid_interface
- default_vendor_interface: default_vendor_interface
- enabled_boot_interfaces: enabled_boot_interfaces
- enabled_console_interfaces: enabled_console_interfaces
- enabled_deploy_interfaces: enabled_deploy_interfaces
- enabled_inspect_interfaces: enabled_inspect_interfaces
- enabled_management_interfaces: enabled_management_interfaces
- enabled_network_interfaces: enabled_network_interfaces
- enabled_power_interfaces: enabled_power_interfaces
- enabled_raid_interfaces: enabled_raid_interfaces
- enabled_vendor_interfaces: enabled_vendor_interfaces
- links: links - links: links
- properties: driver_property_links - properties: driver_property_links

View File

@ -34,6 +34,11 @@ This method requires that a ``driver`` be supplied in the request body. Most
subresources of a Node (eg, ``properties``, ``driver_info``, etc) may be subresources of a Node (eg, ``properties``, ``driver_info``, etc) may be
supplied when the Node is created, or the resource may be updated later. supplied when the Node is created, or the resource may be updated later.
If the specified driver is a dynamic driver (available from API microversion
1.31), then all the interfaces (boot_interface, deploy_interface, etc.)
will be set to the default interface for that driver unless another enabled
interface is specified in the creation request.
API microversion 1.2 introduced the new ``available`` state name, which replaced API microversion 1.2 introduced the new ``available`` state name, which replaced
``None`` as the status of an unprovisioned Node. All clients should be updated to ``None`` as the status of an unprovisioned Node. All clients should be updated to
use the new ``available`` state name. use the new ``available`` state name.
@ -57,9 +62,14 @@ Request
- driver: r_driver_name - driver: r_driver_name
**Example Node creation request:** **Example Node creation request with a dynamic driver:**
.. literalinclude:: samples/node-create-request.json .. literalinclude:: samples/node-create-request-dynamic.json
:language: javascript
**Example Node creation request with a classic driver:**
.. literalinclude:: samples/node-create-request-classic.json
:language: javascript :language: javascript
Response Response
@ -86,8 +96,13 @@ Engine. This field has no effect within Ironic.
API microversion 1.24 introduced the ``/nodes/{node_ident}/portgroups`` API microversion 1.24 introduced the ``/nodes/{node_ident}/portgroups``
endpoint. endpoint.
API microversion 1.31 introduced all of the ``*_interface`` fields
(boot_interface, deploy_interface, etc.), with the exception of the
network_interface field, which was introduced in API microversion 1.20. If this
field is not supplied when creating the Node, the default value will be used.
The list and example below are representative of the response as of API The list and example below are representative of the response as of API
microversion 1.24. microversion 1.31.
.. rest_parameters:: parameters.yaml .. rest_parameters:: parameters.yaml
@ -117,8 +132,16 @@ microversion 1.24.
- ports: n_ports - ports: n_ports
- portgroups: n_portgroups - portgroups: n_portgroups
- states: n_states - states: n_states
- network_interface: network_interface
- resource_class: resource_class - resource_class: resource_class
- boot_interface: boot_interface
- console_interface: console_interface
- deploy_interface: deploy_interface
- inspect_interface: inspect_interface
- management_interface: management_interface
- network_interface: network_interface
- power_interface: power_interface
- raid_interface: raid_interface
- vendor_interface: vendor_interface
**Example JSON representation of a Node:** **Example JSON representation of a Node:**
@ -252,8 +275,16 @@ Response
- ports: n_ports - ports: n_ports
- portgroups: n_portgroups - portgroups: n_portgroups
- states: n_states - states: n_states
- network_interface: network_interface
- resource_class: resource_class - resource_class: resource_class
- boot_interface: boot_interface
- console_interface: console_interface
- deploy_interface: deploy_interface
- inspect_interface: inspect_interface
- management_interface: management_interface
- network_interface: network_interface
- power_interface: power_interface
- raid_interface: raid_interface
- vendor_interface: vendor_interface
**Example detailed list of Nodes:** **Example detailed list of Nodes:**
@ -313,8 +344,16 @@ Response
- ports: n_ports - ports: n_ports
- portgroups: n_portgroups - portgroups: n_portgroups
- states: n_states - states: n_states
- network_interface: network_interface
- resource_class: resource_class - resource_class: resource_class
- boot_interface: boot_interface
- console_interface: console_interface
- deploy_interface: deploy_interface
- inspect_interface: inspect_interface
- management_interface: management_interface
- network_interface: network_interface
- power_interface: power_interface
- raid_interface: raid_interface
- vendor_interface: vendor_interface
**Example JSON representation of a Node:** **Example JSON representation of a Node:**
@ -383,8 +422,16 @@ Response
- ports: n_ports - ports: n_ports
- portgroups: n_portgroups - portgroups: n_portgroups
- states: n_states - states: n_states
- network_interface: network_interface
- resource_class: resource_class - resource_class: resource_class
- boot_interface: boot_interface
- console_interface: console_interface
- deploy_interface: deploy_interface
- inspect_interface: inspect_interface
- management_interface: management_interface
- network_interface: network_interface
- power_interface: power_interface
- raid_interface: raid_interface
- vendor_interface: vendor_interface
**Example JSON representation of a Node:** **Example JSON representation of a Node:**

View File

@ -84,6 +84,22 @@ callback_url:
required: true required: true
type: string type: string
# variables in driver query string
driver_detail:
description: |
Whether to show detailed information about the drivers (e.g. the
"boot_interface" field). Added in API microversion 1.30.
in: query
required: false
type: boolean
driver_type:
description: |
Only list drivers of this type. Options are "classic" or "dynamic". Added
in API microversion 1.30.
in: query
required: false
type: string
# variables common to all query strings # variables common to all query strings
fields: fields:
description: | description: |
@ -279,6 +295,12 @@ boot_device:
in: body in: body
required: true required: true
type: string type: string
boot_interface:
description: |
The boot interface for a Node, e.g. "pxe". Added in API microversion 1.31.
in: body
required: true
type: string
chassis: chassis:
description: | description: |
A ``chassis`` object. A ``chassis`` object.
@ -320,6 +342,13 @@ console_enabled:
in: body in: body
required: true required: true
type: boolean type: boolean
console_interface:
description: |
The console interface for a node, e.g. "no-console". Added in API
microversion 1.31.
in: body
required: true
type: string
created_at: created_at:
description: | description: |
The UTC date and time when the resource was created, The UTC date and time when the resource was created,
@ -327,6 +356,84 @@ created_at:
in: body in: body
required: true required: true
type: string type: string
default_boot_interface:
description: |
The default boot interface used for a node with a dynamic driver, if no
boot interface is specified for the node. Added in API microversion 1.30.
in: body
required: true
type: string
default_console_interface:
description: |
The default console interface used for a node with a dynamic driver, if no
console interface is specified for the node. Added in API microversion
1.30.
in: body
required: true
type: string
default_deploy_interface:
description: |
The default deploy interface used for a node with a dynamic driver, if no
deploy interface is specified for the node. Added in API microversion
1.30.
in: body
required: true
type: string
default_inspect_interface:
description: |
The default inspection interface used for a node with a dynamic driver, if
no inspection interface is specified for the node. Added in API
microversion 1.30.
in: body
required: true
type: string
default_management_interface:
description: |
The default management interface used for a node with a dynamic driver, if
no management interface is specified for the node. Added in API
microversion 1.30.
in: body
required: true
type: string
default_network_interface:
description: |
The default network interface used for a node with a dynamic driver, if
no network interface is specified for the node. Added in API
microversion 1.30.
in: body
required: true
type: string
default_power_interface:
description: |
The default power interface used for a node with a dynamic driver, if
no power interface is specified for the node. Added in API
microversion 1.30.
in: body
required: true
type: string
default_raid_interface:
description: |
The default RAID interface used for a node with a dynamic driver, if
no RAID interface is specified for the node. Added in API
microversion 1.30.
in: body
required: true
type: string
default_vendor_interface:
description: |
The default vendor interface used for a node with a dynamic driver, if
no vendor interface is specified for the node. Added in API
microversion 1.30.
in: body
required: true
type: string
deploy_interface:
description: |
The deploy interface for a node, e.g. "iscsi". Added in API microversion
1.31.
in: body
required: true
type: string
description: description:
description: | description: |
Descriptive text about the Ironic service. Descriptive text about the Ironic service.
@ -364,6 +471,69 @@ drivers:
in: body in: body
required: true required: true
type: array type: array
enabled_boot_interfaces:
description: |
The enabled boot interfaces for this driver. Added in API microversion
1.30.
in: body
required: true
type: list
enabled_console_interfaces:
description: |
The enabled console interfaces for this driver. Added in API microversion
1.30.
in: body
required: true
type: list
enabled_deploy_interfaces:
description: |
The enabled deploy interfaces for this driver. Added in API microversion
1.30.
in: body
required: true
type: list
enabled_inspect_interfaces:
description: |
The enabled inspection interfaces for this driver. Added in API
microversion 1.30.
in: body
required: true
type: list
enabled_management_interfaces:
description: |
The enabled management interfaces for this driver. Added in API
microversion 1.30.
in: body
required: true
type: list
enabled_network_interfaces:
description: |
The enabled network interfaces for this driver. Added in API microversion
1.30.
in: body
required: true
type: list
enabled_power_interfaces:
description: |
The enabled power interfaces for this driver. Added in API microversion
1.30.
in: body
required: true
type: list
enabled_raid_interfaces:
description: |
The enabled RAID interfaces for this driver. Added in API microversion
1.30.
in: body
required: true
type: list
enabled_vendor_interfaces:
description: |
The enabled vendor interfaces for this driver. Added in API microversion
1.30.
in: body
required: true
type: list
extra: extra:
description: | description: |
A set of one or more arbitrary metadata key and A set of one or more arbitrary metadata key and
@ -383,6 +553,13 @@ id:
in: body in: body
required: true required: true
type: string type: string
inspect_interface:
description: |
The interface used for node inspection, e.g. "no-inspect". Added in API
microversion 1.31.
in: body
required: true
type: string
inspection_finished_at: inspection_finished_at:
description: | description: |
The UTC date and time when the last hardware inspection finished The UTC date and time when the last hardware inspection finished
@ -462,6 +639,13 @@ maintenance_reason:
in: body in: body
required: false required: false
type: string type: string
management_interface:
description: |
Interface for out-of-band node management, e.g. "ipmitool". Added in API
microversion 1.31.
in: body
required: true
type: string
n_portgroups: n_portgroups:
description: | description: |
Links to the collection of portgroups on this node. Links to the collection of portgroups on this node.
@ -637,6 +821,13 @@ ports:
in: body in: body
required: true required: true
type: array type: array
power_interface:
description: |
Interface used for performing power actions on the node, e.g. "ipmitool".
Added in API microversion 1.31.
in: body
required: true
type: string
power_state: power_state:
description: | description: |
The current power state of this Node. Usually, "power on" or "power off", but may be "None" The current power state of this Node. Usually, "power on" or "power off", but may be "None"
@ -690,6 +881,13 @@ raid_config:
in: body in: body
required: false required: false
type: JSON type: JSON
raid_interface:
description: |
Interface used for configuring RAID on this node, e.g. "no-raid". Added in
API microversion 1.31.
in: body
required: true
type: string
reason: reason:
description: | description: |
Specify the reason for setting the Node into maintenance mode. Specify the reason for setting the Node into maintenance mode.
@ -718,6 +916,12 @@ resource_class:
in: body in: body
required: true required: true
type: string type: string
response_driver_type:
description: |
Type of this driver ("classic" or "dynamic").
in: body
required: true
type: string
standalone_ports_supported: standalone_ports_supported:
description: | description: |
Indicates whether ports that are members of this portgroup can be Indicates whether ports that are members of this portgroup can be
@ -816,7 +1020,13 @@ v_raid:
in: body in: body
required: true required: true
type: object type: object
vendor_interface:
description: |
Interface for vendor-specific functionality on this node, e.g. "no-vendor".
Added in API microversion 1.31.
in: body
required: true
type: string
version: version:
description: | description: |
Versioning of this API response, eg. "1.22". Versioning of this API response, eg. "1.22".

View File

@ -9,7 +9,7 @@
], ],
"min_version": "1.1", "min_version": "1.1",
"status": "CURRENT", "status": "CURRENT",
"version": "1.29" "version": "1.31"
}, },
"description": "Ironic is an OpenStack project which aims to provision baremetal machines.", "description": "Ironic is an OpenStack project which aims to provision baremetal machines.",
"name": "OpenStack Ironic API", "name": "OpenStack Ironic API",
@ -24,7 +24,7 @@
], ],
"min_version": "1.1", "min_version": "1.1",
"status": "CURRENT", "status": "CURRENT",
"version": "1.29" "version": "1.31"
} }
] ]
} }

View File

@ -1,26 +1,66 @@
{ {
"default_boot_interface": "pxe",
"default_console_interface": "no-console",
"default_deploy_interface": "iscsi",
"default_inspect_interface": "no-inspect",
"default_management_interface": "ipmitool",
"default_network_interface": "flat",
"default_power_interface": "ipmitool",
"default_raid_interface": "no-raid",
"default_vendor_interface": "no-vendor",
"enabled_boot_interfaces": [
"pxe"
],
"enabled_console_interfaces": [
"no-console"
],
"enabled_deploy_interfaces": [
"iscsi",
"direct"
],
"enabled_inspect_interfaces": [
"no-inspect"
],
"enabled_management_interfaces": [
"ipmitool"
],
"enabled_network_interfaces": [
"flat",
"noop"
],
"enabled_power_interfaces": [
"ipmitool"
],
"enabled_raid_interfaces": [
"no-raid",
"agent"
],
"enabled_vendor_interfaces": [
"no-vendor"
],
"hosts": [ "hosts": [
"897ab1dad809" "897ab1dad809"
], ],
"links": [ "links": [
{ {
"href": "http://127.0.0.1:6385/v1/drivers/agent_ipmitool", "href": "http://127.0.0.1:6385/v1/drivers/ipmi",
"rel": "self" "rel": "self"
}, },
{ {
"href": "http://127.0.0.1:6385/drivers/agent_ipmitool", "href": "http://127.0.0.1:6385/drivers/ipmi",
"rel": "bookmark" "rel": "bookmark"
} }
], ],
"name": "agent_ipmitool", "name": "ipmi",
"properties": [ "properties": [
{ {
"href": "http://127.0.0.1:6385/v1/drivers/agent_ipmitool/properties", "href": "http://127.0.0.1:6385/v1/drivers/ipmi/properties",
"rel": "self" "rel": "self"
}, },
{ {
"href": "http://127.0.0.1:6385/drivers/agent_ipmitool/properties", "href": "http://127.0.0.1:6385/drivers/ipmi/properties",
"rel": "bookmark" "rel": "bookmark"
} }
] ],
"type": "dynamic"
} }

View File

@ -0,0 +1,160 @@
{
"drivers": [
{
"default_boot_interface": null,
"default_console_interface": null,
"default_deploy_interface": null,
"default_inspect_interface": null,
"default_management_interface": null,
"default_network_interface": null,
"default_power_interface": null,
"default_raid_interface": null,
"default_vendor_interface": null,
"enabled_boot_interfaces": null,
"enabled_console_interfaces": null,
"enabled_deploy_interfaces": null,
"enabled_inspect_interfaces": null,
"enabled_management_interfaces": null,
"enabled_network_interfaces": null,
"enabled_power_interfaces": null,
"enabled_raid_interfaces": null,
"enabled_vendor_interfaces": null,
"hosts": [
"897ab1dad809"
],
"links": [
{
"href": "http://127.0.0.1:6385/v1/drivers/agent_ipmitool",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/agent_ipmitool",
"rel": "bookmark"
}
],
"name": "agent_ipmitool",
"properties": [
{
"href": "http://127.0.0.1:6385/v1/drivers/agent_ipmitool/properties",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/agent_ipmitool/properties",
"rel": "bookmark"
}
],
"type": "classic"
},
{
"default_boot_interface": null,
"default_console_interface": null,
"default_deploy_interface": null,
"default_inspect_interface": null,
"default_management_interface": null,
"default_network_interface": null,
"default_power_interface": null,
"default_raid_interface": null,
"default_vendor_interface": null,
"enabled_boot_interfaces": null,
"enabled_console_interfaces": null,
"enabled_deploy_interfaces": null,
"enabled_inspect_interfaces": null,
"enabled_management_interfaces": null,
"enabled_network_interfaces": null,
"enabled_power_interfaces": null,
"enabled_raid_interfaces": null,
"enabled_vendor_interfaces": null,
"hosts": [
"897ab1dad809"
],
"links": [
{
"href": "http://127.0.0.1:6385/v1/drivers/fake",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/fake",
"rel": "bookmark"
}
],
"name": "fake",
"properties": [
{
"href": "http://127.0.0.1:6385/v1/drivers/fake/properties",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/fake/properties",
"rel": "bookmark"
}
],
"type": "classic"
},
{
"default_boot_interface": "pxe",
"default_console_interface": "no-console",
"default_deploy_interface": "iscsi",
"default_inspect_interface": "no-inspect",
"default_management_interface": "ipmitool",
"default_network_interface": "flat",
"default_power_interface": "ipmitool",
"default_raid_interface": "no-raid",
"default_vendor_interface": "no-vendor",
"enabled_boot_interfaces": [
"pxe"
],
"enabled_console_interfaces": [
"no-console"
],
"enabled_deploy_interfaces": [
"iscsi",
"direct"
],
"enabled_inspect_interfaces": [
"no-inspect"
],
"enabled_management_interfaces": [
"ipmitool"
],
"enabled_network_interfaces": [
"flat",
"noop"
],
"enabled_power_interfaces": [
"ipmitool"
],
"enabled_raid_interfaces": [
"no-raid",
"agent"
],
"enabled_vendor_interfaces": [
"no-vendor"
],
"hosts": [
"897ab1dad809"
],
"links": [
{
"href": "http://127.0.0.1:6385/v1/drivers/ipmi",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/ipmi",
"rel": "bookmark"
}
],
"name": "ipmi",
"properties": [
{
"href": "http://127.0.0.1:6385/v1/drivers/ipmi/properties",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/ipmi/properties",
"rel": "bookmark"
}
],
"type": "dynamic"
}
]
}

View File

@ -1,57 +1,5 @@
{ {
"drivers": [ "drivers": [
{
"hosts": [
"897ab1dad809"
],
"links": [
{
"href": "http://127.0.0.1:6385/v1/drivers/agent_ssh",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/agent_ssh",
"rel": "bookmark"
}
],
"name": "agent_ssh",
"properties": [
{
"href": "http://127.0.0.1:6385/v1/drivers/agent_ssh/properties",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/agent_ssh/properties",
"rel": "bookmark"
}
]
},
{
"hosts": [
"897ab1dad809"
],
"links": [
{
"href": "http://127.0.0.1:6385/v1/drivers/pxe_ipmitool",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/pxe_ipmitool",
"rel": "bookmark"
}
],
"name": "pxe_ipmitool",
"properties": [
{
"href": "http://127.0.0.1:6385/v1/drivers/pxe_ipmitool/properties",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/pxe_ipmitool/properties",
"rel": "bookmark"
}
]
},
{ {
"hosts": [ "hosts": [
"897ab1dad809" "897ab1dad809"
@ -76,7 +24,8 @@
"href": "http://127.0.0.1:6385/drivers/agent_ipmitool/properties", "href": "http://127.0.0.1:6385/drivers/agent_ipmitool/properties",
"rel": "bookmark" "rel": "bookmark"
} }
] ],
"type": "classic"
}, },
{ {
"hosts": [ "hosts": [
@ -102,7 +51,35 @@
"href": "http://127.0.0.1:6385/drivers/fake/properties", "href": "http://127.0.0.1:6385/drivers/fake/properties",
"rel": "bookmark" "rel": "bookmark"
} }
] ],
"type": "classic"
},
{
"hosts": [
"897ab1dad809"
],
"links": [
{
"href": "http://127.0.0.1:6385/v1/drivers/ipmi",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/ipmi",
"rel": "bookmark"
}
],
"name": "ipmi",
"properties": [
{
"href": "http://127.0.0.1:6385/v1/drivers/ipmi/properties",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/ipmi/properties",
"rel": "bookmark"
}
],
"type": "dynamic"
} }
] ]
} }

View File

@ -1,5 +1,5 @@
{ {
"name": "test_node", "name": "test_node_classic",
"driver": "agent_ipmitool", "driver": "agent_ipmitool",
"driver_info": { "driver_info": {
"ipmi_username": "ADMIN", "ipmi_username": "ADMIN",

View File

@ -0,0 +1,9 @@
{
"name": "test_node_dynamic",
"driver": "ipmi",
"driver_info": {
"ipmi_username": "ADMIN",
"ipmi_password": "password"
},
"power_interface": "ipmitool"
}

View File

@ -1,8 +1,11 @@
{ {
"boot_interface": null,
"chassis_uuid": null, "chassis_uuid": null,
"clean_step": {}, "clean_step": {},
"console_enabled": false, "console_enabled": false,
"console_interface": null,
"created_at": "2016-08-18T22:28:48.643434+11:11", "created_at": "2016-08-18T22:28:48.643434+11:11",
"deploy_interface": null,
"driver": "agent_ipmitool", "driver": "agent_ipmitool",
"driver_info": { "driver_info": {
"ipmi_password": "******", "ipmi_password": "******",
@ -10,6 +13,7 @@
}, },
"driver_internal_info": {}, "driver_internal_info": {},
"extra": {}, "extra": {},
"inspect_interface": null,
"inspection_finished_at": null, "inspection_finished_at": null,
"inspection_started_at": null, "inspection_started_at": null,
"instance_info": {}, "instance_info": {},
@ -27,7 +31,8 @@
], ],
"maintenance": false, "maintenance": false,
"maintenance_reason": null, "maintenance_reason": null,
"name": "test_node", "management_interface": null,
"name": "test_node_classic",
"network_interface": "flat", "network_interface": "flat",
"portgroups": [ "portgroups": [
{ {
@ -49,11 +54,13 @@
"rel": "bookmark" "rel": "bookmark"
} }
], ],
"power_interface": null,
"power_state": null, "power_state": null,
"properties": {}, "properties": {},
"provision_state": "enroll", "provision_state": "enroll",
"provision_updated_at": null, "provision_updated_at": null,
"raid_config": {}, "raid_config": {},
"raid_interface": null,
"reservation": null, "reservation": null,
"resource_class": null, "resource_class": null,
"states": [ "states": [
@ -70,5 +77,6 @@
"target_provision_state": null, "target_provision_state": null,
"target_raid_config": {}, "target_raid_config": {},
"updated_at": null, "updated_at": null,
"uuid": "6d85703a-565d-469a-96ce-30b6de53079d" "uuid": "6d85703a-565d-469a-96ce-30b6de53079d",
"vendor_interface": null
} }

View File

@ -1,8 +1,11 @@
{ {
"boot_interface": null,
"chassis_uuid": null, "chassis_uuid": null,
"clean_step": {}, "clean_step": {},
"console_enabled": false, "console_enabled": false,
"console_interface": null,
"created_at": "2016-08-18T22:28:48.643434+11:11", "created_at": "2016-08-18T22:28:48.643434+11:11",
"deploy_interface": null,
"driver": "fake", "driver": "fake",
"driver_info": { "driver_info": {
"ipmi_password": "******", "ipmi_password": "******",
@ -12,6 +15,7 @@
"clean_steps": null "clean_steps": null
}, },
"extra": {}, "extra": {},
"inspect_interface": null,
"inspection_finished_at": null, "inspection_finished_at": null,
"inspection_started_at": null, "inspection_started_at": null,
"instance_info": {}, "instance_info": {},
@ -29,7 +33,8 @@
], ],
"maintenance": false, "maintenance": false,
"maintenance_reason": null, "maintenance_reason": null,
"name": "test_node", "management_interface": null,
"name": "test_node_classic",
"network_interface": "flat", "network_interface": "flat",
"portgroups": [ "portgroups": [
{ {
@ -51,11 +56,13 @@
"rel": "bookmark" "rel": "bookmark"
} }
], ],
"power_interface": null,
"power_state": "power off", "power_state": "power off",
"properties": {}, "properties": {},
"provision_state": "available", "provision_state": "available",
"provision_updated_at": "2016-08-18T22:28:49.946416+00:00", "provision_updated_at": "2016-08-18T22:28:49.946416+00:00",
"raid_config": {}, "raid_config": {},
"raid_interface": null,
"reservation": null, "reservation": null,
"resource_class": null, "resource_class": null,
"states": [ "states": [
@ -72,5 +79,6 @@
"target_provision_state": null, "target_provision_state": null,
"target_raid_config": {}, "target_raid_config": {},
"updated_at": "2016-08-18T22:28:49.653974+00:00", "updated_at": "2016-08-18T22:28:49.653974+00:00",
"uuid": "6d85703a-565d-469a-96ce-30b6de53079d" "uuid": "6d85703a-565d-469a-96ce-30b6de53079d",
"vendor_interface": null
} }

View File

@ -1,8 +1,11 @@
{ {
"boot_interface": null,
"chassis_uuid": null, "chassis_uuid": null,
"clean_step": {}, "clean_step": {},
"console_enabled": false, "console_enabled": false,
"console_interface": null,
"created_at": "2016-08-18T22:28:48.643434+11:11", "created_at": "2016-08-18T22:28:48.643434+11:11",
"deploy_interface": null,
"driver": "fake", "driver": "fake",
"driver_info": { "driver_info": {
"deploy_kernel": "http://127.0.0.1/images/kernel", "deploy_kernel": "http://127.0.0.1/images/kernel",
@ -14,6 +17,7 @@
"clean_steps": null "clean_steps": null
}, },
"extra": {}, "extra": {},
"inspect_interface": null,
"inspection_finished_at": null, "inspection_finished_at": null,
"inspection_started_at": null, "inspection_started_at": null,
"instance_info": {}, "instance_info": {},
@ -31,7 +35,8 @@
], ],
"maintenance": true, "maintenance": true,
"maintenance_reason": "Replacing the hard drive", "maintenance_reason": "Replacing the hard drive",
"name": "test_node", "management_interface": null,
"name": "test_node_classic",
"network_interface": "flat", "network_interface": "flat",
"portgroups": [ "portgroups": [
{ {
@ -53,11 +58,13 @@
"rel": "bookmark" "rel": "bookmark"
} }
], ],
"power_interface": null,
"power_state": "power off", "power_state": "power off",
"properties": {}, "properties": {},
"provision_state": "available", "provision_state": "available",
"provision_updated_at": "2016-08-18T22:28:49.946416+00:00", "provision_updated_at": "2016-08-18T22:28:49.946416+00:00",
"raid_config": {}, "raid_config": {},
"raid_interface": null,
"reservation": null, "reservation": null,
"resource_class": null, "resource_class": null,
"states": [ "states": [
@ -74,5 +81,6 @@
"target_provision_state": null, "target_provision_state": null,
"target_raid_config": {}, "target_raid_config": {},
"updated_at": "2016-08-18T22:28:49.653974+00:00", "updated_at": "2016-08-18T22:28:49.653974+00:00",
"uuid": "6d85703a-565d-469a-96ce-30b6de53079d" "uuid": "6d85703a-565d-469a-96ce-30b6de53079d",
"vendor_interface": null
} }

View File

@ -1,10 +1,13 @@
{ {
"nodes": [ "nodes": [
{ {
"boot_interface": null,
"chassis_uuid": null, "chassis_uuid": null,
"clean_step": {}, "clean_step": {},
"console_enabled": false, "console_enabled": false,
"console_interface": null,
"created_at": "2016-08-18T22:28:48.643434+11:11", "created_at": "2016-08-18T22:28:48.643434+11:11",
"deploy_interface": null,
"driver": "fake", "driver": "fake",
"driver_info": { "driver_info": {
"ipmi_password": "******", "ipmi_password": "******",
@ -14,6 +17,7 @@
"clean_steps": null "clean_steps": null
}, },
"extra": {}, "extra": {},
"inspect_interface": null,
"inspection_finished_at": null, "inspection_finished_at": null,
"inspection_started_at": null, "inspection_started_at": null,
"instance_info": {}, "instance_info": {},
@ -31,7 +35,8 @@
], ],
"maintenance": false, "maintenance": false,
"maintenance_reason": null, "maintenance_reason": null,
"name": "test_node", "management_interface": null,
"name": "test_node_classic",
"network_interface": "flat", "network_interface": "flat",
"portgroups": [ "portgroups": [
{ {
@ -53,11 +58,13 @@
"rel": "bookmark" "rel": "bookmark"
} }
], ],
"power_interface": null,
"power_state": "power off", "power_state": "power off",
"properties": {}, "properties": {},
"provision_state": "available", "provision_state": "available",
"provision_updated_at": "2016-08-18T22:28:49.946416+00:00", "provision_updated_at": "2016-08-18T22:28:49.946416+00:00",
"raid_config": {}, "raid_config": {},
"raid_interface": null,
"reservation": null, "reservation": null,
"resource_class": null, "resource_class": null,
"states": [ "states": [
@ -74,7 +81,90 @@
"target_provision_state": null, "target_provision_state": null,
"target_raid_config": {}, "target_raid_config": {},
"updated_at": "2016-08-18T22:28:49.653974+00:00", "updated_at": "2016-08-18T22:28:49.653974+00:00",
"uuid": "6d85703a-565d-469a-96ce-30b6de53079d" "uuid": "6d85703a-565d-469a-96ce-30b6de53079d",
"vendor_interface": null
},
{
"boot_interface": "pxe",
"chassis_uuid": null,
"clean_step": {},
"console_enabled": false,
"console_interface": "no-console",
"created_at": "2016-08-18T22:28:48.643434+11:11",
"deploy_interface": "iscsi",
"driver": "ipmi",
"driver_info": {
"ipmi_password": "******",
"ipmi_username": "ADMIN"
},
"driver_internal_info": {},
"extra": {},
"inspect_interface": "no-inspect",
"inspection_finished_at": null,
"inspection_started_at": null,
"instance_info": {},
"instance_uuid": null,
"last_error": null,
"links": [
{
"href": "http://127.0.0.1:6385/v1/nodes/2b045129-a906-46af-bc1a-092b294b3428",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/nodes/2b045129-a906-46af-bc1a-092b294b3428",
"rel": "bookmark"
}
],
"maintenance": false,
"maintenance_reason": null,
"management_interface": "ipmitool",
"name": "test_node_dynamic",
"network_interface": "flat",
"portgroups": [
{
"href": "http://127.0.0.1:6385/v1/nodes/2b045129-a906-46af-bc1a-092b294b3428/portgroups",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/nodes/2b045129-a906-46af-bc1a-092b294b3428/portgroups",
"rel": "bookmark"
}
],
"ports": [
{
"href": "http://127.0.0.1:6385/v1/nodes/2b045129-a906-46af-bc1a-092b294b3428/ports",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/nodes/2b045129-a906-46af-bc1a-092b294b3428/ports",
"rel": "bookmark"
}
],
"power_interface": "ipmitool",
"power_state": null,
"properties": {},
"provision_state": "enroll",
"provision_updated_at": null,
"raid_config": {},
"raid_interface": "no-raid",
"reservation": null,
"resource_class": null,
"states": [
{
"href": "http://127.0.0.1:6385/v1/nodes/2b045129-a906-46af-bc1a-092b294b3428/states",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/nodes/2b045129-a906-46af-bc1a-092b294b3428/states",
"rel": "bookmark"
}
],
"target_power_state": null,
"target_provision_state": null,
"target_raid_config": {},
"updated_at": null,
"uuid": "2b045129-a906-46af-bc1a-092b294b3428",
"vendor_interface": "no-vendor"
} }
] ]
} }

View File

@ -13,10 +13,28 @@
} }
], ],
"maintenance": false, "maintenance": false,
"name": "test_node", "name": "test_node_classic",
"power_state": "power off", "power_state": "power off",
"provision_state": "available", "provision_state": "available",
"uuid": "6d85703a-565d-469a-96ce-30b6de53079d" "uuid": "6d85703a-565d-469a-96ce-30b6de53079d"
},
{
"instance_uuid": null,
"links": [
{
"href": "http://127.0.0.1:6385/v1/nodes/2b045129-a906-46af-bc1a-092b294b3428",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/nodes/2b045129-a906-46af-bc1a-092b294b3428",
"rel": "bookmark"
}
],
"maintenance": false,
"name": "test_node_dynamic",
"power_state": null,
"provision_state": "enroll",
"uuid": "2b045129-a906-46af-bc1a-092b294b3428"
} }
] ]
} }