+++ /dev/null
-/*
- * ============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('CompareConfigCtrl', ['$scope','$filter', '$http','$window', 'growl', 'deviceConfigService', 'ObjectDiff', function($scope,$filter, $http,$window, growl, deviceConfigService, ObjectDiff) {
-
- $scope.showResult = false;
- $scope.showCompare = false;
- $scope.showView=false;
- $scope.pagination = false;
- $scope.gap = 2;
- $scope.filteredItems = [];
- $scope.groupedItems = [];
- $scope.itemsPerPage = 5;
- $scope.pagedItems = [];
- $scope.currentPage = 0;
- $scope.version1=false;
- $scope.version2=false;
- $scope.version3=false;
- $scope.version4=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);
- 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;
- $scope.showView =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.vnfversion = $scope.objVersionModel[i].vnfversion;
- objVersionDetail.createdAt = $scope.objVersionModel[i].creationdate;
- objVersionDetail.updatedAt = $scope.objVersionModel[i].lastupdated;
- objVersionDetail.configinfo = $scope.objVersionModel[i].configinfo;
- objVersionDetail.selected = false;
- $scope.objVersion.push(objVersionDetail);
-
- }
- }
- console.log("-----CompareConfigCtrl::createVersionModel::final VersionModel--" + JSON.stringify($scope.objVersion));
-
- // init
- $scope.sort = {
- sortingOrder : 'vnfversion',
- reverse : true
- };
-
- var searchMatch = function(haystack, needle) {
- if (!needle) {
- return true;
- }
- return haystack.toLowerCase().indexOf(
- needle.toLowerCase()) !== -1;
- };
-
- // init the filtered items
- $scope.search = function() {
- $scope.filteredItems = $filter('filter')(
- $scope.objVersion,
- function(item) {
- for ( var attr in item) {
- if (searchMatch(item[attr],
- $scope.query))
- return true;
- }
- return false;
- });
- // take care of the sorting order
- if ($scope.sort.sortingOrder !== '') {
- $scope.filteredItems = $filter(
- 'orderBy')(
- $scope.filteredItems,
- $scope.sort.sortingOrder,
- $scope.sort.reverse);
- }
- $scope.currentPage = 0;
- // now group by pages
- $scope.groupToPages();
- };
-
- // calculate page in place
- $scope.groupToPages = function() {
- $scope.pagedItems = [];
-
- for (var i = 0; i < $scope.filteredItems.length; i++) {
- if (i % $scope.itemsPerPage === 0) {
- $scope.pagedItems[Math.floor(i
- / $scope.itemsPerPage)] = [ $scope.filteredItems[i] ];
- } else {
- $scope.pagedItems[Math.floor(i
- / $scope.itemsPerPage)]
- .push($scope.filteredItems[i]);
- }
- }
- };
-
- $scope.range = function(size, start, end) {
- var ret = [];
- //console.log(size, start, end);
-
- if (size < end) {
- end = size;
- start = size - $scope.gap;
- }
- for (var i = start; i < end; i++) {
- ret.push(i);
- }
- //console.log(ret);
- return ret;
- };
-
- $scope.prevPage = function() {
- if ($scope.currentPage > 0) {
- $scope.currentPage--;
- }
- };
-
- $scope.nextPage = function() {
- if ($scope.currentPage < $scope.pagedItems.length - 1) {
- $scope.currentPage++;
- }
- };
-
- $scope.setPage = function() {
- $scope.currentPage = this.n;
- };
-
- // functions have been describe process the data
- // for display
- $scope.search();
-
- }
-
-
-
- //For apply version
-
- $scope.ApplyConfig = function(objVersion){
- var count = 0;
- angular.forEach(objVersion, function(item) {
- if (item.selected == true)
- count++;
- });
- if (count < 1) {
- $scope.errorMessage = "Select a config file to apply !!!";
- growl.error($scope.errorMessage, {
- title: 'Error!',
- globalDisableCloseButton: false,
- ttl: 7000,
- disableCountDown: true
- });
- }else if (count > 1) {
- $scope.errorMessage = "Only one config file can be applyed at a time !!!";
- growl.error($scope.errorMessage, {
- title: 'Error!',
- globalDisableCloseButton: false,
- ttl: 7000,
- disableCountDown: true
- });
- }else
- $scope.applyModelNew(objVersion);
- };
-
-
- $scope.applyModelNew = function(objVersion){
-
- $scope.objCompareModel1 = {};
-
- $scope.versionsSelected = [];
- angular.forEach(objVersion, function(item) {
- angular.forEach($scope.objVersionModel, function(val, index) {
- 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.versionsSelected, function(item) {
- var versionObj = {};
- var versionDetails = {};
- versionDetails.vnfversion = item['vnfversion'];
- versionDetails.vnfName = item['vnfname'];
- var vnfid = item['vnfid'];
- var config = item['configinfo'];
- var config1=JSON.parse(config);
- console.log("CompareConfigCtrl::createCompareModel::objCompareModel1", config1);
- deviceConfigService.runApplyconfig(vnfid,config1);
- $scope.showResult = false;
- $scope.successMessage = "File uploaded successfully";
- growl.success($scope.successMessage, {
- title: 'Success!',
- globalDisableCloseButton: false,
- ttl: 7000,
- disableCountDown: true
- });
- });
- }
-
-//View Configuration
-
- $scope.ViewConfig = function(objVersion){
- var elmnt1 = document.getElementById("view");
-
- elmnt1.style.display = "block";
- var count = 0;
- angular.forEach(objVersion, function(item) {
- if (item.selected == true)
- count++;
- });
- if (count < 1) {
- $scope.showResult = false;
- $scope.errorMessage = "Select a config file to view !!!";
- growl.error($scope.errorMessage, {
- title: 'Error!',
- globalDisableCloseButton: false,
- ttl: 7000,
- disableCountDown: true
- });
- }else if (count > 1) {
- $scope.showResult = false;
- $scope.errorMessage = "Only one config file can be viewed at a time !!!";
- growl.error($scope.errorMessage, {
- title: 'Error!',
- globalDisableCloseButton: false,
- ttl: 7000,
- disableCountDown: true
- });
- }else
- $scope.ViewCompareModelNew(objVersion);
- };
-
- $scope.ViewCompareModelNew = function(objVersion) {
- $scope.objCompareModel1 = {};
-
- $scope.versionsSelected = [];
- angular.forEach(objVersion, function(item) {
- angular.forEach($scope.objVersionModel, function(val, index) {
- 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.versionsSelected, function(item) {
- var versionObj = {};
- var versionDetails = {};
- versionDetails.vnfversion = item['vnfversion'];
- versionDetails.vnfName = item['vnfname'];
- var vnfid = item['vnfid'];
-
-
- versionDetails.timeStamp = item.createdAt;
- versionObj.versionDetails = versionDetails;
-
- //fetch all the other topology/network,opertaion status for the vnf
- versionObj.topologyInfo = $scope.fetchTopologyInfo(item);
- versionObj.vnfIdInfo = $scope.fetchVnfId(item);
- versionObj.serviceStatusInfo= $scope.fetchServiceStatus(item);
- versionObj.vnfTopologyIdentifier = $scope.vnfTopologyIdentifier(item);
- versionObj.operationStatus = $scope.operationStatus(item);
- versionObj.vnfRequestInfo=$scope.fetchVnfRequestInfo(item);
- versionObj.serviceInfo= $scope.fetchServiceInfo(item);
- versionObj.requestHeader= $scope.serviceRequestHeader(item);
- versionObj.requestInfo=$scope.fetchRequestInfo(item);
-
- if ((versionObj.versionDetails.vnfversion == $scope.versionsSelected[0].vnfversion)) {
- $scope.objCompareModel1 = versionObj;
- } else
- {console.log("CompareConfigCtrl::createCompareModel::objCompareModel1");
-
- }
- document.getElementById("compare").style.display = "none";
- } );
- $scope.showView=true;
- $scope.showResult = true;
- var elmnt1 = document.getElementById("view");
- elmnt1.scrollIntoView();
- console.log("CompareConfigCtrl::createCompareModel::objCompareModel1", JSON.stringify($scope.objCompareModel1));
- }
-
-
- //compare
-
-
- $scope.CompareConfig = function(objVersion) {
- var elmnt = document.getElementById("compare");
- elmnt.style.display = "block";
- var count = 0;
- angular.forEach(objVersion, function(item) {
- if (item.selected == true)
- count++;
- });
- if (count > 4) {
- $scope.showResult = false;
- $scope.errorMessage = "Four or lessthan four and gretterthan two config files can be selected for the comparison!!!";
- growl.error($scope.errorMessage, {
- title: 'Error!',
- globalDisableCloseButton: false,
- ttl: 7000,
- disableCountDown: true
- });
- } else if (count < 2){
- $scope.showResult = false;
- $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.selected) {
- if ($scope.versionsSelected.indexOf(item) == -1)
- $scope.versionsSelected.push(item);
- }
- })
- });
- console.log("--CompareConfigCtrl::createCompareModel::$scope.objVersionModel", JSON.stringify($scope.objVersionModel));
- console.log("--CompareConfigCtrl::createCompareModel::$scope.objVersionModel", JSON.stringify($scope.versionsSelected));
-
- angular.forEach($scope.versionsSelected, function(item) {
- var versionObj = {};
- var versionDetails = {};
- versionDetails.vnfversion = item.vnfversion;
- versionDetails.timeStamp = item.createdAt;
- versionObj.versionDetails = versionDetails;
-
- //fetch all the other topology/network,opertaion status for the vnf
- versionObj.topologyInfo = $scope.fetchTopologyInfo(item);
- versionObj.vnfIdInfo = $scope.fetchVnfId(item);
- versionObj.serviceStatusInfo= $scope.fetchServiceStatus(item);
- versionObj.vnfTopologyIdentifier = $scope.vnfTopologyIdentifier(item);
- versionObj.operationStatus = $scope.operationStatus(item);
- versionObj.vnfRequestInfo=$scope.fetchVnfRequestInfo(item);
- versionObj.serviceInfo= $scope.fetchServiceInfo(item);
- versionObj.requestHeader= $scope.serviceRequestHeader(item);
- versionObj.requestInfo=$scope.fetchRequestInfo(item);
-
- if ((versionObj.versionDetails.vnfversion == $scope.versionsSelected[0].vnfversion)) {
- $scope.objCompareModel1 = versionObj;
- $scope.version1=true;
- } else if ((versionObj.versionDetails.vnfversion == $scope.versionsSelected[1].vnfversion))
- {$scope.objCompareModel2 = versionObj;
- $scope.version2=true;
- $scope.version3=false;
- $scope.version4=false;
- }else if((versionObj.versionDetails.vnfversion == $scope.versionsSelected[2].vnfversion)){
- $scope.objCompareModel3 = versionObj;
- $scope.version3=true;
- $scope.version4=false;
- }else if((versionObj.versionDetails.vnfversion == $scope.versionsSelected[3].vnfversion)){
- $scope.objCompareModel4 = versionObj;
- $scope.version4=true;
- }
- document.getElementById("view").style.display = "none";
- } );
- $scope.showResult = true;
- var elmnt = document.getElementById("compare");
- elmnt.scrollIntoView();
- console.log("CompareConfigCtrl::createCompareModel::objCompareModel1", JSON.stringify($scope.objCompareModel1));
- console.log("CompareConfigCtrl::createCompareModel::objCompareModel2", JSON.stringify($scope.objCompareModel2));
-
- }
-
- //1'st comparison for vnf topology info vnf-parameters
- $scope.fetchTopologyInfo = function(item) {
- var topologyInfo = {};
- item = JSON.parse(item.configinfo);
- var item= item['vnf-list'][0];
- if (angular.isDefined(item['service-data']) && angular.isDefined(item['service-data']['vnf-topology-information'])) {
- var vnfTopologyInfo = item['service-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;
- }
- }
- }
-
-
-
- //2nd comparison for vnf id
-
- $scope.fetchVnfId = function(item){
- var vnfIdInfo = {};
- item = JSON.parse(item.configinfo);
- var item= item['vnf-list'][0];
- if (angular.isDefined(item['vnf-id'])) {
- var key=item['vnf-id'];
- vnfIdInfo['vnf-id']=key;
- }
- console.log("CompareConfigCtrl::fetchVnfId::", JSON.stringify( vnfIdInfo));
- return vnfIdInfo;
- }
-
-
- //3rd comparison for service status
-
- $scope.fetchServiceStatus = function(item) {
- var serviceStatusInfo = {};
-
- item = JSON.parse(item.configinfo);
- var item= item['vnf-list'][0];
-
- if (angular.isDefined(item['service-status'])) {
- var serviceStatus = item['service-status'];
- if (angular.isDefined(serviceStatus)) {
- angular.forEach(serviceStatus, function(value, key) {
-
- console.log("CompareConfigCtrl::fetchServiceStatus::key", key);
- console.log("CompareConfigCtrl::fetchServiceStatus::value", value);
- serviceStatusInfo[key] = value;
- });
- }
- }
-
- console.log("CompareConfigCtrl::fetchServiceStatus::", JSON.stringify(serviceStatusInfo));
- return serviceStatusInfo;
- }
-
- // 4th comparison for vnf topology identifire
-
- $scope.vnfTopologyIdentifier = function(item) {
- var topologyIdnetifier = {};
- item = JSON.parse(item.configinfo);
- var item= item['vnf-list'][0];
- if (angular.isDefined(item['service-data']) && angular.isDefined(item['service-data']['vnf-topology-information']['vnf-topology-identifier'])) {
- var topologyInfoidentifier = item['service-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;
- }
-
- // 5th comparison for vnf request information
-
- $scope.fetchVnfRequestInfo = function(item) {
- var vnfRequestInfo = {};
- item = JSON.parse(item.configinfo);
- var item= item['vnf-list'][0];
- if (angular.isDefined(item['service-data']) && angular.isDefined(item['service-data']['vnf-request-information'])) {
- var vnfRequest = item['service-data']['vnf-request-information'];
- if (angular.isDefined(vnfRequest) && vnfRequest != null) {
-
- angular.forEach(vnfRequest, function(value, key) {
-
- console.log("CompareConfigCtrl::fetchVnfRequestInfo::key", key);
- console.log("CompareConfigCtrl::fetchVnfRequestInfo::value", value);
- vnfRequestInfo[key] = value;
- });
- }
- }
-console.log("CompareConfigCtrl::fetchVnfRequestInfo::", JSON.stringify(vnfRequestInfo));
- return vnfRequestInfo;
- }
-
- // 6th comparison for service info
-
-
- $scope.fetchServiceInfo = function(item) {
- var serviceInfo = {};
- item = JSON.parse(item.configinfo);
- var item= item['vnf-list'][0];
- if (angular.isDefined(item['service-data']) && angular.isDefined(item['service-data']['service-information'])) {
- var service= item['service-data']['service-information'];
- if (angular.isDefined(service) && service != null) {
-
- angular.forEach(service, function(value, key) {
-
- console.log("CompareConfigCtrl::fetchServiceInfo::key", key);
- console.log("CompareConfigCtrl::fetchServiceInfo::value", value);
- serviceInfo[key] = value;
- });
- }
- }
- console.log("CompareConfigCtrl::fetchServiceInfo::", JSON.stringify(serviceInfo));
- return serviceInfo;
- }
-
- // 7th comparison for sdnc request header
-
- $scope.serviceRequestHeader = function(item) {
- var requestHeader = {};
- item = JSON.parse(item.configinfo);
- var item= item['vnf-list'][0];
- if (angular.isDefined(item['service-data']) && angular.isDefined(item['service-data']['sdnc-request-header'])) {
- var requestHeaderInfo = item['service-data']['sdnc-request-header'];
- if (angular.isDefined(requestHeaderInfo) && requestHeaderInfo != null) {
-
- angular.forEach(requestHeaderInfo, function(value, key) {
-
- console.log("CompareConfigCtrl::serviceRequestHeader::key", key);
- console.log("CompareConfigCtrl::serviceRequestHeader::value", value);
- requestHeader[key] = value;
- });
-
- }
- }
- console.log("CompareConfigCtrl::serviceRequestHeader::", JSON.stringify(requestHeader));
- return requestHeader;
- }
-
- // 8th comparison for oper status
- $scope.operationStatus = function(item) {
- var operationStatus = {};
- item = JSON.parse(item.configinfo);
- var item= item['vnf-list'][0];
- if (angular.isDefined(item['service-data']) && angular.isDefined(item['service-data']['oper-status'])) {
- var operStatus = item['service-data']['oper-status'];
- if (angular.isDefined(operStatus) && operStatus != null) {
-
- angular.forEach(operStatus, function(value, key) {
-
- console.log("CompareConfigCtrl::operationStatus::key", key);
- console.log("CompareConfigCtrl::operationStatus::value", value);
- operationStatus[key] = value;
- });
-
- }
- }
- console.log("CompareConfigCtrl::operationStatus::", JSON.stringify(operationStatus));
- return operationStatus;
- }
- // 9th comparison for request info
-
- $scope.fetchRequestInfo = function(item) {
- var requestInfo = {};
- item = JSON.parse(item.configinfo);
- var item= item['vnf-list'][0];
- if (angular.isDefined(item['service-data']) && angular.isDefined(item['service-data']['request-information'])) {
- var request = item['service-data']['request-information'];
- if (angular.isDefined(request) && request != null) {
-
- angular.forEach(request, function(value, key) {
-
- console.log("CompareConfigCtrl::fetchRequestInfo::key", key);
- console.log("CompareConfigCtrl::fetchRequestInfo::value", value);
- requestInfo[key] = value;
- });
-
- }
- }
- console.log("CompareConfigCtrl::fetchRequestInfo::", JSON.stringify(requestInfo));
- return requestInfo;
- }
-
-}]);
\ No newline at end of file