From af56b68e030085aa523152e83811705636ead79c Mon Sep 17 00:00:00 2001 From: asgar Date: Fri, 8 Mar 2019 19:52:33 +0530 Subject: added ansible server functionality multiple ansible server for CDT Issue-ID: APPC-1510 Change-Id: I383bc63705418654efb596c617309821ebbeb9b4 Signed-off-by: Mohamed Asgar Samiulla --- src/app/admin/admin.component.ts | 247 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 src/app/admin/admin.component.ts (limited to 'src/app/admin/admin.component.ts') diff --git a/src/app/admin/admin.component.ts b/src/app/admin/admin.component.ts new file mode 100644 index 0000000..74fe86a --- /dev/null +++ b/src/app/admin/admin.component.ts @@ -0,0 +1,247 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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============================================ +*/ + +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { HttpUtilService } from '../shared/services/httpUtil/http-util.service'; +import { MappingEditorService } from '../shared/services/mapping-editor.service'; +import { ParamShareService } from '../shared/services/paramShare.service'; +import { environment } from '../../environments/environment'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { NgProgress } from 'ngx-progressbar'; +import { APIService } from "../shared/services/cdt.apicall"; +import { UtilityService } from '../shared/services/utilityService/utility.service'; +import { NotificationsService } from 'angular2-notifications'; + + +@Component({ selector: 'admin', templateUrl: './admin.component.html', styleUrls: ['./admin.component.css']}) +export class AdminComponent implements OnInit { + displayAnsibleServerData: Array = []; + ansibleServerData; + sortOrder = false; + noData = false; + sortBy: string; + filter: Object = {}; + noDataMsg: string; + errorMessage = ''; + invalid = true; + currentUser; + fileName = "ansible_admin_FQDN_Artifact_0.0.1V.json"; + + options = { + timeOut: 4000, + showProgressBar: true, + pauseOnHover: true, + clickToClose: true, + maxLength: 200 + }; + + constructor ( + private paramShareService: ParamShareService, + private ngProgress: NgProgress, + private httpUtil: HttpUtilService, + private router: Router, + private activeROute: ActivatedRoute, + private mappingEditorService: MappingEditorService, + private modalService: NgbModal, + private apiService:APIService, + private utilService: UtilityService, + private nService: NotificationsService + ) { + } + + ngOnInit() { + const apiToken = localStorage['apiToken']; + this.currentUser = localStorage['userId']; + + if(this.paramShareService.ansibleServerData) { + this.ansibleServerData = this.paramShareService.ansibleServerData; + console.log("cached ansibleServerData===>"+JSON.stringify(this.ansibleServerData)); + this.formatRawData(); + } else { + //testing + //this.ansibleServerData = "{\"fqdn-list\":[{\"vnf-management-server-fqdn\": \"fqdn-value1:url\:port\",\"cloud-owner-list\":[{\"cloud-owner\": \"owner1\",\"region-id-list\": [{\"region-id\": \"regiodnid1\",\"tenant-id-list\": [\"tenantid1\",\"tenantid2\"]},{\"region-id\": \"regiondid2\",\"tenant-id-list\": [\"tenantid1\",\"tenantid2\"]}]},{\"cloud-owner\": \"owner2\",\"region-id-list\": [{\"region-id\": \"regionid1\",\"tenant-id-list\": [\"tenantid1\",\"tenantid2\"]}]}],\"description\": \"fqdn for east zone vUSP Production\",\"username\": \"albino attuid\",\"create-date\": \"\",\"modify-username\": \"Asgar\",\"modify-date\": \"10/26/2018\"}]}"; + //this.ansibleServerData = JSON.parse(this.ansibleServerData); + //this.formatRawData(); + this.getArtifacts(); + } + + } + + getArtifacts() { + + const input = { + "input":{ + "design-request":{ + "request-id":localStorage['apiToken'], + "action":"getArtifact", + "payload":"{\"vnf-type\":\"NULL\",\"vnfc-type\":\"NULL\",\"protocol\":\"\",\"incart\":\"N\",\"action\":\"NULL\",\"artifact-name\":\""+this.fileName+"\",\"artifact-type\":\"APPC-CONFIG\",\"userID\":\"admin\"}" + } + } + }; + //const x = JSON.parse(data.input['design-request']['payload']); + //x.userID = localStorage['userId']; + //data.input['design-request']['payload'] = JSON.stringify(x); + console.log("input to payload====", JSON.stringify(input)); + + this.ngProgress.start(); + + this.apiService.callGetArtifactsApi(input).subscribe(data => { + + if( this.utilService.checkResult(data)) { + console.log("response===>"+JSON.stringify(data)); + this.ansibleServerData = JSON.parse(data.output.data.block).artifactInfo[0]["artifact-content"]; + this.ansibleServerData = JSON.parse(this.ansibleServerData); + console.log("ansibleServerData===>"+JSON.stringify(this.ansibleServerData)) + this.paramShareService.ansibleServerData = this.ansibleServerData; + this.formatRawData(); + } + this.ngProgress.done(); + }, + error => { + + this.nService.error('Error', + 'Error in connecting to APPC Server', this.options ); + }); + + + } + + formatRawData(){ + this.displayAnsibleServerData = [this.ansibleServerData["fqdn-list"].length]; + console.log("length==>"+this.ansibleServerData["fqdn-list"].length) + for(let i=0;i 1) { + this.displayAnsibleServerData[i]['port'] = splitArray[splitArray.length-1]; + } + let clouditem = ""; + for(let j=0; j"+JSON.stringify({"ownerid": ownerid, "regionid": regionid, "tenantid": tenantid})) + } + + } + + } + console.log("info array==>"+JSON.stringify(cloudInfoArray)) + this.displayAnsibleServerData[i]["info"] = cloudInfoArray; + this.displayAnsibleServerData[i]["cloud"] = clouditem; + this.displayAnsibleServerData[i]["descr"] = fqdl["description"]; + this.displayAnsibleServerData[i]["creator"] = fqdl["username"]; + this.displayAnsibleServerData[i]["created-date"] = fqdl["create-date"]; + this.displayAnsibleServerData[i]["modifier"] = fqdl["modify-username"]; + this.displayAnsibleServerData[i]["modified-date"] = fqdl["modify-date"]; + + } + } + + + + viewAnbsibleServer(selectedConfig, updateIndex) { + sessionStorage.setItem('updateIndex', updateIndex); + sessionStorage.setItem('ansibleserver', JSON.stringify(selectedConfig)); + + this + .router + .navigate(['../ansible-server'], { + relativeTo: this.activeROute + }); + } + + createAnsibleServer() { + let newServer = {"server":"","port":"","info":[],"cloud":"","descr":"","creator":this.currentUser,"created-date":this.utilService.getDate(),"modifier":"","modified-date":""}; + sessionStorage.setItem('ansibleserver', JSON.stringify(newServer)); + + if(this.ansibleServerData) { + sessionStorage.setItem('updateIndex', this.ansibleServerData["fqdn-list"].length); + } else { + sessionStorage.setItem('updateIndex', '0'); + } + + this + .router + .navigate(['../ansible-server'], { + relativeTo: this.activeROute + }); + } + + + saveToAppc() { + let artifactContent = this.utilService.appendSlashes(JSON.stringify(this.paramShareService.ansibleServerData)); + let input = { + "input": { + "design-request": { + "request-id": localStorage['apiToken'], + "action": "uploadAdminArtifact", + "payload": "{\"userID\": \"admin\",\"vnf-type\" : \"NULL \",\"action\" : \"NULL\",\"artifact-name\" : \""+this.fileName+"\",\"artifact-type\" : \"APPC-CONFIG\",\"artifact-version\" : \"0.1\",\"artifact-contents\":\""+artifactContent+"\"}", + } + } + } + let response = this.apiService.callGetArtifactsApi(input); + response.subscribe(response => { + this.utilService.processApiSubscribe(response, this.utilService.putAction, "admin artifact"); + //this.clearCache(); + }, + error => this.utilService.processApiError()); + } + + // ngOnDestroy() { + // console.log("destry....") + // } + + clearCache() { + this.paramShareService.ansibleServerData = undefined; + sessionStorage.removeItem('ansibleserver'); + } + + download() { + if(this.ansibleServerData){ + this.utilService.downloadArtifactToPc(JSON.stringify(this.ansibleServerData, null, '\t'), "json", this.fileName, 100) + } + } + +} \ No newline at end of file -- cgit 1.2.3-korg