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}')
IRONIC_URL="http://127.0.0.1:6385"
IRONIC_API_VERSION="1.29"
IRONIC_API_VERSION="1.31"
export OS_AUTH_TOKEN IRONIC_URL
DOC_CHASSIS_UUID="dff29d23-1ded-43b4-8ae1-5eebb3e30de1"
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_PORTGROUP_UUID="e43c722c-248e-4c6e-8ce8-0d8ff129387a"
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
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/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,
# 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/')
if [ "$NID" == "" ]; then
exit 1
@ -132,6 +134,16 @@ else
echo "Node created. UUID: $NID"
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 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
sed -i "s/$CID/$DOC_CHASSIS_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/$PGID/$DOC_PORTGROUP_UUID/" *.json
sed -i "s/$(hostname)/$DOC_IRONIC_CONDUCTOR_HOSTNAME/" *.json

View File

@ -4,18 +4,31 @@
Drivers (drivers)
=================
A driver is a Python object containing all the logic to manage the 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``)
Ironic has two types of drivers: *classic* drivers and *dynamic* drivers.
A *classic* driver is a Python object containing all the logic to manage the
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.
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``
processes have loaded that driver via the Driver resource (``/v1/drivers``
endpoint). This can be useful for operators to validate their configuration in
a heterogeneous hardware environment. Each ``ironic-conductor`` process may
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
must be supplied to a node's ``driver_info`` for that driver to manage
@ -40,6 +53,11 @@ Normal response codes: 200
Request
-------
.. rest_parameters:: parameters.yaml
- type: driver_type
- detail: driver_detail
Response Parameters
-------------------
@ -51,15 +69,46 @@ drivers supported by this Ironic service.
- drivers: drivers
- name: driver_name
- hosts: hosts
- type: response_driver_type
- links: 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
----------------
Example for a request with detail=false (the default):
.. literalinclude:: samples/drivers-list-response.json
:language: javascript
Example for a request with detail=true:
.. literalinclude:: samples/drivers-list-detail-response.json
:language: javascript
Show driver details
===================
@ -84,6 +133,25 @@ Response Parameters
- name: driver_name
- 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
- properties: driver_property_links
@ -155,4 +223,4 @@ The structure of the response is ``property`` : ``description``.
The following example is returned from the ``agent_ipmitool`` driver.
.. literalinclude:: samples/driver-logical-disk-properties-response.json
:language: javascript
:language: javascript

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
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
``None`` as the status of an unprovisioned Node. All clients should be updated to
use the new ``available`` state name.
@ -57,9 +62,14 @@ Request
- 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
Response
@ -86,8 +96,13 @@ Engine. This field has no effect within Ironic.
API microversion 1.24 introduced the ``/nodes/{node_ident}/portgroups``
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
microversion 1.24.
microversion 1.31.
.. rest_parameters:: parameters.yaml
@ -117,8 +132,16 @@ microversion 1.24.
- ports: n_ports
- portgroups: n_portgroups
- states: n_states
- network_interface: network_interface
- 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:**
@ -252,8 +275,16 @@ Response
- ports: n_ports
- portgroups: n_portgroups
- states: n_states
- network_interface: network_interface
- 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:**
@ -313,8 +344,16 @@ Response
- ports: n_ports
- portgroups: n_portgroups
- states: n_states
- network_interface: network_interface
- 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:**
@ -383,8 +422,16 @@ Response
- ports: n_ports
- portgroups: n_portgroups
- states: n_states
- network_interface: network_interface
- 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:**

View File

@ -84,6 +84,22 @@ callback_url:
required: true
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
fields:
description: |
@ -279,6 +295,12 @@ boot_device:
in: body
required: true
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:
description: |
A ``chassis`` object.
@ -320,6 +342,13 @@ console_enabled:
in: body
required: true
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:
description: |
The UTC date and time when the resource was created,
@ -327,6 +356,84 @@ created_at:
in: body
required: true
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: |
Descriptive text about the Ironic service.
@ -364,6 +471,69 @@ drivers:
in: body
required: true
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:
description: |
A set of one or more arbitrary metadata key and
@ -383,6 +553,13 @@ id:
in: body
required: true
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:
description: |
The UTC date and time when the last hardware inspection finished
@ -462,6 +639,13 @@ maintenance_reason:
in: body
required: false
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:
description: |
Links to the collection of portgroups on this node.
@ -637,6 +821,13 @@ ports:
in: body
required: true
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:
description: |
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
required: false
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:
description: |
Specify the reason for setting the Node into maintenance mode.
@ -718,6 +916,12 @@ resource_class:
in: body
required: true
type: string
response_driver_type:
description: |
Type of this driver ("classic" or "dynamic").
in: body
required: true
type: string
standalone_ports_supported:
description: |
Indicates whether ports that are members of this portgroup can be
@ -816,7 +1020,13 @@ v_raid:
in: body
required: true
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:
description: |
Versioning of this API response, eg. "1.22".

View File

