diff options
author | DushyantSinghThakur <dt00503496@techmahindra.com> | 2018-09-06 12:46:04 +0530 |
---|---|---|
committer | Dan Timoney <dt5972@att.com> | 2018-09-12 13:10:46 +0000 |
commit | 43d4b00848ebd0567b020fe219f07d4f7049ff0b (patch) | |
tree | f5c09d0006348c82a94693605349e79db4889b71 /configbackuprestore/vnfconfigbackupservice/src/main/webapp/js/sdnc-controller/sdnc-backupConfig-controller.js | |
parent | 4e2db0d6e56bc19425e6afa3efc7011820942e9e (diff) |
Epic-231:versioning, and backup the configuration
Merging the sdnc jira stories- 255,256
Change-Id: Iacb9274dae93f534f1331c4eb7d0669896d379d4
Issue-ID: SDNC-256
Signed-off-by: DushyantSinghThakur <dt00503496@techmahindra.com>
Former-commit-id: 94d8b3d82b82dedfd5949da2e5d1ed348ab066e2
Diffstat (limited to 'configbackuprestore/vnfconfigbackupservice/src/main/webapp/js/sdnc-controller/sdnc-backupConfig-controller.js')
-rw-r--r-- | configbackuprestore/vnfconfigbackupservice/src/main/webapp/js/sdnc-controller/sdnc-backupConfig-controller.js | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/configbackuprestore/vnfconfigbackupservice/src/main/webapp/js/sdnc-controller/sdnc-backupConfig-controller.js b/configbackuprestore/vnfconfigbackupservice/src/main/webapp/js/sdnc-controller/sdnc-backupConfig-controller.js new file mode 100644 index 00000000..3ea9c755 --- /dev/null +++ b/configbackuprestore/vnfconfigbackupservice/src/main/webapp/js/sdnc-controller/sdnc-backupConfig-controller.js @@ -0,0 +1,314 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : SDNC-FEATURES + * ================================================================================ + * Copyright 2018 TechMahindra + *================================================================================= + * 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========================================================= + */ +myApp.controller('BackupConfigCtrl', ['$scope', '$http','$window', 'growl', 'deviceConfigService', 'ObjectDiff', '$timeout' , function($scope, $http, $window, growl, deviceConfigService, ObjectDiff, $timeout) { + + $scope.showResult = false; + $scope.showCompare = false; + + //THIS FUNCTION WILL BE CALLED ON PAGE LOAD + $scope.getAllVNF = function() { + + deviceConfigService.getAllVNF().then(function(data) { + if (data != null) { + console.log(data); + $scope.objvnfList = data; + console.log("CompareConfigCtrl:getAllVNF called" + $scope.objvnfList); + } else { + $scope.warningMessage = "No VNF is eligible for configuration!!!"; + growl.error($scope.warningMessage, { + title: 'Warning!', + globalDisableCloseButton: false, + ttl: 7000, + disableCountDown: true + }); + } + }); + }; + $scope.getAllVNF(); + + $scope.selectVnf = function(selectedValueVnf) { + + if (selectedValueVnf != null && selectedValueVnf != "") { + console.log("selectedvnf Value", selectedValueVnf); + //selectedItem = selectedValueVnf.split("%"); +// var vnfName = selectedItem[0]; +// var vnfType = selectedItem[1]; + var vnfId = selectedValueVnf; + $scope.getVersionList(vnfId); + } else { + $scope.ShowResult = false; + $scope.showCompare = false; + $scope.showResult = false; + $scope.errorMessage = "Please select a VNF!!!"; + growl.error($scope.errorMessage, { + title: 'Error!', + globalDisableCloseButton: false, + ttl: 7000, + disableCountDown: true + }); + } + + } + + //THIS FUNCTION WILL BE CALLED ON SELECTION OF VNF + $scope.getVersionList = function(vnfId) { + + $scope.ShowResult = false; + + //service call to fetch the version list + deviceConfigService.getVersions(vnfId).then(function(result) { + console.log("--CompareConfigCtrl::getVersionList called from controler--", JSON.stringify(result)); + var status = result.status; + var result = result.data; + if (status == 200) { + if (result.length >= 1) { + //in case of success, build the model object to store the service output here + $scope.createVersionModel(result); + } else { + $scope.ShowResult = false; + $scope.warningMessage = "No configruation found for the selected VNF !!"; + growl.warning($scope.warningMessage, { + title: 'Warning!', + globalDisableCloseButton: false, + ttl: 7000, + disableCountDown: true + }); + } + } else { + $scope.ShowResult = false; + $scope.warningMessage = "No configruation found for the selected VNF !!"; + growl.warning($scope.warningMessage, { + title: 'Warning!', + globalDisableCloseButton: false, + ttl: 7000, + disableCountDown: true + }); + } + }, + function(response) { + $scope.errorMessage = "Something went wrong, Please try again !!"; + growl.error($scope.errorMessage, { + title: 'Error!', + globalDisableCloseButton: false, + ttl: 7000, + disableCountDown: true + }); + console.log("--CompareConfigCtrl::getVersionList::Error--", response); + }); + } + + //Function to build the UI model to be shown + $scope.createVersionModel = function(result) { + + $scope.objVersionModel = result; + $scope.objVersion = []; + + console.log("--CompareConfigCtrl::createVersionModel::--", JSON.stringify($scope.objVersionModel)); + if ($scope.objVersionModel.length >= 1) { + $scope.ShowResult = true; + $scope.showCompare = true; + for (var i = 0; i < $scope.objVersionModel.length; i++) { + var objVersionDetail = {}; + objVersionDetail.vnfname = $scope.objVersionModel[i].vnfname; + objVersionDetail.vnfid = $scope.objVersionModel[i].vnfid; + objVersionDetail.versionNo = $scope.objVersionModel[i].vnfversion; + objVersionDetail.createdAt = $scope.objVersionModel[i].creationdate; + objVersionDetail.configinfo = $scope.objVersionModel[i].configinfo; + objVersionDetail.selected = false; + + $scope.objVersion.push(objVersionDetail); + } + } + console.log("--CompareConfigCtrl::createVersionModel::final VersionModel--" + JSON.stringify($scope.objVersion)); + + } + + $scope.CompareConfig = function(objVersion) { + var count = 0; + angular.forEach(objVersion, function(item) { + if (item.selected == true) + count++; + }); + if (count > 2) { + $scope.errorMessage = "Only two config files can be selected for the comparison!!!"; + growl.error($scope.errorMessage, { + title: 'Error!', + globalDisableCloseButton: false, + ttl: 7000, + disableCountDown: true + }); + } else if (count === 1){ + $scope.errorMessage = "At least two config files can be selected for the comparison!!!"; + growl.error($scope.errorMessage, { + title: 'Error!', + globalDisableCloseButton: false, + ttl: 7000, + disableCountDown: true + }); + }else + $scope.createCompareModelNew(objVersion); + }; + + $scope.createCompareModelNew = function(objVersion) { + + $scope.objCompareModel1 = {}; + $scope.objCompareModel2 = {}; + + $scope.versionsSelected = []; + angular.forEach(objVersion, function(item) { + angular.forEach($scope.objVersionModel, function(val, index) { + if (item.versionNo == val['versionNo'] && item.selected == false) { + $scope.objVersionModel.splice(index, 1); + } + if (item.selected) { + if ($scope.versionsSelected.indexOf(item) == -1) + $scope.versionsSelected.push(item); + } + }) + }); + console.log("--CompareConfigCtrl::createCompareModel::$scope.objVersionModel", JSON.stringify($scope.objVersionModel)); + angular.forEach($scope.objVersionModel, function(item) { + var versionObj = {}; + var versionDetails = {}; + versionDetails.versionNo = item['vnfversion']; + /*versionDetails.vnfName = item['vnfname']; + versionDetails.vnfid = item['vnfid'];*/ + versionDetails.timeStamp = item.creationdate; + versionObj.versionDetails = versionDetails; + + //fetch all the other topology/network,opertaion status for the vnf + // versionObj.topologyInfo = $scope.fetchConfigDetails(item); + versionObj.topologyInfo = $scope.fetchTopologyInfo(item); + + versionObj.networkTopologyInfo = $scope.fetchNetworkTopologyInfo(item); + versionObj.operationStatus = $scope.operationStatus(item); + versionObj.vnfTopologyIdentifier = $scope.vnfTopologyIdentifier(item); + + if ((versionObj.versionDetails.versionNo == $scope.versionsSelected[0].versionNo)) { + $scope.objCompareModel1 = versionObj; + } else + $scope.objCompareModel2 = versionObj; + + }); + $scope.showResult = true; + console.log("CompareConfigCtrl::createCompareModel::objCompareModel1", JSON.stringify($scope.objCompareModel1)); + console.log("CompareConfigCtrl::createCompareModel::objCompareModel2", JSON.stringify($scope.objCompareModel2)); + } + + + + $scope.fetchTopologyInfo = function(item) { + var topologyInfo = {}; + item = JSON.parse(item.configinfo); + if (angular.isDefined(item['preload-data']) && angular.isDefined(item['preload-data']['vnf-topology-information'])) { + var vnfTopologyInfo = item['preload-data']['vnf-topology-information']; + if (angular.isDefined(vnfTopologyInfo['vnf-parameters'] && vnfTopologyInfo['vnf-parameters'] != null)) { + var vnfParameters = vnfTopologyInfo['vnf-parameters']; + for (var i = 0; i < vnfParameters.length; i++) { + + var key = vnfParameters[i]['vnf-parameter-name']; + var value = vnfParameters[i]['vnf-parameter-value']; + console.log("CompareConfigCtrl::fetchTopologyInfo::key", key); + console.log("CompareConfigCtrl::fetchTopologyInfo::value", value); + topologyInfo[key] = value; + + } + console.log("CompareConfigCtrl::fetchTopologyInfo::", JSON.stringify(topologyInfo)); + return topologyInfo; + } + } + } + + $scope.fetchNetworkTopologyInfo = function(item) { + var networkTopology = {}; + item = JSON.parse(item.configinfo); + if (angular.isDefined(item['preload-data']) && angular.isDefined(item['preload-data']['network-topology-information'])) { + var netwrokTopologyInfo = item['preload-data']['network-topology-information']; + if (angular.isDefined(netwrokTopologyInfo) && netwrokTopologyInfo != null) { + for (var i = 0; i < netwrokTopologyInfo.length; i++) { + + var key = netwrokTopologyInfo[i]['vnf-parameter-name']; + var value = netwrokTopologyInfo[i]['vnf-parameter-value']; + console.log("CompareConfigCtrl::fetchTopologyInfo::key", key); + console.log("CompareConfigCtrl::fetchTopologyInfo::value", value); + networkTopology[key] = value; + } + } + } + console.log("CompareConfigCtrl::fetchNetworkTopologyInfo::", JSON.stringify(networkTopology)); + return networkTopology; + } + + $scope.operationStatus = function(item) { + var operationStatus = {}; + item = JSON.parse(item.configinfo); + if (angular.isDefined(item['preload-data']) && angular.isDefined(item['preload-data']['oper-status'])) { + var operStatus = item['preload-data']['oper-status']; + if (angular.isDefined(operStatus) && operStatus != null) { + + var value = operStatus['order-status']; + operationStatus['order-status'] = value; + + } + } + console.log("CompareConfigCtrl::operationStatus::", JSON.stringify(operationStatus)); + return operationStatus; + } + + $scope.vnfTopologyIdentifier = function(item) { + var topologyIdnetifier = {}; + item = JSON.parse(item.configinfo); + if (angular.isDefined(item['preload-data']) && angular.isDefined(item['preload-data']['vnf-topology-information']['vnf-topology-identifier'])) { + var topologyInfoidentifier = item['preload-data']['vnf-topology-information']['vnf-topology-identifier']; + if (angular.isDefined(topologyInfoidentifier)) { + angular.forEach(topologyInfoidentifier, function(value, key) { + + console.log("CompareConfigCtrl::fetchTopologyInfo::key", key); + console.log("CompareConfigCtrl::fetchTopologyInfo::value", value); + topologyIdnetifier[key] = value; + }); + } + } + + console.log("CompareConfigCtrl::vnfTopologyIdentifier::", JSON.stringify(topologyIdnetifier)); + return topologyIdnetifier; + } + + $scope.invokeBackup = function(){ + deviceConfigService.invokeBackup().then(function(data) { + console.log("response -- data -- "+data) + $window.location.reload(); + }); + } + + $scope.getLastModifiedTime=function(){ +// $timeout(function(result){ +// console.log("response-data-"+ result); +// $scope.lastModifiedTime="Testcode Dushyant" +// } +// ,5000); + + deviceConfigService.getlastupdated().then(function(result) { + $scope.lastModifiedTime= result.data; + console.log("response -- getlastupdated -- "+JSON.stringify(result)) + }); + } + $scope.getLastModifiedTime() +}]);
\ No newline at end of file |