import { SlicingBusinessTableComponent } from './views/services/slicing-management/slicing-resource-management/slicing-business-management/slicing-business-table/slicing-business-table.component'
import { BasicInfoComponent } from './shared/components/basic-info/basic-info.component';
import { CheckProcessModelComponent } from './views/services/slicing-management/slicing-task-management/check-process-model/check-process-model.component'
-
+import { NsiTableComponent } from './views/services/slicing-management/slicing-resource-management/nsi-management/nsi-table/nsi-table.component'
@NgModule({
providers: [
{ provide: LocationStrategy, useClass: HashLocationStrategy },
SubnetParamsModelComponent,
SlicingBusinessTableComponent,
BasicInfoComponent,
- CheckProcessModelComponent
+ CheckProcessModelComponent,
+ NsiTableComponent
],
imports: [
BrowserModule,
activateSlicingService:this.baseUrl+"/resource/{serviceId}/activate",\r
deactivateSlicingService:this.baseUrl+"/resource/{serviceId}/deactivate",\r
terminateSlicingService:this.baseUrl+"/resource/{serviceId}",\r
- queryOperationProgress:this.baseUrl+"resource/{serviceId}/progress",\r
- \r
- \r
+ queryOperationProgress:this.baseUrl+"/resource/{serviceId}/progress",\r
+ slicingBusinessDetail:this.baseUrl+"/resource/business/{businessId}/details",\r
+ //slicing-nsi-management\r
+ slicingNsiList:this.baseUrl+"/resource/nsi/instances/pageNo/{pageNo}/pageSize/{pageSize}",\r
+ slicingNsiQueryOfStatus:this.baseUrl+"/resource/nsi/{instanceStatus}/instances/pageNo/{pageNo}/pageSize/{pageSize}",\r
+ slicingNsiDetail:this.baseUrl+"/resource/nsi/{nsiId}/details",\r
}\r
\r
\r
url = this.url.slicingBusinesQueryOfStatus.replace("{businessStatus}", paramsObj.businessStatus).replace("{pageNo}", paramsObj.pageNo)\r
.replace("{pageSize}", paramsObj.pageSize);\r
}\r
- let params = new HttpParams({ fromObject: paramsObj });\r
- return this.http.get<any>(url,{params});\r
+ return this.http.get<any>(url);\r
}\r
+ // change slicing business activate status\r
changeActivateSlicingService(paramsObj, activate: boolean){\r
let url = this.url.activateSlicingService.replace("{serviceId}", paramsObj.serviceId);\r
if(activate){\r
}\r
return this.http.put<any>(url,paramsObj);\r
}\r
+ // terminate slicing business\r
terminateSlicingService(paramsObj){\r
const url = this.url.terminateSlicingService.replace('{serviceId}', paramsObj.serviceId);\r
return this.http.delete<any>(url);\r
}\r
+ // query slicing business progress\r
getSlicingBusinessProgress(paramsObj) {\r
- let params = new HttpParams({ fromObject: paramsObj });\r
let url = this.url.queryOperationProgress.replace("{serviceId}", paramsObj.serviceId);\r
- return this.http.get<any>(url,{params});\r
+ return this.http.get<any>(url);\r
+ }\r
+ // Get slicing nsi list\r
+ // Get slicing business list\r
+ getSlicingNsiList (paramsObj,isSelect: boolean) {\r
+ let url = this.url.slicingNsiList .replace("{pageNo}", paramsObj.pageNo)\r
+ .replace("{pageSize}", paramsObj.pageSize);\r
+ if(isSelect){\r
+ url = this.url.slicingNsiQueryOfStatus.replace("{instanceStatus}", paramsObj.businessStatus).replace("{pageNo}", paramsObj.pageNo)\r
+ .replace("{pageSize}", paramsObj.pageSize);\r
+ }\r
+ return this.http.get<any>(url);\r
}\r
}\r
\r
"result_message": "5G slicing service instances query result."
},
"result_body": {
- "record_number": 2,
+ "record_number": 14,
"slicing_business_list": [
{
"service_instance_id": "23edd22b-a0b2-449f-be87-d094159b9265",
"service_snssai": "1-010101",
"orchestration_status": "activated",
"last_operation_type": "activate",
- "last_operation_progress": 100
+ "last_operation_progress": 10
},
{
"service_instance_id": "23edd22b-a0b2-449f-be87-d094159b9270",
"service_snssai": "1-010101",
"orchestration_status": "deactivated",
"last_operation_type": "deactivate",
- "last_operation_progress": 70
+ "last_operation_progress": 100
},
{
"service_instance_id": "23edd22b-a0b2-449f-be87-d094159b9273",
"service_snssai": "1-010101",
"orchestration_status": "deactivated",
"last_operation_type": "deactivate",
- "last_operation_progress": 50
+ "last_operation_progress": 100
},
{
"service_instance_id": "23edd22b-a0b2-449f-be87-d094159b9274",
"service_snssai": "1-010101",
"orchestration_status": "activated",
"last_operation_type": "activate",
- "last_operation_progress": 70
+ "last_operation_progress": 100
},
{
"service_instance_id": "23edd22b-a0b2-449f-be87-d094159b9275",
"service_snssai": "1-010101",
"orchestration_status": "activated",
"last_operation_type": "activate",
- "last_operation_progress": 70
+ "last_operation_progress": 100
},
{
"service_instance_id": "23edd22b-a0b2-449f-be87-d094159b9277",
"service_snssai": "1-010101",
"orchestration_status": "activated",
"last_operation_type": "activate",
- "last_operation_progress": 70
+ "last_operation_progress": 100
},
{
"service_instance_id": "23edd22b-a0b2-449f-be87-d094159b9278",
"service_snssai": "1-010101",
"orchestration_status": "activated",
"last_operation_type": "activate",
- "last_operation_progress": 70
+ "last_operation_progress": 100
},
{
"service_instance_id": "23edd22b-a0b2-449f-be87-d094159b9279",
"service_snssai": "1-010101",
"orchestration_status": "activated",
"last_operation_type": "activate",
- "last_operation_progress": 70
+ "last_operation_progress": 100
},
{
"service_instance_id": "23edd22b-a0b2-449f-be87-d094159b9280",
"service_snssai": "1-010101",
"orchestration_status": "activated",
"last_operation_type": "activate",
- "last_operation_progress": 70
+ "last_operation_progress": 100
},
{
"service_instance_id": "23edd22b-a0b2-449f-be87-d094159b9281",
"service_snssai": "1-010101",
"orchestration_status": "activated",
"last_operation_type": "activate",
- "last_operation_progress": 70
+ "last_operation_progress": 100
}
]
}
+++ /dev/null
-{\r
- "result_header": {\r
- "result_code": "200",\r
- "result_message": "5G slicing NSI service instances result."\r
- },\r
- "result_body": {\r
- "record_number": 2,\r
- "nsi_service_instances": [\r
- {\r
- "service_instance_order": "1",\r
- "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959411a",\r
- "service_instance_name": "eMBB instancel"\r
- },\r
- {\r
- "service_instance_order": "2",\r
- "service_instance_id": "46da8cf8-0878-48bc-bea3-f2200959411a",\r
- "service_instance_name": "eMBB instance2"\r
- }\r
- ]\r
- }\r
-}\r
-\r
--- /dev/null
+{
+ "result_header": {
+ "result_code": "200",
+ "result_message": "5G slicing NSI service instances result."
+ },
+ "result_body": {
+ "record_number": 12,
+ "nsi_service_instances": [
+ {
+ "service_instance_order": "1",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959411a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "activated"
+ },
+ {
+ "service_instance_order": "2",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959412a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "deactivated"
+ },
+ {
+ "service_instance_order": "3",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959413a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "activated"
+ },
+ {
+ "service_instance_order": "4",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959414a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "deactivated"
+ },
+ {
+ "service_instance_order": "5",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959415a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "activated"
+ },
+ {
+ "service_instance_order": "6",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959416a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "deactivated"
+ },
+ {
+ "service_instance_order": "7",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959417a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "activated"
+ },
+ {
+ "service_instance_order": "8",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959418a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "deactivated"
+ },
+ {
+ "service_instance_order": "9",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959419a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "activated"
+ },
+ {
+ "service_instance_order": "10",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959420a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "deactivated"
+ },
+ {
+ "service_instance_order": "11",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959421a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "activated"
+ },
+ {
+ "service_instance_order": "12",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959422a",
+ "service_instance_name": "eMBB instancel",
+ "service_type":"eMBB",
+ "orchestration_status": "deactivated"
+ }
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+{
+ "result_header": {
+ "result_code": "200",
+ "result_message": "5G slicing NSI service instances result."
+ },
+ "result_body": {
+ "record_number":8,
+ "nsi_service_instances": [
+ {
+ "service_instance_order": "1",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959411a",
+ "service_instance_name": "eMBB instancel",
+ "nsi_type":"eMBB",
+ "nsi_orchestration-status": "activated"
+ },
+ {
+ "service_instance_order": "2",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959413a",
+ "service_instance_name": "eMBB instancel",
+ "nsi_type":"eMBB",
+ "nsi_orchestration-status": "activated"
+ },
+ {
+ "service_instance_order": "3",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959415a",
+ "service_instance_name": "eMBB instancel",
+ "nsi_type":"eMBB",
+ "nsi_orchestration-status": "activated"
+ },
+ {
+ "service_instance_order": "4",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959415a",
+ "service_instance_name": "eMBB instancel",
+ "nsi_type":"eMBB",
+ "nsi_orchestration-status": "activated"
+ },
+ {
+ "service_instance_order": "5",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959415a",
+ "service_instance_name": "eMBB instancel",
+ "nsi_type":"eMBB",
+ "nsi_orchestration-status": "activated"
+ },
+ {
+ "service_instance_order": "6",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959417a",
+ "service_instance_name": "eMBB instancel",
+ "nsi_type":"eMBB",
+ "nsi_orchestration-status": "activated"
+ },
+ {
+ "service_instance_order": "7",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959419a",
+ "service_instance_name": "eMBB instancel",
+ "nsi_type":"eMBB",
+ "nsi_orchestration-status": "activated"
+ },
+ {
+ "service_instance_order": "8",
+ "service_instance_id": "46da8cf8-0878-48ac-bea3-f2200959421a",
+ "service_instance_name": "eMBB instancel",
+ "nsi_type":"eMBB",
+ "nsi_orchestration-status": "activated"
+ }
+ ]
+ }
+}
\ No newline at end of file
"/uui-slicing/nsmf/task/business/pageNo/:pageNo/pageSize/:pageSize": "/slicing_task_list",
"/uui-slicing/nsmf/task/:processingStatus/business/pageNo/:pageNo/pageSize/:pageSize": "/slicing_task_processing_status",
"/uui-slicing/nsmf/task/:taskId/auditInfo": "/slicing_task_auditInfo",
- "/uui-slicing/nsmf/resource/nsi/instances/pageNo/:pageNo/pageSize/:pageSize": "/slicing_instance",
+ "/uui-slicing/nsmf/resource/nsi/instances/pageNo/:pageNo/pageSize/:pageSize": "/slicing_nsi_list",
"/uui-slicing/nsmf/resource/nsi/:nsiId/nssiInstances": "/slicing_subnet_instance",
"/uui-slicing/nsmf/resource/nssi/:environmentContext/instances/pageNo/:pageNo/pageSize/:pageSize": "/slicing_subnet_context",
"/uui-slicing/nsmf/task/:taskId/taskCreationInfo": "/slicing_taskCreationInfo",
///////<-------------slicing_business--------->/////
"/uui-slicing/nsmf/resource/business/pageNo/:pageNo/pageSize/:pageSize": "/slicing_business_list",
"/uui-slicing/nsmf/resource/:businessStatus/business/pageNo/:pageNo/pageSize/:pageSize": "/slicing_business_list_activated",
- "/PUT/uui-slicing/nsmf/resource/:serviceId/activate": "/slicing_business_activate",
- "/PUT/uui-slicing/nsmf/resource/:serviceId/deactivate": "/slicing_business_activate",
- "/DELETE/uui-slicing/nsmf/resource/:serviceId": "/slicing_business_activate",
+ "/uui-slicing/nsmf/resource/:serviceId/activate": "/slicing_business_activate",
+ "/uui-slicing/nsmf/resource/:serviceId/deactivate": "/slicing_business_activate",
+ "/uui-slicing/nsmf/resource/:serviceId": "/slicing_business_activate",
"/uui-slicing/nsmf/resource/:serviceId/progress":"/getSlicingBusinessProgress",
+ ///////<-------------slicing_nsi--------->/////
+ // "/uui-slicing/nsmf/resource/nsi/instances/pageNo/:pageNo/pageSize/:pageSize": "/slicing_nsi_list",
+ "/uui-slicing/nsmf/resource/nsi/:instanceStatus/instances/pageNo/:pageNo/pageSize/:pageSize": "/slicing_nsi_list_activated",
///////<-------------general interface--------->/////
"/api/*": "/$1",
"/*/*": "/$1_$2",
<p>
- nsi-management works!
+ <app-nsi-table></app-nsi-table>
</p>
--- /dev/null
+<div class="slicing-resource-table">
+ <div nz-row>
+ <div nz-col nzSpan="12" class="task_status">
+ <span>Status : </span>
+ <nz-select nzShowSearch nzPlaceHolder="Select a processing status" [(ngModel)]="selectedValue">
+ <nz-option *ngFor="let item of statusOptions" [nzLabel]="item" [nzValue]="item"></nz-option>
+ </nz-select>
+ </div>
+ </div>
+ <div>
+ <nz-table
+ #nsiTable
+ [nzData]="listOfData"
+ [nzFrontPagination]="false"
+ [nzPageSizeOptions]="[5,10,15,20]"
+ [nzTotal]='total'
+ [(nzPageSize)]="pageSize"
+ [(nzPageIndex)]='pageIndex'
+ [nzLoading]="loading"
+ >
+ <thead>
+ <tr>
+ <th>Service Instance Id</th>
+ <th>Service Instance Name</th>
+ <th>Service Type</th>
+ <th>Status</th>
+ <th width="140px">Detail</th>
+ </tr>
+ </thead>
+ <tbody>
+ <ng-template ngFor let-data [ngForOf]="nsiTable.data" let-i="index">
+ <tr>
+ <td>{{ data.service_instance_id }}</td>
+ <td>{{ data.service_instance_name }}</td>
+ <td>{{ data.service_type }}</td>
+ <td>{{data.orchestration_status}}</td>
+ <td>
+ <a (click)="showdetail(data)">detail</a>
+ </td>
+ </tr>
+ </ng-template>
+ </tbody>
+ </nz-table>
+ </div>
+</div>
\ No newline at end of file
--- /dev/null
+nz-select {
+ width: 200px;
+}
+.task_status{
+ margin-bottom: 20px;
+ span{
+ margin-right: 5%;
+ }
+}
\ No newline at end of file
--- /dev/null
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { NsiTableComponent } from './nsi-table.component';
+
+describe('NsiTableComponent', () => {
+ let component: NsiTableComponent;
+ let fixture: ComponentFixture<NsiTableComponent>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ NsiTableComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(NsiTableComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
--- /dev/null
+import { Component, OnInit } from '@angular/core';
+import {BUSINESS_STATUS} from '../../../../../../../constants/constants';
+import { NzModalService } from 'ng-zorro-antd';
+import {SlicingTaskServices} from "../../../../../../core/services/slicingTaskServices";
+@Component({
+ selector: 'app-nsi-table',
+ templateUrl: './nsi-table.component.html',
+ styleUrls: ['./nsi-table.component.less']
+})
+export class NsiTableComponent implements OnInit {
+
+ constructor(
+ private myhttp: SlicingTaskServices,
+ private modalService: NzModalService
+ ) {
+ }
+
+ ngOnInit() {
+ this.getNsiList()
+ }
+ selectedValue:string = BUSINESS_STATUS[0];
+ listOfData: any[] = [];
+ pageIndex: number = 1;
+ pageSize: number = 10;
+ total: number = 100;
+ loading = false;
+ isSelect: boolean = false;
+ statusOptions: any[] = BUSINESS_STATUS;
+
+ getNsiList (): void{
+ this.loading = true;
+ this.isSelect = false;
+ let paramsObj = {
+ pageNo: this.pageIndex,
+ pageSize: this.pageSize
+ };
+ if(this.selectedValue !== BUSINESS_STATUS[0]){
+ paramsObj["instanceStatus"] = this.selectedValue;
+ this.isSelect = true;
+ }
+ this.myhttp.getSlicingNsiList(paramsObj,this.isSelect).subscribe (res => {
+ const { result_header: { result_code }, result_body: { nsi_service_instances } } = res;
+ if (+result_code === 200) {
+ this.total = nsi_service_instances.length;
+ this.loading = false;
+ this.listOfData = nsi_service_instances;
+ }
+ })
+ }
+ showdetail(data){
+
+ }
+}
-<h3>
+<p>
<app-slicing-business-table></app-slicing-business-table>
-</h3>
\ No newline at end of file
+</p>
\ No newline at end of file
>
<thead>
<tr>
- <th>Service_instance_id</th>
- <th>Service_instance_name</th>
- <th>Service_type</th>
+ <th>Service Instance Id</th>
+ <th>Service Instance Name</th>
+ <th>Service Type</th>
<th>S-NSSAI</th>
- <th>Orchestration_status</th>
+ <th>Status</th>
<th width="130px">Aciton</th>
<th width="100px">Detail</th>
</tr>
ngOnInit() {
this.getBusinessList()
}
-
+ ngOnDestroy() {
+ clearInterval(this.progressingTimer);
+ }
selectedValue:string = BUSINESS_STATUS[0];
listOfData: any[] = [];
pageIndex: number = 1;