feat: modify intent instance 78/127978/1 4.0.6
authorliuwh7 <liuwh7@asiainfo.com>
Wed, 23 Mar 2022 01:39:00 +0000 (09:39 +0800)
committerliuwh7 <liuwh7@asiainfo.com>
Wed, 23 Mar 2022 01:39:14 +0000 (09:39 +0800)
Signed-off-by: liuwh7 <liuwh7@asiainfo.com>
Change-Id: I212e71ad60c81f8135d46eae784c558cafed6d88
Issue-ID: REQ-1075

usecaseui-portal/src/app/core/services/intentBase.service.ts
usecaseui-portal/src/app/views/services/intent-based-services/cloud-leased-line-modal/cloud-leased-line-modal.component.html
usecaseui-portal/src/app/views/services/intent-based-services/cloud-leased-line-modal/cloud-leased-line-modal.component.ts
usecaseui-portal/src/app/views/services/intent-based-services/cloud-leased-line/cloud-leased-line.component.html
usecaseui-portal/src/app/views/services/intent-based-services/cloud-leased-line/cloud-leased-line.component.ts

index 5ee8424..a9c4187 100644 (file)
@@ -32,6 +32,7 @@ export class intentBaseService {
       deleteIntentInstance: this.baseUrl + "/intent/deleteIntentInstance",
       activeIntentInstance: this.baseUrl + "/intent/activeIntentInstance",
       invalidIntentInstance: this.baseUrl + "/intent/invalidIntentInstance",
+      updateIntentInstance: this.baseUrl + "/intent/updateCCVPNInstance",
       queryAccessNodeInfo: this.baseUrl + "/intent/queryAccessNodeInfo",
       intentInstancePredict: this.baseUrl + "/intent/predict",
       intentBasedUnifyPredict: this.baseUrl + "/intent/unifyPredict",
@@ -80,6 +81,10 @@ export class intentBaseService {
       return this.http.post<any>(this.url["invalidIntentInstance"], requestBody);
     }
 
+    updateIntentInstance(requestBody) {
+      return this.http.post<any>(this.url["updateIntentInstance"], requestBody);
+    }
+    
     queryAccessNodeInfo() {
       return this.http.get<any>(this.url["queryAccessNodeInfo"]);
     }
index c746e30..d563e0b 100644 (file)
@@ -27,6 +27,7 @@
                   nz-tooltip
                   [id]="item.key"
                   [name]="item.key"
+                  [disabled]="isUpdateFlag"
                   *ngIf="item.type === 'input'"
                   [(ngModel)]="cloud_leased_line_info[item.key]"
                   [placeholder]="item.placeholder ? item.placeholder : ''"
@@ -34,6 +35,7 @@
               </nz-tooltip>
               <nz-select
                 [name]="item.key"
+                [disabled]="isUpdateFlag"
                 [(ngModel)]="cloud_leased_line_info[item.key]"
                 *ngIf="item.type === 'select'"
               >
@@ -60,6 +62,7 @@
                   <span>{{item.nodeName}}:</span>
                   <nz-select
                     [name]="item.nodeName"
+                    [disabled]="isUpdateFlag"
                     [(ngModel)]="cloud_leased_line_info[item.key].name"
                   >
                     <nz-option
@@ -73,6 +76,7 @@
               </div>
               <nz-radio-group
                 [name]="item.key"
+                [disabled]="isUpdateFlag"
                 [(ngModel)]="cloud_leased_line_info[item.key]"
                 *ngIf="item.type === 'radio'"
               >
index 77c9f0d..b48cd3f 100644 (file)
@@ -21,7 +21,7 @@ export class CloudLeasedLineModalComponent implements OnInit {
   @Input() cloudLeasedLineShowFlag: boolean;
   @Output() cancelEmitter = new EventEmitter<boolean>();
   comunicationFormItems = COMMUNICATION_FORM_ITEMS;
-  isLoadingOne = false;
+  isUpdateFlag: boolean = false;
   nodeLists: any[] = [];
   cloudPointOptions: any[] = [];
   cloud_leased_line_info = {
@@ -40,6 +40,7 @@ export class CloudLeasedLineModalComponent implements OnInit {
   ngOnChanges() {
     if (this.cloudLeasedLineShowFlag) {
       if (this.modelParams) {
+        this.isUpdateFlag = this.modelParams.isUpdateFlag;
         this.cloud_leased_line_info = { ...this.modelParams };
       } else {
         this.getInstanceId();
@@ -104,6 +105,35 @@ export class CloudLeasedLineModalComponent implements OnInit {
       }
     }
     
+    if (this.isUpdateFlag) {
+      this.updateIntentInstance();
+      return;
+    }
+    this.createIntentInstance();
+  }
+
+  updateIntentInstance(): void {
+    const { accessPointOne: { bandwidth } } = this.cloud_leased_line_info;
+    this.myHttp.updateIntentInstance({
+      instanceId: this.modelParams.instanceId,
+      bandwidth
+    }).subscribe(
+      (response) => {
+        const { code, message } = response;
+        if (code !== 200) {
+          this.nzMessage.error(message);
+          return;
+        }
+        this.nzMessage.success('Update IntentInstance Success!');
+        this.cancel();
+      },
+      (err) => {
+        console.log(err);
+      }
+    )
+  }
+
+  createIntentInstance(): void {
     this.myHttp.createIntentInstance({
       ...this.cloud_leased_line_info
     }).subscribe(
@@ -124,6 +154,7 @@ export class CloudLeasedLineModalComponent implements OnInit {
 
   cancel(): void {
     this.cloudLeasedLineShowFlag = false
+    this.isUpdateFlag = false
     this.cloud_leased_line_info = {
       name: '',
       instanceId: '',
index ae733c5..78f752c 100644 (file)
               >
                 Inactive
               </button>
+              <button
+                nz-button
+                nzType="primary"
+                class="buy-button"
+                (click)="modifyCloudLeasedLine(data)"
+              >
+                Modify
+              </button>
               <button
                 nz-button
                 nzType="primary"
index a9d239d..dd044e7 100644 (file)
@@ -130,6 +130,7 @@ export class CloudLeasedLineComponent implements OnInit {
     this.cloudLeasedLineShowFlag = false;
     this.pageIndex = 1;
     this.pageSize = 10;
+    this.resolveResult = null;
     this.getCloudLeasedLineList();
   }
   // smart dialog show
@@ -187,6 +188,21 @@ export class CloudLeasedLineComponent implements OnInit {
     });
   }
 
+  modifyCloudLeasedLine(row): void {
+    this.resolveResult = {
+      name: row.name,
+      instanceId: row.instanceId,
+      protect: row.protectStatus ? true : false,
+      accessPointOne: {
+        name: row.accessPointOneName,
+        bandwidth: row.accessPointOneBandWidth
+      },
+      cloudPointName: row.cloudPointName,
+      isUpdateFlag: true
+    };
+    this.cloudLeasedLineShowFlag = true;
+  }
+
   deleteCloudLeasedLine(row): void {
     this.myHttp.deleteIntentInstance(row.instanceId).subscribe((data) => {
       const { code, message } = data;