@ -9,7 +9,7 @@
],
"min_version": "1.1",
"status": "CURRENT",
"version": "1.29"
"version": "1.31"
},
"description": "Ironic is an OpenStack project which aims to provision baremetal machines.",
"name": "OpenStack Ironic API",
@ -24,7 +24,7 @@
],
"min_version": "1.1",
"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": [
"897ab1dad809"
],
"links": [
{
"href": "http://127.0.0.1:6385/v1/drivers/agent_ipmitool",
"href": "http://127.0.0.1:6385/v1/drivers/ipmi",
"rel": "self"
},
{
"href": "http://127.0.0.1:6385/drivers/agent_ipmitool",
"href": "http://127.0.0.1:6385/drivers/ipmi",
"rel": "bookmark"
}
],
"name": "agent_ipmitool",
"name": "ipmi",
"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"
},
{
"href": "http://127.0.0.1:6385/drivers/agent_ipmitool/properties",
"href": "http://127.0.0.1:6385/drivers/ipmi/properties",
"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": [
{
"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": [
"897ab1dad809"
@ -76,7 +24,8 @@
"href": "http://127.0.0.1:6385/drivers/agent_ipmitool/properties",
"rel": "bookmark"
}
]
],
"type": "classic"
},
{
"hosts": [
@ -102,7 +51,35 @@
"href": "http://127.0.0.1:6385/drivers/fake/properties",
"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_info": {
"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,
"clean_step": {},
"console_enabled": false,
"console_interface": null,
"created_at": "2016-08-18T22:28:48.643434+11:11",
"deploy_interface": null,
"driver": "agent_ipmitool",
"driver_info": {
"ipmi_password": "******",
@ -10,6 +13,7 @@
},
"driver_internal_info": {},
"extra": {},
"inspect_interface": null,
"inspection_finished_at": null,
"inspection_started_at": null,
"instance_info": {},
@ -27,7 +31,8 @@
],
"maintenance": false,
"maintenance_reason": null,
"name": "test_node",
"management_interface": null,
"name": "test_node_classic",
"network_interface": "flat",
"portgroups": [
{
@ -49,11 +54,13 @@
"rel": "bookmark"
}
],
"power_interface": null,
"power_state": null,
"properties": {},
"provision_state": "enroll",
"provision_updated_at": null,
"raid_config": {},
"raid_interface": null,
"reservation": null,
"resource_class": null,
"states": [
@ -70,5 +77,6 @@
"target_provision_state": null,
"target_raid_config": {},
"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,
"clean_step": {},
"console_enabled": false,
"console_interface": null,
"created_at": "2016-08-18T22:28:48.643434+11:11",
"deploy_interface": null,
"driver": "fake",
"driver_info": {
"ipmi_password": "******",
@ -12,6 +15,7 @@
"clean_steps": null
},
"extra": {},
"inspect_interface": null,
"inspection_finished_at": null,
"inspection_started_at": null,
"instance_info": {},
@ -29,7 +33,8 @@
],
"maintenance": false,
"maintenance_reason": null,
"name": "test_node",
"management_interface": null,
"name": "test_node_classic",
"network_interface": "flat",
"portgroups": [
{
@ -51,11 +56,13 @@
"rel": "bookmark"
}
],
"power_interface": null,
"power_state": "power off",
"properties": {},
"provision_state": "available",
"provision_updated_at": "2016-08-18T22:28:49.946416+00:00",
"raid_config": {},
"raid_interface": null,
"reservation": null,
"resource_class": null,
"states": [
@ -72,5 +79,6 @@
"target_provision_state": null,
"target_raid_config": {},
"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,
"clean_step": {},
"console_enabled": false,
"console_interface": null,
"created_at": "2016-08-18T22:28:48.643434+11:11",
"deploy_interface": null,
"driver": "fake",
"driver_info": {
"deploy_kernel": "http://127.0.0.1/images/kernel",
@ -14,6 +17,7 @@
"clean_steps": null
},
"extra": {},
"inspect_interface": null,
"inspection_finished_at": null,
"inspection_started_at": null,
"instance_info": {},
@ -31,7 +35,8 @@
],
"maintenance": true,
"maintenance_reason": "Replacing the hard drive",
"name": "test_node",
"management_interface": null,
"name": "test_node_classic",
"network_interface": "flat",
"portgroups": [
{
@ -53,11 +58,13 @@
"rel": "bookmark"
}
],
"power_interface": null,
"power_state": "power off",
"properties": {},
"provision_state": "available",
"provision_updated_at": "2016-08-18T22:28:49.946416+00:00",
"raid_config": {},
"raid_interface": null,
"reservation": null,
"resource_class": null,
"states": [
@ -74,5 +81,6 @@
"target_provision_state": null,
"target_raid_config": {},
"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": [
{
"boot_interface": null,
"chassis_uuid": null,
"clean_step": {},
"console_enabled": false,
"console_interface": null,
"created_at": "2016-08-18T22:28:48.643434+11:11",
"deploy_interface": null,
"driver": "fake",
"driver_info": {
"ipmi_password": "******",
@ -14,6 +17,7 @@
"clean_steps": null
},
"extra": {},
"inspect_interface": null,
"inspection_finished_at": null,
"inspection_started_at": null,
"instance_info": {},
@ -31,7 +35,8 @@
],
"maintenance": false,
"maintenance_reason": null,
"name": "test_node",
"management_interface": null,
"name": "test_node_classic",
"network_interface": "flat",
"portgroups": [
{
@ -53,11 +58,13 @@
"rel": "bookmark"
}
],
"power_interface": null,
"power_state": "power off",
"properties": {},
"provision_state": "available",
"provision_updated_at": "2016-08-18T22:28:49.946416+00:00",
"raid_config": {},
"raid_interface": null,
"reservation": null,
"resource_class": null,
"states": [
@ -74,7 +81,90 @@
"target_provision_state": null,
"target_raid_config": {},
"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,
"name": "test_node",
"name": "test_node_classic",
"power_state": "power off",
"provision_state": "available",
"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"
}
]
}