*/
package org.opendaylight.transportpce.tapi.topology;
+import static org.hamcrest.CoreMatchers.anyOf;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.either;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.hasItems;
+import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import com.google.common.util.concurrent.FluentFuture;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.InstanceIdentifiers;
+import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
+import org.opendaylight.transportpce.common.network.NetworkTransactionService;
+import org.opendaylight.transportpce.common.network.RequestProcessor;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.transportpce.tapi.utils.TapiTopologyDataUtils;
import org.opendaylight.transportpce.test.AbstractTest;
import org.opendaylight.transportpce.test.utils.TopologyDataUtils;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1Builder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmLinkType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmTpType;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Network1;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.NameKey;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.dsr.rev181210.DIGITALSIGNALTYPE100GigE;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.dsr.rev181210.DIGITALSIGNALTYPE10GigELAN;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.odu.rev181210.ODUTYPEODU0;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.odu.rev181210.ODUTYPEODU2;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.odu.rev181210.ODUTYPEODU2E;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.odu.rev181210.ODUTYPEODU4;
private static final Logger LOG = LoggerFactory.getLogger(ConvertORTopoToFullTapiTopoTest.class);
private static Node otnMuxA;
- private static Node otnMuxC;
private static Node otnSwitch;
private static Node tpdr100G;
private static Node roadmA;
private static Node roadmC;
private static Network openroadmNet;
- private static Map<LinkKey, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
- .networks.network.Link> otnLinks;
private static Map<LinkKey, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
.networks.network.Link> ortopoLinks;
private static Uuid topologyUuid;
+ private static NetworkTransactionService networkTransactionService;
+ private static TapiLink tapiLink;
private static DataBroker dataBroker = getDataBroker();
@BeforeClass
.child(Node.class, new NodeKey(new NodeId("SPDR-SC1-XPDR1")));
FluentFuture<Optional<Node>> muxCFuture = dataBroker.newReadOnlyTransaction()
.read(LogicalDatastoreType.CONFIGURATION, muxCIID);
- otnMuxC = muxCFuture.get().get();
+ muxCFuture.get().get();
KeyedInstanceIdentifier<Node, NodeKey> switchIID = InstanceIdentifier.create(Networks.class)
.child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network
.class, new NetworkKey(new NetworkId("otn-topology")))
.augmentation(Network1.class);
FluentFuture<Optional<Network1>> linksFuture = dataBroker.newReadOnlyTransaction()
.read(LogicalDatastoreType.CONFIGURATION, linksIID);
- otnLinks = linksFuture.get().get().getLink();
+ linksFuture.get().get().getLink();
InstanceIdentifier<Network1> links1IID = InstanceIdentifier.create(Networks.class)
.child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network
.read(LogicalDatastoreType.CONFIGURATION, ortopo1IID);
openroadmNet = ortopoFuture.get().get();
- topologyUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER.getBytes(
+ topologyUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER.getBytes(
Charset.forName("UTF-8"))).toString());
+ networkTransactionService = new NetworkTransactionImpl(
+ new RequestProcessor(getDataStoreContextUtil().getDataBroker()));
+ tapiLink = new TapiLink(networkTransactionService);
LOG.info("TEST SETUP READY");
}
@Test
public void convertNodeWhenNoStates() {
- Node tpdr = changeTerminationPointState(tpdr100G, "XPDR1-NETWORK1", null, null);
+ Node tpdr = changeTerminationPointState(tpdr100G, "XPDR1-NETWORK1", "XPDR1-CLIENT1", null, null);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : tpdr100G.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
networkPortList.add(tp.getTpId().getValue());
}
}
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
tapiFactory.convertNode(tpdr, networkPortList);
Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
.getTapiNodes().get(new
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeKey(dsrNodeUuid));
Uuid enetworkNepUuid = new Uuid(
- UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+eODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
+ UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+eODU+XPDR1-CLIENT1").getBytes(Charset.forName("UTF-8")))
.toString());
Uuid inetworkNepUuid = new Uuid(
UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+iODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
@Test
public void convertNodeWhenBadStates1() {
- Node tpdr = changeTerminationPointState(tpdr100G, "XPDR1-NETWORK1", AdminStates.OutOfService,
- State.OutOfService);
+ Node tpdr = changeTerminationPointState(tpdr100G, "XPDR1-NETWORK1", "XPDR1-CLIENT1",
+ AdminStates.OutOfService, State.OutOfService);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : tpdr100G.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
networkPortList.add(tp.getTpId().getValue());
}
}
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
tapiFactory.convertNode(tpdr, networkPortList);
Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
.getTapiNodes().get(new
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeKey(dsrNodeUuid));
Uuid enetworkNepUuid = new Uuid(
- UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+eODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
+ UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+eODU+XPDR1-CLIENT1").getBytes(Charset.forName("UTF-8")))
.toString());
Uuid inetworkNepUuid = new Uuid(
UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+iODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
@Test
public void convertNodeWhenBadStates2() {
- Node tpdr = changeTerminationPointState(tpdr100G, "XPDR1-NETWORK1", AdminStates.Maintenance,
- State.Degraded);
+ Node tpdr = changeTerminationPointState(tpdr100G, "XPDR1-NETWORK1", "XPDR1-CLIENT1",
+ AdminStates.Maintenance, State.Degraded);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : tpdr100G.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
networkPortList.add(tp.getTpId().getValue());
}
}
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
tapiFactory.convertNode(tpdr, networkPortList);
Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
.getTapiNodes().get(new
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeKey(dsrNodeUuid));
Uuid enetworkNepUuid = new Uuid(
- UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+eODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
+ UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+eODU+XPDR1-CLIENT1").getBytes(Charset.forName("UTF-8")))
.toString());
Uuid inetworkNepUuid = new Uuid(
UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+iODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
OperationalState.DISABLED, photnep.getOperationalState());
}
- @Test
- public void convertOtnLinkWhenNoState() {
- HashMap<LinkKey, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
- .networks.network.Link> otnLinksAlt = new HashMap<>(otnLinks);
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link
- link = changeOtnLinkState(otnLinks.get(new LinkKey(
- new LinkId("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"))), null, null);
- otnLinksAlt.replace(link.key(), link);
-
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
- List<String> networkPortListA = new ArrayList<>();
- for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListA.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxA, networkPortListA);
- List<String> networkPortListC = new ArrayList<>();
- for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListC.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxC, networkPortListC);
- tapiFactory.convertLinks(otnLinksAlt);
-
- List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link> tapiLinks
- = tapiFactory.getTapiLinks().values().stream()
- .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
- .collect(Collectors.toList());
- assertNull("Administrative State should not be present", tapiLinks.get(0).getAdministrativeState());
- assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
- assertNull("Operational State should not be present", tapiLinks.get(0).getOperationalState());
- assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
- }
-
- @Test
- public void convertOtnLinkWhenNoStateOnOppositeLink() {
- HashMap<LinkKey, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
- .networks.network.Link> otnLinksAlt = new HashMap<>(otnLinks);
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link
- link = changeOtnLinkState(otnLinks.get(new LinkKey(
- new LinkId("ODTU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1"))), null, null);
- otnLinksAlt.replace(link.key(), link);
-
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
- List<String> networkPortListA = new ArrayList<>();
- for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListA.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxA, networkPortListA);
- List<String> networkPortListC = new ArrayList<>();
- for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListC.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxC, networkPortListC);
- tapiFactory.convertLinks(otnLinksAlt);
-
- List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link> tapiLinks
- = tapiFactory.getTapiLinks().values().stream()
- .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
- .collect(Collectors.toList());
- assertNull("Administrative State should not be present", tapiLinks.get(0).getAdministrativeState());
- assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
- assertNull("Operational State should not be present", tapiLinks.get(0).getOperationalState());
- assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
- }
-
- @Test
- public void convertOtnLinkWhenBadState1() {
- HashMap<LinkKey, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
- .networks.network.Link> otnLinksAlt = new HashMap<>(otnLinks);
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link
- link = changeOtnLinkState(otnLinks.get(new LinkKey(
- new LinkId("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"))),
- AdminStates.OutOfService, State.OutOfService);
- otnLinksAlt.replace(link.key(), link);
-
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
- List<String> networkPortListA = new ArrayList<>();
- for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListA.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxA, networkPortListA);
- List<String> networkPortListC = new ArrayList<>();
- for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListC.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxC, networkPortListC);
- tapiFactory.convertLinks(otnLinksAlt);
-
- List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link> tapiLinks
- = tapiFactory.getTapiLinks().values().stream()
- .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
- .collect(Collectors.toList());
- assertEquals("Administrative state should be LOCKED",
- AdministrativeState.LOCKED, tapiLinks.get(0).getAdministrativeState());
- assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
- assertEquals("Operational state should be DISABLED",
- OperationalState.DISABLED, tapiLinks.get(0).getOperationalState());
- assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
- }
-
- @Test
- public void convertOtnLinkWhenBadState2() {
- HashMap<LinkKey, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
- .networks.network.Link> otnLinksAlt = new HashMap<>(otnLinks);
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link
- link = changeOtnLinkState(otnLinks.get(new LinkKey(
- new LinkId("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"))),
- AdminStates.Maintenance, State.Degraded);
- otnLinksAlt.replace(link.key(), link);
-
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
- List<String> networkPortListA = new ArrayList<>();
- for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListA.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxA, networkPortListA);
- List<String> networkPortListC = new ArrayList<>();
- for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListC.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxC, networkPortListC);
- tapiFactory.convertLinks(otnLinksAlt);
-
- List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link> tapiLinks
- = tapiFactory.getTapiLinks().values().stream()
- .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
- .collect(Collectors.toList());
- assertEquals("Administrative state should be LOCKED",
- AdministrativeState.LOCKED, tapiLinks.get(0).getAdministrativeState());
- assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
- assertEquals("Operational state should be DISABLED",
- OperationalState.DISABLED, tapiLinks.get(0).getOperationalState());
- assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
- }
-
- @Test
- public void convertOtnLinkWhenBadStateOnOppositeLink() {
- HashMap<LinkKey, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
- .networks.network.Link> otnLinksAlt = new HashMap<>(otnLinks);
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link
- link = changeOtnLinkState(otnLinks.get(new LinkKey(
- new LinkId("ODTU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1"))),
- AdminStates.OutOfService, State.OutOfService);
- otnLinksAlt.replace(link.key(), link);
-
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
- List<String> networkPortListA = new ArrayList<>();
- for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListA.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxA, networkPortListA);
- List<String> networkPortListC = new ArrayList<>();
- for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListC.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxC, networkPortListC);
- tapiFactory.convertLinks(otnLinksAlt);
-
- List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link> tapiLinks
- = tapiFactory.getTapiLinks().values().stream()
- .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
- .collect(Collectors.toList());
- assertEquals("Administrative state should be LOCKED",
- AdministrativeState.LOCKED, tapiLinks.get(0).getAdministrativeState());
- assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
- assertEquals("Operational state should be DISABLED",
- OperationalState.DISABLED, tapiLinks.get(0).getOperationalState());
- assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
- }
-
@Test
public void convertNodeForTransponder100G() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : tpdr100G.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
@Test
public void convertNodeForOtnMuxponder() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
@Test
public void convertNodeForOtnSwitch() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : otnSwitch.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
= tapiFactory.getTapiLinks().values().stream()
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- checkTransitionalLink(tapiLinks.get(1), dsrNodeUuid, otsiNodeUuid,
+ checkTransitionalLink(tapiLinks.get(2), dsrNodeUuid, otsiNodeUuid,
"SPDR-SA1-XPDR2+iODU+XPDR2-NETWORK4", "SPDR-SA1-XPDR2+iOTSi+XPDR2-NETWORK4", "SPDR-SA1-XPDR2");
}
- @Test
- public void convertOtnLink() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
- List<String> networkPortListA = new ArrayList<>();
- for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListA.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxA, networkPortListA);
- List<String> networkPortListC = new ArrayList<>();
- for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) {
- if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
- networkPortListC.add(tp.getTpId().getValue());
- }
- }
- tapiFactory.convertNode(otnMuxC, networkPortListC);
- tapiFactory.convertLinks(otnLinks);
- assertEquals("Link list size should be 4", 4, tapiFactory.getTapiLinks().size());
-
- Uuid node1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
- .toString());
- Uuid node2Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
- .toString());
- Uuid node3Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+OTSi".getBytes(Charset.forName("UTF-8")))
- .toString());
- Uuid node4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+OTSi".getBytes(Charset.forName("UTF-8")))
- .toString());
- Uuid tp1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1"
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1"
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid tp3Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1"
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid tp4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid link1Uuid =
- new Uuid(UUID.nameUUIDFromBytes("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid link2Uuid =
- new Uuid(UUID.nameUUIDFromBytes("OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"
- .getBytes(Charset.forName("UTF-8"))).toString());
-
- List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link> links
- = tapiFactory.getTapiLinks().values().stream()
- .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
- .collect(Collectors.toList());
- checkOtnLink(links.get(0), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link1Uuid,
- "ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1");
- checkOtnLink(links.get(3), node3Uuid, node4Uuid, tp3Uuid, tp4Uuid, link2Uuid,
- "OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1");
- }
-
@Test
public void convertNodeForRoadmWhenNoOtnMuxAttached() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
tapiFactory.convertRoadmNode(roadmA, openroadmNet);
assertEquals("Node list size should be 1", 1, tapiFactory.getTapiNodes().size());
@Test
public void convertNodeForRoadmWhenRoadmNeighborAttached() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
tapiFactory.convertRoadmNode(roadmA, openroadmNet);
tapiFactory.convertRoadmNode(roadmC, openroadmNet);
Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes(("ROADM-C1+PHOTONIC_MEDIA+DEG1-TTP-TXRX")
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid linkUuid =
- new Uuid(UUID.nameUUIDFromBytes("ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX"
- .getBytes(Charset.forName("UTF-8"))).toString());
+ new Uuid(UUID.nameUUIDFromBytes(
+ "ROADM-C1+PHOTONIC_MEDIA+DEG1-TTP-TXRXtoROADM-A1+PHOTONIC_MEDIA+DEG2-TTP-TXRX"
+ .getBytes(Charset.forName("UTF-8"))).toString());
checkOmsLink(links.get(0), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, linkUuid,
- "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX");
+ "ROADM-C1+PHOTONIC_MEDIA+DEG1-TTP-TXRXtoROADM-A1+PHOTONIC_MEDIA+DEG2-TTP-TXRX");
}
@Test
public void convertNodeForRoadmWhenOtnMuxAttached() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes(("ROADM-A1+PHOTONIC_MEDIA+SRG1-PP2-TXRX")
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid linkUuid =
- new Uuid(UUID.nameUUIDFromBytes("ROADM-A1-SRG1-SRG1-PP2-TXRXtoSPDR-SA1-XPDR1-XPDR1-NETWORK1"
- .getBytes(Charset.forName("UTF-8"))).toString());
- checkXpdrRdmLink(links.get(0), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, linkUuid,
- "ROADM-A1-SRG1-SRG1-PP2-TXRXtoSPDR-SA1-XPDR1-XPDR1-NETWORK1");
+ new Uuid(UUID.nameUUIDFromBytes(
+ "ROADM-A1+PHOTONIC_MEDIA+SRG1-PP2-TXRXtoSPDR-SA1-XPDR1+PHOTONIC_MEDIA+XPDR1-NETWORK1"
+ .getBytes(Charset.forName("UTF-8"))).toString());
+ checkXpdrRdmLink(links.get(1), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, linkUuid,
+ "ROADM-A1+PHOTONIC_MEDIA+SRG1-PP2-TXRXtoSPDR-SA1-XPDR1+PHOTONIC_MEDIA+XPDR1-NETWORK1");
}
private void checkDsrNode(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node node,
AdministrativeState.UNLOCKED, node.getAdministrativeState());
assertEquals("life-cycle state should be INSTALLED", LifecycleState.INSTALLED, node.getLifecycleState());
assertEquals("operational state should be ENABLED", OperationalState.ENABLED, node.getOperationalState());
- assertEquals("value-name should be 'dsr/odu node name'",
- "dsr/odu node name", node.nonnullName().values().stream().findFirst().get().getValueName());
+ assertThat("one value-name should be 'dsr/odu node name'",
+ new ArrayList<>(node.nonnullName().keySet()), hasItem(new NameKey("dsr/odu node name")));
assertEquals("dsr node should manage 2 protocol layers : dsr and odu",
2, node.getLayerProtocolName().size());
assertThat("dsr node should manage 2 protocol layers : dsr and odu",
UUID.nameUUIDFromBytes((nodeId + "+DSR+XPDR2-CLIENT4").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepClient100GSwitch(nep1, client4NepUuid, nodeId + "+DSR+XPDR2-CLIENT4", "NodeEdgePoint_C");
- OwnedNodeEdgePoint enep2 = enepsN.get(3);
+ OwnedNodeEdgePoint enep2 = enepsN.get(2);
OwnedNodeEdgePoint inep2 = inepsN.get(3);
Uuid enetworkNepUuid = new Uuid(
- UUID.nameUUIDFromBytes((nodeId + "+eODU+XPDR2-NETWORK1").getBytes(Charset.forName("UTF-8")))
+ UUID.nameUUIDFromBytes((nodeId + "+eODU+XPDR2-CLIENT4").getBytes(Charset.forName("UTF-8")))
.toString());
Uuid inetworkNepUuid = new Uuid(
UUID.nameUUIDFromBytes((nodeId + "+iODU+XPDR2-NETWORK1").getBytes(Charset.forName("UTF-8")))
.toString());
- checkNepNetworkODU4(enep2, enetworkNepUuid, nodeId + "+eODU+XPDR2-NETWORK1", "eNodeEdgePoint_N", true);
- checkNepNetworkODU4(inep2, inetworkNepUuid, nodeId + "+iODU+XPDR2-NETWORK1", "iNodeEdgePoint_N", false);
+ checkNepeODU4(enep2, enetworkNepUuid, nodeId + "+eODU+XPDR2-CLIENT4", "eNodeEdgePoint_N", false);
+ checkNepNetworkODU4(inep2, inetworkNepUuid, nodeId + "+iODU+XPDR2-NETWORK1", "iNodeEdgePoint_N", true);
List<NodeRuleGroup> nrgList = node.nonnullNodeRuleGroup().values().stream()
.sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
.collect(Collectors.toList());
.filter(n -> n.getName().containsKey(new NameKey("NodeEdgePoint_C")))
.sorted((nep3, nep4) -> nep3.getUuid().getValue().compareTo(nep4.getUuid().getValue()))
.collect(Collectors.toList());
- assertEquals("Mux-DSR node should have 1 eNEP network", 1, enepsN.size());
+ assertEquals("Mux-DSR node should have 4 eNEP network", 4, enepsN.size());
assertEquals("Mux-DSR node should have 1 iNEP network", 1, inepsN.size());
assertEquals("Mux-DSR node should have 4 NEPs client", 4, nepsC.size());
OwnedNodeEdgePoint nep3 = nepsC.get(2);
UUID.nameUUIDFromBytes((nodeId + "+DSR+XPDR1-CLIENT3").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepClient10G(nep3, client3NepUuid, nodeId + "+DSR+XPDR1-CLIENT3", "NodeEdgePoint_C");
-
- OwnedNodeEdgePoint enep4 = enepsN.get(0);
+ OwnedNodeEdgePoint enep4 = enepsN.get(3);
OwnedNodeEdgePoint inep4 = inepsN.get(0);
Uuid enetworkNepUuid2 = new Uuid(
- UUID.nameUUIDFromBytes((nodeId + "+eODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
+ UUID.nameUUIDFromBytes((nodeId + "+eODU+XPDR1-CLIENT3").getBytes(Charset.forName("UTF-8")))
.toString());
Uuid inetworkNepUuid2 = new Uuid(
UUID.nameUUIDFromBytes((nodeId + "+iODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
.toString());
- checkNepNetworkODU4(enep4, enetworkNepUuid2, nodeId + "+eODU+XPDR1-NETWORK1", "eNodeEdgePoint_N", true);
+ checkNepeODU4(enep4, enetworkNepUuid2, nodeId + "+eODU+XPDR1-CLIENT3", "eNodeEdgePoint_N", false);
checkNepNetworkODU4(inep4, inetworkNepUuid2, nodeId + "+iODU+XPDR1-NETWORK1", "iNodeEdgePoint_N",
- false);
+ true);
List<NodeRuleGroup> nrgList2 = node.nonnullNodeRuleGroup().values().stream()
.sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
.collect(Collectors.toList());
UUID.nameUUIDFromBytes((nodeId + "+DSR+XPDR1-CLIENT1").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepClient100GTpdr(nep5, client1NepUuid, nodeId + "+DSR+XPDR1-CLIENT1", "100G-tpdr");
-
OwnedNodeEdgePoint enep6 = enepsN.get(0);
OwnedNodeEdgePoint inep6 = inepsN.get(1);
Uuid enetworkNepUuid3 = new Uuid(
- UUID.nameUUIDFromBytes((nodeId + "+eODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
+ UUID.nameUUIDFromBytes((nodeId + "+eODU+XPDR1-CLIENT1").getBytes(Charset.forName("UTF-8")))
.toString());
Uuid inetworkNepUuid3 = new Uuid(
UUID.nameUUIDFromBytes((nodeId + "+iODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
.toString());
- checkNepNetworkODU4(enep6, enetworkNepUuid3, nodeId + "+eODU+XPDR1-NETWORK1", "eNodeEdgePoint_N", true);
+ checkNepeODU4(enep6, enetworkNepUuid3, nodeId + "+eODU+XPDR1-CLIENT1", "eNodeEdgePoint_N", false);
checkNepNetworkODU4(inep6, inetworkNepUuid3, nodeId + "+iODU+XPDR1-NETWORK1", "iNodeEdgePoint_N",
- false);
+ true);
List<NodeRuleGroup> nrgList3 = node.nonnullNodeRuleGroup().values().stream()
.sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
.collect(Collectors.toList());
if (!otsiNodeType.equals("roadm")) {
assertEquals("incorrect node name", nodeId + "+OTSi", node.getName().get(
new NameKey("otsi node name")).getValue());
- assertEquals("value-name should be 'dsr/odu node name'",
- "otsi node name", node.nonnullName().values().stream().findFirst().get().getValueName());
+ assertThat("one value-name should be 'dsr/odu node name'",
+ new ArrayList<>(node.nonnullName().keySet()), hasItem(new NameKey("otsi node name")));
nepsI = node.nonnullOwnedNodeEdgePoint().values().stream()
.filter(n -> n.getName().containsKey(new NameKey("iNodeEdgePoint")))
.sorted((nep1, nep2) -> nep1.getUuid().getValue().compareTo(nep2.getUuid().getValue()))
} else {
assertEquals("incorrect node name", nodeId + "+PHOTONIC_MEDIA", node.getName().get(
new NameKey("roadm node name")).getValue());
- assertEquals("value-name should be 'dsr/odu node name'",
- "roadm node name", node.nonnullName().values().stream().findFirst().get().getValueName());
+ assertThat("one value-name should be 'dsr/odu node name'",
+ new ArrayList<>(node.nonnullName().keySet()), hasItem(new NameKey("roadm node name")));
nepsMc = node.nonnullOwnedNodeEdgePoint().values().stream()
.filter(n -> n.getName().containsKey(new NameKey("MEDIA_CHANNELNodeEdgePoint")))
.sorted((nep1, nep2) -> nep1.getUuid().getValue().compareTo(nep2.getUuid().getValue()))
assertEquals("otsi node should manage a single protocol layer : PHOTONIC_MEDIA",
1, node.getLayerProtocolName().size());
assertEquals("otsi node should manage a single protocol layer : PHOTONIC_MEDIA",
- LayerProtocolName.PHOTONICMEDIA, node.getLayerProtocolName().get(0));
+ LayerProtocolName.PHOTONICMEDIA, node.getLayerProtocolName().stream().findFirst().get());
switch (otsiNodeType) {
case "switch":
3, nep.getSupportedCepLayerProtocolQualifier().size());
assertThat("client nep should support 3 kind of cep",
nep.getSupportedCepLayerProtocolQualifier(),
- hasItems(ODUTYPEODU2.class, ODUTYPEODU2E.class, DIGITALSIGNALTYPE10GigELAN.class));
+ hasItems(ODUTYPEODU2.VALUE, ODUTYPEODU2E.VALUE, DIGITALSIGNALTYPE10GigELAN.VALUE));
assertEquals("client nep should be of DSR protocol type", LayerProtocolName.DSR, nep.getLayerProtocolName());
checkCommonPartOfNep(nep, false);
}
+ private void checkNepeODU4(OwnedNodeEdgePoint nep, Uuid nepUuid, String portName, String nepName,
+ boolean withSip) {
+ assertEquals("bad uuid for " + portName, nepUuid, nep.getUuid());
+ List<Name> nameList = new ArrayList<>(nep.nonnullName().values());
+ Name name = nameList.get(0);
+ assertEquals("value of eODU nep should be '" + portName + "'",
+ portName, name.getValue());
+ assertEquals("value-name of eODU nep for '" + portName + "' should be '" + nepName + "'",
+ nepName, name.getValueName());
+ // TODO: depending on the type of node there is one type or another
+ assertThat("eODU nep should support 1, 2 or 3 kind of cep, depending on client port",
+ nep.getSupportedCepLayerProtocolQualifier().size(), anyOf(is(1), is(2), is(3)));
+ assertTrue("eODU nep should support 1 kind of cep",
+ nep.getSupportedCepLayerProtocolQualifier().stream().anyMatch(splc -> splc.equals(ODUTYPEODU0.VALUE)
+ || splc.equals(ODUTYPEODU2.VALUE) || splc.equals(ODUTYPEODU2E.VALUE)
+ || splc.equals(ODUTYPEODU4.VALUE)));
+ assertEquals("eODU nep should be of ODU protocol type", LayerProtocolName.ODU, nep.getLayerProtocolName());
+ checkCommonPartOfNep(nep, withSip);
+ }
+
private void checkNepNetworkODU4(OwnedNodeEdgePoint nep, Uuid nepUuid, String portName, String nepName,
boolean withSip) {
assertEquals("bad uuid for " + portName, nepUuid, nep.getUuid());
1, nep.getSupportedCepLayerProtocolQualifier().size());
assertThat("network nep should support 1 kind of cep",
nep.getSupportedCepLayerProtocolQualifier(),
- hasItem(ODUTYPEODU4.class));
+ hasItem(ODUTYPEODU4.VALUE));
assertEquals("network nep should be of ODU protocol type", LayerProtocolName.ODU, nep.getLayerProtocolName());
checkCommonPartOfNep(nep, withSip);
}
assertEquals("each node-rule-group should contain 2 NEP for muxponder DSR",
2, nodeRuleGroup.getNodeEdgePoint().size());
}
- List<NodeEdgePoint> nodeEdgePointList = new ArrayList<>(nrgList.get(0).nonnullNodeEdgePoint().values());
+ List<NodeEdgePoint> nodeEdgePointList = new ArrayList<>(nrgList.get(2).nonnullNodeEdgePoint().values());
assertThat("node-rule-group nb 2 should be between nep-client4 and nep-network1",
nodeEdgePointList.get(1).getNodeEdgePointUuid().getValue(),
either(containsString(networkNepUuid.getValue())).or(containsString(clientNepUuid.getValue())));
.compareTo(nrg2.getNodeEdgePointUuid().getValue()))
.collect(Collectors.toList());
assertEquals("in the sorted node-rule-group, nep number 7 should be XPDR2-NETWORK1",
- networkNepUuid, nrg.get(7).getNodeEdgePointUuid());
+ networkNepUuid, nrg.get(6).getNodeEdgePointUuid());
assertEquals("in the sorted node-rule-group, nep number 4 should be XPDR2-CLIENT4",
- clientNepUuid, nrg.get(4).getNodeEdgePointUuid());
+ clientNepUuid, nrg.get(3).getNodeEdgePointUuid());
assertEquals("any item of the node-rule-group should have the same nodeUuid",
nodeUuid, nrg.get(4).getNodeUuid());
assertEquals("any item of the node-rule-group should have the same nodeUuid",
2, nep.getSupportedCepLayerProtocolQualifier().size());
assertThat("client nep should support 2 kind of cep",
nep.getSupportedCepLayerProtocolQualifier(),
- hasItems(ODUTYPEODU4.class, DIGITALSIGNALTYPE100GigE.class));
+ hasItems(ODUTYPEODU4.VALUE, DIGITALSIGNALTYPE100GigE.VALUE));
assertEquals("client nep should be of DSR protocol type", LayerProtocolName.DSR, nep.getLayerProtocolName());
checkCommonPartOfNep(nep, false);
}
1, nep.getSupportedCepLayerProtocolQualifier().size());
assertThat("client nep should support 2 kind of cep",
nep.getSupportedCepLayerProtocolQualifier(),
- hasItems(DIGITALSIGNALTYPE100GigE.class));
+ hasItems(DIGITALSIGNALTYPE100GigE.VALUE));
assertEquals("client nep should be of DSR protocol type", LayerProtocolName.DSR, nep.getLayerProtocolName());
checkCommonPartOfNep(nep, false);
}
2, nep.getSupportedCepLayerProtocolQualifier().size());
assertThat("OTSi nep should support 2 kind of cep",
nep.getSupportedCepLayerProtocolQualifier(),
- hasItems(PHOTONICLAYERQUALIFIEROMS.class, PHOTONICLAYERQUALIFIEROTSi.class));
+ hasItems(PHOTONICLAYERQUALIFIEROMS.VALUE, PHOTONICLAYERQUALIFIEROTSi.VALUE));
assertEquals("OTSi nep should be of PHOTONIC_MEDIA protocol type",
LayerProtocolName.PHOTONICMEDIA, nep.getLayerProtocolName());
checkCommonPartOfNep(nep, withSip);
1, nep.getSupportedCepLayerProtocolQualifier().size());
assertThat("OTSi nep should support 2 kind of cep",
nep.getSupportedCepLayerProtocolQualifier(),
- hasItems(PHOTONICLAYERQUALIFIEROMS.class));
+ hasItems(PHOTONICLAYERQUALIFIEROMS.VALUE));
assertEquals("OTSi nep should be of PHOTONIC_MEDIA protocol type",
LayerProtocolName.PHOTONICMEDIA, nep.getLayerProtocolName());
checkCommonPartOfNep(nep, withSip);
private void checkTransitionalLink(org.opendaylight.yang.gen.v1
.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link link,
Uuid node1Uuid, Uuid node2Uuid, String tp1, String tp2, String ietfNodeId) {
- Uuid linkUuid = new Uuid(UUID.nameUUIDFromBytes((ietfNodeId + "--" + tp1 + "--" + tp2)
+ Uuid linkUuid = new Uuid(UUID.nameUUIDFromBytes((tp1 + "to" + tp2)
.getBytes(Charset.forName("UTF-8"))).toString());
assertEquals("bad uuid for link between DSR node " + tp1 + " and iOTSI port " + tp2, linkUuid, link.getUuid());
assertEquals("Available capacity unit should be GBPS",
either(containsString(nep1Uuid.getValue())).or(containsString(nep2Uuid.getValue())));
}
- private void checkOtnLink(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link link,
- Uuid node1Uuid, Uuid node2Uuid, Uuid tp1Uuid, Uuid tp2Uuid, Uuid linkUuid,
- String linkName) {
- assertEquals("bad name for the link", linkName, link.getName().get(
- new NameKey("otn link name")).getValue());
- assertEquals("bad uuid for link", linkUuid, link.getUuid());
- assertEquals("Available capacity unit should be MBPS",
- CapacityUnit.MBPS, link.getAvailableCapacity().getTotalSize().getUnit());
- String prefix = linkName.split("-")[0];
- if ("OTU4".equals(prefix)) {
- assertEquals("Available capacity -total size value should be 0",
- Uint64.valueOf(0), link.getAvailableCapacity().getTotalSize().getValue());
- } else if ("ODU4".equals(prefix)) {
- assertEquals("Available capacity -total size value should be 100 000",
- Uint64.valueOf(100000), link.getAvailableCapacity().getTotalSize().getValue());
- }
- assertEquals("Total capacity unit should be GBPS",
- CapacityUnit.GBPS, link.getTotalPotentialCapacity().getTotalSize().getUnit());
- assertEquals("Total capacity -total size value should be 100",
- Uint64.valueOf(100), link.getTotalPotentialCapacity().getTotalSize().getValue());
- if ("OTU4".equals(prefix)) {
- assertEquals("otn link should be between 2 nodes of protocol layers PHOTONIC_MEDIA",
- LayerProtocolName.PHOTONICMEDIA.getName(), link.getLayerProtocolName().get(0).getName());
- } else if ("ODU4".equals(prefix)) {
- assertEquals("otn link should be between 2 nodes of protocol layers ODU",
- LayerProtocolName.ODU.getName(), link.getLayerProtocolName().get(0).getName());
- }
- assertEquals("otn tapi link should be BIDIRECTIONAL",
- ForwardingDirection.BIDIRECTIONAL, link.getDirection());
- List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210
- .link.NodeEdgePoint> nodeEdgePointList = new ArrayList<>(link.nonnullNodeEdgePoint().values());
- assertEquals("topology uuid should be the same for the two termination point of the link",
- topologyUuid, nodeEdgePointList.get(0).getTopologyUuid());
- assertEquals("topology uuid should be the same for the two termination point of the link",
- topologyUuid, nodeEdgePointList.get(1).getTopologyUuid());
- assertThat("otn links should terminate on two distinct nodes",
- nodeEdgePointList.get(0).getNodeUuid().getValue(),
- either(containsString(node1Uuid.getValue())).or(containsString(node2Uuid.getValue())));
- assertThat("otn links should terminate on two distinct nodes",
- nodeEdgePointList.get(1).getNodeUuid().getValue(),
- either(containsString(node1Uuid.getValue())).or(containsString(node2Uuid.getValue())));
- assertThat("otn links should terminate on two distinct tps",
- nodeEdgePointList.get(0).getNodeEdgePointUuid().getValue(),
- either(containsString(tp1Uuid.getValue())).or(containsString(tp2Uuid.getValue())));
- assertThat("otn links should terminate on two distinct tps",
- nodeEdgePointList.get(1).getNodeEdgePointUuid().getValue(),
- either(containsString(tp1Uuid.getValue())).or(containsString(tp2Uuid.getValue())));
- assertEquals("operational state should be ENABLED",
- OperationalState.ENABLED, link.getOperationalState());
- assertEquals("administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, link.getAdministrativeState());
- }
private void checkOmsLink(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link link,
Uuid node1Uuid, Uuid node2Uuid, Uuid tp1Uuid, Uuid tp2Uuid, Uuid linkUuid,
new NameKey("OMS link name")).getValue());
assertEquals("bad uuid for link", linkUuid, link.getUuid());
assertEquals("oms link should be between 2 nodes of protocol layers PHOTONIC_MEDIA",
- LayerProtocolName.PHOTONICMEDIA.getName(), link.getLayerProtocolName().get(0).getName());
+ LayerProtocolName.PHOTONICMEDIA.getName(),
+ link.getLayerProtocolName().stream().findFirst().get().getName());
assertEquals("otn tapi link should be BIDIRECTIONAL",
ForwardingDirection.BIDIRECTIONAL, link.getDirection());
List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210
new NameKey("XPDR-RDM link name")).getValue());
assertEquals("bad uuid for link", linkUuid, link.getUuid());
assertEquals("oms link should be between 2 nodes of protocol layers PHOTONIC_MEDIA",
- LayerProtocolName.PHOTONICMEDIA.getName(), link.getLayerProtocolName().get(0).getName());
+ LayerProtocolName.PHOTONICMEDIA.getName(),
+ link.getLayerProtocolName().stream().findFirst().get().getName());
assertEquals("otn tapi link should be BIDIRECTIONAL",
ForwardingDirection.BIDIRECTIONAL, link.getDirection());
List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210
either(containsString(tp1Uuid.getValue())).or(containsString(tp2Uuid.getValue())));
}
- private Node changeTerminationPointState(Node initialNode, String tpid, AdminStates admin, State oper) {
+ private Node changeTerminationPointState(Node initialNode, String tpid, String tpid1, AdminStates admin,
+ State oper) {
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder tpdr1Bldr
= new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder(
initialNode.augmentation(Node1.class));
.setOperationalState(oper)
.build());
tps.replace(tpBldr.key(), tpBldr.build());
- tpdr1Bldr.setTerminationPoint(tps);
- return new NodeBuilder(initialNode).addAugmentation(tpdr1Bldr.build()).build();
- }
-
- private org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
- .ietf.network.topology.rev180226.networks.network.Link changeOtnLinkState(
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network
- .Link initiallink, AdminStates admin, State oper) {
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network
- .LinkBuilder linkBldr = new
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network
- .LinkBuilder(initiallink);
- linkBldr.addAugmentation(new Link1Builder(linkBldr.augmentation(Link1.class))
+ TerminationPointBuilder tpBldr1 = new TerminationPointBuilder(
+ tps.get(new TerminationPointKey(new TpId(tpid1))));
+ tpBldr1.addAugmentation(new TerminationPoint1Builder(tpBldr1.augmentation(TerminationPoint1.class))
.setAdministrativeState(admin)
.setOperationalState(oper)
.build());
- return linkBldr.build();
+ tps.replace(tpBldr1.key(), tpBldr1.build());
+ tpdr1Bldr.setTerminationPoint(tps);
+ return new NodeBuilder(initialNode).addAugmentation(tpdr1Bldr.build()).build();
}
}