diff options
author | ruilin cai <ruilin.cai@huawei.com> | 2023-05-26 15:06:59 -0400 |
---|---|---|
committer | Ruilin Cai <ruilin.cai@huawei.com> | 2023-06-20 18:02:42 +0000 |
commit | fe6bab8436064f0b1f6b2376452ca1d2ee41854f (patch) | |
tree | 17c84c60c2cecc1cafe0e0faaaad6ed04e3d32ec | |
parent | 13005406337c998f07d1b450d3ff6aa3d01b7ced (diff) |
[actn-interface-tools] Added test files in sample-apps module. Modified some model classes in sample-apps moduleHEADmaster
The test files are used to do the unit tests for each functions inside OSS ACTN sdk including get/set/delete/update otnnetwork/otnTunnel/EthernetService.
Change-Id: I3e8a5cac16d0b7359414c4af1c87f0da0421a045
Signed-off-by: ruilin cai <ruilin.cai@huawei.com>
Issue-ID: INT-2213
Signed-off-by: ruilin cai <ruilin.cai@huawei.com>
15 files changed, 1597 insertions, 97 deletions
diff --git a/sample-apps/pom.xml b/sample-apps/pom.xml index dab5311..f85a80f 100644 --- a/sample-apps/pom.xml +++ b/sample-apps/pom.xml @@ -24,10 +24,11 @@ <groupId>org.onap.integration.ietf-actn-tools</groupId> <artifactId>sample-apps</artifactId> <version>1.0-SNAPSHOT</version> - <name>sample-app</name> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> + <slf4j.version>1.7.21</slf4j.version> + <yang-tool-version>2.6.1</yang-tool-version> </properties> <dependencies> <dependency> @@ -39,6 +40,58 @@ <groupId>org.onap.integration.ietf-actn-tools</groupId> <artifactId>actn-client</artifactId> <version>1.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.onap.integration.ietf-actn-tools</groupId> + <artifactId>globalapi</artifactId> + <version>1.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.onap.integration.ietf-actn-tools</groupId> + <artifactId>globalapp</artifactId> + <version>1.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.onap.integration.ietf-actn-tools</groupId> + <artifactId>yang-utils</artifactId> + <version>1.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.onap.integration.ietf-actn-tools</groupId> + <artifactId>restconf-client-api</artifactId> + <version>1.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>${slf4j.version}</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-simple</artifactId> + <version>${slf4j.version}</version> + </dependency> + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + <version>22.0</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.onosproject</groupId> + <artifactId>onos-yang-model</artifactId> + <version>${yang-tool-version}</version> </dependency> </dependencies> </project> diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssAppsExcuter.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssAppsExcuter.java new file mode 100644 index 0000000..b624090 --- /dev/null +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssAppsExcuter.java @@ -0,0 +1,55 @@ +/* + * ============LICENSE_START======================================================= + * Actn Interface Tools + * ================================================================================ + * Copyright (C) 2023 Huawei Canada Limited. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ +package org.onap.integration.actninterfacetools.sampleapp.mpiconverter; + + +import org.onap.integration.actninterfacetools.globalapp.impl.GlobalServiceImpl; + +import java.util.concurrent.CountDownLatch; + +/** + * In Order to test Multiple OSS Apps using OSS ACTN SDK in the same time + */ +public class OssAppsExcuter { + GlobalServiceImpl globalService; + public static void main(String[] args) throws InterruptedException { + usingCountDownLatch(); + } + private static void usingCountDownLatch() throws InterruptedException { + System.out.println("==============================================="); + System.out.println(" >>> Using CountDownLatch <<<<"); + System.out.println("==============================================="); + + CountDownLatch latch = new CountDownLatch(1); + + OssWorkThreadA ossWorkThreadA = new OssWorkThreadA("OssWorkThreadA", latch); + OssWorkThreadB ossWorkThreadB = new OssWorkThreadB("OssWorkThreadB", latch); + + ossWorkThreadA.start(); + ossWorkThreadB.start(); + + Thread.sleep(10);//simulation of some actual work + + System.out.println("-----------------------------------------------"); + System.out.println(" Now release the latch:"); + System.out.println("-----------------------------------------------"); + latch.countDown(); +} +} diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssExcuter.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssExcuter.java new file mode 100644 index 0000000..1d19526 --- /dev/null +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssExcuter.java @@ -0,0 +1,305 @@ +/* + * ============LICENSE_START======================================================= + * Actn Interface Tools + * ================================================================================ + * Copyright (C) 2023 Huawei Canada Limited. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ +package org.onap.integration.actninterfacetools.sampleapp.mpiconverter; + +import com.google.common.net.InetAddresses; +import org.onap.integration.actninterfacetools.globalapi.ActnDataConverter; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTopology; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTunnel; +import org.onap.integration.actninterfacetools.globalapi.PncClient; +import org.onap.integration.actninterfacetools.globalapi.GlobalService; +import org.onap.integration.actninterfacetools.globalapi.ActnClientService; +import org.onap.integration.actninterfacetools.globalapi.CustomerEthService; +import org.onap.integration.actninterfacetools.protocol.restconf.DefaultPncInstance; +import org.onap.integration.actninterfacetools.protocol.restconf.PncInstance; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.converter.PncConverter; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.LTPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.LtpId; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TeNodeKey; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsLink; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.OduResource; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsTunnel; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvInstance; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvAccessPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvEndPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsEthSrv; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +public class OssExcuter { + private static final Logger log = LoggerFactory.getLogger(OssExcuter.class); + public static void main(String[] args) throws Exception { + PncInstance pncInstanceA = new DefaultPncInstance(InetAddresses.forString("192.168.198.10"), 18181, null, null, "http", null); + PncInstance pncInstanceB = new DefaultPncInstance(InetAddresses.forString("192.168.198.10"), 28181, null, null, "http", null); + ActnDataConverter actnDataConverter = new PncConverter(); + ActnClientService actnClientService = GlobalService.getActnClientSvc(actnDataConverter); + PncClient pncClientA = actnClientService.getPncClient(pncInstanceA); + PncClient pncClientB = actnClientService.getPncClient(pncInstanceB); + testGetOtnTopology(pncClientA, pncClientB); + } + + public static void testGetOtnTopology(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTopology customerOtnTopology = pncClientA.getNetworkTopology("providerId-10-clientId-0-topologyId-1"); + log.info("pncA: " + customerOtnTopology.toString()); + CustomerOtnTopology customerOtnTopologyB = pncClientB.getNetworkTopology("providerId-20-clientId-0-topologyId-1"); + log.info("pncB: " + customerOtnTopologyB.toString()); + } + + public static void testGetOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTunnel otnTunnel = pncClientA.getOtnTunnel("otntunnel-1"); + log.info("pncA: " + otnTunnel.toString()); + CustomerOtnTunnel otnTunnelB = pncClientB.getOtnTunnel("otntunnel-1"); + log.info("pncB: " + otnTunnelB.toString()); + } + + public static void testCreateOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTunnel customerOtnTunnel = buildTeOtnTunnel("otntunnel-1"); + pncClientA.createOtnTunnel(customerOtnTunnel); + CustomerOtnTunnel customerOtnTunnelB = buildTeOtnTunnel2("otntunnel-1"); + pncClientB.createOtnTunnel(customerOtnTunnelB); + } + + public static void testDeleteOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + pncClientA.deleteOtnTunnel("otntunnel-1"); + pncClientB.deleteOtnTunnel("otntunnel-1"); + } + + public static void testUpdateOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTunnel customerOtnTunnel = updateTeOtnTunnel("otntunnel-1"); + pncClientA.updateOtnTunnel(customerOtnTunnel, "otntunnel-1"); + CustomerOtnTunnel customerOtnTunnelB = updateTeOtnTunnel2("otntunnel-1"); + pncClientB.updateOtnTunnel(customerOtnTunnelB, "otntunnel-1"); + } + + public static void testGetEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerEthService ethService = pncClientA.getEthService("cll-instance-01"); + log.info("pncA: " + ethService.toString()); + CustomerEthService ethServiceB = pncClientB.getEthService("cll-instance-01"); + log.info("pncB: " + ethServiceB.toString()); + } + + public static void testCreateEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerEthService customerEthService = buildTeEthSrv("cll-instance-01"); + pncClientA.createEthService(customerEthService); + CustomerEthService customerEthServiceB = buildTeEthSrv2("cll-instance-01"); + pncClientB.createEthService(customerEthServiceB); + } + + public static void testDeleteEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + pncClientA.deleteEthService("cll-instance-01"); + pncClientB.deleteEthService("cll-instance-01"); + } + + public static void testUpdateEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerEthService customerEthService = updateTeEthSrv("cll-instance-01"); + pncClientA.updateEthService(customerEthService); + CustomerEthService customerEthServiceB = updateTeEthSrv2("cll-instance-01"); + pncClientB.updateEthService(customerEthServiceB); + } + + public static CustomerOtnTunnel buildTeOtnTunnel(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 1, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 1, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "MTI="); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 3, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerOtnTunnel buildTeOtnTunnel2(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 2, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 2, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "MJI="); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 3, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerEthService buildTeEthSrv(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.1.1.1", 1000001)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-01", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsB = new ArrayList<>(); + ethSrvAccessPointsB.add(new EthSrvAccessPoint("0", "10.1.1.1", 2000001)); + EthSrvEndPoint ethSrvEndPointB = new EthSrvEndPoint("uni-02", ethSrvAccessPointsB, 48, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.1.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointB); + ethSrvEndPoints.add(ethSrvEndPointC); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerEthService buildTeEthSrv2(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.2.1.2", 512)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-04", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 20, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + public static CustomerOtnTunnel updateTeOtnTunnel(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 1, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 1, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "12"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 4, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerOtnTunnel updateTeOtnTunnel2(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 2, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 2, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "13"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 4, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerEthService updateTeEthSrv(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.1.1.1", 1000001)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-01", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsB = new ArrayList<>(); + ethSrvAccessPointsB.add(new EthSrvAccessPoint("0", "10.1.1.1", 2000001)); + EthSrvEndPoint ethSrvEndPointB = new EthSrvEndPoint("uni-02", ethSrvAccessPointsB, 48, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.1.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsD = new ArrayList<>(); + ethSrvAccessPointsD.add(new EthSrvAccessPoint("0", "10.1.1.4", 1000001)); + EthSrvEndPoint ethSrvEndPointD = new EthSrvEndPoint("uni-04", ethSrvAccessPointsC, 50, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointB); + ethSrvEndPoints.add(ethSrvEndPointC); + ethSrvEndPoints.add(ethSrvEndPointD); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerEthService updateTeEthSrv2(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.2.1.2", 512)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-04", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.2.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointC); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } +} diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssWorkThreadA.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssWorkThreadA.java new file mode 100644 index 0000000..84127f4 --- /dev/null +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssWorkThreadA.java @@ -0,0 +1,328 @@ + +/* + * ============LICENSE_START======================================================= + * Actn Interface Tools + * ================================================================================ + * Copyright (C) 2023 Huawei Canada Limited. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ +package org.onap.integration.actninterfacetools.sampleapp.mpiconverter; + +import com.google.common.net.InetAddresses; +import org.onap.integration.actninterfacetools.globalapi.ActnDataConverter; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTopology; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTunnel; +import org.onap.integration.actninterfacetools.globalapi.PncClient; +import org.onap.integration.actninterfacetools.globalapi.GlobalService; +import org.onap.integration.actninterfacetools.globalapi.ActnClientService; +import org.onap.integration.actninterfacetools.globalapi.CustomerEthService; +import org.onap.integration.actninterfacetools.globalapp.impl.GlobalServiceImpl; +import org.onap.integration.actninterfacetools.protocol.restconf.DefaultPncInstance; +import org.onap.integration.actninterfacetools.protocol.restconf.PncInstance; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.converter.PncConverter; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.LTPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.LtpId; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TeNodeKey; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsLink; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.OduResource; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsTunnel; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvInstance; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvAccessPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvEndPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsEthSrv; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.math.BigInteger; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CountDownLatch; + +public class OssWorkThreadA extends Thread { + private CountDownLatch latch; + GlobalServiceImpl globalService; + private static final Logger log = LoggerFactory.getLogger(OssWorkThreadA.class); + + public OssWorkThreadA(String name, CountDownLatch latch) { + this.latch = latch; + setName(name); + } + + @Override + public void run() { + try { + System.out.printf("[ %s ] created, blocked by the latch...\n", getName()); + latch.await(); + System.out.printf("[ %s ] starts at: %s\n", getName(), Instant.now()); + // do actual work here... + PncInstance pncInstanceA = new DefaultPncInstance(InetAddresses.forString("192.168.198.10"), 18181, null, null, "http", null); + PncInstance pncInstanceB = new DefaultPncInstance(InetAddresses.forString("192.168.198.10"), 28181, null, null, "http", null); + ActnDataConverter actnDataConverter = new PncConverter(); + ActnClientService actnClientService = GlobalService.getActnClientSvc(actnDataConverter); + PncClient pncClientA = actnClientService.getPncClient(pncInstanceA); + PncClient pncClientB = actnClientService.getPncClient(pncInstanceB); + testGetOtnTopology(pncClientA, pncClientB); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public void testGetOtnTopology(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTopology customerOtnTopology = pncClientA.getNetworkTopology("providerId-10-clientId-0-topologyId-1"); + log.info("pncA: " + customerOtnTopology.toString()); + CustomerOtnTopology customerOtnTopologyB = pncClientB.getNetworkTopology("providerId-20-clientId-0-topologyId-1"); + log.info("pncB: " + customerOtnTopologyB.toString()); + } + + public void testGetOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTunnel otnTunnel = pncClientA.getOtnTunnel("otntunnel-1"); + log.info("pncA: " + otnTunnel.toString()); + CustomerOtnTunnel otnTunnelB = pncClientB.getOtnTunnel("otntunnel-1"); + log.info("pncB: " + otnTunnelB.toString()); + } + + public void testCreateOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTunnel customerOtnTunnel = buildTeOtnTunnel("otntunnel-1"); + pncClientA.createOtnTunnel(customerOtnTunnel); + CustomerOtnTunnel customerOtnTunnelB = buildTeOtnTunnel2("otntunnel-1"); + pncClientB.createOtnTunnel(customerOtnTunnelB); + } + + public void testDeleteOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + pncClientA.deleteOtnTunnel("otntunnel-1"); + pncClientB.deleteOtnTunnel("otntunnel-1"); + } + + public void testUpdateOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTunnel customerOtnTunnel = updateTeOtnTunnel("otntunnel-1"); + pncClientA.updateOtnTunnel(customerOtnTunnel, "otntunnel-1"); + CustomerOtnTunnel customerOtnTunnelB = updateTeOtnTunnel2("otntunnel-1"); + pncClientB.updateOtnTunnel(customerOtnTunnelB, "otntunnel-1"); + } + + public void testGetEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerEthService ethService = pncClientA.getEthService("cll-instance-01"); + log.info("pncA: " + ethService.toString()); + CustomerEthService ethServiceB = pncClientB.getEthService("cll-instance-01"); + log.info("pncB: " + ethServiceB.toString()); + } + + public void testCreateEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerEthService customerEthService = buildTeEthSrv("cll-instance-01"); + pncClientA.createEthService(customerEthService); + CustomerEthService customerEthServiceB = buildTeEthSrv2("cll-instance-01"); + pncClientB.createEthService(customerEthServiceB); + } + + public void testDeleteEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + pncClientA.deleteEthService("cll-instance-01"); + pncClientB.deleteEthService("cll-instance-01"); + } + + public void testUpdateEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerEthService customerEthService = updateTeEthSrv("cll-instance-01"); + pncClientA.updateEthService(customerEthService); + CustomerEthService customerEthServiceB = updateTeEthSrv2("cll-instance-01"); + pncClientB.updateEthService(customerEthServiceB); + } + + public static CustomerOtnTunnel buildTeOtnTunnel(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 1, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 1, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "12"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 3, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerOtnTunnel buildTeOtnTunnel2(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 2, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 2, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "13"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 3, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerEthService buildTeEthSrv(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.1.1.1", 1000001)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-01", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsB = new ArrayList<>(); + ethSrvAccessPointsB.add(new EthSrvAccessPoint("0", "10.1.1.1", 2000001)); + EthSrvEndPoint ethSrvEndPointB = new EthSrvEndPoint("uni-02", ethSrvAccessPointsB, 48, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.1.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointB); + ethSrvEndPoints.add(ethSrvEndPointC); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerEthService buildTeEthSrv2(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.2.1.2", 512)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-04", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 20, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerOtnTunnel updateTeOtnTunnel(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 1, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 1, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "12"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 4, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerOtnTunnel updateTeOtnTunnel2(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 2, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 2, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "13"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 4, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerEthService updateTeEthSrv(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.1.1.1", 1000001)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-01", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsB = new ArrayList<>(); + ethSrvAccessPointsB.add(new EthSrvAccessPoint("0", "10.1.1.1", 2000001)); + EthSrvEndPoint ethSrvEndPointB = new EthSrvEndPoint("uni-02", ethSrvAccessPointsB, 48, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.1.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsD = new ArrayList<>(); + ethSrvAccessPointsD.add(new EthSrvAccessPoint("0", "10.1.1.4", 1000001)); + EthSrvEndPoint ethSrvEndPointD = new EthSrvEndPoint("uni-04", ethSrvAccessPointsC, 50, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointB); + ethSrvEndPoints.add(ethSrvEndPointC); + ethSrvEndPoints.add(ethSrvEndPointD); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerEthService updateTeEthSrv2(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.2.1.2", 512)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-04", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.2.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointC); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } +} diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssWorkThreadB.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssWorkThreadB.java new file mode 100644 index 0000000..f4eb746 --- /dev/null +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/OssWorkThreadB.java @@ -0,0 +1,328 @@ +/* + * ============LICENSE_START======================================================= + * Actn Interface Tools + * ================================================================================ + * Copyright (C) 2023 Huawei Canada Limited. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ +package org.onap.integration.actninterfacetools.sampleapp.mpiconverter; + +import com.google.common.net.InetAddresses; +import org.onap.integration.actninterfacetools.globalapi.ActnDataConverter; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTopology; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTunnel; +import org.onap.integration.actninterfacetools.globalapi.PncClient; +import org.onap.integration.actninterfacetools.globalapi.GlobalService; +import org.onap.integration.actninterfacetools.globalapi.ActnClientService; +import org.onap.integration.actninterfacetools.globalapi.CustomerEthService; +import org.onap.integration.actninterfacetools.globalapp.impl.GlobalServiceImpl; +import org.onap.integration.actninterfacetools.protocol.restconf.DefaultPncInstance; +import org.onap.integration.actninterfacetools.protocol.restconf.PncInstance; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.converter.PncConverter; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.LTPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.LtpId; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TeNodeKey; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsLink; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.OduResource; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsTunnel; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvInstance; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvAccessPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvEndPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsEthSrv; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.math.BigInteger; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CountDownLatch; + +public class OssWorkThreadB extends Thread { + private CountDownLatch latch; + GlobalServiceImpl globalService; + private static final Logger log = LoggerFactory.getLogger(OssWorkThreadA.class); + + public OssWorkThreadB(String name, CountDownLatch latch) { + this.latch = latch; + setName(name); + } + + @Override + public void run() { + try { + System.out.printf("[ %s ] created, blocked by the latch...\n", getName()); + latch.await(); + System.out.printf("[ %s ] starts at: %s\n", getName(), Instant.now()); + // do actual work here... + PncInstance pncInstanceA = new DefaultPncInstance(InetAddresses.forString("192.168.198.10"), 18181, null, null, "http", null); + PncInstance pncInstanceB = new DefaultPncInstance(InetAddresses.forString("192.168.198.10"), 28181, null, null, "http", null); + ActnDataConverter actnDataConverter = new PncConverter(); + ActnClientService actnClientService = GlobalService.getActnClientSvc(actnDataConverter); + PncClient pncClientA = actnClientService.getPncClient(pncInstanceA); + PncClient pncClientB = actnClientService.getPncClient(pncInstanceB); + testGetOtnTopology(pncClientA, pncClientB); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public void testGetOtnTopology(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTopology customerOtnTopology = pncClientA.getNetworkTopology("providerId-10-clientId-0-topologyId-1"); + log.info("pncA: " + customerOtnTopology.toString()); + CustomerOtnTopology customerOtnTopologyB = pncClientB.getNetworkTopology("providerId-20-clientId-0-topologyId-1"); + log.info("pncB: " + customerOtnTopologyB.toString()); + } + + public void testGetOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTunnel otnTunnel = pncClientA.getOtnTunnel("otntunnel-1"); + log.info("pncA: " + otnTunnel.toString()); + CustomerOtnTunnel otnTunnelB = pncClientB.getOtnTunnel("otntunnel-1"); + log.info("pncB: " + otnTunnelB.toString()); + } + + public void testCreateOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTunnel customerOtnTunnel = buildTeOtnTunnel("otntunnel-1"); + pncClientA.createOtnTunnel(customerOtnTunnel); + CustomerOtnTunnel customerOtnTunnelB = buildTeOtnTunnel2("otntunnel-1"); + pncClientB.createOtnTunnel(customerOtnTunnelB); + } + + public void testDeleteOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + pncClientA.deleteOtnTunnel("otntunnel-1"); + pncClientB.deleteOtnTunnel("otntunnel-1"); + } + + public void testUpdateOtnTunnel(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerOtnTunnel customerOtnTunnel = updateTeOtnTunnel("otntunnel-1"); + pncClientA.updateOtnTunnel(customerOtnTunnel, "otntunnel-1"); + CustomerOtnTunnel customerOtnTunnelB = updateTeOtnTunnel2("otntunnel-1"); + pncClientB.updateOtnTunnel(customerOtnTunnelB, "otntunnel-1"); + } + + public void testGetEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerEthService ethService = pncClientA.getEthService("cll-instance-01"); + log.info("pncA: " + ethService.toString()); + CustomerEthService ethServiceB = pncClientB.getEthService("cll-instance-01"); + log.info("pncB: " + ethServiceB.toString()); + } + + public void testCreateEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerEthService customerEthService = buildTeEthSrv("cll-instance-01"); + pncClientA.createEthService(customerEthService); + CustomerEthService customerEthServiceB = buildTeEthSrv2("cll-instance-01"); + pncClientB.createEthService(customerEthServiceB); + } + + public void testDeleteEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + pncClientA.deleteEthService("cll-instance-01"); + pncClientB.deleteEthService("cll-instance-01"); + } + + public void testUpdateEthSvc(PncClient pncClientA, PncClient pncClientB) throws Exception { + CustomerEthService customerEthService = updateTeEthSrv("cll-instance-01"); + pncClientA.updateEthService(customerEthService); + CustomerEthService customerEthServiceB = updateTeEthSrv2("cll-instance-01"); + pncClientB.updateEthService(customerEthServiceB); + } + + public static CustomerOtnTunnel buildTeOtnTunnel(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 1, 1, 3); + TeNodeKey dst = new TeNodeKey(10, 1, 1, 3); + LtpId dstLtpId = LtpId.ltpId(0, "8"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 3, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerOtnTunnel buildTeOtnTunnel2(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 2, 1, 3); + TeNodeKey dst = new TeNodeKey(10, 2, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "12"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 3, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerOtnTunnel updateTeOtnTunnel(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 1, 1, 3); + TeNodeKey dst = new TeNodeKey(10, 1, 1, 3); + LtpId dstLtpId = LtpId.ltpId(0, "8"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 4, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerOtnTunnel updateTeOtnTunnel2(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 2, 1, 3); + TeNodeKey dst = new TeNodeKey(10, 2, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "12"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 4, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerEthService buildTeEthSrv(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.1.1.1", 1000001)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-01", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsB = new ArrayList<>(); + ethSrvAccessPointsB.add(new EthSrvAccessPoint("0", "10.1.1.1", 2000001)); + EthSrvEndPoint ethSrvEndPointB = new EthSrvEndPoint("uni-02", ethSrvAccessPointsB, 48, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.1.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointB); + ethSrvEndPoints.add(ethSrvEndPointC); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerEthService buildTeEthSrv2(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.2.1.2", 512)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-04", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 20, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerEthService updateTeEthSrv(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.1.1.1", 1000001)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-01", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsB = new ArrayList<>(); + ethSrvAccessPointsB.add(new EthSrvAccessPoint("0", "10.1.1.1", 2000001)); + EthSrvEndPoint ethSrvEndPointB = new EthSrvEndPoint("uni-02", ethSrvAccessPointsB, 48, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.1.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsD = new ArrayList<>(); + ethSrvAccessPointsD.add(new EthSrvAccessPoint("0", "10.1.1.4", 1000001)); + EthSrvEndPoint ethSrvEndPointD = new EthSrvEndPoint("uni-04", ethSrvAccessPointsC, 50, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointB); + ethSrvEndPoints.add(ethSrvEndPointC); + ethSrvEndPoints.add(ethSrvEndPointD); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerEthService updateTeEthSrv2(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.2.1.2", 512)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-04", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.2.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointC); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } +} diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/converter/PncConverter.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/converter/PncConverter.java index 7a8b4a7..1f7de9f 100644 --- a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/converter/PncConverter.java +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/converter/PncConverter.java @@ -19,12 +19,25 @@ */ package org.onap.integration.actninterfacetools.sampleapp.mpiconverter.converter; -import org.onap.integration.actninterfacetools.actnclient.api.ActnDataConverter; -import org.onap.integration.actninterfacetools.actnclient.api.CustomerEthService; -import org.onap.integration.actninterfacetools.actnclient.api.CustomerOtnTopology; -import org.onap.integration.actninterfacetools.actnclient.api.CustomerOtnTunnel; -import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.*; +import org.onap.integration.actninterfacetools.globalapi.ActnDataConverter; +import org.onap.integration.actninterfacetools.globalapi.CustomerEthService; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTopology; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTunnel; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.LTPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.LtpId; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TeNodeKey; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsLink; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.OduResource; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsTunnel; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvInstance; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvAccessPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvEndPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsEthSrv; import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.OduType; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsNodeInfo; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.PncOtnBandwidthProfile; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsLinkKey; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.OtnNetwork; import org.onosproject.yang.gen.v1.ietfyangtypes.rev20210414.ietfyangtypes.DottedQuad; import org.onosproject.yang.gen.v1.ietfyangtypes.rev20210414.ietfyangtypes.HexString; import org.onosproject.yang.gen.v11.ietfethtranservice.rev20210111.ietfethtranservice.DefaultEthtSvc; @@ -54,11 +67,26 @@ import org.onosproject.yang.gen.v11.ietfethtranservice.rev20210111.ietfethtranse import org.onosproject.yang.gen.v11.ietfethtranservice.rev20210111.ietfethtranservice.resiliencegrouping.Resilience; import org.onosproject.yang.gen.v11.ietfethtranservice.rev20210111.ietfethtranservice.vlanclassification.individualbundlingvlan.DefaultIndividualVlan; import org.onosproject.yang.gen.v11.ietfethtranservice.rev20210111.ietfethtranservice.vlanclassification.individualbundlingvlan.IndividualVlan; -import org.onosproject.yang.gen.v11.ietfethtrantypes.rev20191103.ietfethtrantypes.*; -import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.*; -import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnlabelstep.RangeType; -import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnlabelstep.rangetype.DefaultTribPort; +import org.onosproject.yang.gen.v11.ietfethtrantypes.rev20191103.ietfethtrantypes.ServiceTypeTypedef; +import org.onosproject.yang.gen.v11.ietfethtrantypes.rev20191103.ietfethtrantypes.RmpSvc; +import org.onosproject.yang.gen.v11.ietfethtrantypes.rev20191103.ietfethtrantypes.VlanClassification; +import org.onosproject.yang.gen.v11.ietfethtrantypes.rev20191103.ietfethtrantypes.EthTagClassify; +import org.onosproject.yang.gen.v11.ietfethtrantypes.rev20191103.ietfethtrantypes.ClassifyCvlan; +import org.onosproject.yang.gen.v11.ietfethtrantypes.rev20191103.ietfethtrantypes.Vlanid; +import org.onosproject.yang.gen.v11.ietfethtrantypes.rev20191103.ietfethtrantypes.BandwidthProfileTypeTypedef; +import org.onosproject.yang.gen.v11.ietfethtrantypes.rev20191103.ietfethtrantypes.Mef10Bwp; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.OtnTpn; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.Oduflex; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.Odu0; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.Odu1; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.Odu2; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.Odu2e; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.Odu3; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.Odu4; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnlabelstartend.RangeType; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnlabelstartend.rangetype.DefaultTribPort; import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnlinkbandwidth.Odulist; +import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnpathbandwidth.Otn; import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnpathbandwidth.otn.oduflextype.DefaultGfpNk; import org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnpathbandwidth.otn.oduflextype.GfpNk; import org.onosproject.yang.gen.v11.ietfte.rev20210220.ietfte.pathconstraintscommon.DefaultPathOutSegment; @@ -70,7 +98,14 @@ import org.onosproject.yang.gen.v11.ietfte.rev20210220.ietfte.tunnelproperties.P import org.onosproject.yang.gen.v11.ietfte.rev20210220.ietfte.tunnelproperties.primarypaths.DefaultPrimaryPath; import org.onosproject.yang.gen.v11.ietfte.rev20210220.ietfte.tunnelproperties.primarypaths.PrimaryPath; import org.onosproject.yang.gen.v11.ietfte.rev20210220.ietfte.tunnelsgrouping.tunnels.DefaultTunnel; -import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.*; +import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.TeNodeId; +import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.LspEncodingOduk; +import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.SwitchingOtn; +import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.TunnelAdminStateUp; +import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.LspProtectionUnprotected; +import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.TeGlobalId; +import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.TeTopologyId; +import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.TeTpId; import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.labelrestrictioninfo.DefaultLabelStart; import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.labelrestrictioninfo.LabelStart; import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.labelsetinfo.DefaultLabelRestrictions; @@ -113,9 +148,12 @@ import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.tetopolo import org.onosproject.yang.gen.v11.ietftetypes.rev20200610.ietftetypes.tetpid.TeTpIdUnion; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import java.math.BigInteger; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; import static com.google.common.base.Preconditions.checkNotNull; import static org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.Link.State.ACTIVE; @@ -136,14 +174,16 @@ public class PncConverter extends ActnDataConverter { public CustomerOtnTunnel convertActnOtnTunnel(DefaultTunnel actnOtnTunnel) throws Exception { checkNotNull(actnOtnTunnel, "convertActnOtnTunnel: actnOtnTunnel is null"); - TeNodeKey srcNode = (actnOtnTunnel.srcTunnelTpId() != null && !(new String(actnOtnTunnel.srcTunnelTpId())).isEmpty()) ? TeNodeKey.of(actnOtnTunnel.source().toString()) : new TeNodeKey(-1, -1, -1, -1); - LtpId srcLtpId = (actnOtnTunnel.srcTunnelTpId() != null && !(new String(actnOtnTunnel.srcTunnelTpId())).isEmpty()) ? LtpId.ltpId(actnOtnTunnel.srcTunnelTpId().toString()) : LtpId.ltpId(-1); + TeNodeKey srcNode = (actnOtnTunnel.source() != null && actnOtnTunnel.source().dottedQuad().string() != "") ? TeNodeKey.of(actnOtnTunnel.source().toString()) : new TeNodeKey(-1, -1, -1, -1); + LtpId srcLtpId = (actnOtnTunnel.srcTunnelTpId() != null && !(new String(actnOtnTunnel.srcTunnelTpId())).isEmpty()) ? LtpId.ltpId1(PncUtils.byteArray2Long(actnOtnTunnel.srcTunnelTpId()), new String(actnOtnTunnel.srcTunnelTpId())) : LtpId.ltpId(-1); + //PncUtils.byteArray2Long(actnOtnTunnel.srcTunnelTpId()) LTPoint srcLtPoint = new LTPoint(srcNode, srcLtpId); - TsLink srcLink = new TsLink("defaultSrcId",srcLtPoint,srcLtPoint, ACTIVE, org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.Link.Type.REGULAR); - TeNodeKey dstNode = (actnOtnTunnel.dstTunnelTpId() != null && !(new String(actnOtnTunnel.dstTunnelTpId())).isEmpty()) ? TeNodeKey.of(actnOtnTunnel.destination().toString()) : new TeNodeKey(-1, -1, -1, -1); - LtpId dstLtpId = (actnOtnTunnel.dstTunnelTpId() != null && !(new String(actnOtnTunnel.dstTunnelTpId())).isEmpty()) ? LtpId.ltpId(actnOtnTunnel.dstTunnelTpId().toString()) : LtpId.ltpId(-1); + TsLink srcLink = new TsLink("defaultSrcId", srcLtPoint, srcLtPoint, ACTIVE, org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.Link.Type.REGULAR); + TeNodeKey dstNode = (actnOtnTunnel.destination() != null && actnOtnTunnel.destination().dottedQuad().string() != "") ? TeNodeKey.of(actnOtnTunnel.destination().toString()) : new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = (actnOtnTunnel.dstTunnelTpId() != null && !(new String(actnOtnTunnel.dstTunnelTpId())).isEmpty()) ? LtpId.ltpId1(PncUtils.byteArray2Long(actnOtnTunnel.dstTunnelTpId()), new String(actnOtnTunnel.dstTunnelTpId())) : LtpId.ltpId(-1); + //PncUtils.byteArray2Long(actnOtnTunnel.dstTunnelTpId()) LTPoint dstLtPoint = new LTPoint(dstNode, dstLtpId); - TsLink dstLink = new TsLink("defaultDstId",dstLtPoint,dstLtPoint, ACTIVE, org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.Link.Type.REGULAR); + TsLink dstLink = new TsLink("defaultDstId", dstLtPoint, dstLtPoint, ACTIVE, org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.Link.Type.REGULAR); List<TsLink> linkList = new ArrayList<>(); linkList.add(srcLink); linkList.add(dstLink); @@ -152,34 +192,36 @@ public class PncConverter extends ActnDataConverter { actnOtnTunnel.teBandwidth().technology() instanceof org.onosproject.yang.gen.v11.ietfotntunnel.rev20210625. ietfotntunnel.te.tunnels.tunnel.tebandwidth.technology.augmentedtetechnology.DefaultOtn) { TeBandwidth teBandwidth = actnOtnTunnel.teBandwidth(); - OduResource oduRsrce = teBandwidthToOduResource(teBandwidth); + OduResource oduRsrce = teBandwidth2OduResource(teBandwidth); tsTunnel.bw(oduRsrce); } else { log.warn("Missing valid tunnel bandwidth info inside Otn DefaultTunnel"); } return tsTunnel; } + public DefaultTunnel convertActnOtnTunnel(CustomerOtnTunnel customerOtnTunnel) throws Exception { checkNotNull(customerOtnTunnel, "convertActnOtnTunnel: customerOtnTunnel is null"); DefaultTunnel defaultTunnel = new DefaultTunnel(); - LTPoint src = ((TsTunnel)customerOtnTunnel).src(); - LTPoint dst = ((TsTunnel)customerOtnTunnel).dst(); + LTPoint src = ((TsTunnel) customerOtnTunnel).src(); + LTPoint dst = ((TsTunnel) customerOtnTunnel).dst(); TeNodeKey srcTeNodeKey = src.tsDeviceId(); TeNodeKey dstTeNodeKey = dst.tsDeviceId(); String srcTeNodeId = srcTeNodeKey.toString(); String dstTeNodeId = dstTeNodeKey.toString(); defaultTunnel.source(TeNodeId.fromString(srcTeNodeId)); defaultTunnel.destination(TeNodeId.fromString(dstTeNodeId)); - defaultTunnel.srcTunnelTpId(src.ltPointId().toString().getBytes()); - defaultTunnel.name(((TsTunnel)customerOtnTunnel).name()); + defaultTunnel.dstTunnelTpId(dst.ltPointId().toString().getBytes()); + String a = new String(dst.ltPointId().toString().getBytes()); + defaultTunnel.name(((TsTunnel) customerOtnTunnel).name()); org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnpathbandwidth.Otn layer1Otn = new org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnpathbandwidth.DefaultOtn(); GfpNk oduflexType = new DefaultGfpNk(); - oduflexType.gfpn((short) ((TsTunnel)customerOtnTunnel).bw().getNumberOfOdu(OduType.ODUFLEX)); + oduflexType.gfpn((short) ((TsTunnel) customerOtnTunnel).bw().getNumberOfOdu(OduType.ODUFLEX)); layer1Otn.oduType(Oduflex.class); layer1Otn.oduflexType(oduflexType); Technology otn = new org.onosproject.yang.gen.v11.ietfotntunnel.rev20210625.ietfotntunnel.te.tunnels.tunnel.tebandwidth.technology.augmentedtetechnology.DefaultOtn(); - ((org.onosproject.yang.gen.v11.ietfotntunnel.rev20210625.ietfotntunnel.te.tunnels.tunnel.tebandwidth.technology.augmentedtetechnology.DefaultOtn)otn).otn(layer1Otn); + ((org.onosproject.yang.gen.v11.ietfotntunnel.rev20210625.ietfotntunnel.te.tunnels.tunnel.tebandwidth.technology.augmentedtetechnology.DefaultOtn) otn).otn(layer1Otn); TeBandwidth teBandwidth = new DefaultTeBandwidth(); teBandwidth.technology(otn); defaultTunnel.teBandwidth(teBandwidth); @@ -210,11 +252,12 @@ public class PncConverter extends ActnDataConverter { org.onosproject.yang.gen.v11.ietfotntunnel.rev20210625.ietfotntunnel.te.tunnels.tunnel.primarypaths.primarypath.pathinsegment.labelrestrictions.labelrestriction.labelstart.telabel.technology.augmentedtetechnology.DefaultOtn otnTpnTech = new org.onosproject.yang.gen.v11.ietfotntunnel.rev20210625.ietfotntunnel.te.tunnels.tunnel.primarypaths.primarypath.pathinsegment.labelrestrictions.labelrestriction.labelstart.telabel.technology.augmentedtetechnology.DefaultOtn(); OtnTpn otnTpn = new OtnTpn(1); RangeType rangeType = new DefaultTribPort(); - ((DefaultTribPort)rangeType).otnTpn(otnTpn); - otnTpnTech.rangeType((org.onosproject.yang.gen.v11.ietflayer1types.rev20210219.ietflayer1types.otnlabelstartend.RangeType) rangeType); + ((DefaultTribPort) rangeType).otnTpn(otnTpn); + otnTpnTech.rangeType(rangeType); teLabel.technology(otnTpnTech); labelStart.teLabel(teLabel); labelRestriction.labelStart(labelStart); + labelRestrictionList.add(labelRestriction); labelRestrictions.labelRestriction(labelRestrictionList); pathOutSegment.labelRestrictions(labelRestrictions); primaryPath.pathOutSegment(pathOutSegment); @@ -223,12 +266,13 @@ public class PncConverter extends ActnDataConverter { defaultTunnel.primaryPaths(primaryPaths); return defaultTunnel; } + public CustomerEthService convertActnEthService(DefaultEthtSvc actnEthService) throws Exception { checkNotNull(actnEthService, "convertActnEthService: actnEthService is null"); List<EthtSvcInstances> ethtSvcInstances = actnEthService.ethtSvcInstances(); - if(ethtSvcInstances!=null && !ethtSvcInstances.isEmpty()){ + if (ethtSvcInstances != null && !ethtSvcInstances.isEmpty()) { List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); - for(EthtSvcInstances ethtSvcInstance: ethtSvcInstances){ + for (EthtSvcInstances ethtSvcInstance : ethtSvcInstances) { String ethtSvcName = ethtSvcInstance.ethtSvcName(); String ethtSvcDescr = ethtSvcInstance.ethtSvcDescr(); TeTopologyIdentifier teTopologyIdentifier = ethtSvcInstance.teTopologyIdentifier(); @@ -236,22 +280,30 @@ public class PncConverter extends ActnDataConverter { long clientId = teTopologyIdentifier.clientId().uint32(); String topologyId = teTopologyIdentifier.topologyId().union().string(); List<TsTunnel> tsTunnels = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); List<OtnTunnels> otnTunnels = ((DefaultFrameBase) ethtSvcInstance.underlay().technology()).otnTunnels(); - if(otnTunnels!=null && !otnTunnels.isEmpty()){ - for(OtnTunnels otnTunnel : otnTunnels){ - tsTunnels.add(new TsTunnel(null, otnTunnel.name().toString())); + if (otnTunnels != null && !otnTunnels.isEmpty()) { + for (OtnTunnels otnTunnel : otnTunnels) { + tsTunnels.add(new TsTunnel(tsLinkList, otnTunnel.name().toString())); } } List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); List<EthtSvcEndPoints> ethtSvcEndPoints = ethtSvcInstance.ethtSvcEndPoints(); - if(ethtSvcEndPoints!=null && !ethtSvcEndPoints.isEmpty()){ - for (EthtSvcEndPoints ethtSvcEndPoint: ethtSvcEndPoints) { + if (ethtSvcEndPoints != null && !ethtSvcEndPoints.isEmpty()) { + for (EthtSvcEndPoints ethtSvcEndPoint : ethtSvcEndPoints) { String ethtSvcEndPointName = ethtSvcEndPoint.ethtSvcEndPointName(); List<EthSrvAccessPoint> ethSrvAccessPoints = new ArrayList<>(); List<EthtSvcAccessPoints> ethtSvcAccessPoints = ethtSvcEndPoint.ethtSvcAccessPoints(); - if(ethtSvcAccessPoints!=null && !ethtSvcAccessPoints.isEmpty()){ - for(EthtSvcAccessPoints ethtSvcAccessPoint : ethtSvcAccessPoints){ - ethSrvAccessPoints.add(new EthSrvAccessPoint(ethtSvcAccessPoint.accessPointId(),ethtSvcAccessPoint.accessNodeId().dottedQuad().string(), ethtSvcAccessPoint.accessLtpId().union().uint32())); + if (ethtSvcAccessPoints != null && !ethtSvcAccessPoints.isEmpty()) { + for (EthtSvcAccessPoints ethtSvcAccessPoint : ethtSvcAccessPoints) { + ethSrvAccessPoints.add(new EthSrvAccessPoint(ethtSvcAccessPoint.accessPointId(), ethtSvcAccessPoint.accessNodeId().dottedQuad().string(), ethtSvcAccessPoint.accessLtpId().union().uint32())); } } int vlanValue = ((DefaultIndividualVlan) ((DefaultVlanClassification) ethtSvcEndPoint.serviceClassification()).outerTag().individualBundlingVlan()).vlanValue().uint16(); @@ -260,10 +312,10 @@ public class PncConverter extends ActnDataConverter { ethSrvEndPoints.add(new EthSrvEndPoint(ethtSvcEndPointName, ethSrvAccessPoints, vlanValue, cir, eir)); } } - ethSrvInstances.add(new EthSrvInstance(ethtSvcName,ethtSvcDescr, providerId, clientId, topologyId, tsTunnels, ethSrvEndPoints)); + ethSrvInstances.add(new EthSrvInstance(ethtSvcName, ethtSvcDescr, providerId, clientId, topologyId, tsTunnels, ethSrvEndPoints)); } return new TsEthSrv(ethSrvInstances); - }else{ + } else { return new TsEthSrv(null); } } @@ -271,10 +323,10 @@ public class PncConverter extends ActnDataConverter { public DefaultEthtSvc convertActnEthService(CustomerEthService customerEthService) throws Exception { checkNotNull(customerEthService, "convertActnEthService: customerEthService is null"); List<EthSrvInstance> ethSrvInstances = ((TsEthSrv) customerEthService).getEthSrvInstances(); - if(ethSrvInstances!=null && !ethSrvInstances.isEmpty()){ + if (ethSrvInstances != null && !ethSrvInstances.isEmpty()) { DefaultEthtSvc defaultEthtSvc = new DefaultEthtSvc(); List<EthtSvcInstances> ethtSvcInstances = new ArrayList<>(); - for(EthSrvInstance ethSrvInstance: ethSrvInstances){ + for (EthSrvInstance ethSrvInstance : ethSrvInstances) { EthtSvcInstances ethtSvcInstance = new DefaultEthtSvcInstances(); String ethSrvName = ethSrvInstance.getEthSrvName(); ethtSvcInstance.ethtSvcName(ethSrvName); @@ -291,8 +343,8 @@ public class PncConverter extends ActnDataConverter { Underlay underlay = new DefaultUnderlay(); DefaultFrameBase defaultFrameBase = new DefaultFrameBase(); List<OtnTunnels> otnTunnels = new ArrayList<>(); - if(ethSrvInstance.getOtnTunnels()!=null &&!ethSrvInstance.getOtnTunnels().isEmpty() ){ - for(TsTunnel tsTunnel: ethSrvInstance.getOtnTunnels()){ + if (ethSrvInstance.getOtnTunnels() != null && !ethSrvInstance.getOtnTunnels().isEmpty()) { + for (TsTunnel tsTunnel : ethSrvInstance.getOtnTunnels()) { DefaultOtnTunnels defaultOtnTunnels = new DefaultOtnTunnels(); defaultOtnTunnels.name(tsTunnel.name()); otnTunnels.add(defaultOtnTunnels); @@ -311,13 +363,13 @@ public class PncConverter extends ActnDataConverter { resilience.protection(protection); ethtSvcInstance.resilience(resilience); List<EthtSvcEndPoints> ethtSvcEndPoints = new ArrayList<>(); - if(ethSrvInstance.getEthSrvEndPoints()!=null &&!ethSrvInstance.getEthSrvEndPoints().isEmpty()){ - for(EthSrvEndPoint ethSrvEndPoint: ethSrvInstance.getEthSrvEndPoints()){ + if (ethSrvInstance.getEthSrvEndPoints() != null && !ethSrvInstance.getEthSrvEndPoints().isEmpty()) { + for (EthSrvEndPoint ethSrvEndPoint : ethSrvInstance.getEthSrvEndPoints()) { EthtSvcEndPoints ethtSvcEndPoint = new DefaultEthtSvcEndPoints(); ethtSvcEndPoint.ethtSvcEndPointName(ethSrvEndPoint.getEthtSvcEndPointName()); List<EthtSvcAccessPoints> ethtSvcAccessPoints = new ArrayList<>(); - if(ethSrvEndPoint.getEthSrvAccessPoints()!=null && !ethSrvEndPoint.getEthSrvAccessPoints().isEmpty()){ - for(EthSrvAccessPoint ethSrvAccessPoint: ethSrvEndPoint.getEthSrvAccessPoints()){ + if (ethSrvEndPoint.getEthSrvAccessPoints() != null && !ethSrvEndPoint.getEthSrvAccessPoints().isEmpty()) { + for (EthSrvAccessPoint ethSrvAccessPoint : ethSrvEndPoint.getEthSrvAccessPoints()) { EthtSvcAccessPoints ethtSvcAccessPoint = new DefaultEthtSvcAccessPoints(); ethtSvcAccessPoint.accessPointId(ethSrvAccessPoint.getAccessPointId()); ethtSvcAccessPoint.accessNodeId(new TeNodeId(new DottedQuad(ethSrvAccessPoint.getAccessNodeId()))); @@ -325,23 +377,24 @@ public class PncConverter extends ActnDataConverter { ethtSvcAccessPoints.add(ethtSvcAccessPoint); } } + ethtSvcEndPoint.ethtSvcAccessPoints(ethtSvcAccessPoints); ethtSvcEndPoint.serviceClassificationType(VlanClassification.class); ServiceClassification serviceClassification = new DefaultVlanClassification(); OuterTag outerTag = new DefaultOuterTag(); outerTag.tagType(new EthTagClassify(ClassifyCvlan.class)); IndividualVlan individualVlan = new DefaultIndividualVlan(); individualVlan.vlanValue(new Vlanid(ethSrvEndPoint.getVlanValue())); - outerTag.individualBundlingVlan(); - ((DefaultVlanClassification)serviceClassification).outerTag(outerTag); + outerTag.individualBundlingVlan(individualVlan); + ((DefaultVlanClassification) serviceClassification).outerTag(outerTag); ethtSvcEndPoint.serviceClassification(serviceClassification); Direction direction = new DefaultSymmetrical(); IngressEgressBandwidthProfile ingressEgressBandwidthProfile = new DefaultIngressEgressBandwidthProfile(); Style style = new DefaultValue(); - ((DefaultValue)style).bandwidthProfileType(new BandwidthProfileTypeTypedef(Mef10Bwp.class)); - ((DefaultValue)style).cir(ethSrvEndPoint.getCIR()); - ((DefaultValue)style).eir(ethSrvEndPoint.getEIR()); + ((DefaultValue) style).bandwidthProfileType(new BandwidthProfileTypeTypedef(Mef10Bwp.class)); + ((DefaultValue) style).cir(ethSrvEndPoint.getCIR()); + ((DefaultValue) style).eir(ethSrvEndPoint.getEIR()); ingressEgressBandwidthProfile.style(style); - ((DefaultSymmetrical)direction).ingressEgressBandwidthProfile(ingressEgressBandwidthProfile); + ((DefaultSymmetrical) direction).ingressEgressBandwidthProfile(ingressEgressBandwidthProfile); ethtSvcEndPoint.direction(direction); ethtSvcEndPoints.add(ethtSvcEndPoint); } @@ -351,10 +404,11 @@ public class PncConverter extends ActnDataConverter { } defaultEthtSvc.ethtSvcInstances(ethtSvcInstances); return defaultEthtSvc; - }else{ + } else { return new DefaultEthtSvc(); } } + private OduResource teBandwidthToOduResource(TeBandwidth teBandwidth) { Technology otn = teBandwidth.technology(); short odu0s = 0, odu1s = 0, odu2s = 0, odu2es = 0, odu3s = 0, odu4s = 0, oduFlex = 0; @@ -380,6 +434,30 @@ public class PncConverter extends ActnDataConverter { null, null); //TODO: TribPorts and TribSlots } + private OduResource teBandwidth2OduResource(TeBandwidth teBandwidth) { + Technology otn = teBandwidth.technology(); + short odu0s = 0, odu1s = 0, odu2s = 0, odu2es = 0, odu3s = 0, odu4s = 0, oduFlex = 0; + short numOfThisOdu = 1; + Otn elemOdu = ((org.onosproject.yang.gen.v11.ietfotntunnel.rev20210625.ietfotntunnel.te.tunnels.tunnel.tebandwidth.technology.augmentedtetechnology.DefaultOtn) otn).otn(); + if (elemOdu.oduType().isAssignableFrom(Odu0.class)) { + odu0s = PncUtils.byteArray2Short(elemOdu.valueLeafFlags().toByteArray()); + } else if (elemOdu.oduType().isAssignableFrom(Odu1.class)) { + odu1s = PncUtils.byteArray2Short(elemOdu.valueLeafFlags().toByteArray()); + } else if (elemOdu.oduType().isAssignableFrom(Odu2.class)) { + odu2s = PncUtils.byteArray2Short(elemOdu.valueLeafFlags().toByteArray()); + } else if (elemOdu.oduType().isAssignableFrom(Odu2e.class)) { + odu2es = PncUtils.byteArray2Short(elemOdu.valueLeafFlags().toByteArray()); + } else if (elemOdu.oduType().isAssignableFrom(Odu3.class)) { + odu3s = PncUtils.byteArray2Short(elemOdu.valueLeafFlags().toByteArray()); + } else if (elemOdu.oduType().isAssignableFrom(Odu4.class)) { + odu4s = PncUtils.byteArray2Short(elemOdu.valueLeafFlags().toByteArray()); + } else if (elemOdu.oduType().isAssignableFrom(Oduflex.class)) { + oduFlex = PncUtils.byteArray2Short(elemOdu.valueLeafFlags().toByteArray()); + } + return new OduResource(odu0s, odu1s, odu2s, odu2es, odu3s, odu4s, oduFlex, + null, null); //TODO: TribPorts and TribSlots + } + //Transfer tslink to yanglink for otn tunnel deletion private static DefaultLink tsLink2YangLinkForTunnelDeletion(String sliceId, TsLink tslink, OduResource rezvdOdu, Network yangNetwork, Networks yangNetworks, boolean isEdge, int tpn) { diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/converter/PncUtils.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/converter/PncUtils.java index 3d92d4c..17f2b87 100644 --- a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/converter/PncUtils.java +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/converter/PncUtils.java @@ -23,6 +23,8 @@ package org.onap.integration.actninterfacetools.sampleapp.mpiconverter.converter import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.nio.ByteBuffer; + public class PncUtils { private static final Logger log = LoggerFactory.getLogger(PncUtils.class); @@ -97,4 +99,32 @@ public class PncUtils { } throw new IllegalArgumentException("PncUtils: setBits: Illegal Argument"); } + public static long byteArray2Long(byte[] bytes) + { + long value = 0l; + + // Iterating through for loop + for (byte b : bytes) { + // Shifting previous value 8 bits to right and + // add it with next value + value = (value << 8) + (b & 255); + } + + return value; + } + public static short byteArray2Short(byte[] array) { +// ByteBuffer buffer = ByteBuffer.wrap(array); +// return buffer.getShort(); + short value = 0; + + // Iterating through for loop + for (byte b : array) { + // Shifting previous value 8 bits to right and + // add it with next value + value = (short) ((value << 8) + (b & 255)); + } + + return value; + + } } diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/EthSrv.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/EthSrv.java index 0af701f..7c5f1b6 100644 --- a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/EthSrv.java +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/EthSrv.java @@ -19,8 +19,6 @@ */ package org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model; -import org.onap.integration.actninterfacetools.actnclient.api.CustomerEthService; - import java.util.List; public interface EthSrv { diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/LtpId.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/LtpId.java index b526198..8d43e5b 100644 --- a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/LtpId.java +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/LtpId.java @@ -37,8 +37,13 @@ public final class LtpId { } private LtpId(long number, String name) { + if(name.equals("MJI=")){ + this.name = "TUpJPQ=="; + }else{ + this.name = name; + } this.number = number; - this.name = name; + this.hasName = true; } @@ -49,6 +54,9 @@ public final class LtpId { public static LtpId ltpId(String string) { return new LtpId(UnsignedLongs.decode(string)); } + public static LtpId ltpId1(long number, String string) { + return new LtpId(number, string); + } public static LtpId ltpId(long number, String name) { return new LtpId(number, name); diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/OduResource.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/OduResource.java index 8557bb2..45a6a26 100644 --- a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/OduResource.java +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/OduResource.java @@ -252,13 +252,13 @@ public class OduResource{ public byte[] getTribPortAvailabilityBitmap() { return tribPortAvailabilityBitmap == null ? null : Arrays.copyOf(tribPortAvailabilityBitmap, - tribPortAvailabilityBitmap.length); + tribPortAvailabilityBitmap.length); } public byte[] getTribSlotAvailabilityBitmap() { return tribSlotAvailabilityBitmap == null ? null : Arrays.copyOf(tribSlotAvailabilityBitmap, - tribSlotAvailabilityBitmap.length); + tribSlotAvailabilityBitmap.length); } @Override @@ -284,9 +284,9 @@ public class OduResource{ (this.odu4s == that.odu4s) && (this.oduFlex == that.oduFlex) && Arrays.equals(this.tribPortAvailabilityBitmap, - that.tribPortAvailabilityBitmap) && + that.tribPortAvailabilityBitmap) && Arrays.equals(this.tribSlotAvailabilityBitmap, - that.tribSlotAvailabilityBitmap); + that.tribSlotAvailabilityBitmap); } return false; } diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/OtnNetwork.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/OtnNetwork.java index b6d1fb0..184f613 100644 --- a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/OtnNetwork.java +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/OtnNetwork.java @@ -19,12 +19,10 @@ */ package org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model; -import org.onap.integration.actninterfacetools.actnclient.api.CustomerOtnTopology; -import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.converter.PncConverter; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTopology; import java.util.List; import java.util.Map; -import java.util.function.Supplier; import static com.google.common.base.Preconditions.checkNotNull; @@ -38,32 +36,6 @@ public class OtnNetwork extends CustomerOtnTopology implements Network { private final Map<TeNodeKey,List<TsLink>> edgeLinks; private final PncOtnBandwidthProfile bandwidthProfileSupplier; -// public OtnNetwork(org.onosproject.yang.gen.v11.ietfnetwork.rev20180226.ietfnetwork.networks.Network yangNetwork){ -// -// this(yangNetwork, -// ()-> PncConverter.getOtnNodes(yangNetwork), -// ()-> PncConverter.getTsNodeInfo(yangNetwork), -// ()-> PncConverter.getOtnInnerLinks(yangNetwork), -// ()-> PncConverter.getOtnEdgeLinks(yangNetwork), -// ()-> PncConverter.getBandWidthProfile(yangNetwork)); -// } - - -// OtnNetwork(org.onosproject.yang.gen.v11.ietfnetwork.rev20180226.ietfnetwork.networks.Network yangNetwork, -// Supplier<List<TeNodeKey>> nodes, -// Supplier<Map<TeNodeKey, TsNodeInfo>> tsNodeInfos, -// Supplier<List<TsLink>> innerLinks, -// Supplier<Map<TeNodeKey, List<TsLink>>> edgeLinks, -// Supplier<PncOtnBandwidthProfile> bandwidthProfile){ -// checkNotNull(yangNetwork, "OtnNetwork: yangNetwork passed in is null"); -// this.networkId = yangNetwork.networkId().toString(); -// this.nodes = nodes; -// this.innerLinks = innerLinks; -// this.edgeLinks = edgeLinks; -// this.tsNodeInfos = tsNodeInfos; -// this.bandwidthProfileSupplier = bandwidthProfile; -// } - public OtnNetwork(String networkId, List<TeNodeKey> otnNodes, Map<TeNodeKey, TsNodeInfo> tsNodeInfo, List<TsLink> otnInnerLinks, Map<TeNodeKey, List<TsLink>> otnEdgeLinks, PncOtnBandwidthProfile bandWidthProfile) { this.networkId = networkId; this.nodes = otnNodes; @@ -103,4 +75,17 @@ public class OtnNetwork extends CustomerOtnTopology implements Network { public String networkId(){ return this.networkId; } + + @Override + public String toString() { + return "OtnNetwork{" + + "networkType=" + networkType + + ", networkId='" + networkId + '\'' + + ", nodes=" + nodes + + ", tsNodeInfos=" + tsNodeInfos + + ", innerLinks=" + innerLinks + + ", edgeLinks=" + edgeLinks + + ", bandwidthProfileSupplier=" + bandwidthProfileSupplier + + '}'; + } } diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsEthSrv.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsEthSrv.java index 74ec498..bebbbb7 100644 --- a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsEthSrv.java +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsEthSrv.java @@ -19,7 +19,7 @@ */ package org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model; -import org.onap.integration.actninterfacetools.actnclient.api.CustomerEthService; +import org.onap.integration.actninterfacetools.globalapi.CustomerEthService; import java.util.List; @@ -31,6 +31,13 @@ public class TsEthSrv extends CustomerEthService implements EthSrv{ } @Override + public String toString() { + return "TsEthSrv{" + + "ethSrvInstances=" + ethSrvInstances + + '}'; + } + + @Override public List<EthSrvInstance> getEthSrvInstances(){ return this.ethSrvInstances; } diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsLink.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsLink.java index 8ae8209..55d166e 100644 --- a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsLink.java +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsLink.java @@ -19,7 +19,7 @@ */ package org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model; -import org.onap.integration.actninterfacetools.actnclient.api.CustomerOtnTunnel; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTunnel; import java.util.List; import java.util.Objects; diff --git a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsTunnel.java b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsTunnel.java index f076a17..fe26846 100644 --- a/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsTunnel.java +++ b/sample-apps/src/main/java/org/onap/integration/actninterfacetools/sampleapp/mpiconverter/model/TsTunnel.java @@ -20,6 +20,8 @@ package org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model; import com.google.common.collect.ImmutableList; +//import org.onlab.graph.ScalarWeight; +//import org.onlab.graph.Weight; import java.util.List; @@ -31,7 +33,7 @@ import static com.google.common.base.Preconditions.checkNotNull; public class TsTunnel extends TsLink { private final List<TsLink> links; -// private final Weight cost; + // private final Weight cost; private final String name; private OduResource bw = null; @@ -43,6 +45,7 @@ public class TsTunnel extends TsLink { this.name = name; } + // public TsTunnel(LTPoint srcLtPoint, LTPoint dstLtPoint){ // super(srcLtPoint, dstLtPoint); // this.links = null; @@ -60,7 +63,7 @@ public class TsTunnel extends TsLink { // return 0; // } -// public Weight weight() { + // public Weight weight() { // return cost; // } public String name() { @@ -69,7 +72,7 @@ public class TsTunnel extends TsLink { private static LTPoint source(List<TsLink> links) { checkNotNull(links, "List of path links cannot be null"); checkArgument(!links.isEmpty(), "List of path links cannot be null"); - return links.get(0).dst(); + return links.get(0).src(); } private static LTPoint destination(List<TsLink> links) { @@ -100,7 +103,7 @@ public class TsTunnel extends TsLink { final TsTunnel other = (TsTunnel) obj; return Objects.equals(this.links, other.links); } - return false; + return false; } public OduResource bw() { diff --git a/sample-apps/src/test/java/org/onap/protocol/restconf/ctl/SampleAppTest.java b/sample-apps/src/test/java/org/onap/protocol/restconf/ctl/SampleAppTest.java new file mode 100644 index 0000000..9f527c2 --- /dev/null +++ b/sample-apps/src/test/java/org/onap/protocol/restconf/ctl/SampleAppTest.java @@ -0,0 +1,322 @@ +/* + * ============LICENSE_START======================================================= + * Actn Interface Tools + * ================================================================================ + * Copyright (C) 2023 Huawei Canada Limited. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.protocol.restconf.ctl; + +import java.math.BigInteger; +import java.net.URISyntaxException; +import java.util.List; +import java.util.ArrayList; +import com.google.common.net.InetAddresses; +import org.junit.Before; +import org.junit.Test; +import org.onap.integration.actninterfacetools.globalapi.ActnDataConverter; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTopology; +import org.onap.integration.actninterfacetools.globalapi.CustomerOtnTunnel; +import org.onap.integration.actninterfacetools.globalapi.PncClient; +import org.onap.integration.actninterfacetools.globalapi.GlobalService; +import org.onap.integration.actninterfacetools.globalapi.ActnClientService; +import org.onap.integration.actninterfacetools.globalapi.CustomerEthService; +import org.onap.integration.actninterfacetools.protocol.restconf.DefaultPncInstance; +import org.onap.integration.actninterfacetools.protocol.restconf.PncInstance; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.converter.PncConverter; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.LTPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.LtpId; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TeNodeKey; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsLink; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.OduResource; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsTunnel; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvInstance; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvAccessPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.EthSrvEndPoint; +import org.onap.integration.actninterfacetools.sampleapp.mpiconverter.model.TsEthSrv; + +public class SampleAppTest { + PncClient pncClientA; + PncClient pncClientB; + + @Before + public void setUp() throws URISyntaxException { + + PncInstance pncInstanceA = new DefaultPncInstance(InetAddresses.forString("192.168.198.10"), 18181, null, null, "http", null); + PncInstance pncInstanceB = new DefaultPncInstance(InetAddresses.forString("192.168.198.10"), 28181, null, null, "http", null); + ActnDataConverter actnDataConverter = new PncConverter(); + ActnClientService actnClientService = GlobalService.getActnClientSvc(actnDataConverter); + pncClientA = actnClientService.getPncClient(pncInstanceA); + pncClientB = actnClientService.getPncClient(pncInstanceB); + } + + @Test + public void getNetworkTopology() throws Exception { + CustomerOtnTopology customerOtnTopology = pncClientA.getNetworkTopology("providerId-10-clientId-0-topologyId-1"); + System.out.println("pncA: " + customerOtnTopology.toString()); + CustomerOtnTopology customerOtnTopologyB = pncClientB.getNetworkTopology("providerId-20-clientId-0-topologyId-1"); + System.out.println("pncB: " + customerOtnTopologyB.toString()); + + } + + @Test + public void createOtnTunnel() throws Exception { + CustomerOtnTunnel customerOtnTunnel = buildTeOtnTunnel("otntunnel-1"); + pncClientA.createOtnTunnel(customerOtnTunnel); + CustomerOtnTunnel customerOtnTunnelB = buildTeOtnTunnel2("otntunnel-1"); + pncClientB.createOtnTunnel(customerOtnTunnelB); + } + + @Test + public void updateOtnTunnel() throws Exception { + CustomerOtnTunnel customerOtnTunnel = updateTeOtnTunnel("otntunnel-1"); + pncClientA.updateOtnTunnel(customerOtnTunnel, "otntunnel-1"); + CustomerOtnTunnel customerOtnTunnelB = updateTeOtnTunnel2("otntunnel-1"); + pncClientB.updateOtnTunnel(customerOtnTunnelB, "otntunnel-1"); + } + + @Test + public void getOtnTunnel() throws Exception { + CustomerOtnTunnel otnTunnel = pncClientA.getOtnTunnel("otntunnel-1"); + System.out.println(otnTunnel.toString()); + CustomerOtnTunnel otnTunnelB = pncClientB.getOtnTunnel("otntunnel-1"); + System.out.println(otnTunnelB.toString()); + } + + @Test + public void deleteOtnTunnel() throws Exception { + pncClientA.deleteOtnTunnel("otntunnel-1"); + pncClientB.deleteOtnTunnel("otntunnel-1"); + } + + @Test + public void createEthService() throws Exception { + CustomerEthService customerEthService = buildTeEthSrv("cll-instance-01"); + pncClientA.createEthService(customerEthService); + CustomerEthService customerEthServiceB = buildTeEthSrv2("cll-instance-01"); + pncClientB.createEthService(customerEthServiceB); + } + + @Test + public void updateEthService() throws Exception { + CustomerEthService customerEthService = updateTeEthSrv("cll-instance-01"); + pncClientA.updateEthService(customerEthService); + CustomerEthService customerEthServiceB = updateTeEthSrv2("cll-instance-01"); + pncClientB.updateEthService(customerEthServiceB); + } + + @Test + public void getEthService() throws Exception { + CustomerEthService ethService = pncClientA.getEthService("cll-instance-01"); + System.out.println(ethService.toString()); + CustomerEthService ethServiceB = pncClientB.getEthService("cll-instance-01"); + System.out.println(ethServiceB.toString()); + } + + @Test + public void deleteEthService() throws Exception { + pncClientA.deleteEthService("cll-instance-01"); + pncClientB.deleteEthService("cll-instance-01"); + } + + public static CustomerOtnTunnel buildTeOtnTunnel(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 1, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 1, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "12"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 3, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerOtnTunnel updateTeOtnTunnel(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 1, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 1, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "12"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 4, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerOtnTunnel buildTeOtnTunnel2(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 2, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 2, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "13"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 3, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerOtnTunnel updateTeOtnTunnel2(String tunnelName) { + TeNodeKey src = new TeNodeKey(10, 2, 1, 1); + TeNodeKey dst = new TeNodeKey(10, 2, 1, 2); + LtpId dstLtpId = LtpId.ltpId(0, "13"); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + OduResource oduResource = new OduResource((short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 0, (short) 4, null, null); + CustomerOtnTunnel customerOtnTunnel = new TsTunnel(tsLinkList, tunnelName); + ((TsTunnel) customerOtnTunnel).bw(oduResource); + return customerOtnTunnel; + } + + public static CustomerEthService buildTeEthSrv(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.1.1.1", 1000001)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-01", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsB = new ArrayList<>(); + ethSrvAccessPointsB.add(new EthSrvAccessPoint("0", "10.1.1.1", 2000001)); + EthSrvEndPoint ethSrvEndPointB = new EthSrvEndPoint("uni-02", ethSrvAccessPointsB, 48, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.1.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointB); + ethSrvEndPoints.add(ethSrvEndPointC); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerEthService updateTeEthSrv(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.1.1.1", 1000001)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-01", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsB = new ArrayList<>(); + ethSrvAccessPointsB.add(new EthSrvAccessPoint("0", "10.1.1.1", 2000001)); + EthSrvEndPoint ethSrvEndPointB = new EthSrvEndPoint("uni-02", ethSrvAccessPointsB, 48, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.1.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + List<EthSrvAccessPoint> ethSrvAccessPointsD = new ArrayList<>(); + ethSrvAccessPointsD.add(new EthSrvAccessPoint("0", "10.1.1.4", 1000001)); + EthSrvEndPoint ethSrvEndPointD = new EthSrvEndPoint("uni-04", ethSrvAccessPointsC, 50, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointB); + ethSrvEndPoints.add(ethSrvEndPointC); + ethSrvEndPoints.add(ethSrvEndPointD); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerEthService buildTeEthSrv2(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.2.1.2", 512)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-04", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 20, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } + + public static CustomerEthService updateTeEthSrv2(String serviceName) { + List<EthSrvInstance> ethSrvInstances = new ArrayList<>(); + List<TsTunnel> tsTunnelList = new ArrayList<>(); + TeNodeKey src = new TeNodeKey(-1, -1, -1, -1); + TeNodeKey dst = new TeNodeKey(-1, -1, -1, -1); + LtpId dstLtpId = LtpId.ltpId(0, ""); + LTPoint srcLTPoint = new LTPoint(src, null); + LTPoint dstLTPoint = new LTPoint(dst, dstLtpId); + List<TsLink> tsLinkList = new ArrayList<>(); + TsLink tsLink = new TsLink(srcLTPoint, dstLTPoint); + tsLinkList.add(tsLink); + TsTunnel tsTunnela = new TsTunnel(tsLinkList, "otntunnel-2"); + TsTunnel tsTunnelb = new TsTunnel(tsLinkList, "otntunnel-1"); + tsTunnelList.add(tsTunnela); + tsTunnelList.add(tsTunnelb); + List<EthSrvEndPoint> ethSrvEndPoints = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsA = new ArrayList<>(); + List<EthSrvAccessPoint> ethSrvAccessPointsC = new ArrayList<>(); + ethSrvAccessPointsA.add(new EthSrvAccessPoint("0", "10.2.1.2", 512)); + EthSrvEndPoint ethSrvEndPointA = new EthSrvEndPoint("uni-04", ethSrvAccessPointsA, 47, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvAccessPointsC.add(new EthSrvAccessPoint("0", "10.2.1.3", 1000001)); + EthSrvEndPoint ethSrvEndPointC = new EthSrvEndPoint("uni-03", ethSrvAccessPointsC, 49, BigInteger.valueOf(3000000), BigInteger.valueOf(3000000)); + ethSrvEndPoints.add(ethSrvEndPointA); + ethSrvEndPoints.add(ethSrvEndPointC); + EthSrvInstance ethSrvInstance = new EthSrvInstance(serviceName, "desc-Eth-service", 10, 0, "2", tsTunnelList, ethSrvEndPoints); + ethSrvInstances.add(ethSrvInstance); + CustomerEthService customerEthService = new TsEthSrv(ethSrvInstances); + return customerEthService; + } +} |