diff options
author | Nicolas Hu <jh245g@att.com> | 2017-10-06 10:28:45 -0400 |
---|---|---|
committer | Nicolas Hu <jh245g@att.com> | 2017-10-06 10:40:45 -0400 |
commit | c19189718469498377b194eea2f9a247bb79c4f9 (patch) | |
tree | 4987d0fa9c60bb5f1c2938e37194fdcbb2c2fd5b /oom-app-overlay/src/main/webapp/app/oom/cloudify/deployment-controllers.js | |
parent | d6c693de3070a6cd470356541324468d9fa42c59 (diff) |
Refactor CCSDK/Dashboard project
Change-Id: I34451fbebbe7bbaaf1cd23aed5cef0f9a9ba37b7
Issues-Id: CCSDK-111
Signed-off-by: Nicolas Hu <jh245g@att.com>
Diffstat (limited to 'oom-app-overlay/src/main/webapp/app/oom/cloudify/deployment-controllers.js')
-rw-r--r-- | oom-app-overlay/src/main/webapp/app/oom/cloudify/deployment-controllers.js | 371 |
1 files changed, 0 insertions, 371 deletions
diff --git a/oom-app-overlay/src/main/webapp/app/oom/cloudify/deployment-controllers.js b/oom-app-overlay/src/main/webapp/app/oom/cloudify/deployment-controllers.js deleted file mode 100644 index 1e80082..0000000 --- a/oom-app-overlay/src/main/webapp/app/oom/cloudify/deployment-controllers.js +++ /dev/null @@ -1,371 +0,0 @@ -/******************************************************************************* - * =============LICENSE_START========================================================= - * - * ================================================================================= - * Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - *******************************************************************************/ -appDS2.controller('deploymentTableController', function( - $rootScope, $scope, $log, $modal, DeploymentService) { - - 'use strict'; - - // Controls logging in this controller - var debug = false; - - // this object holds all app data and functions - $scope.ecdapp = {}; - // models for controls on screen - $scope.ecdapp.tableData = []; - $scope.ecdapp.currentPageNum = 1; - $scope.ecdapp.viewPerPage = 10; - // other - $scope.ecdapp.errMsg = null; - $scope.ecdapp.isDataLoading = true; - $scope.ecdapp.isRequestFailed = false; - - /** - * Loads the table. Interprets the remote controller's response and copies - * to scope variables. The response is either a list to be assigned to - * tableData, or an error to be shown. - */ - $scope.ecdapp.loadTable = function() { - $scope.ecdapp.isDataLoading = true; - DeploymentService.getDeployments($scope.ecdapp.currentPageNum, - $scope.ecdapp.viewPerPage).then( - function(jsonObj) { - if (jsonObj.error) { - $log.error("deploymentController.loadTable failed: " - + jsonObj.error); - $scope.ecdapp.isRequestFailed = true; - $scope.ecdapp.errMsg = jsonObj.error; - $scope.ecdapp.tableData = []; - } else { - $scope.ecdapp.isRequestFailed = false; - $scope.ecdapp.errMsg = null; - $scope.ecdapp.totalPages = jsonObj.totalPages; - $scope.ecdapp.tableData = jsonObj.items; - } - $scope.ecdapp.isDataLoading = false; - }, - function(error) { - $log.error("deploymentController.loadTable failed: " - + error); - $scope.ecdapp.isRequestFailed = true; - $scope.ecdapp.errMsg = error; - $scope.ecdapp.tableData = []; - $scope.ecdapp.isDataLoading = false; - }); - }; - - /** - * Invoked at first page load AND when - * user clicks on the B2B pagination control. - */ - $scope.pageChangeHandler = function(page) { - // console.log('pageChangeHandler: current is ' + $scope.ecdapp.currentPageNum + ' new is ' + page); - $scope.ecdapp.currentPageNum = page; - $scope.ecdapp.loadTable(); - } - - /** - * Shows a modal pop-up to create an execution from a deployment. - * Passes data in via an object named "message". - * On success, updates the table. - */ - $scope.ecdapp.createExecutionModalPopup = function(deployment) { - var modalInstance = $modal.open({ - templateUrl : 'deployment_execute_popup.html', - controller : 'deploymentExecuteCtrl', - windowClass: 'modal-docked', - sizeClass: 'modal-large', - resolve : { - message : function() { - var dataForPopup = { - deployment : deployment - }; - return dataForPopup; - } - } - }); - modalInstance.result.then(function(response) { - if (debug) - $log.debug('createExecutionModalPopup: response: ' + JSON.stringify(response)); - if (response == null) { - // $log.debug('user closed dialog'); - } - else { - if (response.error != null) { - $log.error('createExecutionModalPopup: failed to delete: ' + error); - alert('Failed to create execution:\n' + response.error); - // No need to update THIS table. - // Must switch to executions page to see result? Awkward. - } - } - }); - }; - - /** - * Shows a modal pop-up to confirm deletion. - * On successful completion, updates the table. - */ - $scope.ecdapp.deleteDeploymentModalPopup = function(deployment) { - var modalInstance = $modal.open({ - templateUrl : 'deployment_delete_popup.html', - controller : 'deploymentDeleteCtrl', - sizeClass: 'modal-small', - resolve : { - message : function() { - var dataForPopup = { - deployment : deployment - }; - return dataForPopup; - } - } - }); - modalInstance.result.then(function(response) { - if (debug) - $log.debug('deleteDeploymentPopup: response: ' + JSON.stringify(response)); - if (response == null) { - // $log.debug('user closed dialog'); - } - else { - if (response.error != null) { - $log.error('deleteDeploymentModalPopup failed: ' + response.error); - alert('Failed to delete deployment:\n' + response.error); - } - else { - // success, get the updated list. - $scope.ecdapp.loadTable() - } - } - }); - }; - -}); - -/*************************************************************************/ - -appDS2.controller('deploymentDeleteCtrl', function( - $scope, $log, $modalInstance, message, DeploymentService) { - - 'use strict'; - - // Controls logging in this controller - var debug = false; - - // this object holds all app data and functions - $scope.ecdapp = {}; - $scope.ecdapp.label = 'Delete Deployment'; - $scope.ecdapp.deploymentId = message.deployment.id; - $scope.ecdapp.ignoreLiveNodes = false; - - $scope.ecdapp.deleteDeploymentById = function(){ - DeploymentService.deleteDeployment($scope.ecdapp.deploymentId, $scope.ecdapp.ignoreLiveNodes).then( - function(response) { - if (debug) - $log.debug('deploymentDeleteCtrl.deleteDeployment: ' + JSON.stringify(response)); - if (response && response.error) { - $log.error('DeploymentService.deleteDeployment failed: ' + response.error); - alert('Failed to delete deployment:\n' + response.error); - } - else { - // Delete service returns null on success. - $modalInstance.close("success"); - } - }, - function(error) { - $log.error('DeploymentService.deleteDeployment failed: ' + error); - alert('Service failed to delete deployment:\n' + error); - }); - } - -}); - -/*************************************************************************/ - -appDS2.controller('deploymentExecuteCtrl', function( - $scope, $log, $modalInstance, message, ExecutionService) { - - 'use strict'; - - // Controls logging in this controller - var debug = false; - - // this object holds all app data and functions - $scope.ecdapp = {}; - $scope.ecdapp.label = 'Execute Deployment'; - - // Cache the input parameter names for validation - $scope.ecdapp.inputsDict = {}; - if (debug) - $log.debug('DeploymentXeqCtrl: inputsDict is ' + JSON.stringify($scope.ecdapp.inputsDict)); - - // Copy the input names and values - // (different structure than blueprint) - /*for (var pkey in message.deployment.inputs) { - let dval = message.deployment.inputs[pkey]; - inputsAndValues[pkey] = dval; - }*/ - - // Gather workflow names as a simple list - var workflowList = []; - for (var i = 0; i < message.deployment.workflows.length; i++) - workflowList.push(message.deployment.workflows[i].name); - if (debug) - $log.debug('DeploymentXeqCtrl: workflowList is ' + JSON.stringify(workflowList)); - - // Create an object for edit. - $scope.ecdapp.editRequest = { - deployment_id : message.deployment.id, - allow_custom_parameter : false, - force : false, - // Has title and value objects - workflow_name: { value : '' }, - workflow_list : workflowList, - fileModel : null, - parmFileDict : {} - }; - - $scope.selectWorkflowName = function(){ - var workflows = message.deployment.workflows; - let inputsAndValues = {}; - var res = workflows.filter(function(d){ - if(d.name == $scope.ecdapp.editRequest.workflow_name.value){ - return d - } - }); - for(var key in res[0].parameters){ - inputsAndValues[key] = typeof (res[0].parameters[key].default) === 'string' ? res[0].parameters[key].default : null; - } - $scope.ecdapp.inputsDict = inputsAndValues; - $scope.ecdapp.editRequest.parmFileDict = inputsAndValues; - }; - - if (debug) - $log.debug('DeploymentXeqCtrl: editRequest is ' + JSON.stringify($scope.ecdapp.editRequest)); - - /** - * Handler for file-read event reads file, parses YAML, validates content. - */ - var fileReader = new FileReader(); - fileReader.onload = function(event) { - let yamlString = fileReader.result; - if (debug) - $log.debug('fileReader.onload: read: ' + yamlString); - let ydict = {}; - try { - ydict = YAML.parse(yamlString); - } - catch (ex) { - alert('Failed to parse file as YAML:\n' + ex); - } - for (var ykey in ydict) { - let yval = ydict[ykey]; - if (debug) - $log.debug('fileReader.onload: typeof ' + ykey + ' is ' + typeof ykey); - // Only accept valid, expected key-value pairs - if (typeof yval !== 'string' && typeof yval!=='number') - alert('Unexpected file content:\nNot a simple key-value pair:\n' + ykey); - else if (! (ykey in $scope.ecdapp.editRequest.parmFileDict)) - alert('Unexpected file content:\nKey not defined by deployment:\n' + ykey); - else - $scope.ecdapp.editRequest.parmFileDict[ykey] = yval; - } - if (debug) - $log.debug('fileReader.onload: parmFileDict: ' + JSON.stringify($scope.ecdapp.editRequest.parmFileDict)); - - // Update table in all cases - $scope.$apply(); - } - - // Handler for file-select event - $scope.handleFileSelect = function() { - if (debug) - $log.debug('handleFileSelect: $scope.ecdapp.fileModel.name is ' + $scope.ecdapp.editRequest.fileModel.name); - fileReader.readAsText($scope.ecdapp.editRequest.fileModel); - }; - - /** - * Validates content of user-editable fields. - * Returns null if all is well, - * a descriptive error message otherwise. - */ - var validateRequest = function(editRequest) { - if (debug) - $log.debug('validateRequest: editRequest is ' + JSON.stringify(editRequest)); - if (editRequest == null) - return "No data found.\nPlease enter some values."; - if (editRequest.deployment_id == null || editRequest.deployment_id.trim() == '') - return "Deployment ID is required.\nPlease enter a value."; - if (editRequest.workflow_name.value == null || editRequest.workflow_name.value.trim() == '') - return "Workflow name is required.\nPlease select a workflow."; - // Check that every file parameter is defined by blueprint - for (var pkey in $scope.ecdapp.editRequest.parmFileDict) { - // Defined in blueprint? - if (! $scope.ecdapp.inputsDict[pkey]) - return 'Unexpected input parameter\n' + pkey; - // Populated? - let parmVal = $scope.ecdapp.editRequest.parmFileDict[pkey]; - if (parmVal.trim().length == 0) - return 'Missing value for parameter ' + pkey; - } - // Check that a value is supplied for every expected input - for (var bkey in $scope.ecdapp.inputsDict) { - if (! $scope.ecdapp.editRequest.parmFileDict[bkey]) - return 'Missing input parameter\n' + bkey; - } - return null; - } - - $scope.ecdapp.executeDeployment = function(editRequest) { - var validateMsg = validateRequest(editRequest); - if (validateMsg != null) { - alert('Invalid execution request:\n' + validateMsg); - return; - } - - // Create request with key:value parameters dictionary - let executeRequest = { - deployment_id : editRequest.deployment_id, - workflow_name : editRequest.workflow_name.value, - allow_custom_parameter : editRequest.allow_custom_parameter, - force : editRequest.force, - parameters : {} - }; - for (var pkey in $scope.ecdapp.editRequest.parmFileDict) - executeRequest.parameters[pkey] = $scope.ecdapp.editRequest.parmFileDict[pkey]; - if (debug) - $log.debug('executeDeployment: executeRequest is ' + JSON.stringify(executeRequest)); - - ExecutionService.executeDeployment(executeRequest) - .then(function(response) { - if (response.error) - alert('Failed to create execution:\n' + response.error); - else - $modalInstance.close(response); - }, - function (error) { - $log.error('deploymentExecuteCtrl: error while creating execution: ' + error); - alert('Server rejected execute request:\n' + error); - } - ); - - }; - -}); - |