From d97d4b4fa2ee63beffa30fe48c5de7fff90ab141 Mon Sep 17 00:00:00 2001 From: Peter Piela Date: Sat, 11 Feb 2017 09:24:54 -0500 Subject: [PATCH] Add support for network_interface attribute For the nework_interface attribute the user can: - select a value for network_interface as part of enrolling a node - update its value as part of editing a node, - see its value in the node-details/overview page Change-Id: I6bdbd9e6596de3f7da3bbcf75b511e5bc54b781a Closes-Bug: #1648566 --- ironic_ui/api/ironic.py | 16 ++++------ .../ironic/base-node/base-node.controller.js | 3 +- .../admin/ironic/base-node/base-node.html | 23 +++++++++++++ .../ironic/edit-node/edit-node.controller.js | 32 ++++++++++--------- .../node-details/sections/overview.html | 2 ++ 5 files changed, 50 insertions(+), 26 deletions(-) diff --git a/ironic_ui/api/ironic.py b/ironic_ui/api/ironic.py index bc115d3b..63221e07 100755 --- a/ironic_ui/api/ironic.py +++ b/ironic_ui/api/ironic.py @@ -24,7 +24,7 @@ from horizon.utils.memoized import memoized # noqa from openstack_dashboard.api import base -DEFAULT_IRONIC_API_VERSION = '1.19' +DEFAULT_IRONIC_API_VERSION = '1.20' DEFAULT_INSECURE = False DEFAULT_CACERT = None @@ -141,14 +141,8 @@ def node_create(request, params): """ node_manager = ironicclient(request).node node = node_manager.create(**params) - field_list = ['chassis_uuid', - 'driver', - 'driver_info', - 'properties', - 'extra', - 'uuid', - 'name'] - return dict([(f, getattr(node, f, '')) for f in field_list]) + return dict([(f, getattr(node, f, '')) + for f in res_fields.NODE_DETAILED_RESOURCE.fields]) def node_delete(request, node_id): @@ -173,7 +167,9 @@ def node_update(request, node_id, patch): http://docs.openstack.org/developer/python-ironicclient/api/ironicclient.v1.node.html#ironicclient.v1.node.NodeManager.update """ - ironicclient(request).node.update(node_id, patch) + node = ironicclient(request).node.update(node_id, patch) + return dict([(f, getattr(node, f, '')) + for f in res_fields.NODE_DETAILED_RESOURCE.fields]) def node_validate(request, node_id): diff --git a/ironic_ui/static/dashboard/admin/ironic/base-node/base-node.controller.js b/ironic_ui/static/dashboard/admin/ironic/base-node/base-node.controller.js index 4a64b9b7..6330e32b 100644 --- a/ironic_ui/static/dashboard/admin/ironic/base-node/base-node.controller.js +++ b/ironic_ui/static/dashboard/admin/ironic/base-node/base-node.controller.js @@ -76,7 +76,8 @@ driver: null, driver_info: {}, properties: {}, - extra: {} + extra: {}, + network_interface: null }; /** diff --git a/ironic_ui/static/dashboard/admin/ironic/base-node/base-node.html b/ironic_ui/static/dashboard/admin/ironic/base-node/base-node.html index daf46743..274a97b6 100644 --- a/ironic_ui/static/dashboard/admin/ironic/base-node/base-node.html +++ b/ironic_ui/static/dashboard/admin/ironic/base-node/base-node.html @@ -53,6 +53,29 @@ placeholder="{$ ::'A unique node name. Optional.' | translate $}"/> + +
+ +
+
+ +
+
+