From 9b444bdfc55deee39bbbd33b32dff7e59e549b17 Mon Sep 17 00:00:00 2001 From: d00565011 Date: Tue, 17 Aug 2021 09:55:00 -0400 Subject: CCVPN-usecase(REQ-719) requirements: update and revise CCVPN-NETWORK module to support latest ccvpn profile. Also, correct the line separator to linux format, to resolve the docker compiling issue. Issue-ID: USECASEUI-606 Signed-off-by: decheng zhang Change-Id: I97c0155fe64072fcd147737e72171b975dc3fa1b --- usecaseui-portal/src/app/core/services/appEvent.ts | 23 ++++++++++++++ .../src/app/core/services/appEventType.ts | 4 +++ .../src/app/core/services/eventQueue.service.ts | 36 ++++++++++++++++++++++ .../core/services/networkHttpservice.service.ts | 11 +++++++ 4 files changed, 74 insertions(+) create mode 100644 usecaseui-portal/src/app/core/services/appEvent.ts create mode 100644 usecaseui-portal/src/app/core/services/appEventType.ts create mode 100644 usecaseui-portal/src/app/core/services/eventQueue.service.ts (limited to 'usecaseui-portal/src/app/core') diff --git a/usecaseui-portal/src/app/core/services/appEvent.ts b/usecaseui-portal/src/app/core/services/appEvent.ts new file mode 100644 index 00000000..775eced9 --- /dev/null +++ b/usecaseui-portal/src/app/core/services/appEvent.ts @@ -0,0 +1,23 @@ +/* + Copyright (C) 2021 Huawei Canada, Inc. and others. All rights reserved. + + 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. +*/ +import {AppEventType} from "@src/app/core/services/appEventType"; + +export class AppEvent { + constructor( + public type: AppEventType, + public payload: T, + ) {} +} \ No newline at end of file diff --git a/usecaseui-portal/src/app/core/services/appEventType.ts b/usecaseui-portal/src/app/core/services/appEventType.ts new file mode 100644 index 00000000..e5369a8c --- /dev/null +++ b/usecaseui-portal/src/app/core/services/appEventType.ts @@ -0,0 +1,4 @@ +export enum AppEventType { + GenericEvent = 'GENERIC_EVENT', + UserNodeDrag = 'USER_NODE_DRAG' +} \ No newline at end of file diff --git a/usecaseui-portal/src/app/core/services/eventQueue.service.ts b/usecaseui-portal/src/app/core/services/eventQueue.service.ts new file mode 100644 index 00000000..e4c32c38 --- /dev/null +++ b/usecaseui-portal/src/app/core/services/eventQueue.service.ts @@ -0,0 +1,36 @@ +/* + Copyright (C) 2021 Huawei Canada, Inc. and others. All rights reserved. + + 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. +*/ + +import { Injectable } from '@angular/core'; +import {Observable, Subject} from "rxjs/Rx"; +import {AppEvent} from "@src/app/core/services/appEvent"; +import {AppEventType} from "@src/app/core/services/appEventType"; +import {filter} from "rxjs/operators"; + +@Injectable() +export class EventQueueService { + + private eventBroker = new Subject>(); + + on(eventType: AppEventType): Observable> { + return this.eventBroker.pipe(filter(event => event.type === eventType)); + } + + dispatch(event: AppEvent): void { + this.eventBroker.next(event); + } + +} \ No newline at end of file diff --git a/usecaseui-portal/src/app/core/services/networkHttpservice.service.ts b/usecaseui-portal/src/app/core/services/networkHttpservice.service.ts index 20b79a77..0959f564 100644 --- a/usecaseui-portal/src/app/core/services/networkHttpservice.service.ts +++ b/usecaseui-portal/src/app/core/services/networkHttpservice.service.ts @@ -27,6 +27,7 @@ export class networkHttpservice { url = { "getNetworkD3Data": this.baseUrl+"/uui-sotn/getNetWorkResources", "getLogicalLinksData": this.baseUrl+"/uui-sotn/getLogicalLinks", + "getPnfsData": this.baseUrl+"/uui-sotn/getPnfs", "deleteCloud": this.baseUrl+"/uui-sotn/deleteExtNetWork", "getPInterfacesData": this.baseUrl+"/uui-sotn/getPinterfaceByPnfName/", "createLink": this.baseUrl+"/uui-sotn/createLink/", @@ -39,6 +40,7 @@ export class networkHttpservice { "createCloudLink": this.baseUrl+"/uui-sotn/createLink/", "createCloudUrl": this.baseUrl+"/uui-sotn/createHostUrl/", "deleteLink": this.baseUrl+"/uui-sotn/deleteLink/", + "getConnectivities": this.baseUrl+"/uui-sotn/getConnectivityInfo", }; @@ -47,6 +49,10 @@ export class networkHttpservice { getNetworkD3Data() { return this.http.get(this.url["getNetworkD3Data"]); } + // GET AAI PNF(s) data + getPnfsData() { + return this.http.get(this.url["getPnfsData"]); + } //Initialize the connection logical-links getLogicalLinksData() { return this.http.get(this.url["getLogicalLinksData"]); @@ -76,6 +82,11 @@ export class networkHttpservice { queryExtAAIIdVersion(aaiId) { return this.http.get(this.url["queryExtAAIIdVersion"] + aaiId); } + + getConnectivities(){ + return this.http.get(this.url["getConnectivities"]); + } + //Create an external cloud newwork interface createNetwrok(paramsObj) { return this.http.put(this.url["createNetwrok"] + paramsObj["network-id"], paramsObj); -- cgit 1.2.3-korg