ironic-ui/ironic_ui/static/dashboard/admin/ironic/clean-node/clean-node.service.js
Peter Piela 736c2dab54 Add support for manual cleaning of nodes
- The action list associated with a node in manageable state will have
a "Clean" item.
- When the clean action is initiated the user is prompted with a modal
dialog in which he or she enters or copies a set of cleaning steps
in JSON format.
- Basic validation is performed on the JSON. The user is able to
submit the cleaning request only when validation is successful.
- Cleaning is not currently available as a batch action.

Change-Id: I2af9385e2d9532a9ec46993d65f8c510e419b6c9
Closes-Bug: #1648559
2017-02-14 11:56:25 -05:00

65 lines
2.0 KiB
JavaScript

/*
* Copyright 2016 Cray Inc.
* Copyright (c) 2016 Hewlett Packard Enterprise Development Company LP
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
(function() {
'use strict';
/*
* @ngdoc service
* @name horizon.dashboard.admin.ironic.maintenance.service
* @description Service for putting nodes in, and removing them from
* maintenance mode
*/
angular
.module('horizon.dashboard.admin.ironic')
.factory('horizon.dashboard.admin.ironic.clean-node.service',
cleanNodeService);
cleanNodeService.$inject = [
'$uibModal',
'horizon.dashboard.admin.ironic.basePath',
'horizon.app.core.openstack-service-api.ironic'
];
function cleanNodeService($uibModal, basePath, ironic) {
var service = {
clean: clean
};
return service;
/*
* @description Initiate manual cleaning of an Ironic node.
* The user is prompted for a list of steps that are then
* used to clean the node.
*
* @param {object} node - Node to be cleaned
* @return {void}
*/
function clean(node) {
var options = {
controller: 'CleanNodeController as ctrl',
backdrop: 'static',
templateUrl: basePath + '/clean-node/clean-node.html'
};
$uibModal.open(options).result.then(function(cleanSteps) {
return ironic.setNodeProvisionState(node.uuid,
'clean',
cleanSteps);
});
}
}
})();