diff --git a/api-ref/regenerate-samples.sh b/api-ref/regenerate-samples.sh new file mode 100755 index 0000000000..ac524867cc --- /dev/null +++ b/api-ref/regenerate-samples.sh @@ -0,0 +1,171 @@ +#!/bin/bash + +set -e -x + +if [ ! -x /usr/bin/jq ]; then + echo "This script relies on 'jq' to process JSON output." + echo "Please install it before continuing." + exit 1 +fi + +OS_AUTH_TOKEN=$(openstack token issue | grep ' id ' | awk '{print $4}') +IRONIC_URL="http://127.0.0.1:6385" + +export OS_AUTH_TOKEN IRONIC_URL + +function GET { + # GET $RESOURCE + curl -s -H "X-Auth-Token: $OS_AUTH_TOKEN" \ + -H 'X-OpenStack-Ironic-API-Version: 1.22' \ + ${IRONIC_URL}/$1 | jq -S '.' +} + +function POST { + # POST $RESOURCE $FILENAME + curl -s -H "X-Auth-Token: $OS_AUTH_TOKEN" \ + -H 'X-OpenStack-Ironic-API-Version: 1.22' \ + -H "Content-Type: application/json" \ + -X POST --data @$2 \ + ${IRONIC_URL}/$1 | jq -S '.' +} + +function PATCH { + # POST $RESOURCE $FILENAME + curl -s -H "X-Auth-Token: $OS_AUTH_TOKEN" \ + -H 'X-OpenStack-Ironic-API-Version: 1.22' \ + -H "Content-Type: application/json" \ + -X PATCH --data @$2 \ + ${IRONIC_URL}/$1 | jq -S '.' +} + +function PUT { + # PUT $RESOURCE $FILENAME + curl -s -H "X-Auth-Token: $OS_AUTH_TOKEN" \ + -H 'X-OpenStack-Ironic-API-Version: 1.22' \ + -H "Content-Type: application/json" \ + -X PUT --data @$2 \ + ${IRONIC_URL}/$1 +} + +pushd source/samples + +########### +# ROOT APIs +GET '' > api-root-response.json + +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/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/vendor_passthru/methods > driver-passthru-methods-response.json + + + +######### +# CHASSIS + +POST v1/chassis chassis-create-request.json > chassis-show-response.json +CID=$(cat chassis-show-response.json | grep '"uuid"' | sed 's/.*"\([0-9a-f\-]*\)",*/\1/') +if [ "$CID" == "" ]; then + exit 1 +else + echo "Chassis created. UUID: $CID" +fi + +GET v1/chassis > chassis-list-response.json + +GET v1/chassis/detail > chassis-list-details-response.json + +PATCH v1/chassis/$CID chassis-update-request.json > chassis-update-response.json + +# skip GET /v1/chassis/$UUID because the response is same as POST + + +####### +# NODES + +# 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 +NID=$(cat node-create-response.json | grep '"uuid"' | sed 's/.*"\([0-9a-f\-]*\)",*/\1/') +if [ "$NID" == "" ]; then + exit 1 +else + echo "Node created. UUID: $NID" +fi + +# get the list of passthru methods from agent* driver +GET v1/nodes/$NID/vendor_passthru/methods > node-vendor-passthru-response.json + +# Change to the fake driver and then move the node into the AVAILABLE +# state without saving any output. +# NOTE that these three JSON files are not included in the docs +PATCH v1/nodes/$NID node-update-driver.json +PUT v1/nodes/$NID/states/provision node-set-manage-state.json +PUT v1/nodes/$NID/states/provision node-set-available-state.json + +GET v1/nodes/$NID/validate > node-validate-response.json + +PUT v1/nodes/$NID/states/power node-set-power-off.json +GET v1/nodes/$NID/states > node-get-state-response.json + +GET v1/nodes > nodes-list-response.json +GET v1/nodes/detail > nodes-list-details-response.json +GET v1/nodes/$NID > node-show-response.json + +# Put the Node in maintenance mode, then continue doing everything else +PUT v1/nodes/$NID/maintenance node-maintenance-request.json + +########### +# PORTS + +# Before we can create a port, we must +# write NODE ID into the create request document body +sed -i "s/.*node_uuid.*/ \"node_uuid\": \"$NID\",/" port-create-request.json + +POST v1/ports port-create-request.json > port-create-response.json +PID=$(cat port-create-response.json | grep '"uuid"' | sed 's/.*"\([0-9a-f\-]*\)",*/\1/') +if [ "$PID" == "" ]; then + exit 1 +else + echo "Port created. UUID: $PID" +fi + +GET v1/ports > port-list-respone.json +GET v1/ports/detail > port-list-detail-response.json +PATCH v1/ports/$PID port-update-request.json > port-update-response.json + +# skip GET $PID because same result as POST +# skip DELETE + +################ +# NODE PORT APIs + +GET v1/nodes/$NID/ports > node-port-list-response.json +GET v1/nodes/$NID/ports/detail > node-port-detail-response.json + + +############ +# LOOKUP API + +GET v1/lookup?node_uuid=$NID > lookup-node-response.json + + +##################### +# NODES MANAGEMENT API +# These need to be done while the node is in maintenance mode, +# and the node's driver is "fake", to avoid potential races +# with internal processes that lock the Node + +# this corrects an intentional ommission in some of the samples +PATCH v1/nodes/$NID node-update-driver-info-request.json > node-update-driver-info-response.json + +GET v1/nodes/$NID/management/boot_device/supported > node-get-supported-boot-devices-response.json +PUT v1/nodes/$NID/management/boot_device node-set-boot-device.json +GET v1/nodes/$NID/management/boot_device > node-get-boot-device-response.json diff --git a/api-ref/source/baremetal-api-v1-chassis.inc b/api-ref/source/baremetal-api-v1-chassis.inc index 54b4ddbc16..2bb643ee1c 100644 --- a/api-ref/source/baremetal-api-v1-chassis.inc +++ b/api-ref/source/baremetal-api-v1-chassis.inc @@ -21,7 +21,8 @@ List chassis with details Lists all chassis with details. Normal response codes: 200 -Error response codes:413,405,404,403,401,400,503, + +.. TODO: add error codes Request ------- @@ -58,7 +59,8 @@ Show chassis details Shows details for a chassis. Normal response codes: 200 -Error response codes:413,405,404,403,401,400,503, + +.. TODO: add error codes Request ------- @@ -83,6 +85,7 @@ Response Example .. literalinclude:: samples/chassis-show-response.json :language: javascript + Update chassis ============== @@ -91,11 +94,15 @@ Update chassis Updates a chassis. Normal response codes: 200 -Error response codes:413,415,405,404,403,401,400,503,409, + +.. TODO: add error codes Request ------- +The BODY of the PATCH request must be a JSON PATCH document, adhering to +`RFC 6902 `_. + .. rest_parameters:: parameters.yaml - chassis: chassis @@ -125,7 +132,7 @@ Response Parameters Response Example ---------------- -.. literalinclude:: samples/chassis-show-response.json +.. literalinclude:: samples/chassis-update-response.json :language: javascript @@ -136,7 +143,7 @@ Delete chassis Deletes a chassis. -Error response codes:204,413,415,405,404,403,401,400,503,409, +.. TODO: add error codes Request ------- @@ -178,6 +185,12 @@ Response Parameters - nodes: nodes - uuid: uuid +Response Example +---------------- + +.. literalinclude:: samples/chassis-show-response.json + :language: javascript + List chassis ============ @@ -186,7 +199,8 @@ List chassis Lists all chassis. Normal response codes: 200 -Error response codes:413,405,404,403,401,400,503, + +.. TODO: add error codes Request ------- diff --git a/api-ref/source/baremetal-api-v1-misc.inc b/api-ref/source/baremetal-api-v1-misc.inc new file mode 100644 index 0000000000..d33ae2da0d --- /dev/null +++ b/api-ref/source/baremetal-api-v1-misc.inc @@ -0,0 +1,108 @@ +.. -*- rst -*- + +======= +Utility +======= + +This section describes two API endpoints used by the ``ironic-python-agent`` +ramdisk as it communicates with the Bare Metal service. These were previously +exposed as vendor passthrough methods, however, as ironic-python-agent has +become the standard ramdisk agent, these methods have been made a part of the +official REST API. + +.. note:: + **Operators are reminded not to expose the Bare Metal Service's API to + unsecured networks.** Both API endpoints listed below are available to + *unauthenticated* clients because the default method for booting the + ``ironic-python-agent`` ramdisk does not provide the agent with keystone + credentials. + +.. note:: + It is possible to include keys in your ramdisk, or pass keys in via the + boot method, if your driver supports it; if that is done, you may configure + these endpoint to require authentication by changing the policy rules + ``baremetal:driver:ipa_lookup`` and ``baremetal:node:ipa_heartbeat``. + In light of that, operators are recommended to ensure that this endpoint is + only available on the ``provisioning`` and ``cleaning`` networks. + + +Agent Lookup +============ + +.. rest_method:: GET /v1/lookup + +Beginning with the v1.22 API, a ``/lookup`` method is exposed at the root of +the REST API. This should only be used by the ``ironic-python-agent`` ramdisk +to retrieve required configuration data from the Bare Metal service. + +By default, ``/v1/lookup`` will only match Nodes that are expected to be +running the ``ironic-python-agent`` ramdisk (for instance, because the Bare +Metal service has just initiated a deployment). It can not be used as a +generic search mechanism, though this behaviour may be changed by setting +the ``[api] restrict_lookup = false`` configuration option for the ironic-api +service. + +The query string should include either or both a ``node_uuid`` or an +``addresses`` query parameter. If a matching Node is found, information about +that Node shall be returned, including instance-specific information such as +the configdrive. + +This deprecates the ``agent``-driver specific ``vendor_passthru`` method of the +same name, previously accessible at +``/v1/drivers/agent_*/vendor_passthru?method=lookup``. + +Normal response codes: 200 + +Error response codes: 400 404 + +Request +------- + +.. rest_parameters:: parameters.yaml + + - node_uuid: r_node_uuid + - addresses: r_addresses + +Response +-------- + +Returns only the information about the corresponding Node that the +``ironic-python-agent`` process requires. + +.. rest_parameters:: parameters.yaml + + - node: agent_node + - config: agent_config + +Response Example +---------------- + +.. literalinclude:: samples/lookup-node-response.json + :language: javascript + + +Agent Heartbeat +=============== + +.. rest_method:: POST /v1/heartbeat/{node_ident} + +Beginning with the v1.22 API, a ``/heartbeat`` method is exposed at the root of +the REST API. This is used as a callback from within the ``ironic-python-agent`` +ramdisk, so that an active ramdisk may periodically contact the Bare Metal +service and provide the current URL at which to contact the agent. + +This deprecates the ``agent``-driver specific ``vendor_passthru`` method of the +same name, previously accessible at +``/v1/nodes/{node_ident}/vendor_passthru?method=heartbeat``. + +Normal response codes: 202 + +Error response codes: 400 404 + +Request +------- + +.. rest_parameters:: parameters.yaml + + - node_ident: node_ident + - callback_url: callback_url diff --git a/api-ref/source/baremetal-api-v1-node-management.inc b/api-ref/source/baremetal-api-v1-node-management.inc index 289ab743a7..c827159168 100644 --- a/api-ref/source/baremetal-api-v1-node-management.inc +++ b/api-ref/source/baremetal-api-v1-node-management.inc @@ -155,7 +155,7 @@ Request **Example JSON request body to set boot device:** -.. literalinclude:: samples/node-get-or-set-boot-device.json +.. literalinclude:: samples/node-set-boot-device.json Get Boot Device @@ -190,7 +190,7 @@ Response **Example JSON response to get boot device:** -.. literalinclude:: samples/node-get-or-set-boot-device.json +.. literalinclude:: samples/node-get-boot-device-response.json Get Supported Boot Devices diff --git a/api-ref/source/baremetal-api-v1-nodes.inc b/api-ref/source/baremetal-api-v1-nodes.inc index 408099c182..14a09036b6 100644 --- a/api-ref/source/baremetal-api-v1-nodes.inc +++ b/api-ref/source/baremetal-api-v1-nodes.inc @@ -71,7 +71,15 @@ API microversion 1.7 introduced the ``clean_step`` field` API microversion 1.12 introduced support for the ``raid_config`` and ``target_raid_config`` fields. -The list and example below are representative of the response as of API microversion 1.16. +API microversion 1.20 introduced the ``network_interface`` field. If this field +is not supplied when creating the Node, the default value will be used. + +API microversion 1.21 introduced the ``resource_class`` field, which may be used to +store a resource designation for the proposed OpenStack Placement Engine. This +field has no effect within Ironic. + + +The list and example below are representative of the response as of API microversion 1.22. .. rest_parameters:: parameters.yaml @@ -100,6 +108,8 @@ The list and example below are representative of the response as of API microver - links: links - ports: n_ports - states: n_states + - network_interface: network_interface + - resource_class: resource_class **Example JSON representation of a Node:** @@ -128,6 +138,9 @@ the list of returned Nodes to be filtered by their current state. API microversion 1.16 added the ``driver`` Request parameter, allowing the list of returned Nodes to be filtered by their driver name. +API microversion 1.21 added the ``resource_class`` Request parameter, +allowing the list of returned Nodes to be filtered by this field. + Normal response codes: 200 .. TODO: add error codes @@ -142,6 +155,7 @@ Request - associated: r_associated - provision_state: r_provision_state - driver: r_driver + - resource_class: r_resource_class - fields: fields - limit: limit - marker: marker @@ -192,6 +206,7 @@ Request - associated: r_associated - provision_state: r_provision_state - driver: r_driver + - resource_class: r_resource_class - limit: limit - marker: marker - sort_dir: sort_dir @@ -227,6 +242,8 @@ Response - links: links - ports: n_ports - states: n_states + - network_interface: network_interface + - resource_class: resource_class **Example detailed list of Nodes:** @@ -285,6 +302,8 @@ Response - links: links - ports: n_ports - states: n_states + - network_interface: network_interface + - resource_class: resource_class **Example JSON representation of a Node:** @@ -350,6 +369,8 @@ Response - links: links - ports: n_ports - states: n_states + - network_interface: network_interface + - resource_class: resource_class **Example JSON representation of a Node:** diff --git a/api-ref/source/baremetal-api-versions.inc b/api-ref/source/baremetal-api-versions.inc index 4b74dd6403..11b5ec769b 100644 --- a/api-ref/source/baremetal-api-versions.inc +++ b/api-ref/source/baremetal-api-versions.inc @@ -14,6 +14,8 @@ supports versioning. There are two kinds of versions in Ironic. - ''microversions'', which can be requested through the use of the ``X-OpenStack-Ironic-API-Version`` header. +The Version APIs work differently from other APIs as they *do not* require authentication. + Beginning with the Kilo release, all API requests support the ``X-OpenStack-Ironic-API-Version`` header. This header SHOULD be supplied with every request; in the absence of this header, each request is treated @@ -75,4 +77,4 @@ Response Example - x-openstack-ironic-api-max-version: x-openstack-ironic-api-max-version .. literalinclude:: samples/api-v1-root-response.json - :language: javascript \ No newline at end of file + :language: javascript diff --git a/api-ref/source/index.rst b/api-ref/source/index.rst index caf609a255..6ce990be47 100644 --- a/api-ref/source/index.rst +++ b/api-ref/source/index.rst @@ -4,14 +4,6 @@ Bare Metal API ================ -This documentation describes the REST API for the Ironic service, beginning with the -5.1.0 (Mitaka) release. - -Version negotiation is implemented in the server. When the negotiated version -is not the current maximum version, both request and response may not match what -is presented in this document. Significant changes may be noted inline. - - .. rest_expand_all:: .. include:: baremetal-api-versions.inc @@ -23,4 +15,5 @@ is presented in this document. Significant changes may be noted inline. .. include:: baremetal-api-v1-drivers.inc .. include:: baremetal-api-v1-driver-passthru.inc .. include:: baremetal-api-v1-chassis.inc +.. include:: baremetal-api-v1-misc.inc diff --git a/api-ref/source/parameters.yaml b/api-ref/source/parameters.yaml index 65e655d71f..be19c4161b 100644 --- a/api-ref/source/parameters.yaml +++ b/api-ref/source/parameters.yaml @@ -15,7 +15,7 @@ openstack-request-id: type: string x-openstack-ironic-api-max-version: description: | - Maximum API microversion supported by this endpoint, eg. "1.16" + Maximum API microversion supported by this endpoint, eg. "1.22" in: header required: true type: string @@ -70,6 +70,14 @@ port_ident: type: string +callback_url: + description: | + The URL of an active ironic-python-agent ramdisk, sent back to the Bare + Metal service and stored temporarily during a provisioning action. + in: query + required: true + type: string + # variables common to all query strings fields: description: | @@ -114,6 +122,14 @@ method_name: required: true type: string +# variable in the lookup query string +r_addresses: + description: | + Optional list of one or more Port addresses. + in: query + required: false + type: list + # variables in the node query string r_associated: description: | @@ -143,6 +159,13 @@ r_maintenance: in: query required: false type: boolean +# variable in the lookup query string +r_node_uuid: + description: | + Optional Node UUID. + in: query + required: false + type: string r_port_address: description: | Filter the list of returned Ports, and only return the ones with the @@ -172,6 +195,13 @@ r_provision_state: in: query required: false type: string +r_resource_class: + description: | + Filter the list of returned nodes, and only return the ones with the + specified resource class. Introduced in API version 1.21. + in: query + required: false + type: string sort_dir: description: | Sorts the response by the requested sort @@ -196,6 +226,22 @@ sort_key: type: string + +# variable returned from /lookup +agent_config: + description: | + JSON document of configuration data for the ironic-python-agent process. + in: body + required: true + type: JSON +agent_node: + description: | + JSON document containing a subset of Node fields, used by the + ironic-python-agent process as it operates on the Node. + in: body + required: true + type: JSON + # variables in the API response body boot_device: description: | @@ -412,6 +458,13 @@ name: in: body required: true type: string +network_interface: + description: | + Which Network Interface provider to use when plumbing the network + connections for this Node. Added in API microversion v1.20 + in: body + required: true + type: string node_name: description: | Human-readable identifier for the Node resource. May be undefined. Certain @@ -545,6 +598,14 @@ reservation: in: body required: true type: string +resource_class: + description: | + A string which can be used by external schedulers to identify this Node as + a unit of a specific type of resource. This will be used by the openstack + Placement Engine in a future release. Added in API microversion 1.21. + in: body + required: true + type: string supported_boot_devices: description: | List of boot devices which this Node's driver supports. @@ -637,7 +698,7 @@ v_raid: version: description: | - Versioning of this API response, eg. "1.16". + Versioning of this API response, eg. "1.22". in: body required: true type: string diff --git a/api-ref/source/samples/api-root-response.json b/api-ref/source/samples/api-root-response.json index 3a860c34df..95dfa51b76 100644 --- a/api-ref/source/samples/api-root-response.json +++ b/api-ref/source/samples/api-root-response.json @@ -1,30 +1,30 @@ { - "name" : "OpenStack Ironic API", - "description" : "Ironic is an OpenStack project which aims to provision baremetal machines.", - "default_version" : { - "status" : "CURRENT", - "version" : "1.16", - "links" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/" - } - ], - "id" : "v1", - "min_version" : "1.1" - }, - "versions" : [ + "default_version": { + "id": "v1", + "links": [ { - "status" : "CURRENT", - "links" : [ - { - "href" : "http://127.0.0.1:6385/v1/", - "rel" : "self" - } - ], - "id" : "v1", - "version" : "1.16", - "min_version" : "1.1" + "href": "http://127.0.0.1:6385/v1/", + "rel": "self" } - ] + ], + "min_version": "1.1", + "status": "CURRENT", + "version": "1.22" + }, + "description": "Ironic is an OpenStack project which aims to provision baremetal machines.", + "name": "OpenStack Ironic API", + "versions": [ + { + "id": "v1", + "links": [ + { + "href": "http://127.0.0.1:6385/v1/", + "rel": "self" + } + ], + "min_version": "1.1", + "status": "CURRENT", + "version": "1.22" + } + ] } diff --git a/api-ref/source/samples/api-v1-root-response.json b/api-ref/source/samples/api-v1-root-response.json index 9fcb56b910..2411739e54 100644 --- a/api-ref/source/samples/api-v1-root-response.json +++ b/api-ref/source/samples/api-v1-root-response.json @@ -1,60 +1,80 @@ { - "chassis" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/chassis/" - }, - { - "href" : "http://127.0.0.1:6385/chassis/", - "rel" : "bookmark" - } - ], - "links" : [ - { - "href" : "http://127.0.0.1:6385/v1/", - "rel" : "self" - }, - { - "rel" : "describedby", - "type" : "text/html", - "href" : "http://docs.openstack.org/developer/ironic/dev/api-spec-v1.html" - } - ], - "nodes" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/nodes/" - }, - { - "rel" : "bookmark", - "href" : "http://127.0.0.1:6385/nodes/" - } - ], - "ports" : [ - { - "href" : "http://127.0.0.1:6385/v1/ports/", - "rel" : "self" - }, - { - "rel" : "bookmark", - "href" : "http://127.0.0.1:6385/ports/" - } - ], - "media_types" : [ - { - "type" : "application/vnd.openstack.ironic.v1+json", - "base" : "application/json" - } - ], - "drivers" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/drivers/" - }, - { - "href" : "http://127.0.0.1:6385/drivers/", - "rel" : "bookmark" - } - ], - "id" : "v1" -} \ No newline at end of file + "chassis": [ + { + "href": "http://127.0.0.1:6385/v1/chassis/", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/chassis/", + "rel": "bookmark" + } + ], + "drivers": [ + { + "href": "http://127.0.0.1:6385/v1/drivers/", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/drivers/", + "rel": "bookmark" + } + ], + "heartbeat": [ + { + "href": "http://127.0.0.1:6385/v1/heartbeat/", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/heartbeat/", + "rel": "bookmark" + } + ], + "id": "v1", + "links": [ + { + "href": "http://127.0.0.1:6385/v1/", + "rel": "self" + }, + { + "href": "http://docs.openstack.org/developer/ironic/dev/api-spec-v1.html", + "rel": "describedby", + "type": "text/html" + } + ], + "lookup": [ + { + "href": "http://127.0.0.1:6385/v1/lookup/", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/lookup/", + "rel": "bookmark" + } + ], + "media_types": [ + { + "base": "application/json", + "type": "application/vnd.openstack.ironic.v1+json" + } + ], + "nodes": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/", + "rel": "bookmark" + } + ], + "ports": [ + { + "href": "http://127.0.0.1:6385/v1/ports/", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/ports/", + "rel": "bookmark" + } + ] +} diff --git a/api-ref/source/samples/chassis-create-request.json b/api-ref/source/samples/chassis-create-request.json index 56a95334d3..7ce621ed68 100644 --- a/api-ref/source/samples/chassis-create-request.json +++ b/api-ref/source/samples/chassis-create-request.json @@ -1,7 +1,3 @@ { - "chassis": [ - { - "description": "Sample chassis" - } - ] + "description": "Sample chassis" } diff --git a/api-ref/source/samples/chassis-list-details-response.json b/api-ref/source/samples/chassis-list-details-response.json index 034166cf5a..f9aac021e2 100644 --- a/api-ref/source/samples/chassis-list-details-response.json +++ b/api-ref/source/samples/chassis-list-details-response.json @@ -1,18 +1,31 @@ { - "chassis": [ + "chassis": [ + { + "created_at": "2016-08-18T22:28:48.165105+00:00", + "description": "Sample chassis", + "extra": {}, + "links": [ { - "description": "Sample chassis", - "links": [ - { - "href": "http://localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89", - "rel": "self" - }, - { - "href": "http://localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89", - "rel": "bookmark" - } - ], - "uuid": "eaaca217-e7d8-47b4-bb41-3f99f20eed89" + "href": "http://127.0.0.1:6385/v1/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1", + "rel": "bookmark" } - ] + ], + "nodes": [ + { + "href": "http://127.0.0.1:6385/v1/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1/nodes", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1/nodes", + "rel": "bookmark" + } + ], + "updated_at": null, + "uuid": "dff29d23-1ded-43b4-8ae1-5eebb3e30de1" + } + ] } diff --git a/api-ref/source/samples/chassis-list-response.json b/api-ref/source/samples/chassis-list-response.json index 034166cf5a..2fa9e5d942 100644 --- a/api-ref/source/samples/chassis-list-response.json +++ b/api-ref/source/samples/chassis-list-response.json @@ -1,18 +1,18 @@ { - "chassis": [ + "chassis": [ + { + "description": "Sample chassis", + "links": [ { - "description": "Sample chassis", - "links": [ - { - "href": "http://localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89", - "rel": "self" - }, - { - "href": "http://localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89", - "rel": "bookmark" - } - ], - "uuid": "eaaca217-e7d8-47b4-bb41-3f99f20eed89" + "href": "http://127.0.0.1:6385/v1/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1", + "rel": "bookmark" } - ] + ], + "uuid": "dff29d23-1ded-43b4-8ae1-5eebb3e30de1" + } + ] } diff --git a/api-ref/source/samples/chassis-show-response.json b/api-ref/source/samples/chassis-show-response.json index 124fff0776..c2f8c6f420 100644 --- a/api-ref/source/samples/chassis-show-response.json +++ b/api-ref/source/samples/chassis-show-response.json @@ -1,27 +1,27 @@ { - "created_at": "2000-01-01T12:00:00", - "description": "Sample chassis", - "extra": {}, - "links": [ - { - "href": "http://localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89", - "rel": "self" - }, - { - "href": "http://localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89", - "rel": "bookmark" - } - ], - "nodes": [ - { - "href": "http://localhost:6385/v1/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89/nodes", - "rel": "self" - }, - { - "href": "http://localhost:6385/chassis/eaaca217-e7d8-47b4-bb41-3f99f20eed89/nodes", - "rel": "bookmark" - } - ], - "updated_at": "2000-01-01T12:00:00", - "uuid": "eaaca217-e7d8-47b4-bb41-3f99f20eed89" + "created_at": "2016-08-18T22:28:48.165105+00:00", + "description": "Sample chassis", + "extra": {}, + "links": [ + { + "href": "http://127.0.0.1:6385/v1/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1", + "rel": "bookmark" + } + ], + "nodes": [ + { + "href": "http://127.0.0.1:6385/v1/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1/nodes", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1/nodes", + "rel": "bookmark" + } + ], + "updated_at": null, + "uuid": "dff29d23-1ded-43b4-8ae1-5eebb3e30de1" } diff --git a/api-ref/source/samples/chassis-update-request.json b/api-ref/source/samples/chassis-update-request.json index 56a95334d3..d898e8b7c2 100644 --- a/api-ref/source/samples/chassis-update-request.json +++ b/api-ref/source/samples/chassis-update-request.json @@ -1,7 +1,7 @@ -{ - "chassis": [ - { - "description": "Sample chassis" - } - ] -} +[ + { + "op": "replace", + "path": "/description", + "value": "Updated Chassis" + } +] diff --git a/api-ref/source/samples/chassis-update-response.json b/api-ref/source/samples/chassis-update-response.json new file mode 100644 index 0000000000..7e7279c9f9 --- /dev/null +++ b/api-ref/source/samples/chassis-update-response.json @@ -0,0 +1,27 @@ +{ + "created_at": "2016-08-18T22:28:48.165105+00:00", + "description": "Updated Chassis", + "extra": {}, + "links": [ + { + "href": "http://127.0.0.1:6385/v1/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1", + "rel": "bookmark" + } + ], + "nodes": [ + { + "href": "http://127.0.0.1:6385/v1/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1/nodes", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/chassis/dff29d23-1ded-43b4-8ae1-5eebb3e30de1/nodes", + "rel": "bookmark" + } + ], + "updated_at": "2016-08-18T22:28:48.556556+00:00", + "uuid": "dff29d23-1ded-43b4-8ae1-5eebb3e30de1" +} diff --git a/api-ref/source/samples/driver-get-response.json b/api-ref/source/samples/driver-get-response.json index c38c089225..fa4bac4b33 100644 --- a/api-ref/source/samples/driver-get-response.json +++ b/api-ref/source/samples/driver-get-response.json @@ -1,26 +1,26 @@ { - "links" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/drivers/agent_ipmitool" - }, - { - "href" : "http://127.0.0.1:6385/drivers/agent_ipmitool", - "rel" : "bookmark" - } - ], - "name" : "agent_ipmitool", - "properties" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/drivers/agent_ipmitool/properties" - }, - { - "rel" : "bookmark", - "href" : "http://127.0.0.1:6385/drivers/agent_ipmitool/properties" - } - ], - "hosts" : [ - "localhost" - ] + "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" + } + ] } diff --git a/api-ref/source/samples/driver-logical-disk-properties-response.json b/api-ref/source/samples/driver-logical-disk-properties-response.json index d95bc34280..deda03f52c 100644 --- a/api-ref/source/samples/driver-logical-disk-properties-response.json +++ b/api-ref/source/samples/driver-logical-disk-properties-response.json @@ -1,12 +1,12 @@ { - "share_physical_disks" : "Specifies whether other logical disks can share physical disks with this logical disk. By default, this is False. Optional.", - "controller" : "Controller to use for this logical disk. If not specified, the driver will choose a suitable RAID controller on the bare metal node. Optional.", - "disk_type" : "The type of disk preferred. Valid values are 'hdd' and 'ssd'. If this is not specified, disk type will not be a selection criterion for choosing backing physical disks. Optional.", - "physical_disks" : "The physical disks to use for this logical disk. If not specified, the driver will choose suitable physical disks to use. Optional.", - "volume_name" : "Name of the volume to be created. If this is not specified, it will be auto-generated. Optional.", - "number_of_physical_disks" : "Number of physical disks to use for this logical disk. By default, the driver uses the minimum number of disks required for that RAID level. Optional.", - "raid_level" : "RAID level for the logical disk. Valid values are '0', '1', '2', '5', '6', '1+0', '5+0' and '6+0'. Required.", - "size_gb" : "Size in GiB (Integer) for the logical disk. Use 'MAX' as size_gb if this logical disk is supposed to use the rest of the space available. Required.", - "interface_type" : "The interface type of disk. Valid values are 'sata', 'scsi' and 'sas'. If this is not specified, interface type will not be a selection criterion for choosing backing physical disks. Optional.", - "is_root_volume" : "Specifies whether this disk is a root volume. By default, this is False. Optional." + "controller": "Controller to use for this logical disk. If not specified, the driver will choose a suitable RAID controller on the bare metal node. Optional.", + "disk_type": "The type of disk preferred. Valid values are 'hdd' and 'ssd'. If this is not specified, disk type will not be a selection criterion for choosing backing physical disks. Optional.", + "interface_type": "The interface type of disk. Valid values are 'sata', 'scsi' and 'sas'. If this is not specified, interface type will not be a selection criterion for choosing backing physical disks. Optional.", + "is_root_volume": "Specifies whether this disk is a root volume. By default, this is False. Optional.", + "number_of_physical_disks": "Number of physical disks to use for this logical disk. By default, the driver uses the minimum number of disks required for that RAID level. Optional.", + "physical_disks": "The physical disks to use for this logical disk. If not specified, the driver will choose suitable physical disks to use. Optional.", + "raid_level": "RAID level for the logical disk. Valid values are 'JBOD', 0', '1', '2', '5', '6', '1+0', '5+0' and '6+0'. Required.", + "share_physical_disks": "Specifies whether other logical disks can share physical disks with this logical disk. By default, this is False. Optional.", + "size_gb": "Size in GiB (Integer) for the logical disk. Use 'MAX' as size_gb if this logical disk is supposed to use the rest of the space available. Required.", + "volume_name": "Name of the volume to be created. If this is not specified, it will be auto-generated. Optional." } diff --git a/api-ref/source/samples/driver-passthru-methods-response.json b/api-ref/source/samples/driver-passthru-methods-response.json index ff4afeb34c..df9160f7bc 100644 --- a/api-ref/source/samples/driver-passthru-methods-response.json +++ b/api-ref/source/samples/driver-passthru-methods-response.json @@ -1,10 +1,10 @@ { - "lookup" : { - "http_methods" : [ - "POST" - ], - "attach" : false, - "description" : "", - "async" : false - } + "lookup": { + "async": false, + "attach": false, + "description": "", + "http_methods": [ + "POST" + ] + } } diff --git a/api-ref/source/samples/driver-property-response.json b/api-ref/source/samples/driver-property-response.json index ec92b0e594..e666a83271 100644 --- a/api-ref/source/samples/driver-property-response.json +++ b/api-ref/source/samples/driver-property-response.json @@ -1,22 +1,22 @@ { - "ipmi_force_boot_device" : "Whether Ironic should specify the boot device to the BMC each time the server is turned on, eg. because the BMC is not capable of remembering the selected boot device across power cycles; default value is False. Optional.", - "deploy_forces_oob_reboot" : "Whether Ironic should force a reboot of the Node via the out-of-band channel after deployment is complete. Provides compatiblity with older deploy ramdisks. Defaults to False. Optional.", - "ipmi_target_address" : "destination address for bridged request. Required only if ipmi_bridging is set to \"single\" or \"dual\".", - "image_https_proxy" : "URL of a proxy server for HTTPS connections. Optional.", - "ipmi_password" : "password. Optional.", - "ipmi_bridging" : "bridging_type; default is \"no\". One of \"single\", \"dual\", \"no\". Optional.", - "deploy_kernel" : "UUID (from Glance) of the deployment kernel. Required.", - "ipmi_address" : "IP address or hostname of the node. Required.", - "image_no_proxy" : "A comma-separated list of host names, IP addresses and domain names (with optional :port) that will be excluded from proxying. To denote a doman name, use a dot to prefix the domain name. This value will be ignored if ``image_http_proxy`` and ``image_https_proxy`` are not specified. Optional.", - "ipmi_local_address" : "local IPMB address for bridged requests. Used only if ipmi_bridging is set to \"single\" or \"dual\". Optional.", - "ipmi_transit_channel" : "transit channel for bridged request. Required only if ipmi_bridging is set to \"dual\".", - "ipmi_transit_address" : "transit address for bridged request. Required only if ipmi_bridging is set to \"dual\".", - "ipmi_username" : "username; default is NULL user. Optional.", - "deploy_ramdisk" : "UUID (from Glance) of the ramdisk that is mounted at boot time. Required.", - "ipmi_target_channel" : "destination channel for bridged request. Required only if ipmi_bridging is set to \"single\" or \"dual\".", - "ipmi_terminal_port" : "node's UDP port to connect to. Only required for console access.", - "image_http_proxy" : "URL of a proxy server for HTTP connections. Optional.", - "ipmi_priv_level" : "privilege level; default is ADMINISTRATOR. One of ADMINISTRATOR, CALLBACK, OPERATOR, USER. Optional.", - "ipmi_protocol_version" : "the version of the IPMI protocol; default is \"2.0\". One of \"1.5\", \"2.0\". Optional.", - "ipmi_port" : "remote IPMI RMCP port. Optional." + "deploy_forces_oob_reboot": "Whether Ironic should force a reboot of the Node via the out-of-band channel after deployment is complete. Provides compatibility with older deploy ramdisks. Defaults to False. Optional.", + "deploy_kernel": "UUID (from Glance) of the deployment kernel. Required.", + "deploy_ramdisk": "UUID (from Glance) of the ramdisk that is mounted at boot time. Required.", + "image_http_proxy": "URL of a proxy server for HTTP connections. Optional.", + "image_https_proxy": "URL of a proxy server for HTTPS connections. Optional.", + "image_no_proxy": "A comma-separated list of host names, IP addresses and domain names (with optional :port) that will be excluded from proxying. To denote a doman name, use a dot to prefix the domain name. This value will be ignored if ``image_http_proxy`` and ``image_https_proxy`` are not specified. Optional.", + "ipmi_address": "IP address or hostname of the node. Required.", + "ipmi_bridging": "bridging_type; default is \"no\". One of \"single\", \"dual\", \"no\". Optional.", + "ipmi_force_boot_device": "Whether Ironic should specify the boot device to the BMC each time the server is turned on, eg. because the BMC is not capable of remembering the selected boot device across power cycles; default value is False. Optional.", + "ipmi_local_address": "local IPMB address for bridged requests. Used only if ipmi_bridging is set to \"single\" or \"dual\". Optional.", + "ipmi_password": "password. Optional.", + "ipmi_port": "remote IPMI RMCP port. Optional.", + "ipmi_priv_level": "privilege level; default is ADMINISTRATOR. One of ADMINISTRATOR, CALLBACK, OPERATOR, USER. Optional.", + "ipmi_protocol_version": "the version of the IPMI protocol; default is \"2.0\". One of \"1.5\", \"2.0\". Optional.", + "ipmi_target_address": "destination address for bridged request. Required only if ipmi_bridging is set to \"single\" or \"dual\".", + "ipmi_target_channel": "destination channel for bridged request. Required only if ipmi_bridging is set to \"single\" or \"dual\".", + "ipmi_terminal_port": "node's UDP port to connect to. Only required for console access.", + "ipmi_transit_address": "transit address for bridged request. Required only if ipmi_bridging is set to \"dual\".", + "ipmi_transit_channel": "transit channel for bridged request. Required only if ipmi_bridging is set to \"dual\".", + "ipmi_username": "username; default is NULL user. Optional." } diff --git a/api-ref/source/samples/drivers-list-response.json b/api-ref/source/samples/drivers-list-response.json index 01e573264a..b49fda04cb 100644 --- a/api-ref/source/samples/drivers-list-response.json +++ b/api-ref/source/samples/drivers-list-response.json @@ -1,30 +1,108 @@ { - "drivers" : [ - { - "hosts" : [ - "localhost" - ], - "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" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/drivers/agent_ipmitool/properties" - }, - { - "href" : "http://127.0.0.1:6385/drivers/agent_ipmitool/properties", - "rel" : "bookmark" - } - ] - } - ] + "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" + ], + "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" + } + ] + }, + { + "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" + } + ] + } + ] } diff --git a/api-ref/source/samples/lookup-node-response.json b/api-ref/source/samples/lookup-node-response.json new file mode 100644 index 0000000000..995bf40786 --- /dev/null +++ b/api-ref/source/samples/lookup-node-response.json @@ -0,0 +1,34 @@ +{ + "config": { + "heartbeat_timeout": 300, + "metrics": { + "backend": "noop", + "global_prefix": null, + "prepend_host": false, + "prepend_host_reverse": true, + "prepend_uuid": false + }, + "metrics_statsd": { + "statsd_host": "localhost", + "statsd_port": 8125 + } + }, + "node": { + "driver_internal_info": { + "clean_steps": null + }, + "instance_info": {}, + "links": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "bookmark" + } + ], + "properties": {}, + "uuid": "6d85703a-565d-469a-96ce-30b6de53079d" + } +} diff --git a/api-ref/source/samples/node-create-request.json b/api-ref/source/samples/node-create-request.json index d922203025..1c78c58605 100644 --- a/api-ref/source/samples/node-create-request.json +++ b/api-ref/source/samples/node-create-request.json @@ -1,4 +1,8 @@ { + "name": "test_node", "driver": "agent_ipmitool", - "name": "test_node" + "driver_info": { + "ipmi_username": "ADMIN", + "ipmi_password": "password" + } } diff --git a/api-ref/source/samples/node-create-response.json b/api-ref/source/samples/node-create-response.json index 4e52c8f963..4f7796371a 100644 --- a/api-ref/source/samples/node-create-response.json +++ b/api-ref/source/samples/node-create-response.json @@ -1,58 +1,63 @@ { - "last_error" : null, - "extra" : {}, - "reservation" : null, - "driver" : "agent_ipmitool", - "instance_info" : {}, - "created_at" : "2016-05-04T22:59:49.300836+00:00", - "raid_config" : {}, - "uuid" : "14deb747-127c-4fe4-be9d-906c43006cd4", - "maintenance_reason" : null, - "target_provision_state" : null, - "ports" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/nodes/14deb747-127c-4fe4-be9d-906c43006cd4/ports" - }, - { - "rel" : "bookmark", - "href" : "http://127.0.0.1:6385/nodes/14deb747-127c-4fe4-be9d-906c43006cd4/ports" - } - ], - "power_state" : null, - "instance_uuid" : null, - "name" : "test_node_", - "properties" : {}, - "clean_step" : {}, - "console_enabled" : false, - "driver_internal_info" : {}, - "target_power_state" : null, - "inspection_started_at" : null, - "provision_state" : "enroll", - "provision_updated_at" : null, - "driver_info" : {}, - "inspection_finished_at" : null, - "updated_at" : null, - "links" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/nodes/14deb747-127c-4fe4-be9d-906c43006cd4" - }, - { - "href" : "http://127.0.0.1:6385/nodes/14deb747-127c-4fe4-be9d-906c43006cd4", - "rel" : "bookmark" - } - ], - "target_raid_config" : {}, - "maintenance" : false, - "states" : [ - { - "href" : "http://127.0.0.1:6385/v1/nodes/14deb747-127c-4fe4-be9d-906c43006cd4/states", - "rel" : "self" - }, - { - "href" : "http://127.0.0.1:6385/nodes/14deb747-127c-4fe4-be9d-906c43006cd4/states", - "rel" : "bookmark" - } - ] + "clean_step": {}, + "console_enabled": false, + "created_at": "2016-08-18T22:28:48.643434+00:00", + "driver": "agent_ipmitool", + "driver_info": { + "ipmi_password": "******", + "ipmi_username": "ADMIN" + }, + "driver_internal_info": {}, + "extra": {}, + "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/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "bookmark" + } + ], + "maintenance": false, + "maintenance_reason": null, + "name": "test_node", + "network_interface": "flat", + "ports": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/6d85703a-565d-469a-96ce-30b6de53079d/ports", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d/ports", + "rel": "bookmark" + } + ], + "power_state": null, + "properties": {}, + "provision_state": "enroll", + "provision_updated_at": null, + "raid_config": {}, + "reservation": null, + "resource_class": null, + "states": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/6d85703a-565d-469a-96ce-30b6de53079d/states", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d/states", + "rel": "bookmark" + } + ], + "target_power_state": null, + "target_provision_state": null, + "target_raid_config": {}, + "updated_at": null, + "uuid": "6d85703a-565d-469a-96ce-30b6de53079d" } diff --git a/api-ref/source/samples/node-get-boot-device-response.json b/api-ref/source/samples/node-get-boot-device-response.json new file mode 100644 index 0000000000..572a6c1308 --- /dev/null +++ b/api-ref/source/samples/node-get-boot-device-response.json @@ -0,0 +1,4 @@ +{ + "boot_device": "pxe", + "persistent": false +} diff --git a/api-ref/source/samples/node-get-state-response.json b/api-ref/source/samples/node-get-state-response.json index b33c8dfbad..67b25fe757 100644 --- a/api-ref/source/samples/node-get-state-response.json +++ b/api-ref/source/samples/node-get-state-response.json @@ -1,11 +1,11 @@ { - "last_error" : "", - "target_raid_config" : {}, - "target_power_state" : null, - "console_enabled" : false, - "target_provision_state" : null, - "provision_updated_at" : null, - "power_state" : "power off", - "raid_config" : {}, - "provision_state" : "available" + "console_enabled": false, + "last_error": null, + "power_state": "power off", + "provision_state": "available", + "provision_updated_at": "2016-08-18T22:28:49.382814+00:00", + "raid_config": {}, + "target_power_state": null, + "target_provision_state": null, + "target_raid_config": {} } diff --git a/api-ref/source/samples/node-get-supported-boot-devices-response.json b/api-ref/source/samples/node-get-supported-boot-devices-response.json index cf72fdfe8e..e5739326cb 100644 --- a/api-ref/source/samples/node-get-supported-boot-devices-response.json +++ b/api-ref/source/samples/node-get-supported-boot-devices-response.json @@ -1,9 +1,5 @@ { - "supported_boot_devices" : [ - "pxe", - "disk", - "cdrom", - "bios", - "safe" - ] + "supported_boot_devices": [ + "pxe" + ] } diff --git a/api-ref/source/samples/node-port-detail-response.json b/api-ref/source/samples/node-port-detail-response.json index 1b8e57a4e5..8811865536 100644 --- a/api-ref/source/samples/node-port-detail-response.json +++ b/api-ref/source/samples/node-port-detail-response.json @@ -1,29 +1,29 @@ { - "ports" : [ - { - "extra" : {}, - "address" : "22:22:22:22:22:22", - "updated_at" : "2016-05-05T22:48:52+00:00", - "node_uuid" : "ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "links" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/ports/c933a251-486f-4c27-adb2-8b5f59bd9cd2" - }, - { - "href" : "http://127.0.0.1:6385/ports/c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "rel" : "bookmark" - } - ], - "created_at" : "2016-05-05T22:30:57+00:00", - "uuid" : "c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "pxe_enabled": true, - "local_link_connection": { - "switch_id": "0a:1b:2c:3d:4e:5f", - "port_id": "Ethernet3/1", - "switch_info": "switch1" - }, - "internal_info": {} - } - ] + "ports": [ + { + "address": "22:22:22:22:22:22", + "created_at": "2016-08-18T22:28:49.946416+00:00", + "extra": {}, + "internal_info": {}, + "links": [ + { + "href": "http://127.0.0.1:6385/v1/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "bookmark" + } + ], + "local_link_connection": { + "port_id": "Ethernet3/1", + "switch_id": "0a:1b:2c:3d:4e:5f", + "switch_info": "switch1" + }, + "node_uuid": "6d85703a-565d-469a-96ce-30b6de53079d", + "pxe_enabled": true, + "updated_at": "2016-08-18T22:28:50.148137+00:00", + "uuid": "d2b30520-907d-46c8-bfee-c5586e6fb3a1" + } + ] } diff --git a/api-ref/source/samples/node-port-list-response.json b/api-ref/source/samples/node-port-list-response.json index 5606a25e51..9cfc444138 100644 --- a/api-ref/source/samples/node-port-list-response.json +++ b/api-ref/source/samples/node-port-list-response.json @@ -1,18 +1,18 @@ { - "ports" : [ - { - "uuid" : "c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "links" : [ - { - "href" : "http://127.0.0.1:6385/v1/ports/c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "rel" : "self" - }, - { - "href" : "http://127.0.0.1:6385/ports/c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "rel" : "bookmark" - } - ], - "address" : "22:22:22:22:22:22" - } - ] + "ports": [ + { + "address": "22:22:22:22:22:22", + "links": [ + { + "href": "http://127.0.0.1:6385/v1/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "bookmark" + } + ], + "uuid": "d2b30520-907d-46c8-bfee-c5586e6fb3a1" + } + ] } diff --git a/api-ref/source/samples/node-set-available-state.json b/api-ref/source/samples/node-set-available-state.json new file mode 100644 index 0000000000..d5147cb2b1 --- /dev/null +++ b/api-ref/source/samples/node-set-available-state.json @@ -0,0 +1,3 @@ +{ + "target": "provide" +} diff --git a/api-ref/source/samples/node-get-or-set-boot-device.json b/api-ref/source/samples/node-set-boot-device.json similarity index 100% rename from api-ref/source/samples/node-get-or-set-boot-device.json rename to api-ref/source/samples/node-set-boot-device.json diff --git a/api-ref/source/samples/node-set-clean-state.json b/api-ref/source/samples/node-set-clean-state.json index 0171a20f16..c19ef34432 100644 --- a/api-ref/source/samples/node-set-clean-state.json +++ b/api-ref/source/samples/node-set-clean-state.json @@ -2,11 +2,11 @@ "target": "clean", "clean_steps": [ { - 'interface': 'deploy', - 'step': 'upgrade_firmware', - 'args': { - 'force': True + "interface": "deploy", + "step": "upgrade_firmware", + "args": { + "force": "True" } } ] -} \ No newline at end of file +} diff --git a/api-ref/source/samples/node-set-manage-state.json b/api-ref/source/samples/node-set-manage-state.json new file mode 100644 index 0000000000..b8508fa87c --- /dev/null +++ b/api-ref/source/samples/node-set-manage-state.json @@ -0,0 +1,3 @@ +{ + "target": "manage" +} diff --git a/api-ref/source/samples/node-show-response.json b/api-ref/source/samples/node-show-response.json index 2e4bf1d029..79536a57a8 100644 --- a/api-ref/source/samples/node-show-response.json +++ b/api-ref/source/samples/node-show-response.json @@ -1,71 +1,65 @@ { - "target_provision_state" : null, - "instance_info" : {}, - "updated_at" : "2016-05-05T00:28:40+00:00", - "maintenance_reason" : null, - "inspection_started_at" : null, - "target_power_state" : null, - "ports" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/ports" - }, - { - "href" : "http://127.0.0.1:6385/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/ports", - "rel" : "bookmark" - } - ], - "maintenance" : false, - "driver" : "fake", - "provision_state" : "available", - "reservation" : null, - "uuid" : "ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "extra" : { - "foo" : "bar" - }, - "driver_internal_info" : {}, - "states" : [ - { - "href" : "http://127.0.0.1:6385/v1/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/states", - "rel" : "self" - }, - { - "rel" : "bookmark", - "href" : "http://127.0.0.1:6385/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/states" - } - ], - "target_raid_config" : {}, - "console_enabled" : false, - "clean_step" : {}, - "last_error" : null, - "links" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb" - }, - { - "rel" : "bookmark", - "href" : "http://127.0.0.1:6385/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb" - } - ], - "provision_updated_at" : null, - "name" : "test_node", - "properties" : { - "local_gb" : 10, - "cpu_arch" : "x86_64", - "cpus" : 1, - "memory_mb" : 1024 - }, - "power_state" : "power off", - "created_at" : "2016-04-20T16:51:03+00:00", - "instance_uuid" : null, - "raid_config" : {}, - "driver_info" : { - "ipmi_password" : "***", - "ipmi_username" : "ADMIN", - "ipmi_address" : "1.2.3.4", - "deploy_kernel" : "http://127.0.0.1/images/kernel", - "deploy_ramdisk" : "http://127.0.0.1/images/ramdisk" - }, - "inspection_finished_at" : null + "clean_step": {}, + "console_enabled": false, + "created_at": "2016-08-18T22:28:48.643434+00:00", + "driver": "fake", + "driver_info": { + "ipmi_password": "******", + "ipmi_username": "ADMIN" + }, + "driver_internal_info": { + "clean_steps": null + }, + "extra": {}, + "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/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "bookmark" + } + ], + "maintenance": false, + "maintenance_reason": null, + "name": "test_node", + "network_interface": "flat", + "ports": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/6d85703a-565d-469a-96ce-30b6de53079d/ports", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d/ports", + "rel": "bookmark" + } + ], + "power_state": "power off", + "properties": {}, + "provision_state": "available", + "provision_updated_at": "2016-08-18T22:28:49.382814+00:00", + "raid_config": {}, + "reservation": null, + "resource_class": null, + "states": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/6d85703a-565d-469a-96ce-30b6de53079d/states", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d/states", + "rel": "bookmark" + } + ], + "target_power_state": null, + "target_provision_state": null, + "target_raid_config": {}, + "updated_at": "2016-08-18T22:28:49.653974+00:00", + "uuid": "6d85703a-565d-469a-96ce-30b6de53079d" } diff --git a/api-ref/source/samples/node-update-driver-info-request.json b/api-ref/source/samples/node-update-driver-info-request.json index 7c4fe53bac..fdd9001fbf 100644 --- a/api-ref/source/samples/node-update-driver-info-request.json +++ b/api-ref/source/samples/node-update-driver-info-request.json @@ -1,12 +1,17 @@ [ { - "op" : "replace", - "path" : "/driver_info/ipmi_username", - "value" : "OPERATOR" + "op": "replace", + "path": "/driver_info/ipmi_username", + "value": "OPERATOR" }, { - "value" : "10.0.0.123", - "op" : "replace", - "path" : "/driver_info/ipmi_address" + "op": "add", + "path": "/driver_info/deploy_kernel", + "value": "http://127.0.0.1/images/kernel" + }, + { + "op": "add", + "path": "/driver_info/deploy_ramdisk", + "value": "http://127.0.0.1/images/ramdisk" } ] diff --git a/api-ref/source/samples/node-update-driver-info-response.json b/api-ref/source/samples/node-update-driver-info-response.json index 6f9a6cf2f0..2c6cce66b2 100644 --- a/api-ref/source/samples/node-update-driver-info-response.json +++ b/api-ref/source/samples/node-update-driver-info-response.json @@ -1,71 +1,67 @@ { - "properties" : { - "memory_mb" : 1024, - "cpus" : 1, - "local_gb" : 10, - "cpu_arch" : "x86_64" - }, - "maintenance_reason" : null, - "instance_info" : {}, - "states" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/states" - }, - { - "href" : "http://127.0.0.1:6385/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/states", - "rel" : "bookmark" - } - ], - "driver_internal_info" : {}, - "power_state" : "power off", - "console_enabled" : false, - "last_error" : null, - "target_raid_config" : {}, - "maintenance" : false, - "provision_state" : "available", - "uuid" : "ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "links" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb" - }, - { - "href" : "http://127.0.0.1:6385/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "rel" : "bookmark" - } - ], - "clean_step" : {}, - "created_at" : "2016-04-20T16:51:03+00:00", - "instance_uuid" : null, - "target_power_state" : null, - "driver_info" : { - "ipmi_address" : "10.0.0.123", - "deploy_ramdisk" : "http://127.0.0.1/images/ramdisk", - "deploy_kernel" : "http://127.0.0.1/images/kernel", - "ipmi_password" : "***", - "ipmi_username" : "OPERATOR" - }, - "inspection_started_at" : null, - "raid_config" : {}, - "inspection_finished_at" : null, - "reservation" : null, - "target_provision_state" : null, - "extra" : { - "foo" : "bar" - }, - "driver" : "fake", - "name" : "test_node", - "updated_at" : "2016-05-05T18:43:41+00:00", - "ports" : [ - { - "href" : "http://127.0.0.1:6385/v1/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/ports", - "rel" : "self" - }, - { - "rel" : "bookmark", - "href" : "http://127.0.0.1:6385/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/ports" - } - ], - "provision_updated_at" : null + "clean_step": {}, + "console_enabled": false, + "created_at": "2016-08-18T22:28:48+00:00", + "driver": "fake", + "driver_info": { + "deploy_kernel": "http://127.0.0.1/images/kernel", + "deploy_ramdisk": "http://127.0.0.1/images/ramdisk", + "ipmi_password": "******", + "ipmi_username": "OPERATOR" + }, + "driver_internal_info": { + "clean_steps": null + }, + "extra": {}, + "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/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "bookmark" + } + ], + "maintenance": true, + "maintenance_reason": "Replacing the hard drive", + "name": "test_node", + "network_interface": "flat", + "ports": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/6d85703a-565d-469a-96ce-30b6de53079d/ports", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d/ports", + "rel": "bookmark" + } + ], + "power_state": "power off", + "properties": {}, + "provision_state": "available", + "provision_updated_at": "2016-08-18T22:28:49+00:00", + "raid_config": {}, + "reservation": null, + "resource_class": null, + "states": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/6d85703a-565d-469a-96ce-30b6de53079d/states", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d/states", + "rel": "bookmark" + } + ], + "target_power_state": null, + "target_provision_state": null, + "target_raid_config": {}, + "updated_at": "2016-08-18T22:28:50+00:00", + "uuid": "6d85703a-565d-469a-96ce-30b6de53079d" } diff --git a/api-ref/source/samples/node-update-driver.json b/api-ref/source/samples/node-update-driver.json new file mode 100644 index 0000000000..7974048433 --- /dev/null +++ b/api-ref/source/samples/node-update-driver.json @@ -0,0 +1,7 @@ +[ + { + "op" : "replace", + "path" : "/driver", + "value" : "fake" + } +] diff --git a/api-ref/source/samples/node-validate-response.json b/api-ref/source/samples/node-validate-response.json index 8f466845c5..5eee6aabdf 100644 --- a/api-ref/source/samples/node-validate-response.json +++ b/api-ref/source/samples/node-validate-response.json @@ -1,27 +1,26 @@ { - "management" : { - "result" : true - }, - "inspect" : { - "result" : null, - "reason" : "not supported" - }, - "power" : { - "result" : true - }, - "raid" : { - "result" : true - }, - "boot" : { - "result" : false, - "reason" : "Cannot validate image information for node ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb because one or more parameters are missing from its instance_info.. Missing are: ['ramdisk', 'kernel', 'image_source']" - }, - "console" : { - "result" : false, - "reason" : "Missing 'ipmi_terminal_port' parameter in node's driver_info." - }, - "deploy" : { - "reason" : "Cannot validate image information for node ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb because one or more parameters are missing from its instance_info.. Missing are: ['ramdisk', 'kernel', 'image_source']", - "result" : false - } + "boot": { + "result": true + }, + "console": { + "result": true + }, + "deploy": { + "result": true + }, + "inspect": { + "result": true + }, + "management": { + "result": true + }, + "network": { + "result": true + }, + "power": { + "result": true + }, + "raid": { + "result": true + } } diff --git a/api-ref/source/samples/node-vendor-passthru-response.json b/api-ref/source/samples/node-vendor-passthru-response.json index 28fb22c4c3..49e71da8a4 100644 --- a/api-ref/source/samples/node-vendor-passthru-response.json +++ b/api-ref/source/samples/node-vendor-passthru-response.json @@ -1,26 +1,29 @@ { - "bmc_reset" : { - "async" : true, - "description" : "", - "http_methods" : [ - "POST" - ], - "attach" : false - }, - "send_raw" : { - "description" : "", - "attach" : false, - "http_methods" : [ - "POST" - ], - "async" : true - }, - "heartbeat" : { - "async" : true, - "attach" : false, - "http_methods" : [ - "POST" - ], - "description" : "" - } + "bmc_reset": { + "async": true, + "attach": false, + "description": "", + "http_methods": [ + "POST" + ], + "require_exclusive_lock": true + }, + "heartbeat": { + "async": true, + "attach": false, + "description": "", + "http_methods": [ + "POST" + ], + "require_exclusive_lock": true + }, + "send_raw": { + "async": true, + "attach": false, + "description": "", + "http_methods": [ + "POST" + ], + "require_exclusive_lock": true + } } diff --git a/api-ref/source/samples/nodes-list-details-response.json b/api-ref/source/samples/nodes-list-details-response.json index 3a26d2bd6d..6f3aacb3a6 100644 --- a/api-ref/source/samples/nodes-list-details-response.json +++ b/api-ref/source/samples/nodes-list-details-response.json @@ -1,75 +1,69 @@ { - "nodes" : [ - { - "reservation" : null, - "driver" : "agent_ipmitool", - "uuid" : "ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "extra" : { - "foo" : "bar" - }, - "provision_updated_at" : null, - "provision_state" : "available", - "clean_step" : {}, - "maintenance" : false, - "driver_internal_info" : {}, - "console_enabled" : false, - "raid_config" : {}, - "target_raid_config" : {}, - "inspection_started_at" : null, - "instance_info" : {}, - "states" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/states" - }, - { - "href" : "http://127.0.0.1:6385/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/states", - "rel" : "bookmark" - } - ], - "last_error" : null, - "properties" : { - "cpus" : 1, - "memory_mb" : 1024, - "local_gb" : 10, - "cpu_arch" : "x86_64" - }, - "links" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb" - }, - { - "rel" : "bookmark", - "href" : "http://127.0.0.1:6385/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb" - } - ], - "name" : "test_node", - "ports" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/ports" - }, - { - "rel" : "bookmark", - "href" : "http://127.0.0.1:6385/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb/ports" - } - ], - "created_at" : "2016-04-20T16:51:03+00:00", - "updated_at" : "2016-05-04T23:24:20+00:00", - "maintenance_reason" : null, - "inspection_finished_at" : null, - "driver_info" : { - "deploy_kernel" : "http://127.0.0.1/images/kernel", - "ipmi_address" : "1.2.3.4", - "deploy_ramdisk" : "http://127.0.0.1/images/ramdisk", - "ipmi_password" : "******", - "ipmi_username" : "ADMIN", - }, - "instance_uuid" : null, - "power_state" : "power off", - "target_power_state" : null, - "target_provision_state" : null - } - ] + "nodes": [ + { + "clean_step": {}, + "console_enabled": false, + "created_at": "2016-08-18T22:28:48.643434+00:00", + "driver": "fake", + "driver_info": { + "ipmi_password": "******", + "ipmi_username": "ADMIN" + }, + "driver_internal_info": { + "clean_steps": null + }, + "extra": {}, + "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/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "bookmark" + } + ], + "maintenance": false, + "maintenance_reason": null, + "name": "test_node", + "network_interface": "flat", + "ports": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/6d85703a-565d-469a-96ce-30b6de53079d/ports", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d/ports", + "rel": "bookmark" + } + ], + "power_state": "power off", + "properties": {}, + "provision_state": "available", + "provision_updated_at": "2016-08-18T22:28:49.382814+00:00", + "raid_config": {}, + "reservation": null, + "resource_class": null, + "states": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/6d85703a-565d-469a-96ce-30b6de53079d/states", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d/states", + "rel": "bookmark" + } + ], + "target_power_state": null, + "target_provision_state": null, + "target_raid_config": {}, + "updated_at": "2016-08-18T22:28:49.653974+00:00", + "uuid": "6d85703a-565d-469a-96ce-30b6de53079d" + } + ] } diff --git a/api-ref/source/samples/nodes-list-response.json b/api-ref/source/samples/nodes-list-response.json index a516ed54f3..7ab0f9425d 100644 --- a/api-ref/source/samples/nodes-list-response.json +++ b/api-ref/source/samples/nodes-list-response.json @@ -1,22 +1,22 @@ { - "nodes" : [ - { - "provision_state" : "available", - "name" : "test_node", - "maintenance" : false, - "uuid" : "ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "links" : [ - { - "href" : "http://127.0.0.1:6385/v1/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "rel" : "self" - }, - { - "href" : "http://127.0.0.1:6385/nodes/ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "rel" : "bookmark" - } - ], - "instance_uuid" : null, - "power_state" : "power off" - } - ] + "nodes": [ + { + "instance_uuid": null, + "links": [ + { + "href": "http://127.0.0.1:6385/v1/nodes/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/nodes/6d85703a-565d-469a-96ce-30b6de53079d", + "rel": "bookmark" + } + ], + "maintenance": false, + "name": "test_node", + "power_state": "power off", + "provision_state": "available", + "uuid": "6d85703a-565d-469a-96ce-30b6de53079d" + } + ] } diff --git a/api-ref/source/samples/port-create-request.json b/api-ref/source/samples/port-create-request.json index 664f20e0d3..1cddf72f6f 100644 --- a/api-ref/source/samples/port-create-request.json +++ b/api-ref/source/samples/port-create-request.json @@ -1,5 +1,5 @@ { - "node_uuid": "ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", + "node_uuid": "6d85703a-565d-469a-96ce-30b6de53079d", "address": "11:11:11:11:11:11", "local_link_connection": { "switch_id": "0a:1b:2c:3d:4e:5f", diff --git a/api-ref/source/samples/port-create-response.json b/api-ref/source/samples/port-create-response.json index 946fbd551a..71e0203b25 100644 --- a/api-ref/source/samples/port-create-response.json +++ b/api-ref/source/samples/port-create-response.json @@ -1,25 +1,25 @@ { - "created_at" : "2016-05-05T22:30:57.924480+00:00", - "links" : [ - { - "rel" : "self", - "href" : "http://127.0.0.1:6385/v1/ports/c933a251-486f-4c27-adb2-8b5f59bd9cd2" - }, - { - "href" : "http://127.0.0.1:6385/ports/c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "rel" : "bookmark" - } - ], - "extra" : {}, - "address" : "11:11:11:11:11:11", - "updated_at" : null, - "node_uuid" : "ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "uuid" : "c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "pxe_enabled": true, - "local_link_connection": { - "switch_id": "0a:1b:2c:3d:4e:5f", - "port_id": "Ethernet3/1", - "switch_info": "switch1" - }, - "internal_info": {} + "address": "11:11:11:11:11:11", + "created_at": "2016-08-18T22:28:49.946416+00:00", + "extra": {}, + "internal_info": {}, + "links": [ + { + "href": "http://127.0.0.1:6385/v1/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "bookmark" + } + ], + "local_link_connection": { + "port_id": "Ethernet3/1", + "switch_id": "0a:1b:2c:3d:4e:5f", + "switch_info": "switch1" + }, + "node_uuid": "6d85703a-565d-469a-96ce-30b6de53079d", + "pxe_enabled": true, + "updated_at": null, + "uuid": "d2b30520-907d-46c8-bfee-c5586e6fb3a1" } diff --git a/api-ref/source/samples/port-list-detail-response.json b/api-ref/source/samples/port-list-detail-response.json index 1decc1af66..bc5e18debc 100644 --- a/api-ref/source/samples/port-list-detail-response.json +++ b/api-ref/source/samples/port-list-detail-response.json @@ -1,29 +1,29 @@ { - "ports" : [ - { - "node_uuid" : "ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "extra" : {}, - "updated_at" : "2016-05-05T22:48:52+00:00", - "uuid" : "c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "address" : "22:22:22:22:22:22", - "links" : [ - { - "href" : "http://127.0.0.1:6385/v1/ports/c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "rel" : "self" - }, - { - "href" : "http://127.0.0.1:6385/ports/c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "rel" : "bookmark" - } - ], - "created_at" : "2016-05-05T22:30:57+00:00", - "pxe_enabled": true, - "local_link_connection": { - "switch_id": "0a:1b:2c:3d:4e:5f", - "port_id": "Ethernet3/1", - "switch_info": "switch1" - }, - "internal_info": {} - } - ] + "ports": [ + { + "address": "11:11:11:11:11:11", + "created_at": "2016-08-18T22:28:49.946416+00:00", + "extra": {}, + "internal_info": {}, + "links": [ + { + "href": "http://127.0.0.1:6385/v1/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "bookmark" + } + ], + "local_link_connection": { + "port_id": "Ethernet3/1", + "switch_id": "0a:1b:2c:3d:4e:5f", + "switch_info": "switch1" + }, + "node_uuid": "6d85703a-565d-469a-96ce-30b6de53079d", + "pxe_enabled": true, + "updated_at": null, + "uuid": "d2b30520-907d-46c8-bfee-c5586e6fb3a1" + } + ] } diff --git a/api-ref/source/samples/port-list-respone.json b/api-ref/source/samples/port-list-respone.json new file mode 100644 index 0000000000..0780618565 --- /dev/null +++ b/api-ref/source/samples/port-list-respone.json @@ -0,0 +1,18 @@ +{ + "ports": [ + { + "address": "11:11:11:11:11:11", + "links": [ + { + "href": "http://127.0.0.1:6385/v1/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "bookmark" + } + ], + "uuid": "d2b30520-907d-46c8-bfee-c5586e6fb3a1" + } + ] +} diff --git a/api-ref/source/samples/port-update-response.json b/api-ref/source/samples/port-update-response.json index 5895e9fe5d..d06989abae 100644 --- a/api-ref/source/samples/port-update-response.json +++ b/api-ref/source/samples/port-update-response.json @@ -1,25 +1,25 @@ { - "node_uuid" : "ecddf26d-8c9c-4ddf-8f45-fd57e09ccddb", - "extra" : {}, - "updated_at" : "2016-05-05T22:48:52+00:00", - "uuid" : "c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "address" : "22:22:22:22:22:22", - "links" : [ - { - "href" : "http://127.0.0.1:6385/v1/ports/c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "rel" : "self" - }, - { - "href" : "http://127.0.0.1:6385/ports/c933a251-486f-4c27-adb2-8b5f59bd9cd2", - "rel" : "bookmark" - } - ], - "created_at" : "2016-05-05T22:30:57+00:00", - "pxe_enabled": true, - "local_link_connection": { - "switch_id": "0a:1b:2c:3d:4e:5f", - "port_id": "Ethernet3/1", - "switch_info": "switch1" - }, - "internal_info": {} + "address": "22:22:22:22:22:22", + "created_at": "2016-08-18T22:28:49+00:00", + "extra": {}, + "internal_info": {}, + "links": [ + { + "href": "http://127.0.0.1:6385/v1/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "self" + }, + { + "href": "http://127.0.0.1:6385/ports/d2b30520-907d-46c8-bfee-c5586e6fb3a1", + "rel": "bookmark" + } + ], + "local_link_connection": { + "port_id": "Ethernet3/1", + "switch_id": "0a:1b:2c:3d:4e:5f", + "switch_info": "switch1" + }, + "node_uuid": "6d85703a-565d-469a-96ce-30b6de53079d", + "pxe_enabled": true, + "updated_at": "2016-08-18T22:28:50+00:00", + "uuid": "d2b30520-907d-46c8-bfee-c5586e6fb3a1" }