X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=networkmodel%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2FRdm2XpdrLink.java;h=c7aa9958d4684c7aee8de82bcd1952a08e48dfe7;hb=c2f1377c6fb6f0307d5b5956acdcd56581d9d834;hp=f3447e82620847f83350acfc572e5b938fd9cbac;hpb=a74ea5d87a2fe898b47a8f268e03522a6caaf3db;p=transportpce.git diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java index f3447e826..c7aa9958d 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java @@ -22,12 +22,14 @@ import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.networkmodel.util.LinkIdUtil; import org.opendaylight.transportpce.networkmodel.util.TopologyUtils; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev170818.links.input.grouping.LinksInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; +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.topology.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; 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; @@ -64,8 +66,10 @@ final class Rdm2XpdrLink { String destTp = linksInput.getTerminationPointNum(); // update tail-equipment-id for tp of link TerminationPoint xpdrTp = getTpofNode(srcNode, srcTp, dataBroker); + TerminationPoint rdmTp = getTpofNode(destNode, destTp, dataBroker); - Network topoNetowkLayer = createNetworkBuilder(srcNode, srcTp, destNode, destTp, false, xpdrTp).build(); + Network topoNetowkLayer = createNetworkBuilder(srcNode, srcTp, destNode, destTp, false, xpdrTp, + rdmTp).build(); InstanceIdentifier.InstanceIdentifierBuilder nwIID = InstanceIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))); WriteTransaction wrtx = dataBroker.newWriteOnlyTransaction(); @@ -92,11 +96,13 @@ final class Rdm2XpdrLink { String destTp = new StringBuilder("XPDR").append(linksInput.getXpdrNum()).append("-NETWORK") .append(linksInput.getNetworkNum()).toString(); TerminationPoint xpdrTp = getTpofNode(destNode, destTp, dataBroker); + TerminationPoint rdmTp = getTpofNode(srcNode, srcTp, dataBroker); - Network topoNetowkLayer = createNetworkBuilder(srcNode, srcTp, destNode, destTp, true, xpdrTp).build(); + Network topoNetowkLayer = createNetworkBuilder(srcNode, srcTp, destNode, destTp, true, xpdrTp, + rdmTp).build(); InstanceIdentifier.InstanceIdentifierBuilder nwIID = InstanceIdentifier.builder(Networks.class).child(Network.class, - new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))); + new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))); WriteTransaction wrtx = dataBroker.newWriteOnlyTransaction(); wrtx.merge(LogicalDatastoreType.CONFIGURATION, nwIID.build(), topoNetowkLayer); FluentFuture commit = wrtx.commit(); @@ -112,7 +118,7 @@ final class Rdm2XpdrLink { } private static NetworkBuilder createNetworkBuilder(String srcNode, String srcTp, String destNode, String destTp, - boolean isXponderInput, TerminationPoint xpdrTp) { + boolean isXponderInput, TerminationPoint xpdrTp, TerminationPoint rdmTp) { //update tp of nodes TerminationPointBuilder xpdrTpBldr = new TerminationPointBuilder(xpdrTp); if (xpdrTpBldr.augmentation(TerminationPoint1.class) != null) { @@ -138,13 +144,20 @@ final class Rdm2XpdrLink { nodeBldr.setNodeId(new NodeId(srcNode)); } - Link1Builder lnk1bldr = new Link1Builder(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder lnk2bldr - = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder() + Link1Builder lnk2bldr + = new Link1Builder() .setLinkType(isXponderInput ? OpenroadmLinkType.XPONDERINPUT : OpenroadmLinkType.XPONDEROUTPUT) .setOppositeLink(LinkIdUtil.getOppositeLinkId(srcNode, srcTp, destNode, destTp)); + // If both TPs of the Xpdr2Rdm link are inService --> link inService. Otherwise outOfService + if (State.InService.equals(xpdrTp.augmentation(org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev200529.TerminationPoint1.class).getOperationalState()) + && State.InService.equals(rdmTp.augmentation(org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev200529.TerminationPoint1.class).getOperationalState())) { + lnk2bldr.setOperationalState(State.InService).setAdministrativeState(AdminStates.InService); + } else { + lnk2bldr.setOperationalState(State.OutOfService).setAdministrativeState(AdminStates.OutOfService); + } LinkBuilder linkBuilder = TopologyUtils.createLink(srcNode, destNode, srcTp, destTp, null) - .addAugmentation(lnk1bldr.build()) .addAugmentation(lnk2bldr.build()); LOG.info("Link id in the linkbldr {}", linkBuilder.getLinkId()); @@ -154,12 +167,11 @@ final class Rdm2XpdrLink { NetworkId nwId = new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID); Node node = nodeBldr.build(); - NetworkBuilder nwBuilder = new NetworkBuilder() + return new NetworkBuilder() .setNetworkId(nwId) .withKey(new NetworkKey(nwId)) .addAugmentation(nwBldr1.build()) .setNode(ImmutableMap.of(node.key(),node)); - return nwBuilder; } private static TerminationPoint getTpofNode(String srcNode, String srcTp, DataBroker dataBroker) {