import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation.FiberType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.Span;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType;
-import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1;
+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.link.rev200529.span.attributes.LinkConcatenation;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation.FiberType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.Span;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType;
+import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType;
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.topology.rev180226.LinkId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
private final String sourceCLLI;
private final String destCLLI;
private final LinkId oppositeLink;
+ private final AdminStates adminStates;
+ private final State state;
private final Long latency;
private final Long availableBandwidth;
private final Long usedBandwidth;
this.oppositeLink = calcOpposite(link);
+ this.adminStates = link.augmentation(Link1.class).getAdministrativeState();
+ this.state = link.augmentation(Link1.class).getOperationalState();
+
if (this.linkType == OpenroadmLinkType.ROADMTOROADM) {
this.omsAttributesSpan = MapUtils.getOmsAttributesSpan(link);
this.srlgList = MapUtils.getSRLG(link);
return oppositeLink;
}
+ public AdminStates getAdminStates() {
+ return adminStates;
+ }
+
+ public State getState() {
+ return state;
+ }
+
public Object getSourceTP() {
return sourceTP;
}
}
OtnLinkType otnLinkType = link
- .augmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1.class)
+ .augmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.Link1.class)
.getOtnLinkType();
if (this.availableBandwidth == 0L) {
LOG.error("PceLink: No bandwidth available for OTN Link, link {} is ignored ", linkId);
LOG.error("PceLink: No Link type or opposite link is available. Link is ignored {}", linkId);
return false;
}
+ if ((this.adminStates == null) || (this.state == null)) {
+ LOG.error("PceLink: Link is not available. Link is ignored {}", linkId);
+ return false;
+ }
if ((this.sourceId == null) || (this.destId == null) || (this.sourceTP == null) || (this.destTP == null)) {
LOG.error("PceLink: No Link source or destination is available. Link is ignored {}", linkId);
return false;