From 653d4e4ef55bf5acb315339eb79018c0e432c210 Mon Sep 17 00:00:00 2001 From: Ilya Etingof Date: Mon, 23 Mar 2020 13:47:08 +0100 Subject: Add `network_data` field to ironic node object A new dictionary field `network_data` is added to the node object. This new field can be populated by the operator with node static network configuration. Ironic API now performs formal JSON document validation of node `network_data` field content against user-supplied JSON schema at driver validation step. As of this commit, the new `network_data` field is not actually used by ironic, otherwise it should be perfectly functional. In the following commits, network static configuration will be taken from this field and handed over to ironic ramdisk bootstrapping utilities. Change-Id: I868b3b56a17f59e5aa1494b2e0ebc9c4e34ef173 Story: 2006691 Task: 36991 --- api-ref/source/baremetal-api-v1-nodes.inc | 4 ++++ api-ref/source/parameters.yaml | 7 +++++++ api-ref/source/samples/node-create-response.json | 1 + api-ref/source/samples/node-show-response.json | 1 + api-ref/source/samples/node-update-driver-info-response.json | 1 + api-ref/source/samples/nodes-list-details-response.json | 2 ++ 6 files changed, 16 insertions(+) (limited to 'api-ref') diff --git a/api-ref/source/baremetal-api-v1-nodes.inc b/api-ref/source/baremetal-api-v1-nodes.inc index 49d5cf436..526f6e0d2 100644 --- a/api-ref/source/baremetal-api-v1-nodes.inc +++ b/api-ref/source/baremetal-api-v1-nodes.inc @@ -442,6 +442,7 @@ Response - allocation_uuid: allocation_uuid - retired: retired - retired_reason: retired_reason + - network_data: network_data **Example detailed list of Nodes:** @@ -491,6 +492,9 @@ only the specified set. .. versionadded:: 1.65 Introduced the ``lessee`` field. +.. versionadded:: 1.66 + Introduced the ``network_data`` field. + Normal response codes: 200 Error codes: 400,403,404,406 diff --git a/api-ref/source/parameters.yaml b/api-ref/source/parameters.yaml index 59567b488..979417abd 100644 --- a/api-ref/source/parameters.yaml +++ b/api-ref/source/parameters.yaml @@ -1012,6 +1012,13 @@ name: in: body required: true type: string +network_data: + description: | + Static network configuration for the node to eventually pass to node's + operating system. + in: body + required: false + type: JSON network_interface: description: | Which Network Interface provider to use when plumbing the network diff --git a/api-ref/source/samples/node-create-response.json b/api-ref/source/samples/node-create-response.json index 214305d0e..273d0709a 100644 --- a/api-ref/source/samples/node-create-response.json +++ b/api-ref/source/samples/node-create-response.json @@ -38,6 +38,7 @@ "maintenance_reason": null, "management_interface": null, "name": "test_node_classic", + "network_data": {}, "network_interface": "flat", "owner": null, "portgroups": [ diff --git a/api-ref/source/samples/node-show-response.json b/api-ref/source/samples/node-show-response.json index 9cb1931b0..68b7eacb9 100644 --- a/api-ref/source/samples/node-show-response.json +++ b/api-ref/source/samples/node-show-response.json @@ -41,6 +41,7 @@ "maintenance_reason": null, "management_interface": null, "name": "test_node_classic", + "network_data": {}, "network_interface": "flat", "owner": null, "portgroups": [ 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 f7d2d88ee..3655243ce 100644 --- a/api-ref/source/samples/node-update-driver-info-response.json +++ b/api-ref/source/samples/node-update-driver-info-response.json @@ -42,6 +42,7 @@ "maintenance_reason": "Replacing the hard drive", "management_interface": null, "name": "test_node_classic", + "network_data": {}, "network_interface": "flat", "owner": null, "portgroups": [ diff --git a/api-ref/source/samples/nodes-list-details-response.json b/api-ref/source/samples/nodes-list-details-response.json index 90dc72a2a..98c22aa9a 100644 --- a/api-ref/source/samples/nodes-list-details-response.json +++ b/api-ref/source/samples/nodes-list-details-response.json @@ -43,6 +43,7 @@ "maintenance_reason": null, "management_interface": null, "name": "test_node_classic", + "network_data": {}, "network_interface": "flat", "owner": "john doe", "portgroups": [ @@ -148,6 +149,7 @@ "maintenance_reason": null, "management_interface": "ipmitool", "name": "test_node_dynamic", + "network_data": {}, "network_interface": "flat", "owner": "43e61ec9-8e42-4dcb-bc45-30d66aa93e5b", "portgroups": [ -- cgit v1.2.1