Maintenance processing code cleanup
Made the following changes: - Eliminate separate functions for single node processing. Functions that set node maintenance mode now accept a list of nodes - Eliminate service thin wrapper functions inside controllers that dont manipulate controller state. Change-Id: I148f965618ab43f93732ac82cd5663a76bef1b9e
This commit is contained in:
@@ -147,15 +147,14 @@
|
|||||||
* @return {promise} Promise
|
* @return {promise} Promise
|
||||||
*/
|
*/
|
||||||
function putNodeInMaintenanceMode(uuid, reason) {
|
function putNodeInMaintenanceMode(uuid, reason) {
|
||||||
var data = {
|
|
||||||
maint_reason: reason ? reason : gettext("No maintenance reason given.")
|
|
||||||
};
|
|
||||||
return apiService.patch('/api/ironic/nodes/' + uuid + '/maintenance',
|
return apiService.patch('/api/ironic/nodes/' + uuid + '/maintenance',
|
||||||
data)
|
{maint_reason: reason
|
||||||
|
? reason
|
||||||
|
: gettext("No reason given.")})
|
||||||
.catch(function(response) {
|
.catch(function(response) {
|
||||||
var msg = interpolate(
|
var msg = interpolate(
|
||||||
gettext('Unable to put the Ironic node in maintenance mode: %s'),
|
gettext('Unable to put the Ironic node %s in maintenance mode: %s'),
|
||||||
[response.data],
|
[uuid, response.data],
|
||||||
false);
|
false);
|
||||||
toastService.add('error', msg);
|
toastService.add('error', msg);
|
||||||
return $q.reject(msg);
|
return $q.reject(msg);
|
||||||
@@ -174,9 +173,9 @@
|
|||||||
return apiService.delete('/api/ironic/nodes/' + uuid + '/maintenance')
|
return apiService.delete('/api/ironic/nodes/' + uuid + '/maintenance')
|
||||||
.catch(function(response) {
|
.catch(function(response) {
|
||||||
var msg = interpolate(
|
var msg = interpolate(
|
||||||
gettext('Unable to remove the Ironic node ' +
|
gettext(
|
||||||
'from maintenance mode: %s'),
|
'Unable to remove the Ironic node %s from maintenance mode: %s'),
|
||||||
[response.data],
|
[uuid, response.data],
|
||||||
false);
|
false);
|
||||||
toastService.add('error', msg);
|
toastService.add('error', msg);
|
||||||
return $q.reject(msg);
|
return $q.reject(msg);
|
||||||
|
|||||||
@@ -34,73 +34,37 @@
|
|||||||
'horizon.dashboard.admin.ironic.actions'
|
'horizon.dashboard.admin.ironic.actions'
|
||||||
];
|
];
|
||||||
|
|
||||||
function maintenanceService($uibModal, basePath, actions) {
|
function maintenanceService($uibModal, basePath, nodeActions) {
|
||||||
var service = {
|
var service = {
|
||||||
putNodeInMaintenanceMode: putNodeInMaintenanceMode,
|
putNodeInMaintenanceMode: putNodeInMaintenanceMode,
|
||||||
putNodesInMaintenanceMode: putNodesInMaintenanceMode,
|
removeNodeFromMaintenanceMode: removeNodeFromMaintenanceMode
|
||||||
removeNodeFromMaintenanceMode: removeNodeFromMaintenanceMode,
|
|
||||||
removeNodesFromMaintenanceMode: removeNodesFromMaintenanceMode
|
|
||||||
};
|
};
|
||||||
return service;
|
return service;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @name horizon.dashboard.admin.ironic.maintenance.service.
|
* @description Put a specified list of nodes into mainenance
|
||||||
* putNodeInMaintenanceMode
|
|
||||||
* @description Put a specified node in maintenance mode
|
|
||||||
* @param {object} - Node
|
|
||||||
*
|
*
|
||||||
* @return {void}
|
* @param {object[]} nodes - List of node objects
|
||||||
|
* @return {promise}
|
||||||
*/
|
*/
|
||||||
function putNodeInMaintenanceMode(node) {
|
function putNodeInMaintenanceMode(nodes) {
|
||||||
var options = {
|
var options = {
|
||||||
controller: "MaintenanceController as ctrl",
|
controller: "MaintenanceController as ctrl",
|
||||||
templateUrl: basePath + '/maintenance/maintenance.html'
|
templateUrl: basePath + '/maintenance/maintenance.html'
|
||||||
};
|
};
|
||||||
$uibModal.open(options).result.then(function(maintReason) {
|
return $uibModal.open(options).result.then(function(reason) {
|
||||||
actions.putNodeInMaintenanceMode(node, maintReason);
|
return nodeActions.putNodeInMaintenanceMode(nodes, reason);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @name horizon.dashboard.admin.ironic.maintenance.service.
|
* @description Take a specified list of nodes out of mainenance
|
||||||
* putNodesInMaintenanceMode
|
|
||||||
* @description Put the specified nodes in maintenance mode
|
|
||||||
* @param {Array<object>} - Nodes
|
|
||||||
*
|
*
|
||||||
* @return {void}
|
* @param {object[]} nodes - List of node objects
|
||||||
|
* @return {promise}
|
||||||
*/
|
*/
|
||||||
function putNodesInMaintenanceMode(nodes) {
|
function removeNodeFromMaintenanceMode(nodes) {
|
||||||
var options = {
|
return nodeActions.removeNodeFromMaintenanceMode(nodes);
|
||||||
controller: "MaintenanceController as ctrl",
|
|
||||||
templateUrl: basePath + '/maintenance/maintenance.html'
|
|
||||||
};
|
|
||||||
$uibModal.open(options).result.then(function(maintReason) {
|
|
||||||
actions.putAllInMaintenanceMode(nodes, maintReason);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @name horizon.dashboard.admin.ironic.maintenance.service.
|
|
||||||
* removeNodeInMaintenanceMode
|
|
||||||
* @description Remove a specified node from maintenance mode
|
|
||||||
* @param {object} - Node
|
|
||||||
*
|
|
||||||
* @return {void}
|
|
||||||
*/
|
|
||||||
function removeNodeFromMaintenanceMode(node) {
|
|
||||||
actions.removeNodeFromMaintenanceMode(node);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @name horizon.dashboard.admin.ironic.maintenance.service.
|
|
||||||
* removeNodesFromMaintenanceMode
|
|
||||||
* @description Remove the specified nodes from maintenance mode
|
|
||||||
* @param {Array<object>} - Nodes
|
|
||||||
*
|
|
||||||
* @return {void}
|
|
||||||
*/
|
|
||||||
function removeNodesFromMaintenanceMode(nodes) {
|
|
||||||
actions.removeAllFromMaintenanceMode(nodes);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -49,10 +49,8 @@
|
|||||||
powerOff: powerOff,
|
powerOff: powerOff,
|
||||||
powerOnAll: powerOnNodes,
|
powerOnAll: powerOnNodes,
|
||||||
powerOffAll: powerOffNodes,
|
powerOffAll: powerOffNodes,
|
||||||
putNodeInMaintenanceMode: putInMaintenanceMode,
|
putNodeInMaintenanceMode: putNodeInMaintenanceMode,
|
||||||
removeNodeFromMaintenanceMode: removeFromMaintenanceMode,
|
removeNodeFromMaintenanceMode: removeNodeFromMaintenanceMode,
|
||||||
putAllInMaintenanceMode: putNodesInMaintenanceMode,
|
|
||||||
removeAllFromMaintenanceMode: removeNodesFromMaintenanceMode,
|
|
||||||
setProvisionState: setProvisionState
|
setProvisionState: setProvisionState
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -123,38 +121,41 @@
|
|||||||
|
|
||||||
// maintenance
|
// maintenance
|
||||||
|
|
||||||
function putInMaintenanceMode(node, maintReason) {
|
function putNodeInMaintenanceMode(nodes, reason) {
|
||||||
if (node.maintenance !== false) {
|
return applyFuncToNodes(
|
||||||
var msg = gettext("Node %s is already in maintenance mode.");
|
function(node, reason) {
|
||||||
return $q.reject(interpolate(msg, [node], false));
|
if (node.maintenance !== false) {
|
||||||
}
|
var msg = gettext("Node %s is already in maintenance mode.");
|
||||||
return ironic.putNodeInMaintenanceMode(node.uuid, maintReason).then(
|
return $q.reject(interpolate(msg, [node.uuid], false));
|
||||||
function () {
|
}
|
||||||
node.maintenance = true;
|
return ironic.putNodeInMaintenanceMode(node.uuid, reason).then(
|
||||||
node.maintenance_reason = maintReason;
|
function (result) {
|
||||||
}
|
node.maintenance = true;
|
||||||
);
|
node.maintenance_reason = reason;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
nodes,
|
||||||
|
reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeFromMaintenanceMode(node) {
|
function removeNodeFromMaintenanceMode(nodes) {
|
||||||
if (node.maintenance !== true) {
|
return applyFuncToNodes(
|
||||||
var msg = gettext("Node %s is not in maintenance mode.");
|
function(node) {
|
||||||
return $q.reject(interpolate(msg, [node], false));
|
if (node.maintenance !== true) {
|
||||||
}
|
var msg = gettext("Node %s is not in maintenance mode.");
|
||||||
return ironic.removeNodeFromMaintenanceMode(node.uuid).then(
|
return $q.reject(interpolate(msg, [node.uuid], false));
|
||||||
function () {
|
}
|
||||||
node.maintenance = false;
|
return ironic.removeNodeFromMaintenanceMode(node.uuid).then(
|
||||||
node.maintenance_reason = "";
|
function (result) {
|
||||||
}
|
node.maintenance = false;
|
||||||
);
|
node.maintenance_reason = "";
|
||||||
}
|
return result;
|
||||||
|
}
|
||||||
function putNodesInMaintenanceMode(nodes, maintReason) {
|
);
|
||||||
return applyFuncToNodes(putInMaintenanceMode, nodes, maintReason);
|
},
|
||||||
}
|
nodes);
|
||||||
|
|
||||||
function removeNodesFromMaintenanceMode(nodes) {
|
|
||||||
return applyFuncToNodes(removeFromMaintenanceMode, nodes);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -210,6 +211,7 @@
|
|||||||
* @param {function} fn – Function to be applied.
|
* @param {function} fn – Function to be applied.
|
||||||
* The function should accept a node as the first argument. An optional
|
* The function should accept a node as the first argument. An optional
|
||||||
* second argument can be used to provide additional information.
|
* second argument can be used to provide additional information.
|
||||||
|
* The function should return a promise.
|
||||||
* @param {Array<node>} nodes - Collection of nodes
|
* @param {Array<node>} nodes - Collection of nodes
|
||||||
* @param {object} extra - Additional argument passed to the function
|
* @param {object} extra - Additional argument passed to the function
|
||||||
* @return {promise} - Single promise that represents the combined
|
* @return {promise} - Single promise that represents the combined
|
||||||
|
|||||||
@@ -57,6 +57,7 @@
|
|||||||
ctrl.noPortsText = gettext('No network ports have been defined');
|
ctrl.noPortsText = gettext('No network ports have been defined');
|
||||||
|
|
||||||
ctrl.actions = actions;
|
ctrl.actions = actions;
|
||||||
|
ctrl.maintenanceService = maintenanceService;
|
||||||
|
|
||||||
ctrl.sections = [
|
ctrl.sections = [
|
||||||
{
|
{
|
||||||
@@ -78,8 +79,6 @@
|
|||||||
ctrl.re_uuid = new RegExp(validUuidPattern);
|
ctrl.re_uuid = new RegExp(validUuidPattern);
|
||||||
ctrl.isUuid = isUuid;
|
ctrl.isUuid = isUuid;
|
||||||
ctrl.getVifPortId = getVifPortId;
|
ctrl.getVifPortId = getVifPortId;
|
||||||
ctrl.putNodeInMaintenanceMode = putNodeInMaintenanceMode;
|
|
||||||
ctrl.removeNodeFromMaintenanceMode = removeNodeFromMaintenanceMode;
|
|
||||||
ctrl.editNode = editNode;
|
ctrl.editNode = editNode;
|
||||||
ctrl.createPort = createPort;
|
ctrl.createPort = createPort;
|
||||||
ctrl.deletePort = deletePort;
|
ctrl.deletePort = deletePort;
|
||||||
@@ -203,14 +202,6 @@
|
|||||||
? port.extra.vif_port_id : "";
|
? port.extra.vif_port_id : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
function putNodeInMaintenanceMode() {
|
|
||||||
maintenanceService.putNodeInMaintenanceMode(ctrl.node);
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeNodeFromMaintenanceMode() {
|
|
||||||
maintenanceService.removeNodeFromMaintenanceMode(ctrl.node);
|
|
||||||
}
|
|
||||||
|
|
||||||
function editNode() {
|
function editNode() {
|
||||||
editNodeService.modal(ctrl.node);
|
editNodeService.modal(ctrl.node);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,12 +23,14 @@
|
|||||||
{$ 'Power off' | translate $}
|
{$ 'Power off' | translate $}
|
||||||
</action>
|
</action>
|
||||||
<action button-type="menu-item"
|
<action button-type="menu-item"
|
||||||
callback="ctrl.putNodeInMaintenanceMode"
|
callback="ctrl.maintenanceService.putNodeInMaintenanceMode"
|
||||||
|
item="[ctrl.node]"
|
||||||
disabled="ctrl.node.maintenance">
|
disabled="ctrl.node.maintenance">
|
||||||
{$ 'Maintenance on' | translate $}
|
{$ 'Maintenance on' | translate $}
|
||||||
</action>
|
</action>
|
||||||
<action button-type="menu-item"
|
<action button-type="menu-item"
|
||||||
callback="ctrl.removeNodeFromMaintenanceMode"
|
callback="ctrl.maintenanceService.removeNodeFromMaintenanceMode"
|
||||||
|
item="[ctrl.node]"
|
||||||
disabled="!ctrl.node.maintenance">
|
disabled="!ctrl.node.maintenance">
|
||||||
{$ 'Maintenance off' | translate $}
|
{$ 'Maintenance off' | translate $}
|
||||||
</action>
|
</action>
|
||||||
|
|||||||
@@ -51,11 +51,8 @@
|
|||||||
ctrl.nodes = [];
|
ctrl.nodes = [];
|
||||||
ctrl.nodesSrc = [];
|
ctrl.nodesSrc = [];
|
||||||
ctrl.actions = actions;
|
ctrl.actions = actions;
|
||||||
|
ctrl.maintenanceService = maintenanceService;
|
||||||
|
|
||||||
ctrl.putNodeInMaintenanceMode = putNodeInMaintenanceMode;
|
|
||||||
ctrl.putNodesInMaintenanceMode = putNodesInMaintenanceMode;
|
|
||||||
ctrl.removeNodeFromMaintenanceMode = removeNodeFromMaintenanceMode;
|
|
||||||
ctrl.removeNodesFromMaintenanceMode = removeNodesFromMaintenanceMode;
|
|
||||||
ctrl.enrollNode = enrollNode;
|
ctrl.enrollNode = enrollNode;
|
||||||
ctrl.editNode = editNode;
|
ctrl.editNode = editNode;
|
||||||
ctrl.refresh = refresh;
|
ctrl.refresh = refresh;
|
||||||
@@ -164,22 +161,6 @@
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function putNodeInMaintenanceMode(node) {
|
|
||||||
maintenanceService.putNodeInMaintenanceMode(node);
|
|
||||||
}
|
|
||||||
|
|
||||||
function putNodesInMaintenanceMode(nodes) {
|
|
||||||
maintenanceService.putNodesInMaintenanceMode(nodes);
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeNodeFromMaintenanceMode(node) {
|
|
||||||
maintenanceService.removeNodeFromMaintenanceMode(node);
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeNodesFromMaintenanceMode(nodes) {
|
|
||||||
maintenanceService.removeNodesFromMaintenanceMode(nodes);
|
|
||||||
}
|
|
||||||
|
|
||||||
function enrollNode() {
|
function enrollNode() {
|
||||||
enrollNodeService.enrollNode();
|
enrollNodeService.enrollNode();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,13 +45,13 @@
|
|||||||
{$ 'Power off' | translate $}
|
{$ 'Power off' | translate $}
|
||||||
</action>
|
</action>
|
||||||
<action button-type="menu-item"
|
<action button-type="menu-item"
|
||||||
callback="table.putNodesInMaintenanceMode"
|
callback="table.maintenanceService.putNodeInMaintenanceMode"
|
||||||
item="tCtrl.selected"
|
item="tCtrl.selected"
|
||||||
disabled="tCtrl.selected.length === 0">
|
disabled="tCtrl.selected.length === 0">
|
||||||
{$ 'Maintenance on' | translate $}
|
{$ 'Maintenance on' | translate $}
|
||||||
</action>
|
</action>
|
||||||
<action button-type="menu-item"
|
<action button-type="menu-item"
|
||||||
callback="table.removeNodesFromMaintenanceMode"
|
callback="table.maintenanceService.removeNodeFromMaintenanceMode"
|
||||||
item="tCtrl.selected"
|
item="tCtrl.selected"
|
||||||
disabled="tCtrl.selected.length === 0">
|
disabled="tCtrl.selected.length === 0">
|
||||||
{$ 'Maintenance off' | translate $}
|
{$ 'Maintenance off' | translate $}
|
||||||
@@ -149,15 +149,15 @@
|
|||||||
{$ 'Power off' | translate $}
|
{$ 'Power off' | translate $}
|
||||||
</action>
|
</action>
|
||||||
<action button-type="menu-item"
|
<action button-type="menu-item"
|
||||||
callback="table.putNodeInMaintenanceMode"
|
callback="table.maintenanceService.putNodeInMaintenanceMode"
|
||||||
disabled="node.maintenance"
|
item="[node]"
|
||||||
item="node">
|
disabled="node.maintenance">
|
||||||
{$ 'Maintenance on' | translate $}
|
{$ 'Maintenance on' | translate $}
|
||||||
</action>
|
</action>
|
||||||
<action button-type="menu-item"
|
<action button-type="menu-item"
|
||||||
callback="table.removeNodeFromMaintenanceMode"
|
callback="table.maintenanceService.removeNodeFromMaintenanceMode"
|
||||||
disabled="!node.maintenance"
|
item="[node]"
|
||||||
item="node">
|
disabled="!node.maintenance">
|
||||||
{$ 'Maintenance off' | translate $}
|
{$ 'Maintenance off' | translate $}
|
||||||
</action>
|
</action>
|
||||||
<action button-type="menu-item"
|
<action button-type="menu-item"
|
||||||
|
|||||||
Reference in New Issue
Block a user