summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usecaseui-portal/src/app/onboard.service.ts15
-rw-r--r--usecaseui-portal/src/app/services/onboard-vnf-vm/onboard-vnf-vm.component.html13
-rw-r--r--usecaseui-portal/src/app/services/onboard-vnf-vm/onboard-vnf-vm.component.ts207
3 files changed, 154 insertions, 81 deletions
diff --git a/usecaseui-portal/src/app/onboard.service.ts b/usecaseui-portal/src/app/onboard.service.ts
index 83ae6394..3334bfc3 100644
--- a/usecaseui-portal/src/app/onboard.service.ts
+++ b/usecaseui-portal/src/app/onboard.service.ts
@@ -74,7 +74,11 @@ export class onboardService {
deleteVnfPack: this.baseUrl + "deleteVnfPackage?vnfPkgId=",
// Delete Pnf package
deletePnfPack: this.baseUrl + "deletePnfPackage?pnfPkgId=",
-
+
+ //进度接口
+ progress: this.baseUrl + "jobs/" + "_jobId" + "?responseId="
+
+
// // download ns package
// downloadNsData: this.baseUrl + "downLoadNsPackage?nsdInfoId=XXXXX",
// //download vnf package
@@ -122,13 +126,18 @@ export class onboardService {
//------------------------------------------------------------------------------
//onboard sdc ns
getNsonboard(requestBody) {
- return this.http.get<any>(this.url["onboardNs"], requestBody);
+ return this.http.post<any>(this.url["onboardNs"], requestBody);
}
//onboard sdc vnf
getVnfonboard(requestBody) {
- return this.http.get<any>(this.url["onboardVNF"], requestBody);
+ return this.http.post<any>(this.url["onboardVNF"], requestBody);
}
+ //onboard progress
+ getProgress(jobid, responseId) {
+ let url = this.url.progress.replace("_jobId", jobid) + responseId;
+ return this.http.get<any>(url);
+ }
//--------------------------------------------------------------------------
// Delete ns vfc package
deleteNsIdData(paramsObj) {
diff --git a/usecaseui-portal/src/app/services/onboard-vnf-vm/onboard-vnf-vm.component.html b/usecaseui-portal/src/app/services/onboard-vnf-vm/onboard-vnf-vm.component.html
index 105f399f..a3023fb0 100644
--- a/usecaseui-portal/src/app/services/onboard-vnf-vm/onboard-vnf-vm.component.html
+++ b/usecaseui-portal/src/app/services/onboard-vnf-vm/onboard-vnf-vm.component.html
@@ -51,14 +51,21 @@
<td *ngIf="item.nsdName">{{item.nsdName}}</td>
<td *ngIf="item.nsdName === null">无</td>
<td *ngIf="item.name">{{item.name}}</td>
+
<td *ngIf="item.nsdVersion">{{item.nsdVersion}}</td>
<td *ngIf="item.nsdVersion === null">无</td>
<td *ngIf="item.version">{{ item.version }}</td>
<td>
<span *ngIf="item.nsdOnboardingState">{{item.nsdOnboardingState}}</span>
<span *ngIf="item.nsdOnboardingState === null">无</span>
- <span *ngIf="item.uuid" data_id="i">{{status}}</span>
+ <span *ngIf="item.uuid">{{status}}</span>
+
+ <!-- <span *ngIf="item.uuid" [ngClass]="{'active':data.status=='Active','closed':data.status=='Closed','onboarding':data.status=='Onboarding',
+ 'updating':data.status=='Updating','deleting':data.status=='Deleting','creating':data.status=='Creating',
+ 'scaling':data.status=='Scaling','healing':data.status=='Healing'}">{{data.status || "Active"}}</span>
+ <nz-progress *ngIf="item.uuid" *ngIf="data.status == 'Creating' || data.status == 'Deleting' || data.status == 'Scaling' || data.status == 'Healing' " [nzPercent]="data.rate"></nz-progress> -->
</td>
+
<td>{{item.nsdOperationalState}}</td>
<td>{{item.nsdUsageState}}</td>
<td>
@@ -77,7 +84,7 @@
<i nz-icon type="inbox" class="anticon anticon-inbox"></i>
</p>
<p class="ant-upload-text">Click or drag file to this area to upload</p>
- <p class="ant-upload-hint">Support for a single or bulk upload. Strictly prohibit from uploading company data or other band files</p>
+ <p class="ant-upload-hint"></p>
</nz-upload>
<button nz-button [nzLoading]="vnfuploading" (click)="onClick(tab)" [disabled]="fileListVNF.length == 0"
style="margin-top: 16px">
@@ -126,7 +133,7 @@
<i nz-icon type="inbox" class="anticon anticon-inbox"></i>
</p>
<p class="ant-upload-text">Click or drag file to this area to upload</p>
- <p class="ant-upload-hint">Support for a single or bulk upload. Strictly prohibit from uploading company data or other band files</p>
+ <p class="ant-upload-hint"></p>
</nz-upload>
<button nz-button [nzLoading]="pnfuploading" (click)="onClick(tab)" [disabled]="fileListPNF.length == 0"
style="margin-top: 16px">
diff --git a/usecaseui-portal/src/app/services/onboard-vnf-vm/onboard-vnf-vm.component.ts b/usecaseui-portal/src/app/services/onboard-vnf-vm/onboard-vnf-vm.component.ts
index 4e57fc64..82025ec6 100644
--- a/usecaseui-portal/src/app/services/onboard-vnf-vm/onboard-vnf-vm.component.ts
+++ b/usecaseui-portal/src/app/services/onboard-vnf-vm/onboard-vnf-vm.component.ts
@@ -30,11 +30,11 @@ export class OnboardVnfVmComponent implements OnInit {
fileListPNF: UploadFile[] = [];
// onboard initial value
status = "Onboard Available";
-
+ jobid = '';
//url
url = {
// line up
- ns: '/api/nsd/v1/ns_descriptors/'+this.nsdInfoId+'/nsd_content',
+ ns: '/api/nsd/v1/ns_descriptors/'+this.nsdInfoId +'/nsd_content',
vnf: '/api/vnfpkgm/v1/vnf_packages/'+this.vnfPkgId+'/package_content',
pnf: '/api/nsd/v1/pnf_descriptors/'+this.pnfdInfoId+'/pnfd_content'
// 本地
@@ -86,6 +86,7 @@ export class OnboardVnfVmComponent implements OnInit {
switch (tab) {
case 'NS':
this.getTableData();
+
break
case 'VNF':
this.getTableVnfData()
@@ -190,19 +191,19 @@ export class OnboardVnfVmComponent implements OnInit {
switch(tab) {
case "NS":
this.fileListNS.forEach((file: any) => {
- formData.append('files[]', file);
+ formData.append('file', file);
});
this.nsuploading = true;
break
case "VNF":
this.fileListVNF.forEach((file: any) => {
- formData.append('files[]', file);
+ formData.append('file', file);
});
this.vnfuploading = true;
break
case "PNF":
this.fileListPNF.forEach((file: any) => {
- formData.append('files[]', file);
+ formData.append('file', file);
});
this.pnfloading = true;
break
@@ -258,31 +259,41 @@ changeUploadingSta(tab) {
//vfc
this.myhttp.getOnboardTableData()
.subscribe((data) => {
- console.log(data)
+ console.log("NSlist-vfc-->",data);
+ console.log("NSlist-length-vfc-->",data.length);
this.vfcData = data;
- console.log(typeof this.vfcData)
- console.log("NSlist-vfc-->",data)
+ this.tableData = this.vfcData;
}, (err) => {
console.log(err);
})
// sdc
this.myhttp.getSDC_NSTableData()
.subscribe((data) => {
- console.log('NSlist-sdc-->',data)
+ console.log('NSlist-sdc-->',data);
+ console.log("NSlist-length-vfc-->",data.length);
this.sdcData = data;
- this.tableData = this.MergeArray(this.vfcData, this.sdcData)
+ if (this.vfcData.length != 0 && this.sdcData.length != 0){
+ this.tableData = this.MergeArray(this.vfcData, this.sdcData) //Array deduplication
+ }else if(this.vfcData.length === 0 && this.sdcData.length != 0){
+ this.tableData = this.vfcData.concat(this.sdcData); //Array concat
+ }else if(this.vfcData.length != 0 && this.sdcData.length === 0){
+ this.tableData = this.vfcData.concat(this.sdcData); //Array concat
+ }
}, (err) => {
console.log(err);
})
+
+
}
// 获取vnf列表
getTableVnfData() {
this.myhttp.getOnboardTableVnfData()
.subscribe((data) => {
- console.log("vnfList-->", data);
+ console.log("vnfList--vnf>", data);
+ console.log("vnfList--vnf>", data.length);
this.vfcData = data;
- console.log("vnfList-vfc-->",data)
+ this.tableData = this.vfcData;
}, (err) => {
console.log(err);
})
@@ -291,8 +302,15 @@ changeUploadingSta(tab) {
this.myhttp.getSDC_VNFTableData()
.subscribe((data) => {
console.log('vnfList-sdc-->', data)
+ console.log('vnfList-sdc-->', data.length)
this.sdcData = data;
- this.tableData = this.MergeArray(this.vfcData, this.sdcData)
+ if (this.vfcData.length != 0 && this.sdcData.length != 0){
+ this.tableData = this.MergeArray(this.vfcData, this.sdcData) //Array deduplication
+ }else if(this.vfcData.length === 0 && this.sdcData.length != 0){
+ this.tableData = this.vfcData.concat(this.sdcData); //Array concat
+ }else if(this.vfcData.length != 0 && this.sdcData.length === 0){
+ this.tableData = this.vfcData.concat(this.sdcData); //Array concat
+ }
}, (err) => {
console.log(err);
})
@@ -303,31 +321,57 @@ changeUploadingSta(tab) {
this.myhttp.getOnboardTablePnfData()
.subscribe((data) => {
console.log("pnfList-->", data);
- this.total = data["body"];
+ console.log("pnfList-->", data.length);
this.tableData = data;
}, (err) => {
console.log(err);
})
}
- /* onboard 上传按钮 */
- // ns onboard
-
+ //合并并去重
+ MergeArray(arr1, arr2) {
+ var _arr = new Array();
+ for (var i = 0; i < arr1.length; i++) {
+ if (arr1[i] != "") {
+ _arr.push(arr1[i]);
+ }
+ }
+ for (var i = 0; i < arr2.length; i++) {
+ var flag = true;
+ for (var j = 0; j < arr1.length; j++) {
+ // 根据vfc列表arr1的id和sdc列表arr2的uuid去重
+ if (arr2[i].uuid == arr1[j].id) {
+ flag = false;
+ break;
+ }
+ }
+ if (flag && arr2[i] != "") {
+ _arr.push(arr2[i]);
+ }
+ }
+ return _arr;
+ }
+
+//-----------------------------------------------------------------------------------
+ /* onboard */
+ //成功弹框
success(): void {
const modal = this.modalService.success({
nzTitle: 'This is an success message',
nzContent: 'Package Onboard Completed.'
});
-
window.setTimeout(() => modal.destroy(), 2000);
}
+ //失败弹框
error(): void {
this.modalService.error({
nzTitle: 'This is an error message',
nzContent: 'Package Onboard Failed!'
});
}
+
+ // ns onboard 上传按钮
updataNsService(id) {
console.log(id);
let requestBody = {
@@ -335,45 +379,86 @@ changeUploadingSta(tab) {
}
this.myhttp.getNsonboard(requestBody)
.subscribe((data) => {
- console.log('onboard ns sdc', data);
- if(data["status"] == 200) {
- this.success();
-
- } else {
- this.error();
- }
- this.getTableData();
+ console.log('onboard ns sdc-->', data);
+ this.jobid = data.jobid;
+ this.queryProgress(this.jobid,0);
}, (err) => {
console.log(err);
})
}
- // vnf onboard
+ // vnf onboard 上传按钮
updataVnfService(id) {
- this.status = "Onboarding";
+ // this.status = "Onboarding";
console.log(id)
let requestBody = {
"csarId": id
}
this.myhttp.getVnfonboard(requestBody)
.subscribe((data) => {
- console.log('onboard vnf sdc', data);
- if(data["status"] == "200"){
- this.success();
- }else {
- this.error();
- }
+ console.log('onboard vnf sdc-->', data);
+ this.jobid = data.jobid;
+ this.queryProgress(this.jobid,0);
}, (err) => {
console.log(err);
})
}
- // pnf onboard ?
- updataPnfService(id) {
- console.log('pnf',id);
+ // pnf onboard
+ // updataPnfService(id) {
+ // console.log('pnf',id);
+ // }
+ queryProgress(jobid,responseId){
+ let mypromise = new Promise((res,rej)=>{
+ this.myhttp.getProgress(jobid,responseId)
+ .subscribe((data)=>{
+ console.log("progressData-->");
+ console.log(data);
+ if(data.responseDescriptor == null || data.responseDescriptor.progress==undefined){
+ this.error();
+ };
+ if(data.responseDescriptor.progress < 100){
+ this.error();
+ }else if(data.responseDescriptor.progress == 100){
+ res(data);
+ console.log(data);
+ this.success();
+ }
+ })
+ })
+ return mypromise;
}
+ // queryProgress(jobid,callback){
+ // let mypromise = new Promise((res,rej)=>{
+ // let requery = (responseId)=>{
+
+ // this.myhttp.getProgress(jobid,responseId)
+ // .subscribe((data)=>{
+ // if(data.responseDescriptor.progress==undefined){
+ // console.log(data);
+ // setTimeout(()=>{
+ // requery(data.responseDescriptor.responseId);
+ // },5000)
+ // return false;
+ // }
+ // if(data.responseDescriptor.progress < 100){
+ // callback(data);
+ // setTimeout(()=>{
+ // requery(data.responseDescriptor.responseId);
+ // },5000)
+ // }else {
+ // res(data);
+ // }
+ // })
+ // }
+ // requery(0);
+ // })
+ // return mypromise;
+ // }
+
+
//--------------------------------------------------------------------------------
/* delete 删除按钮 */
// ns
@@ -387,15 +472,15 @@ changeUploadingSta(tab) {
switch (tab) {
case 'NS':
this.deleteNsService(index,pkgid);
- setTimeout(Math.random() > 0.5 ? resolve : reject,1000);
+ setTimeout(Math.random() > 0.5 ? resolve : reject,2000);
break
case 'VNF':
this.deleteVnfService(index,pkgid);
- setTimeout(Math.random() > 0.5 ? resolve : reject,1000);
+ setTimeout(Math.random() > 0.5 ? resolve : reject,2000);
break
case 'PNF':
this.deletePnfService(index,pkgid);
- setTimeout(Math.random() > 0.5 ? resolve : reject,1000);
+ setTimeout(Math.random() > 0.5 ? resolve : reject,2000);
break
}
}).catch(() => console.log('Oops errors!'))
@@ -410,13 +495,11 @@ changeUploadingSta(tab) {
this.myhttp.deleteNsIdData(pkgid)
.subscribe((data) => {
console.log("nsdel--->", data);
+ //refresh list after successful deletion
+ this.getTableData();
}, (err) => {
console.log(err);
})
- console.log(index)
- this.tableData.splice(index, 1)
- console.log('tableData.length NS--->',this.tableData.length)
- this.getTableData()
}
//delete vnfItem
@@ -426,13 +509,11 @@ changeUploadingSta(tab) {
this.myhttp.deleteVnfIdData(pkgid)
.subscribe((data) => {
console.log('vnfdel--->', data);
+ //refresh list after successful deletion
+ this.getTableVnfData()
}, (err) => {
console.log(err);
})
- console.log(index)
- this.tableData.splice(index, 1)
- console.log('tableData.length VNF--->'+ this.tableData.length)
- this.getTableVnfData()
}
//delete PnfItem
@@ -442,15 +523,14 @@ changeUploadingSta(tab) {
this.myhttp.deletePnfIdData(pkgid)
.subscribe((data) => {
console.log('pnfdel--->', data);
+ //refresh list after successful deletion
+ this.getTablePnfData()
}, (err) => {
console.log(err);
})
- console.log(index)
- this.tableData.splice(index, 1)
- console.log('tableData.length PNF--->'+this.tableData.length)
- this.getTablePnfData()
}
+//------------------------------------------------------------------------------------
//下载download
// downloadNsService(id) {
// console.log('download')
@@ -484,27 +564,4 @@ changeUploadingSta(tab) {
// })
// }
- //合并并去重
- MergeArray(arr1, arr2) {
- var _arr = new Array();
- for (var i = 0; i < arr1.length; i++) {
- if (arr1[i] != "") {
- _arr.push(arr1[i]);
- }
- }
- for (var i = 0; i < arr2.length; i++) {
- var flag = true;
- for (var j = 0; j < arr1.length; j++) {
- // 根据vfc列表arr1的id和sdc列表arr2的uuid去重
- if (arr2[i].uuid == arr1[j].id) {
- flag = false;
- break;
- }
- }
- if (flag && arr2[i] != "") {
- _arr.push(arr2[i]);
- }
- }
- return _arr;
- }
}