Added node name to enroll form

This adds the 'name' property to the node enroll form, as
well as displaying this human-readable name, if available, in
the node list.

Change-Id: Ic0b68d11e1bf83e013e3cc74ec098c1d56c0cd79
This commit is contained in:
Michael Krotscheck 2016-02-18 07:26:22 -08:00
parent 7c9cab0bd0
commit d5f418c3c2
5 changed files with 34 additions and 4 deletions

View File

@ -43,6 +43,7 @@ angular.module('ironic').controller('EnrollModalController',
vm.driverProperties = null;
vm.errorMessage = null;
vm.node = {
name: vm.node ? vm.node.name : '', // Preserve previously entered names.
driver: driverName,
driver_info: {}
};

View File

@ -2,7 +2,7 @@
ng-if="!nodeCtrl.errorMessage">
<div class="row">
<div class="col-xs-12">
<h1>Node: {{nodeCtrl.node.uuid}}</h1>
<h1>Node: {{nodeCtrl.node.name || nodeCtrl.node.uuid}}</h1>
</div>
</div>
<div class="row">

View File

@ -8,6 +8,15 @@
<div class="row">
<div class="col-xs-12">
<form class="form-horizontal">
<div class="form-group">
<label for="name" class="col-xs-3 control-label">Node Name</label>
<div class="col-sm-9">
<input type="text" class="form-control" ng-model="ctrl.node.name"
id="name" name="name"
placeholder="A descriptive node name (optional)"/>
</div>
</div>
<div class="form-group">
<label for="driver" class="col-xs-3 control-label">Node Driver</label>
@ -40,7 +49,7 @@
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="modal-footer ng-scope">

View File

@ -13,7 +13,7 @@
<thead>
<tr>
<th>Power State</th>
<th>UUID</th>
<th>Name (UUID)</th>
<th>Instance</th>
<th>Provision State</th>
<th>Maintenance</th>
@ -27,7 +27,7 @@
<td>{{nodeCtrl.node.power_state}}</td>
<td>
<a href="#/ironic/nodes/{{nodeCtrl.node.uuid}}/node">
{{nodeCtrl.node.uuid}}
{{nodeCtrl.node.name || nodeCtrl.node.uuid}}
</a>
</td>
<td>{{nodeCtrl.node.instance_uuid || 'None'}}</td>

View File

@ -122,14 +122,34 @@ describe('Unit: Ironic-webclient enroll-node modal controller',
$httpBackend.flush();
var firstNode = controller.node;
expect(firstNode.driver).toBe('test_driver_1');
expect(firstNode.name).toBe('');
controller.loadDriverProperties('test_driver_2');
$httpBackend.flush();
var secondNode = controller.node;
expect(secondNode.driver).toBe('test_driver_2');
expect(secondNode.name).toBe('');
expect(firstNode).not.toBe(secondNode);
});
it('preserves names between driver loads if one has been entered.',
function() {
var controller = $controller('EnrollModalController', mockInjectionProperties);
expect(controller.node).toBeNull();
controller.loadDriverProperties('test_driver_1');
$httpBackend.flush();
var firstNode = controller.node;
expect(firstNode.driver).toBe('test_driver_1');
controller.node.name = 'test';
controller.loadDriverProperties('test_driver_2');
$httpBackend.flush();
var secondNode = controller.node;
expect(secondNode.driver).toBe('test_driver_2');
expect(firstNode.name).toBe(secondNode.name);
});
it('should display an error invalid driver is selected.',
function() {
var controller = $controller('EnrollModalController', mockInjectionProperties);