<version>1.2.0</version>
</dependency>
+ <!-- Aluminium bump -->
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-binding-runtime-spi</artifactId>
+ </dependency>
+
<!-- Sodium bump: javax.annotation.Nullable and friends -->
<dependency>
<groupId>com.google.code.findbugs</groupId>
package org.opendaylight.transportpce.pce;
import com.google.common.collect.ImmutableList;
-import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.opendaylight.transportpce.common.ResponseCodes;
public PceResult buildDescriptions() {
LOG.info("In buildDescriptions: AtoZ = {}", pathAtoZ);
- List<AToZ> atozList = new ArrayList<>();
+ Map<AToZKey,AToZ> atozList = new HashMap<>();
if (pathAtoZ == null) {
rc.setRC(ResponseCodes.RESPONSE_FAILED);
LOG.error("In buildDescriptions: there is empty AtoZ path");
pathZtoA = ImmutableList.copyOf(pathAtoZ).reverse();
LOG.info("In buildDescriptions: ZtoA {}", pathZtoA);
- List<ZToA> ztoaList = new ArrayList<>();
+ Map<ZToAKey,ZToA> ztoaList = new HashMap<>();
if (pathZtoA == null) {
rc.setRC(ResponseCodes.RESPONSE_FAILED);
LOG.error("In buildDescriptions: there is empty ZtoA path");
return rc;
}
- private void buildAtoZ(List<AToZ> etoeList, List<PceLink> path) {
+ private void buildAtoZ(Map<AToZKey, AToZ> atozList, List<PceLink> path) {
Integer index = 0;
PceLink lastLink = null;
AToZ lastResource = null;
AToZKey clientKey = new AToZKey(index.toString());
Resource clientResource = new ResourceBuilder().setResource(stp).build();
AToZ firstResource = new AToZBuilder().setId(tpName).withKey(clientKey).setResource(clientResource).build();
- etoeList.add(firstResource);
+ atozList.put(firstResource.key(),firstResource);
index += 1;
for (PceLink pcelink : path) {
String srcName = pcelink.getSourceId().getValue();
Resource nodeResource1 = new ResourceBuilder().setResource(sourceNode).build();
AToZ srcResource = new AToZBuilder().setId(srcName).withKey(sourceKey).setResource(nodeResource1).build();
index += 1;
- etoeList.add(srcResource);
+ atozList.put(srcResource.key(),srcResource);
// source TP
tpName = pcelink.getSourceTP().toString();
Resource tpResource1 = new ResourceBuilder().setResource(stp).build();
AToZ stpResource = new AToZBuilder().setId(tpName).withKey(srcTPKey).setResource(tpResource1).build();
index += 1;
- etoeList.add(stpResource);
+ atozList.put(stpResource.key(),stpResource);
String linkName = pcelink.getLinkId().getValue();
// Link
Resource nodeResource2 = new ResourceBuilder().setResource(atozLink).build();
AToZ linkResource = new AToZBuilder().setId(linkName).withKey(linkKey).setResource(nodeResource2).build();
index += 1;
- etoeList.add(linkResource);
+ atozList.put(linkResource.key(),linkResource);
String destName = pcelink.getDestId().getValue();
// target TP
Resource tpResource2 = new ResourceBuilder().setResource(dtp).build();
AToZ ttpResource = new AToZBuilder().setId(tpName).withKey(destTPKey).setResource(tpResource2).build();
index += 1;
- etoeList.add(ttpResource);
+ atozList.put(ttpResource.key(),ttpResource);
org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce
.resource.resource.resource.Node targetNode = new NodeBuilder()
lastLink = pcelink;
}
- etoeList.add(lastResource);
+ if (lastResource != null) {
+ atozList.put(lastResource.key(),lastResource);
+ }
// build Z side Client TP
tpName = lastLink.getClient();
clientKey = new AToZKey(index.toString());
clientResource = new ResourceBuilder().setResource(stp).build();
lastResource = new AToZBuilder().setId(tpName).withKey(clientKey).setResource(clientResource).build();
- etoeList.add(lastResource);
+ atozList.put(lastResource.key(),lastResource);
}
- private void buildZtoA(List<ZToA> etoelist, List<PceLink> path) {
+ private void buildZtoA(Map<ZToAKey, ZToA> ztoaList, List<PceLink> path) {
Integer index = 0;
PceLink lastLink = null;
ZToA lastResource = null;
ZToAKey clientKey = new ZToAKey(index.toString());
Resource clientResource = new ResourceBuilder().setResource(stp).build();
ZToA firstResource = new ZToABuilder().setId(tpName).withKey(clientKey).setResource(clientResource).build();
- etoelist.add(firstResource);
+ ztoaList.put(firstResource.key(),firstResource);
index += 1;
for (PceLink pcelinkAtoZ : path) {
Resource nodeResource1 = new ResourceBuilder().setResource(sourceNode).build();
ZToA srcResource = new ZToABuilder().setId(srcName).withKey(sourceKey).setResource(nodeResource1).build();
index += 1;
- etoelist.add(srcResource);
+ ztoaList.put(srcResource.key(),srcResource);
// source TP
tpName = pcelink.getSourceTP().toString();
Resource tpResource1 = new ResourceBuilder().setResource(stp).build();
ZToA stpResource = new ZToABuilder().setId(tpName).withKey(srcTPKey).setResource(tpResource1).build();
index += 1;
- etoelist.add(stpResource);
+ ztoaList.put(stpResource.key(),stpResource);
String linkName = pcelink.getLinkId().getValue();
// Link
Resource nodeResource2 = new ResourceBuilder().setResource(ztoaLink).build();
ZToA linkResource = new ZToABuilder().setId(linkName).withKey(linkKey).setResource(nodeResource2).build();
index += 1;
- etoelist.add(linkResource);
+ ztoaList.put(linkResource.key(),linkResource);
String destName = pcelink.getDestId().getValue();
// target TP
Resource tpResource2 = new ResourceBuilder().setResource(ttp).build();
ZToA ttpResource = new ZToABuilder().setId(tpName).withKey(destTPKey).setResource(tpResource2).build();
index += 1;
- etoelist.add(ttpResource);
+ ztoaList.put(ttpResource.key(),ttpResource);
org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce
lastLink = pcelink;
}
- etoelist.add(lastResource);
+ if (lastResource != null) {
+ ztoaList.put(lastResource.key(),lastResource);
+ }
// build Z side Client TP
tpName = lastLink.getClient();
clientKey = new ZToAKey(index.toString());
clientResource = new ResourceBuilder().setResource(stp).build();
lastResource = new ZToABuilder().setId(tpName).withKey(clientKey).setResource(clientResource).build();
- etoelist.add(lastResource);
+ ztoaList.put(lastResource.key(),lastResource);
}
public PceResult getReturnStructure() {
Include include = tmpGeneral.getInclude();
if (include != null) {
- List<OrderedHops> listHops = include.getOrderedHops();
+ List<OrderedHops> listHops = new ArrayList<>(include.nonnullOrderedHops().values());
if (listHops != null) {
readIncludeNodes(listHops, constraints);
}
}
private List<String> getAToZNodeList(PathDescription pathDescription) {
- List<AToZ> aendToZList = pathDescription.getAToZDirection().getAToZ();
+ List<AToZ> aendToZList = new ArrayList<>(pathDescription.getAToZDirection().nonnullAToZ().values());
return aendToZList.stream().filter(aToZ -> {
if (aToZ.getResource() == null || aToZ.getResource().getResource() == null) {
LOG.warn("Diversity constraint: Resource of AToZ node {} is null! Skipping this node!", aToZ.getId());
}
private List<String> getSRLGList(PathDescription pathDescription) {
- List<AToZ> aendToZList = pathDescription.getAToZDirection().getAToZ();
+ List<AToZ> aendToZList = new ArrayList<>(pathDescription.getAToZDirection().nonnullAToZ().values());
return aendToZList.stream().filter(aToZ -> {
if (aToZ.getResource() == null
|| aToZ.getResource().getResource() == null) {
package org.opendaylight.transportpce.pce.gnpy;
-//import com.google.common.base.Preconditions;
import com.google.gson.stream.JsonReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Optional;
import javax.annotation.Nonnull;
+import org.opendaylight.binding.runtime.api.BindingRuntimeContext;
+import org.opendaylight.binding.runtime.spi.BindingRuntimeHelpers;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
+import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.Result;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.explicit.route.hop.type.NumUnnumHop;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.Uint16;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
public GnpyResult(String gnpyResponseString, GnpyTopoImpl gnpyTopo) throws GnpyException, Exception {
this.mapNodeRefIp = gnpyTopo.getMapNodeRefIp();
// Create the schema context
- final ModuleInfoBackedContext moduleContext = ModuleInfoBackedContext.create();
- Iterable<? extends YangModuleInfo> moduleInfos;
-
- moduleInfos = Collections.singleton(BindingReflections.getModuleInfo(Result.class));
- moduleContext.addModuleInfos(moduleInfos);
- SchemaContext schemaContext = moduleContext.tryToCreateSchemaContext().get();
+ Collection<? extends YangModuleInfo> moduleInfos = Collections.singleton(BindingReflections
+ .getModuleInfo(Result.class));
+ BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
// Create the binding binding normalized node codec registry
- BindingRuntimeContext bindingRuntimeContext = BindingRuntimeContext.create(moduleContext, schemaContext);
- final BindingNormalizedNodeCodecRegistry codecRegistry =
- new BindingNormalizedNodeCodecRegistry(bindingRuntimeContext);
+ BindingRuntimeContext bindingContext =
+ BindingRuntimeHelpers.createRuntimeContext();
+ final BindingNormalizedNodeSerializer codecRegistry = new BindingCodecContext(bindingContext);
// Create the data object
QName pathQname = QName.create("gnpy:path", "2020-02-02", "result");
} else {
throw new GnpyException("In GnpyResult: the codec registry from the normalized node is null");
}
- List<Response> responses = null;
- responses = ((Result) dataObject).getResponse();
- if (responses == null) {
+ List<Response> responses = new ArrayList<>(((Result) dataObject).nonnullResponse().values());
+ if (responses.isEmpty()) {
throw new GnpyException("In GnpyResult: the response from GNpy is null!");
}
LOG.info("The response id is {}; ", responses.get(0).getResponseId());
if (((noPathType.equals("NO_FEASIBLE_BAUDRATE_WITH_SPACING"))
&& (noPathType.equals("NO_FEASIBLE_MODE"))) && ((noPathType.equals("MODE_NOT_FEASIBLE"))
&& (noPathType.equals("NO_SPECTRUM")))) {
- List<PathMetric> pathMetricList = noPathCase.getNoPath().getPathProperties().getPathMetric();
+ Collection<PathMetric> pathMetricList = noPathCase.getNoPath()
+ .getPathProperties().nonnullPathMetric().values();
LOG.info("GNPy : path is not feasible : {}", noPathType);
for (PathMetric pathMetric : pathMetricList) {
String metricType = pathMetric.getMetricType().getSimpleName();
} else if (response.getResponseType() instanceof PathCase) {
LOG.info("GNPy : path is feasible");
PathCase pathCase = (PathCase) response.getResponseType();
- List<PathMetric> pathMetricList = pathCase.getPathProperties().getPathMetric();
+ Collection<PathMetric> pathMetricList = pathCase
+ .getPathProperties().nonnullPathMetric().values();
// Path metrics
for (PathMetric pathMetric : pathMetricList) {
String metricType = pathMetric.getMetricType().getSimpleName();
.ordered.constraints.sp.hop.type.hop.type.Node node = new NodeBuilder().setNodeId(nodeId)
.build();
HopType hopType = new HopTypeBuilder().setHopType(node).build();
- OrderedHops orderedHops = new OrderedHopsBuilder().setHopNumber(counter).setHopType(hopType)
+ OrderedHops orderedHops = new OrderedHopsBuilder()
+ .setHopNumber(Uint16.valueOf(counter)).setHopType(hopType)
.build();
orderedHopsList.add(orderedHops);
counter++;
}
private SchemaContext getSchemaContext(Class<? extends DataObject> objectClass) throws GnpyException, Exception {
-
- final ModuleInfoBackedContext moduleContext = ModuleInfoBackedContext.create();
- Iterable<? extends YangModuleInfo> moduleInfos;
- SchemaContext schemaContext = null;
- moduleInfos = Collections.singleton(BindingReflections.getModuleInfo(objectClass));
- moduleContext.addModuleInfos(moduleInfos);
- schemaContext = moduleContext.tryToCreateSchemaContext().get();
- return schemaContext;
+ Collection<? extends YangModuleInfo> moduleInfos = Collections.singleton(BindingReflections
+ .getModuleInfo(objectClass));
+ return BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
}
/**
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.transportpce.pce.constraints.PceConstraints;
import org.opendaylight.transportpce.pce.constraints.PceConstraints.ResourcePair;
import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.Elements;
+import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.ElementsKey;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.RouteIncludeEro;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.TeHopType;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.TeNodeId;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.path.route.objects.ExplicitRouteObjectsBuilder;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.path.route.objects.explicit.route.objects.RouteObjectIncludeExclude;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.path.route.objects.explicit.route.objects.RouteObjectIncludeExcludeBuilder;
+import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.path.route.objects.explicit.route.objects.RouteObjectIncludeExcludeKey;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.service.PathRequest;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.service.PathRequestBuilder;
+import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.service.PathRequestKey;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.synchronization.info.Synchronization;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.synchronization.info.SynchronizationBuilder;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.synchronization.info.synchronization.Svec;
//Convert THz to Hz
private static final double CONVERT_TH_HZ = 1e12;
- private List<PathRequest> pathRequest = new ArrayList<>();
+ private Map<PathRequestKey, PathRequest> pathRequest = new HashMap<>();
private List<Synchronization> synchronization = new ArrayList<>();
private Map<String, String> mapDisgNodeRefNode = new HashMap<>();
private Map<String, IpAddress> mapNodeRefIp = new HashMap<>();
private Map<String, List<String>> mapLinkFiber = new HashMap<>();
private Map<String, IpAddress> mapFiberIp = new HashMap<>();
private List<String> trxList = new ArrayList<>();
- private List<Elements> elements = new ArrayList<>();
- private List<RouteObjectIncludeExclude> routeObjectIncludeExcludes = new ArrayList<>();
+ private Map<ElementsKey, Elements> elements = new HashMap<>();
+ private Map<RouteObjectIncludeExcludeKey,RouteObjectIncludeExclude> routeObjectIncludeExcludes = new HashMap<>();
private IpAddress currentNodeIpAddress = null;
/*
}
}
- private List<PathRequest> extractPathRequest(PathComputationRequestInput input, AToZDirection atoz, Long requestId,
- PceConstraints pceHardConstraints) throws GnpyException {
+ private Map<PathRequestKey, PathRequest> extractPathRequest(
+ PathComputationRequestInput input, AToZDirection atoz, Long requestId,
+ PceConstraints pceHardConstraints) throws GnpyException {
// Create the source and destination nodes
String sourceNode = input.getServiceAEnd().getNodeId();
}
// Create explicitRouteObjects
- List<AToZ> listAtoZ = atoz.getAToZ();
- if (listAtoZ != null) {
+ List<AToZ> listAtoZ = new ArrayList<>(atoz.nonnullAToZ().values());
+ if (!listAtoZ.isEmpty()) {
extractRouteObjectIcludeAtoZ(listAtoZ);
} else {
extractHardConstraints(pceHardConstraints);
PathConstraints pathConstraints = createPathConstraints(atoz.getRate().toJava(), atozWavelength);
// Create the path request
- List<PathRequest> pathRequestList = new ArrayList<>();
- PathRequest pathRequestEl = new PathRequestBuilder().setRequestId(requestId)
+ Map<PathRequestKey, PathRequest> pathRequestMap = new HashMap<>();
+ PathRequest pathRequestEl = new PathRequestBuilder().setRequestId(Uint32.valueOf(requestId))
.setSource(this.mapNodeRefIp.get(sourceNode)).setDestination(this.mapNodeRefIp.get(destNode))
.setSrcTpId("srcTpId".getBytes(StandardCharsets.UTF_8))
.setDstTpId("dstTpId".getBytes(StandardCharsets.UTF_8))
.setBidirectional(false).setPathConstraints(pathConstraints).setPathConstraints(pathConstraints)
.setExplicitRouteObjects(explicitRouteObjects).build();
- pathRequestList.add(pathRequestEl);
+ pathRequestMap.put(pathRequestEl.key(),pathRequestEl);
LOG.debug("In GnpyServiceImpl: path request AToZ is extracted");
- return pathRequestList;
+ return pathRequestMap;
}
- private List<PathRequest> extractPathRequest(PathComputationRequestInput input, ZToADirection ztoa, Long requestId,
- PceConstraints pceHardConstraints) throws GnpyException {
+ private Map<PathRequestKey, PathRequest> extractPathRequest(
+ PathComputationRequestInput input, ZToADirection ztoa, Long requestId,
+ PceConstraints pceHardConstraints) throws GnpyException {
// Create the source and destination nodes
String sourceNode = input.getServiceZEnd().getNodeId();
String destNode = input.getServiceAEnd().getNodeId();
throw new GnpyException("In GnpyServiceImpl: source and destination should be transmitter nodes");
}
// Create explicitRouteObjects
- List<ZToA> listZtoA = ztoa.getZToA();
- if (listZtoA != null) {
+ @NonNull List<ZToA> listZtoA = new ArrayList<>(ztoa.nonnullZToA().values());
+ if (!listZtoA.isEmpty()) {
extractRouteObjectIcludeZtoA(listZtoA);
} else {
extractHardConstraints(pceHardConstraints);
PathConstraints pathConstraints = createPathConstraints(ztoa.getRate().toJava(), ztoaWavelength);
// Create the path request
- List<PathRequest> pathRequestList = new ArrayList<>();
- PathRequest pathRequestEl = new PathRequestBuilder().setRequestId(requestId)
+ Map<PathRequestKey, PathRequest> pathRequestMap = new HashMap<>();
+ PathRequest pathRequestEl = new PathRequestBuilder().setRequestId(Uint32.valueOf(requestId))
.setSource(this.mapNodeRefIp.get(sourceNode)).setDestination(this.mapNodeRefIp.get(destNode))
.setSrcTpId("srcTpId".getBytes(StandardCharsets.UTF_8))
.setDstTpId("dstTpId".getBytes(StandardCharsets.UTF_8))
.setBidirectional(false).setPathConstraints(pathConstraints)
.setExplicitRouteObjects(explicitRouteObjects).build();
- pathRequestList.add(pathRequestEl);
+ pathRequestMap.put(pathRequestEl.key(),pathRequestEl);
LOG.debug("In GnpyServiceImpl: path request ZToA is extracted");
- return pathRequestList;
+ return pathRequestMap;
}
//Extract RouteObjectIncludeExclude list in the case of pre-computed path A-to-Z
private void extractRouteObjectIcludeAtoZ(List<AToZ> listAtoZ) throws GnpyException {
Long index = 0L;
- for (int i = 0; i < listAtoZ.size(); i++) {
- index = createResource(listAtoZ.get(i).getResource().getResource(),index);
+ for (AToZ entry : listAtoZ) {
+ index = createResource(entry.getResource().getResource(),index);
}
}
//Extract RouteObjectIncludeExclude list in the case of pre-computed path Z-to-A
- private void extractRouteObjectIcludeZtoA(List<ZToA> listZtoA) throws GnpyException {
+ private void extractRouteObjectIcludeZtoA(@NonNull List<ZToA> listZtoA) throws GnpyException {
Long index = 0L;
- for (int i = 0; i < listZtoA.size(); i++) {
- index = createResource(listZtoA.get(i).getResource().getResource(),index);
+ for (ZToA entry : listZtoA) {
+ index = createResource(entry.getResource().getResource(),index);
}
}
throw new GnpyException(String.format("In gnpyServiceImpl : NodeRef %s does not exist", nodeRef));
}
- for (Elements element : this.elements) {
+ for (Elements element : this.elements.values()) {
if (element.getUid().contains(ipAddress.getIpv4Address().getValue())) {
if ((this.currentNodeIpAddress == null) || (!this.currentNodeIpAddress.equals(ipAddress))) {
this.currentNodeIpAddress = ipAddress;
RouteObjectIncludeExclude routeObjectIncludeExclude =
addRouteObjectIncludeExclude(ipAddress, Uint32.valueOf(1),idx);
- routeObjectIncludeExcludes.add(routeObjectIncludeExclude);
+ routeObjectIncludeExcludes.put(routeObjectIncludeExclude.key(),routeObjectIncludeExclude);
idx += 1;
}
return idx;
}
RouteObjectIncludeExclude routeObjectIncludeExclude =
addRouteObjectIncludeExclude(fiberIp, Uint32.valueOf(1),idx);
- routeObjectIncludeExcludes.add(routeObjectIncludeExclude);
+ routeObjectIncludeExcludes.put(routeObjectIncludeExclude.key(),routeObjectIncludeExclude);
idx += 1;
}
return idx;
Type type1 = new NumUnnumHopBuilder().setNumUnnumHop(numUnnumHop).build();
// Create routeObjectIncludeExclude element
return new RouteObjectIncludeExcludeBuilder()
- .setIndex(index).setExplicitRouteUsage(RouteIncludeEro.class).setType(type1).build();
+ .setIndex(Uint32.valueOf(index)).setExplicitRouteUsage(RouteIncludeEro.class).setType(type1).build();
}
//Create the path constraints
double freq = (MAX_CENTRAL_FREQ - FIX_CH * (wavelengthNumber - 1));
freqNdex = (int) Math.round((freq - FLEX_CENTRAL_FREQ) / SLOT_BW);
}
- List<EffectiveFreqSlot> effectiveFreqSlot = new ArrayList<>();
EffectiveFreqSlot effectiveFreqSlot1 = new EffectiveFreqSlotBuilder().setM(NB_SLOT_BW).setN(freqNdex).build();
- effectiveFreqSlot.add(effectiveFreqSlot1);
// Create Te-Bandwidth
TeBandwidth teBandwidth = new TeBandwidthBuilder().setPathBandwidth(new BigDecimal(rate))
.setTechnology("flexi-grid").setTrxType("openroadm-beta1")
- .setTrxMode("W100G").setEffectiveFreqSlot(effectiveFreqSlot)
+ .setTrxMode("W100G").setEffectiveFreqSlot(Map.of(effectiveFreqSlot1.key(),effectiveFreqSlot1))
.setSpacing(BigDecimal.valueOf(FIX_CH * CONVERT_TH_HZ)).build();
return new PathConstraintsBuilder().setTeBandwidth(teBandwidth).build();
}
.setDisjointness(new TePathDisjointness(true, true, false))
.setRequestIdNumber(requestIdNumber).build();
List<Synchronization> synchro = new ArrayList<>();
- Synchronization synchronization1 = new SynchronizationBuilder().setSynchronizationId(Long.valueOf(0))
+ Synchronization synchronization1 = new SynchronizationBuilder().setSynchronizationId(Uint32.valueOf(0))
.setSvec(svec).build();
synchro.add(synchronization1);
return (synchro);
}
- public List<PathRequest> getPathRequest() {
+ public Map<PathRequestKey, PathRequest> getPathRequest() {
return pathRequest;
}
- public void setPathRequest(List<PathRequest> pathRequest) {
+ public void setPathRequest(Map<PathRequestKey, PathRequest> pathRequest) {
this.pathRequest = pathRequest;
}
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.ConnectionsBuilder;
import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.Elements;
import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.ElementsBuilder;
+import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.ElementsKey;
import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.elements.Metadata;
import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.elements.MetadataBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1;
private static final Logger LOG = LoggerFactory.getLogger(GnpyTopoImpl.class);
private final NetworkTransactionService networkTransactionService;
//List of elements
- private List<Elements> elements = new ArrayList<>();
+ private Map<ElementsKey, Elements> elements = new HashMap<>();
private List<Connections> connections = new ArrayList<>();
//Mapping elements
//Mapping between the ord-topo and ord-ntw node
throw new GnpyException("In gnpyTopoImpl: openRoadmNet or openRoadmTopo is not present");
}
// Create the list of nodes
- List<Node> openRoadmNetNodeList = openRoadmNet.get().getNode();
- List<Node> openRoadmTopoNodeList = openRoadmTopo.get().getNode();
+ Collection<Node> openRoadmNetNodeList = openRoadmNet.get().nonnullNode().values();
+ Collection<Node> openRoadmTopoNodeList = openRoadmTopo.get().nonnullNode().values();
List<String> nodesList = new ArrayList<>();
if (openRoadmTopoNodeList.isEmpty() || openRoadmNetNodeList.isEmpty()) {
// Create elements
for (Node openRoadmTopoNode : openRoadmTopoNodeList) {
// Retrieve the supporting node and the type of the node in openRoadm network
- List<SupportingNode> supportingNodeList = openRoadmTopoNode.getSupportingNode();
+ Collection<SupportingNode> supportingNodeList = openRoadmTopoNode.nonnullSupportingNode().values();
for (SupportingNode supportingNode : supportingNodeList) {
if (!supportingNode.getNetworkRef().getValue().equals("openroadm-network")) {
if (!nodesList.contains(nodeRef)) {
Elements element = createElementsRoadm(LATITUDE, LONGITUTE, nodeRef,
openRoadmNetNode1.getShelf(),TARGET_PCH_OUT_DB, ipAddress.getIpv4Address().getValue());
- this.elements.add(element);
+ this.elements.put(element.key(),element);
nodesList.add(nodeRef);
}
} else if (commonNetworkNode1.getNodeType().getName().equals("XPONDER")) {
if (!nodesList.contains(nodeRef)) {
Elements element = createElementsTransceiver(LATITUDE, LONGITUTE, nodeRef,
openRoadmNetNode1.getShelf(),ipAddress.getIpv4Address().getValue());
- this.elements.add(element);
+ this.elements.put(element.key(),element);
nodesList.add(nodeRef);
trxList.add(nodeRef);
}
throw new GnpyException("In gnpyTopoImpl: openroadmTopo is not present");
}
Network1 nw1 = openRoadmTopo.get().augmentation(Network1.class);
- List<Link> linksList = nw1.getLink();
+ Collection<Link> linksList = nw1.nonnullLink().values();
// 1:EXPRESS-LINK 2:ADD-LINK 3:DROP-LINK
// 4:ROADM-To-ROADM 5:XPONDER-INPUT 6:XPONDER-OUTPUT
int[] externalLink = {OpenroadmLinkType.ROADMTOROADM.getIntValue(),OpenroadmLinkType.XPONDERINPUT.getIntValue(),
private IpAddress extractAmplifiedLink(OMSAttributes omsAttributes, String linkId, IpAddress srcIp)
throws GnpyException {
- List<AmplifiedLink> amplifiedLinkList = omsAttributes.getAmplifiedLink()
- .getAmplifiedLink();
+ List<AmplifiedLink> amplifiedLinkList = new ArrayList<>(omsAttributes.getAmplifiedLink()
+ .nonnullAmplifiedLink().values());
IpAddress destIp = null;
if (!amplifiedLinkList.isEmpty()) {
- for (AmplifiedLink amplifiedLink : amplifiedLinkList) {
- String secElt = amplifiedLink.getSectionEltNumber().toString();
+ for (AmplifiedLink amplifiedLink: amplifiedLinkList) {
+ String secElt = amplifiedLink .getSectionEltNumber().toString();
//Case of ILA
if (amplifiedLink.getSectionElement().getSectionElement() instanceof Ila) {
Ila ila = (Ila) amplifiedLink.getSectionElement().getSectionElement();
ila.getGain().getValue(), ila.getTilt().getValue(),
ila.getOutVoaAtt().getValue(), "std_medium_gain",
ipEdfa.getIpv4Address().getValue());
- this.elements.add(element);
+ this.elements.put(element.key(),element);
return ipEdfa;
}
IpAddress ipFiber = new IpAddress(fiberId);
if (!mapLinkFiber.containsKey(linkId)) {
- mapLinkFiber.put(linkId, new ArrayList<String>());
+ mapLinkFiber.put(linkId, new ArrayList<>());
}
mapLinkFiber.get(linkId).add(subLinkId);
mapFiberIp.put(subLinkId, ipFiber);
String typeVariety = "SSMF";
double length = 0;
// Compute the length of the link
- List<LinkConcatenation> linkConcatenationList = span.getLinkConcatenation();
- for (LinkConcatenation linkConcatenation : linkConcatenationList) {
+ for (LinkConcatenation linkConcatenation : span.nonnullLinkConcatenation().values()) {
double srlgLength = linkConcatenation.getSRLGLength().toJava();
//convert to kilometer
length += srlgLength / CONVERT_KM_M;
double lossCoef = span.getSpanlossCurrent().getValue().doubleValue() / length;
Elements element = createElementsFiber(LATITUDE, LONGITUTE, REGION, CITY,
ipFiber.getIpv4Address().getValue(), length, attIn, lossCoef, connIn, connOut, typeVariety);
- this.elements.add(element);
+ this.elements.put(element.key(),element);
return ipFiber;
}
return new Ipv4Address(nidString);
}
- public List<Elements> getElements() {
+ public Map<ElementsKey, Elements> getElements() {
return elements;
}
- public void setElements(List<Elements> elements) {
+ public void setElements(Map<ElementsKey, Elements> elements) {
this.elements = elements;
}
package org.opendaylight.transportpce.pce.gnpy;
+import java.util.ArrayList;
import java.util.List;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
import org.opendaylight.transportpce.pce.constraints.PceConstraints;
public GnpyResult gnpyResponseOneDirection(GnpyServiceImpl gnpySvc) throws GnpyException, Exception {
requestId = Uint32.valueOf((requestId.toJava()) + 1);
- List<PathRequest> pathRequestList = gnpySvc.getPathRequest();
+ List<PathRequest> pathRequestList = new ArrayList(gnpySvc.getPathRequest().values());
List<Synchronization> synchronizationList = gnpySvc.getSynchronization();
// Send the computed path to GNPY tool
- List<Elements> elementsList = gnpyTopo.getElements();
+ List<Elements> elementsList = new ArrayList(gnpyTopo.getElements().values());
List<Connections> connectionsList = gnpyTopo.getConnections();
String gnpyResponse = getGnpyResponse(elementsList, connectionsList, pathRequestList,
synchronizationList);
AToZDirection atoztmp = new AToZDirectionBuilder()
.setRate(input.getServiceAEnd().getServiceRate())
- .setAToZ(null)
.build();
GnpyServiceImpl gnpySvc = new GnpyServiceImpl(input, atoztmp, requestId, gnpyTopo, pceHardConstraints);
GnpyResult result = gnpyResponseOneDirection(gnpySvc);
}
public String getGnpyResponse(List<Elements> elementsList, List<Connections> connectionsList,
- List<PathRequest> pathRequestList, List<Synchronization> synchronizationList) throws GnpyException, Exception {
+ List<PathRequest> pathRequestList, List<Synchronization> synchronizationList)
+ throws GnpyException, Exception {
GnpyApi gnpyApi = new GnpyApiBuilder()
.setTopologyFile(
new TopologyFileBuilder().setElements(elementsList).setConnections(connectionsList).build())
import java.io.StringWriter;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
+import java.util.Collection;
import java.util.Collections;
import java.util.Optional;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.binding.runtime.api.BindingRuntimeContext;
+import org.opendaylight.binding.runtime.spi.BindingRuntimeHelpers;
+import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
+import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
import org.opendaylight.transportpce.common.DataStoreContext;
import org.opendaylight.transportpce.common.converter.XMLDataObjectConverter;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
+import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.Result;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactorySupplier;
import org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.codec.gson.JsonWriterFactory;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
.transform(input -> BindingReflections.findQName(input.getType())), true);
// Prepare the variables
- final ModuleInfoBackedContext moduleContext = ModuleInfoBackedContext.create();
- Iterable<? extends YangModuleInfo> moduleInfos = Collections
- .singleton(BindingReflections.getModuleInfo(object.getClass()));
- moduleContext.addModuleInfos(moduleInfos);
- SchemaContext schemaContext = moduleContext.tryToCreateSchemaContext().get();
- BindingRuntimeContext bindingContext;
- bindingContext = BindingRuntimeContext.create(moduleContext, schemaContext);
- final BindingNormalizedNodeCodecRegistry codecRegistry =
- new BindingNormalizedNodeCodecRegistry(bindingContext);
+ // Create the schema context
+ Collection<? extends YangModuleInfo> moduleInfos = Collections.singleton(BindingReflections
+ .getModuleInfo(Result.class));
+ @NonNull
+ EffectiveModelContext schemaContext = BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
+
+ // Create the binding binding normalized node codec registry
+ BindingRuntimeContext bindingContext =
+ BindingRuntimeHelpers.createRuntimeContext();
+ final BindingNormalizedNodeSerializer codecRegistry = new BindingCodecContext(bindingContext);
/*
* This function needs : - context - scPath.getParent() -
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Map;
import java.util.TreeMap;
import org.opendaylight.transportpce.common.NetworkUtils;
import org.opendaylight.transportpce.pce.constraints.PceConstraints;
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.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.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.node.SupportingNode;
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;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLink;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public static String getCLLI(Node node) {
// TODO STUB retrieve CLLI from node. for now it is supporting node ID of the first supp node
- return node.getSupportingNode().get(0).getNodeRef().getValue();
+ return node.nonnullSupportingNode().values().iterator().next().getNodeRef().getValue();
}
public static List<Long> getSRLG(Link link) {
List<Long> srlgList = new ArrayList<>();
try {
- List<LinkConcatenation> linkList = getOmsAttributesSpan(link).getLinkConcatenation();
- for (LinkConcatenation lc : linkList) {
+ Map<LinkConcatenationKey, LinkConcatenation> linkList = getOmsAttributesSpan(link).getLinkConcatenation();
+ for (LinkConcatenation lc : linkList.values()) {
srlgList.add(lc.getSRLGId().toJava());
}
} catch (NullPointerException e) {
} else {
try {
- List<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.networks.network.link
- .LinkConcatenation> linkConcatenation = linkC.getLinkConcatenation();
-
-
for (org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.networks.network.link
- .LinkConcatenation lc : linkConcatenation) {
+ .LinkConcatenation lc : linkC.nonnullLinkConcatenation().values()) {
srlgList.add(lc.getSRLGId().toJava());
}
} catch (NullPointerException e) {
}
public static String getSupNetworkNode(Node node) {
- List<SupportingNode> supNodes = node.getSupportingNode();
- for (SupportingNode snode : supNodes) {
+ for (SupportingNode snode : node.nonnullSupportingNode().values()) {
if (NetworkUtils.UNDERLAY_NETWORK_ID.equals(snode.getNetworkRef().getValue())) {
return snode.getNodeRef().getValue();
}
}
public static String getSupClliNode(Node node) {
- List<SupportingNode> supNodes = node.getSupportingNode();
- for (SupportingNode snode : supNodes) {
+ for (SupportingNode snode : node.nonnullSupportingNode().values()) {
if (NetworkUtils.CLLI_NETWORK_ID.equals(snode.getNetworkRef().getValue())) {
return snode.getNodeRef().getValue();
}
public static TreeMap<String, String> getAllSupNode(Node node) {
TreeMap<String, String> allSupNodes = new TreeMap<>();
- List<SupportingNode> supNodes = new ArrayList<>();
- try {
- supNodes = node.getSupportingNode();
- } catch (NullPointerException e) {
- LOG.debug("No Supporting Node for the node {}", node);
- }
- for (SupportingNode supnode :supNodes) {
+ for (SupportingNode supnode : node.nonnullSupportingNode().values()) {
allSupNodes.put(supnode.getNetworkRef().getValue(),
supnode.getNodeRef().getValue());
}
}
public static String getSupLink(Link link) {
- String supLink = "";
- try {
- supLink = link.getSupportingLink().get(0).getLinkRef().toString();
- } catch (NullPointerException e) {
- LOG.debug("No Supporting Link for the link {}", link);
+ SupportingLink first = link.nonnullSupportingLink().values().iterator().next();
+ if (first != null && first.getLinkRef() != null) {
+ return first.getLinkRef().toString();
+ } else {
+ return "";
}
- return supLink;
}
LOG.error("readMdSal: network is null: {}", nwInstanceIdentifier);
return false;
}
- allNodes = nw.getNode().stream().sorted((n1, n2) -> n1.getNodeId().getValue().compareTo(n2.getNodeId()
- .getValue())).collect(Collectors.toList());
+ allNodes = nw.nonnullNode().values().stream().sorted((n1, n2)
+ -> n1.getNodeId().getValue().compareTo(n2.getNodeId().getValue())).collect(Collectors.toList());
Network1 nw1 = nw.augmentation(Network1.class);
if (nw1 != null) {
- allLinks = nw1.getLink().stream().sorted((l1, l2) -> l1.getSource().getSourceTp().toString().compareTo(l2
- .getSource().getSourceTp().toString())).collect(Collectors.toList());
+ allLinks = nw1.nonnullLink().values().stream().sorted((l1, l2)
+ -> l1.getSource().getSourceTp().toString().compareTo(l2.getSource().getSourceTp().toString()))
+ .collect(Collectors.toList());
} else {
LOG.warn("no otn links in otn-topology");
}
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.List;
+import java.util.Map;
+import org.eclipse.jdt.annotation.NonNull;
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;
try {
double tmp = 0;
- for (int i = 0; i < this.omsAttributesSpan.getLinkConcatenation().size(); i++) {
+ @NonNull
+ Map<LinkConcatenationKey, LinkConcatenation> linkConcatenationMap =
+ this.omsAttributesSpan.nonnullLinkConcatenation();
+ for (Map.Entry<LinkConcatenationKey, LinkConcatenation> entry : linkConcatenationMap.entrySet()) {
//Length is expressed in meter and latency is expressed in ms according to OpenROADM MSA
- tmp += this.omsAttributesSpan.getLinkConcatenation().get(i).getSRLGLength().toJava() / CELERITY;
+ tmp += entry.getValue().getSRLGLength().toJava() / CELERITY;
LOG.info("In PceLink: The latency of link {} == {}",link.getLinkId(),tmp);
}
tmplatency = (long) Math.ceil(tmp);
public double calcSpanOSNR() {
try {
double pout; //power on the output of the previous ROADM (dBm)
- pout = retrievePower(this.omsAttributesSpan.getLinkConcatenation().get(0).getFiberType());
+ pout = retrievePower(this.omsAttributesSpan.nonnullLinkConcatenation()
+ .values().iterator().next().getFiberType());
double spanLoss = this.omsAttributesSpan.getSpanlossCurrent().getValue().doubleValue(); // span loss (dB)
double pin = pout - spanLoss; //power on the input of the current ROADM (dBm)
double spanOsnrDb;
this.node.augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
.ietf.network.topology.rev180226.Node1.class);
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network
- .node.TerminationPoint> allTps = nodeTp.getTerminationPoint();
+ .node.TerminationPoint> allTps = new ArrayList(nodeTp.getTerminationPoint().values());
if (allTps == null) {
LOG.error("initSrgTpList: ROADM TerminationPoint list is empty for node {}", this);
this.valid = false;
boolean used = true;
LOG.info("initSrgTpList: SRG-PP tp = {} found", tp.getTpId().getValue());
try {
- List<UsedWavelength> usedWavelengths = nttp1.getPpAttributes().getUsedWavelength();
+ List<UsedWavelength> usedWavelengths =
+ new ArrayList(nttp1.getPpAttributes().getUsedWavelength().values());
if (usedWavelengths.isEmpty()) {
used = false;
}
case SRG :
List<org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes
.AvailableWavelengths> srgAvailableWL =
- node1.getSrgAttributes().getAvailableWavelengths();
+ new ArrayList(node1.getSrgAttributes().getAvailableWavelengths().values());
if (srgAvailableWL == null) {
this.valid = false;
LOG.error("initWLlist: SRG AvailableWavelengths is empty for node {}", this);
break;
case DEGREE :
List<org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes
- .AvailableWavelengths> degAvailableWL = node1.getDegreeAttributes().getAvailableWavelengths();
+ .AvailableWavelengths> degAvailableWL =
+ new ArrayList(node1.getDegreeAttributes().getAvailableWavelengths().values());
if (degAvailableWL == null) {
this.valid = false;
LOG.error("initWLlist: DEG AvailableWavelengths is empty for node {}", this);
this.node.augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
.ietf.network.topology.rev180226.Node1.class);
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network
- .node.TerminationPoint> allTps = nodeTp.getTerminationPoint();
+ .node.TerminationPoint> allTps = new ArrayList(nodeTp.getTerminationPoint().values());
if (allTps == null) {
this.valid = false;
LOG.error("initXndrTps: XPONDER TerminationPoint list is empty for node {}", this);
= this.node.augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
.ietf.network.topology.rev180226.Node1.class);
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network
- .node.TerminationPoint> allTps = nodeTp.getTerminationPoint();
+ .node.TerminationPoint> allTps = new ArrayList(nodeTp.getTerminationPoint().values());
this.valid = false;
if (allTps == null) {
LOG.error("PceOtnNode: initXndrTps: XPONDER TerminationPoint list is empty for node {}", this);
for (TpId nwTp : netwTps) {
for (TpId clTp : clientTps) {
@Nullable
- List<NonBlockingList> nblList = node.augmentation(Node1.class).getSwitchingPools()
- .getOduSwitchingPools().get(0).getNonBlockingList();
+ List<NonBlockingList> nblList = new ArrayList(node.augmentation(Node1.class).getSwitchingPools()
+ .getOduSwitchingPools().values().stream().findFirst().get().getNonBlockingList().values());
for (NonBlockingList nbl : nblList) {
if (nbl.getTpList().contains(clTp) && nbl.getTpList().contains(nwTp)) {
usableXpdrClientTps.add(clTp);
if (clientTps == null && netwTps != null && nbClient == 0 && nbNetw == 2) {
netwTps.sort(Comparator.comparing(TpId::getValue));
@Nullable
- List<NonBlockingList> nblList = node.augmentation(Node1.class).getSwitchingPools().getOduSwitchingPools()
- .get(0).getNonBlockingList();
+ List<NonBlockingList> nblList = new ArrayList(node.augmentation(Node1.class).getSwitchingPools()
+ .getOduSwitchingPools().values().stream().findFirst().get().getNonBlockingList().values());
for (NonBlockingList nbl : nblList) {
for (TpId nwTp : netwTps) {
if (nbl.getTpList().contains(nwTp)) {
}
private boolean checkTpForOdtuTermination(TerminationPoint1 ontTp1) {
- for (SupportedInterfaceCapability sic : ontTp1.getTpSupportedInterfaces().getSupportedInterfaceCapability()) {
+ for (SupportedInterfaceCapability sic : ontTp1.getTpSupportedInterfaces().getSupportedInterfaceCapability()
+ .values()) {
LOG.debug("in checkTpForOduTermination - sic = {}", sic.getIfCapType());
if (sic.getIfCapType().equals(IfOCHOTU4ODU4.class)
&& ontTp1.getXpdrTpPortConnectionAttributes().getTsPool() == null) {
if (ontTp1.getXpdrTpPortConnectionAttributes() != null
&& ontTp1.getXpdrTpPortConnectionAttributes().getTsPool() != null
&& ontTp1.getXpdrTpPortConnectionAttributes().getOdtuTpnPool() != null
- && ontTp1.getXpdrTpPortConnectionAttributes().getOdtuTpnPool().get(0).getOdtuType()
+ && ontTp1.getXpdrTpPortConnectionAttributes().getOdtuTpnPool().values()
+ .stream().findFirst().get().getOdtuType()
.equals(ODTU4TsAllocated.class)
- && !ontTp1.getXpdrTpPortConnectionAttributes().getOdtuTpnPool().get(0).getTpnPool().isEmpty()
+ && !ontTp1.getXpdrTpPortConnectionAttributes().getOdtuTpnPool().values()
+ .stream().findFirst().get().getTpnPool().isEmpty()
&& (ontTp1.getXpdrTpPortConnectionAttributes().getTsPool().size() >= tsNb)) {
return true;
}
}
private boolean checkClientTp(TerminationPoint1 ontTp1) {
- for (SupportedInterfaceCapability sic : ontTp1.getTpSupportedInterfaces().getSupportedInterfaceCapability()) {
+ for (SupportedInterfaceCapability sic : ontTp1.getTpSupportedInterfaces().getSupportedInterfaceCapability()
+ .values()) {
LOG.debug("in checkTpForOduTermination - sic = {}", sic.getIfCapType());
switch (otnServiceType) {
case "1GE":
node.augmentation(
org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Node1.class);
SwitchingPools sp = node1.getSwitchingPools();
- List<OduSwitchingPools> osp = sp.getOduSwitchingPools();
+ List<OduSwitchingPools> osp = new ArrayList(sp.getOduSwitchingPools().values());
for (OduSwitchingPools ospx : osp) {
- List<NonBlockingList> nbl = ospx.getNonBlockingList();
+ List<NonBlockingList> nbl = new ArrayList(ospx.getNonBlockingList().values());
for (NonBlockingList nbll : nbl) {
if (nbll.getAvailableInterconnectBandwidth().toJava() >= neededBW && nbll.getTpList() != null
&& nbll.getTpList().contains(tp1.getTpId()) && nbll.getTpList().contains(tp2.getTpId())) {
public void checkAvailableTribPort() {
List<TerminationPoint> networkTpList = node.augmentation(
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class)
- .getTerminationPoint().stream()
+ .getTerminationPoint().values().stream()
.filter(type -> type
.augmentation(
org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1.class)
for (TerminationPoint tp : networkTpList) {
if (tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes().getOdtuTpnPool() != null
- && tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes().getOdtuTpnPool().get(0)
- .getOdtuType().equals(ODTU4TsAllocated.class)) {
+ && tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes().getOdtuTpnPool()
+ .values().stream().findFirst().get().getOdtuType().equals(ODTU4TsAllocated.class)) {
@Nullable
List<Uint16> tpnPool = tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes()
- .getOdtuTpnPool().get(0).getTpnPool();
+ .getOdtuTpnPool().values().stream().findFirst().get().getTpnPool();
if (tpnPool != null) {
tpAvailableTribPort.put(tp.getTpId().getValue(), tpnPool);
}
public void checkAvailableTribSlot() {
List<TerminationPoint> networkTpList = node.augmentation(
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class)
- .getTerminationPoint().stream()
+ .getTerminationPoint().values().stream()
.filter(type -> type
.augmentation(
org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1.class)
AToZDirection atoz = pathDescription.getAToZDirection();
if ((atoz != null) && (atoz.getAToZ() != null)) {
LOG.debug("Impl AtoZ Notification: [{}] elements in description", atoz.getAToZ().size());
- for (int i = 0; i < atoz.getAToZ().size(); i++) {
- LOG.debug("Impl AtoZ Notification: [{}] {}", i, atoz.getAToZ().get(i));
+ for (org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629
+ .path.description.atoz.direction.AToZKey key : atoz.getAToZ().keySet()) {
+ LOG.debug("Impl AtoZ Notification: [{}] {}", key, atoz.getAToZ().get(key));
}
}
ZToADirection ztoa = pathDescription.getZToADirection();
if ((ztoa != null) && (ztoa.getZToA() != null)) {
LOG.debug("Impl ZtoA Notification: [{}] elements in description", ztoa.getZToA().size());
- for (int i = 0; i < ztoa.getZToA().size(); i++) {
- LOG.debug("Impl ZtoA Notification: [{}] {}", i, ztoa.getZToA().get(i));
+ for (org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629
+ .path.description.ztoa.direction.ZToAKey key : ztoa.getZToA().keySet()) {
+ LOG.debug("Impl ZtoA Notification: [{}] {}", key, ztoa.getZToA().get(key));
}
}
return output.build();
(org.opendaylight.yang.gen.v1.gnpy.path.rev200202.result.response.response.type.PathCase)
responseGnpy.getResponseType();
List<org.opendaylight.yang.gen.v1.gnpy.path.rev200202.generic.path.properties.path.properties
- .PathMetric> pathMetricList = pathCase.getPathProperties().getPathMetric();
+ .PathMetric> pathMetricList = new ArrayList(pathCase.getPathProperties().getPathMetric().values());
List<PathMetric> gnpyPathMetricList = new ArrayList<>();
for (org.opendaylight.yang.gen.v1.gnpy.path.rev200202.generic.path.properties.path.properties.PathMetric
pathMetricGnpy : pathMetricList) {
private PcePathDescription pcePathDescription;
private PceResult pceResult;
- private static final Long WAVE_LENGTH = 20L;
private PceLink pceLink = null;
private Link link = null;
private Node node = null;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Paths;
+import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.HEAD;
// TODO: return different response based on body data
try {
String response = null;
- List<PathRequest> pathRequest = request.getServiceFile().getPathRequest();
+ List<PathRequest> pathRequest = new ArrayList<>(request.getServiceFile().nonnullPathRequest().values());
// this condition is totally arbitrary and could be modified
if (!pathRequest.isEmpty() && "127.0.0.31".contentEquals(pathRequest.get(0).getSource().stringValue())) {
response = Files
import java.io.IOException;
import java.io.Reader;
import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.Map;
import java.util.concurrent.ExecutionException;
import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.Uint32;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
}
private AToZDirectionBuilder buildAtZ() {
- List<AToZ> atozList = new ArrayList<>();
AToZKey clientKey = new AToZKey("key");
TerminationPoint stp = new TerminationPointBuilder()
.setTpId("tpName").setTpNodeId("xname")
.build();
Resource clientResource = new ResourceBuilder().setResource(stp).build();
AToZ firstResource = new AToZBuilder().setId("tpName").withKey(clientKey).setResource(clientResource).build();
- atozList.add(firstResource);
return new AToZDirectionBuilder()
- .setRate(100L)
- .setAToZ(atozList)
- .setAToZWavelengthNumber(Long.valueOf(0));
+ .setRate(Uint32.valueOf(100))
+ .setAToZ(Map.of(firstResource.key(),firstResource))
+ .setAToZWavelengthNumber(Uint32.valueOf(0));
}
private ZToADirectionBuilder buildZtoA() {
return new ZToADirectionBuilder()
- .setRate(100L)
- .setZToA(new ArrayList())
- .setZToAWavelengthNumber(Long.valueOf(0));
+ .setRate(Uint32.valueOf(100))
+ .setZToA(Map.of())
+ .setZToAWavelengthNumber(Uint32.valueOf(0));
}
}
package org.opendaylight.transportpce.pce.networkanalyzer;
-import com.google.common.collect.ImmutableList;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.transportpce.test.AbstractTest;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder;
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.LinkConcatenationBuilder;
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.rev180226.networks.network.node.SupportingNode;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeKey;
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.Node1;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder;
+import org.opendaylight.yangtools.yang.common.Uint32;
public class PceLinkTest extends AbstractTest {
private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s";
- private static final Long WAVE_LENGTH = 20L;
private PceLink pceLink = null;
@Before
LinkId oppositeLinkId = new LinkId("opposite");
//For setting up attributes for openRoadm augment
+ LinkConcatenation linkConcatenation = new LinkConcatenationBuilder()
+ .setSRLGLength(Uint32.valueOf(20))
+ .setFiberType(LinkConcatenation.FiberType.Dsf)
+ .build();
OMSAttributesBuilder omsAttributesBuilder =
new OMSAttributesBuilder()
.setSpan(new SpanBuilder()
.setSpanlossCurrent(new RatioDB(new BigDecimal("55")))
- .setLinkConcatenation(Arrays.asList(
- new LinkConcatenationBuilder()
- .setSRLGLength(20L)
- .setFiberType(LinkConcatenation.FiberType.Dsf)
- .build()
+ .setLinkConcatenation(Map.of(linkConcatenation.key(),
+ linkConcatenation
)).build()).setOppositeLink(oppositeLinkId);
.setLinkId(linkId)
.withKey(new LinkKey(linkId));
- linkBuilder.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class,
- link1Builder.build());
+ linkBuilder.addAugmentation(link1Builder.build());
org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder linkBuilderNetworkLink
= new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder()
.build());
- linkBuilder.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1.class,
- linkBuilderNetworkLink.build());
+ linkBuilder.addAugmentation(linkBuilderNetworkLink.build());
return linkBuilder;
}
private static LinkBuilder createRoadmToRoadm(String srcNode, String destNode, String srcTp, String destTp) {
Link1Builder link1Builder = new Link1Builder()
- .setLinkLatency(100L)
+ .setLinkLatency(Uint32.valueOf(100))
.setLinkType(OpenroadmLinkType.ROADMTOROADM);
return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder);
}
- private List<SupportingNode> geSupportingNodes() {
- List<SupportingNode> supportingNodes1 = new ArrayList<>();
+ private Map<SupportingNodeKey,SupportingNode> geSupportingNodes() {
+ Map<SupportingNodeKey,SupportingNode> supportingNodes1 = new HashMap<>();
+ SupportingNode supportingNode1 = new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 1"))
+ .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
+ .build();
supportingNodes1
- .add(new SupportingNodeBuilder()
- .setNodeRef(new NodeId("node 1"))
- .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
- .build());
+ .put(supportingNode1.key(),supportingNode1);
+ SupportingNode supportingNode2 = new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 2"))
+ .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .build();
supportingNodes1
- .add(new SupportingNodeBuilder()
- .setNodeRef(new NodeId("node 2"))
- .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
- .build());
+ .put(supportingNode2.key(),supportingNode2);
return supportingNodes1;
}
- private NodeBuilder getNodeBuilder(List<SupportingNode> supportingNodes1) {
+ private NodeBuilder getNodeBuilder(Map<SupportingNodeKey,SupportingNode> supportingNodes1) {
//update tp of nodes
TerminationPoint1Builder tp1Bldr = new TerminationPoint1Builder();
tp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK);
- xpdrTpBldr.addAugmentation(
- TerminationPoint1.class, tp1Bldr.build());
+ xpdrTpBldr.addAugmentation(tp1Bldr.build());
+ TerminationPoint xpdr = xpdrTpBldr.build();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1 =
- new Node1Builder().setTerminationPoint(ImmutableList.of(xpdrTpBldr.build())).build();
+ new Node1Builder().setTerminationPoint(Map.of(xpdr.key(),xpdr)).build();
return new NodeBuilder()
.setNodeId(new NodeId("node 1"))
.withKey(new NodeKey(new NodeId("node 1")))
- .addAugmentation(
- Node1.class, node1)
+ .addAugmentation(node1)
.setSupportingNode(supportingNodes1);
}
package org.opendaylight.transportpce.pce.networkanalyzer;
-import com.google.common.collect.ImmutableList;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.transportpce.common.NetworkUtils;
import org.opendaylight.transportpce.pce.utils.TransactionUtils;
import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths;
import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder;
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.rev180226.networks.network.node.SupportingNode;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
-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.rev180226.networks.network.node.SupportingNodeKey;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder;
+import org.opendaylight.yangtools.yang.common.Uint32;
public class PceOpticalNodeTest extends AbstractTest {
Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
}
- private List<SupportingNode> geSupportingNodes() {
- List<SupportingNode> supportingNodes1 = new ArrayList<>();
+ private Map<SupportingNodeKey,SupportingNode> geSupportingNodes() {
+ Map<SupportingNodeKey,SupportingNode> supportingNodes1 = new HashMap<>();
+ SupportingNode supportingNode1 = new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 1"))
+ .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
+ .build();
supportingNodes1
- .add(new SupportingNodeBuilder()
- .setNodeRef(new NodeId("node 1"))
- .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
- .build());
+ .put(supportingNode1.key(),supportingNode1);
+ SupportingNode supportingNode2 = new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 2"))
+ .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .build();
supportingNodes1
- .add(new SupportingNodeBuilder()
- .setNodeRef(new NodeId("node 2"))
- .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
- .build());
+ .put(supportingNode2.key(),supportingNode2);
return supportingNodes1;
}
- private NodeBuilder getNodeBuilder(List<SupportingNode> supportingNodes1, OpenroadmTpType openroadmTpType) {
+ private NodeBuilder getNodeBuilder(Map<SupportingNodeKey,SupportingNode> supportingNodes1,
+ OpenroadmTpType openroadmTpType) {
TerminationPoint1Builder tp1Bldr = getTerminationPoint1Builder(openroadmTpType);
TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder();
- xpdrTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- xpdrTpBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1.class,
- createAnotherTerminationPoint().build());
+ xpdrTpBldr.addAugmentation(tp1Bldr.build());
+ xpdrTpBldr.addAugmentation(createAnotherTerminationPoint().build());
org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1();
+ TerminationPoint xpdr = xpdrTpBldr.build();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 =
new Node1Builder()
- .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build()))
+ .setTerminationPoint(Map.of(xpdr.key(),xpdr))
.build();
return new NodeBuilder()
.setNodeId(new NodeId("node_test"))
.withKey(new NodeKey(new NodeId("node 1")))
- .addAugmentation(
- Node1.class, node1Rev180226)
- .addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class,
- node1)
+ .addAugmentation(node1Rev180226)
+ .addAugmentation(node1)
.setSupportingNode(supportingNodes1);
}
- private NodeBuilder getNodeBuilderEmpty(List<SupportingNode> supportingNodes1, OpenroadmTpType openroadmTpType) {
+ private NodeBuilder getNodeBuilderEmpty(Map<SupportingNodeKey,SupportingNode> supportingNodes1,
+ OpenroadmTpType openroadmTpType) {
TerminationPoint1Builder tp1Bldr = getTerminationPoint1Builder(openroadmTpType);
TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder();
- xpdrTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- xpdrTpBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1.class,
- createAnotherTerminationPoint().build());
+ xpdrTpBldr.addAugmentation(tp1Bldr.build());
+ xpdrTpBldr.addAugmentation(createAnotherTerminationPoint().build());
org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1Empty();
+ TerminationPoint xpdr = xpdrTpBldr.build();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 =
new Node1Builder()
- .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build()))
+ .setTerminationPoint(Map.of(xpdr.key(),xpdr))
.build();
return new NodeBuilder()
.setNodeId(new NodeId("node_test"))
.withKey(new NodeKey(new NodeId("node 1")))
- .addAugmentation(
- Node1.class, node1Rev180226)
- .addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class,
- node1)
+ .addAugmentation(node1Rev180226)
+ .addAugmentation(node1)
.setSupportingNode(supportingNodes1);
}
}
private DegreeAttributes getDegAttributes() {
+ AvailableWavelengths aval = new AvailableWavelengthsBuilder().setIndex(Uint32.valueOf(20)).build();
return (new DegreeAttributesBuilder())
- .setAvailableWavelengths(
- Collections.singletonList(new AvailableWavelengthsBuilder().setIndex(20L).build()))
+ .setAvailableWavelengths(Map.of(aval.key(),aval))
.build();
}
private DegreeAttributes getEmptyDegAttributes() {
return (new DegreeAttributesBuilder())
- .setAvailableWavelengths(new ArrayList<>())
+ .setAvailableWavelengths(Map.of())
.build();
}
private SrgAttributes getEmptySrgAttributes() {
- List<org.opendaylight.yang.gen
- .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
- waveList = new ArrayList<>();
- return new SrgAttributesBuilder().setAvailableWavelengths(waveList).build();
+ return new SrgAttributesBuilder().setAvailableWavelengths(Map.of()).build();
}
private TerminationPointBuilder getTerminationPointBuilder() {
return new org.opendaylight
.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder()
.setTpType(OpenroadmTpType.XPONDERNETWORK)
- .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(new ArrayList<>()).build())
+ .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(Map.of()).build())
.setXpdrClientAttributes((new XpdrClientAttributesBuilder()).build())
.setXpdrPortAttributes((new XpdrPortAttributesBuilder()).build())
.setXpdrNetworkAttributes(new XpdrNetworkAttributesBuilder()
package org.opendaylight.transportpce.pce.networkanalyzer;
-import com.google.common.collect.ImmutableList;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.opendaylight.transportpce.common.NetworkUtils;
import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths;
import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapability;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfaces;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfacesBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder;
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.rev180226.networks.network.node.SupportingNode;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
-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.rev180226.networks.network.node.SupportingNodeKey;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder;
import org.opendaylight.yangtools.yang.common.Uint32;
Assert.assertFalse("not valid otn service Type" , pceOtnNode.isPceOtnNodeValid(pceOtnNode));
}
- private List<SupportingNode> geSupportingNodes() {
- List<SupportingNode> supportingNodes1 = new ArrayList<>();
+ private Map<SupportingNodeKey, SupportingNode> geSupportingNodes() {
+ Map<SupportingNodeKey, SupportingNode> supportingNodes1 = new HashMap<>();
+ SupportingNode supportingNode1 = new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 1"))
+ .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
+ .build();
supportingNodes1
- .add(new SupportingNodeBuilder()
- .setNodeRef(new NodeId("node 1"))
- .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
- .build());
+ .put(supportingNode1.key(),supportingNode1);
+ SupportingNode supportingNode2 = new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 2"))
+ .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .build();
supportingNodes1
- .add(new SupportingNodeBuilder()
- .setNodeRef(new NodeId("node 2"))
- .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
- .build());
+ .put(supportingNode2.key(),supportingNode2);
return supportingNodes1;
}
- private NodeBuilder getNodeBuilder(List<SupportingNode> supportingNodes1, OpenroadmTpType openroadmTpType) {
+ private NodeBuilder getNodeBuilder(Map<SupportingNodeKey,SupportingNode> supportingNodes1,
+ OpenroadmTpType openroadmTpType) {
TerminationPoint1Builder tp1Bldr = getTerminationPoint1Builder(openroadmTpType);
TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(openroadmTpType);
- xpdrTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
+ xpdrTpBldr.addAugmentation(tp1Bldr.build());
- xpdrTpBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
- .TerminationPoint1.class,
- createAnother2TerminationPoint(openroadmTpType).build());
- xpdrTpBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1.class,
- createAnotherTerminationPoint(openroadmTpType).build());
+ xpdrTpBldr.addAugmentation(createAnother2TerminationPoint(openroadmTpType).build());
+ xpdrTpBldr.addAugmentation(createAnotherTerminationPoint(openroadmTpType).build());
org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1();
+ TerminationPoint xpdr = xpdrTpBldr.build();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 =
new Node1Builder()
- .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build()))
+ .setTerminationPoint(Map.of(xpdr.key(),xpdr))
.build();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 nodeIetf =
new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
.Node1Builder()
- .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build()))
+ .setTerminationPoint(Map.of(xpdr.key(),xpdr))
.build();
return new NodeBuilder()
.setNodeId(new NodeId("node_test"))
.withKey(new NodeKey(new NodeId("node 1")))
- .addAugmentation(
- Node1.class, node1Rev180226)
- .addAugmentation(
- org.opendaylight
- .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class,
- node1)
- .addAugmentation(
- org.opendaylight
- .yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class,
- nodeIetf
- )
+ .addAugmentation(node1Rev180226)
+ .addAugmentation(node1)
+ .addAugmentation(nodeIetf)
.setSupportingNode(supportingNodes1);
}
- private NodeBuilder getNodeBuilderEmpty(List<SupportingNode> supportingNodes1, OpenroadmTpType openroadmTpType) {
+ private NodeBuilder getNodeBuilderEmpty(Map<SupportingNodeKey,SupportingNode> supportingNodes1,
+ OpenroadmTpType openroadmTpType) {
TerminationPoint1Builder tp1Bldr = getTerminationPoint1Builder(openroadmTpType);
TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(openroadmTpType);
- xpdrTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
- xpdrTpBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
- .TerminationPoint1.class,
- createAnotherTerminationPoint(openroadmTpType).build());
+ xpdrTpBldr.addAugmentation(tp1Bldr.build());
+ xpdrTpBldr.addAugmentation(createAnotherTerminationPoint(openroadmTpType).build());
org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1Empty();
+ TerminationPoint xpdr = xpdrTpBldr.build();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 =
new Node1Builder()
- .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build()))
+ .setTerminationPoint(Map.of(xpdr.key(),xpdr))
.build();
return new NodeBuilder()
.setNodeId(new NodeId("node_test"))
.withKey(new NodeKey(new NodeId("node 1")))
- .addAugmentation(
- Node1.class, node1Rev180226)
- .addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class,
- node1)
+ .addAugmentation(node1Rev180226)
+ .addAugmentation(node1)
.setSupportingNode(supportingNodes1);
}
}
private DegreeAttributes getDegAttributes() {
+ AvailableWavelengths aval = new AvailableWavelengthsBuilder()
+ .setIndex(Uint32.valueOf(20))
+ .build();
return (new DegreeAttributesBuilder())
- .setAvailableWavelengths(
- Collections.singletonList(new AvailableWavelengthsBuilder()
- .setIndex(20L)
- .build()))
+ .setAvailableWavelengths(Map.of(aval.key(),aval))
.build();
}
private DegreeAttributes getEmptyDegAttributes() {
return (new DegreeAttributesBuilder())
- .setAvailableWavelengths(
- new ArrayList<>())
+ .setAvailableWavelengths(Map.of())
.build();
}
private SrgAttributes getEmptySrgAttributes() {
- List<org.opendaylight.yang.gen
- .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
- waveList = new ArrayList<>();
- return new SrgAttributesBuilder().setAvailableWavelengths(waveList).build();
+ return new SrgAttributesBuilder().setAvailableWavelengths(Map.of()).build();
}
private TerminationPointBuilder getTerminationPointBuilder(OpenroadmTpType openroadmTpType) {
return new TerminationPointBuilder()
.setTpId(new TpId("2"))
- .addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130
- .TerminationPoint1.class,
- createOTNTerminationPoint(openroadmTpType).build());
+ .addAugmentation(createOTNTerminationPoint(openroadmTpType).build());
}
private TerminationPoint1Builder getTerminationPoint1Builder(OpenroadmTpType openroadmTpType) {
return new org.opendaylight
.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder()
.setTpType(openroadmTpType)
- .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(new ArrayList<>()).build())
+ .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(Map.of()).build())
.setXpdrClientAttributes((new XpdrClientAttributesBuilder()).build())
.setXpdrPortAttributes((new XpdrPortAttributesBuilder()).build())
.setXpdrNetworkAttributes(new XpdrNetworkAttributesBuilder()
.setIfCapType(If1GEODU0.class)
.build();
- List<SupportedInterfaceCapability> supIfCapaList = new ArrayList<>();
- supIfCapaList.add(supIfCapa);
- supIfCapaList.add(supIfCapa1);
- supIfCapaList.add(supIfCapa2);
- supIfCapaList.add(supIfCapa3);
+ Map<SupportedInterfaceCapabilityKey,SupportedInterfaceCapability> supIfCapaList = new HashMap<>();
+ supIfCapaList.put(supIfCapa.key(),supIfCapa);
+ supIfCapaList.put(supIfCapa1.key(),supIfCapa1);
+ supIfCapaList.put(supIfCapa2.key(),supIfCapa2);
+ supIfCapaList.put(supIfCapa3.key(),supIfCapa3);
TpSupportedInterfaces tpSupIf = new TpSupportedInterfacesBuilder()
.setSupportedInterfaceCapability(supIfCapaList)
.setTpType(openroadmTpType);
}
- private static List<org.opendaylight.yang.gen
- .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths> create96AvalWaveSrg() {
+ private static Map<
+ org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsKey,
+ org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
+ create96AvalWaveSrg() {
- List<org.opendaylight.yang.gen
- .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
- waveList = new ArrayList<>();
+ Map<
+ org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsKey,
+ org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
+ waveList = new HashMap<>();
for (int i = 1; i < 97; i++) {
org.opendaylight.yang.gen
.setIndex(Uint32.valueOf(i))
.withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes
.AvailableWavelengthsKey(Uint32.valueOf(i)));
- waveList.add(avalBldr.build());
+ org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths
+ aval = avalBldr.build();
+ waveList.put(aval.key(),aval);
}
return waveList;
}
package org.opendaylight.transportpce.pce.service;
import java.math.BigDecimal;
-import java.util.Arrays;
+import java.util.Map;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.opendaylight.transportpce.test.AbstractTest;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.PathBandwidth;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.generic.path.properties.PathPropertiesBuilder;
+import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.generic.path.properties.path.properties.PathMetric;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.generic.path.properties.path.properties.PathMetricBuilder;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.no.path.info.NoPathBuilder;
import org.opendaylight.yang.gen.v1.gnpy.path.rev200202.result.Response;
@Test
public void testPathComputationRequestPathCase() {
- Response response = new ResponseBuilder().setResponseType(new PathCaseBuilder()
- .setPathProperties(new PathPropertiesBuilder().setPathMetric(Arrays.asList(new PathMetricBuilder()
+ PathMetric pathMetric = new PathMetricBuilder()
.setAccumulativeValue(new BigDecimal(21))
- .setMetricType(PathBandwidth.class).build()))
+ .setMetricType(PathBandwidth.class).build();
+ Response response = new ResponseBuilder().setResponseType(new PathCaseBuilder()
+ .setPathProperties(new PathPropertiesBuilder().setPathMetric(Map.of(pathMetric.key(),pathMetric))
.build()).build()).build();
pathComputationServiceImpl.generateGnpyResponse(response,"path");
import java.util.LinkedList;
import java.util.List;
import java.util.ServiceLoader;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
+import org.opendaylight.binding.runtime.api.BindingRuntimeContext;
+import org.opendaylight.binding.runtime.spi.BindingRuntimeHelpers;
+import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
+import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
private SchemaContext schemaCtx;
- private BindingNormalizedNodeCodecRegistry codecRegistry;
+ private BindingNormalizedNodeSerializer codecRegistry;
private JsonUtil() {
List<YangModuleInfo> moduleInfos = new LinkedList<>();
moduleInfos.add(yangModelBindingProvider.getModuleInfo());
}
/* Create the schema context for loaded models */
- ModuleInfoBackedContext moduleInfoBackedCntxt = ModuleInfoBackedContext.create();
- moduleInfoBackedCntxt.addModuleInfos(moduleInfos);
- schemaCtx = moduleInfoBackedCntxt.getSchemaContext();
+ this.schemaCtx = BindingRuntimeHelpers.createEffectiveModel(moduleInfos);
if (schemaCtx == null) {
throw new IllegalStateException("Failed to load schema context");
}
// Create the binding binding normalized node codec registry
- BindingRuntimeContext bindingRuntimeContext = BindingRuntimeContext.create(moduleInfoBackedCntxt, schemaCtx);
- codecRegistry = new BindingNormalizedNodeCodecRegistry(bindingRuntimeContext);
+ BindingRuntimeContext bindingContext =
+ BindingRuntimeHelpers.createRuntimeContext();
+ this.codecRegistry = new BindingCodecContext(bindingContext);
}
public static JsonUtil getInstance() {
package org.opendaylight.transportpce.pce.utils;
-import com.google.common.collect.ImmutableList;
import java.math.BigDecimal;
import java.util.ArrayList;
-import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.opendaylight.transportpce.common.NetworkUtils;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.FiberPmd;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths;
import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev181130.AdminStates;
import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLinkKey;
import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.SectionElementBuilder;
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.LinkConcatenationBuilder;
-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.TerminationPoint1;
+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.TerminationPoint1Builder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.AmplifiedLinkBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapability;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfaces;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfacesBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder;
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.rev180226.networks.network.node.SupportingNode;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeKey;
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.Node1;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder;
import org.opendaylight.yangtools.yang.binding.Augmentation;
+import org.opendaylight.yangtools.yang.common.Uint16;
import org.opendaylight.yangtools.yang.common.Uint32;
public class NodeUtils {
// Augementation
Augmentation<Link> aug11 = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130
.Link1Builder()
- .setAdministrativeGroup(Long.valueOf(123))
+ .setAdministrativeGroup(Uint32.valueOf(123))
.setAdministrativeState(State.InService)
.setAmplified(true)
- .setLinkLatency(Long.valueOf(123))
+ .setLinkLatency(Uint32.valueOf(123))
.setLinkLength(BigDecimal.valueOf(123))
.setOMSAttributes(new OMSAttributesBuilder()
.setOppositeLink(new LinkId("OpenROADM-3-2-DEG1-to-OpenROADM-3-1-DEG1"))
.setSpan(new SpanBuilder().build())
- .setTEMetric(Long.valueOf(123)).build())
+ .setTEMetric(Uint32.valueOf(123)).build())
.setOperationalState(State.InService).build();
LinkBuilder linkBuilder = new LinkBuilder()
.setSource(ietfSrcLinkBldr.build())
.setDestination(ietfDestLinkBldr.build())
.setLinkId(linkId)
- .addAugmentation(Link1.class, aug11)
+ .addAugmentation(aug11)
.withKey(new LinkKey(linkId));
- linkBuilder.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class,
- link1Builder.build());
+ linkBuilder.addAugmentation(link1Builder.build());
return linkBuilder;
}
public static LinkBuilder createRoadmToRoadm(String srcNode, String destNode, String srcTp, String destTp) {
Link1Builder link1Builder = new Link1Builder()
- .setLinkLatency(30L)
+ .setLinkLatency(Uint32.valueOf(30))
.setLinkType(OpenroadmLinkType.ROADMTOROADM);
return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder);
}
- public static List<SupportingNode> geSupportingNodes() {
- List<SupportingNode> supportingNodes1 = new ArrayList<>();
-//
+ public static Map<SupportingNodeKey, SupportingNode> geSupportingNodes() {
+ Map<SupportingNodeKey, SupportingNode> supportingNodes1 = new HashMap<>();
+ SupportingNode supportingNode1 = new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 1"))
+ .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
+ .build();
supportingNodes1
- .add(new SupportingNodeBuilder()
- .setNodeRef(new NodeId("node 1"))
- .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
- .build());
+ .put(supportingNode1.key(),supportingNode1);
+ SupportingNode supportingNode2 = new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 2"))
+ .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .build();
supportingNodes1
- .add(new SupportingNodeBuilder()
- .setNodeRef(new NodeId("node 2"))
- .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
- .build());
+ .put(supportingNode2.key(),supportingNode2);
return supportingNodes1;
}
- public static NodeBuilder getNodeBuilder(List<SupportingNode> supportingNodes1) {
+ public static NodeBuilder getNodeBuilder(Map<SupportingNodeKey,SupportingNode> supportingNodes1) {
//update tp of nodes
TerminationPoint1Builder tp1Bldr = new TerminationPoint1Builder();
tp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK);
- xpdrTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
+ xpdrTpBldr.addAugmentation(tp1Bldr.build());
+ TerminationPoint xpdr = xpdrTpBldr.build();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1 =
- new Node1Builder().setTerminationPoint(ImmutableList.of(xpdrTpBldr.build())).build();
+ new Node1Builder().setTerminationPoint(Map.of(xpdr.key(),xpdr)).build();
return new NodeBuilder()
.setNodeId(new NodeId("node 1"))
.withKey(new NodeKey(new NodeId("node 1")))
- .addAugmentation(
- Node1.class, node1)
+ .addAugmentation(node1)
.setSupportingNode(supportingNodes1);
}
private Link genereateLinkBuilder() {
- List<LinkConcatenation> linkConcentationValues = new ArrayList<>();
+ Map<LinkConcatenationKey,LinkConcatenation> linkConcentationValues = new HashMap<>();
LinkConcatenation linkConcatenation = new LinkConcatenationBuilder()
.setFiberType(LinkConcatenation.FiberType.Truewave)
.setPmd(new FiberPmd(BigDecimal.ONE))
- .setSRLGId(Long.valueOf(1))
- .setSRLGLength(Long.valueOf(1))
+ .setSRLGId(Uint32.valueOf(1))
+ .setSRLGLength(Uint32.valueOf(1))
.build();
LinkConcatenation linkConcatenation2 = new LinkConcatenationBuilder()
.setFiberType(LinkConcatenation.FiberType.Truewave)
.setPmd(new FiberPmd(BigDecimal.ONE))
- .setSRLGId(Long.valueOf(1))
- .setSRLGLength(Long.valueOf(1))
+ .setSRLGId(Uint32.valueOf(1))
+ .setSRLGLength(Uint32.valueOf(1))
.build();
- linkConcentationValues.add(linkConcatenation);
- linkConcentationValues.add(linkConcatenation2);
+ linkConcentationValues.put(linkConcatenation.key(),linkConcatenation);
+ linkConcentationValues.put(linkConcatenation2.key(),linkConcatenation2);
- List<AmplifiedLink>
- amplifiedLinkValues = new ArrayList<>();
+ Map<AmplifiedLinkKey,AmplifiedLink>
+ amplifiedLinkValues = new HashMap<>();
org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al =
new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes
.AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
.build())
.build())
.build())
- .setSectionEltNumber(Integer.valueOf(1)).build();
+ .setSectionEltNumber(Uint16.valueOf(1)).build();
org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al2 =
new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes
.AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
.build())
.build())
.build())
- .setSectionEltNumber(Integer.valueOf(1)).build();
+ .setSectionEltNumber(Uint16.valueOf(1)).build();
- amplifiedLinkValues.add(al);
- amplifiedLinkValues.add(al2);
+ amplifiedLinkValues.put(al.key(),al);
+ amplifiedLinkValues.put(al2.key(),al2);
Augmentation<Link> aug11 =
new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder()
- .setAdministrativeGroup(Long.valueOf(123))
+ .setAdministrativeGroup(Uint32.valueOf(123))
.setAdministrativeState(State.InService)
.setAmplified(true)
- .setLinkLatency(Long.valueOf(123))
+ .setLinkLatency(Uint32.valueOf(123))
.setLinkLength(BigDecimal.valueOf(123))
.setOMSAttributes(new OMSAttributesBuilder()
.setAmplifiedLink(new AmplifiedLinkBuilder()
.build())
.setOppositeLink(new LinkId("link 1"))
.setSpan(new SpanBuilder().build())
- .setTEMetric(Long.valueOf(123)).build())
+ .setTEMetric(Uint32.valueOf(123)).build())
.setOperationalState(State.InService).build();
TransactionUtils.getNetworkForSpanLoss();
new DestinationBuilder()
.setDestNode(new NodeId("OpenROADM-3-1-DEG1"))
.setDestTp("DEG1-TTP-RX").build())
- .addAugmentation(Link1.class, aug11)
+ .addAugmentation(aug11)
.build();
return supportingNodes1;
}
- public static NodeBuilder getOTNNodeBuilder(List<SupportingNode> supportingNodes1,
+ public static NodeBuilder getOTNNodeBuilder(Map<SupportingNodeKey,SupportingNode> supportingNodes1,
OpenroadmTpType openroadmTpType) {
org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder
tp1Bldr = getTerminationPoint1Builder(openroadmTpType);
TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(openroadmTpType);
xpdrTpBldr
- .addAugmentation(
- org.opendaylight
- .yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1.class,
- tp1Bldr.build());
-
- xpdrTpBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
- .TerminationPoint1.class,
- createAnother2TerminationPoint(openroadmTpType).build());
- xpdrTpBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1.class,
- createAnotherTerminationPoint(openroadmTpType).build());
+ .addAugmentation(tp1Bldr.build());
+
+ xpdrTpBldr.addAugmentation(createAnother2TerminationPoint(openroadmTpType).build());
+ xpdrTpBldr.addAugmentation(createAnotherTerminationPoint(openroadmTpType).build());
org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1();
+ TerminationPoint xpdr = xpdrTpBldr.build();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 =
new Node1Builder()
- .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build()))
+ .setTerminationPoint(Map.of(xpdr.key(),xpdr))
.build();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 nodeIetf =
new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
.Node1Builder()
- .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build()))
+ .setTerminationPoint(Map.of(xpdr.key(),xpdr))
.build();
return new NodeBuilder()
.setNodeId(new NodeId("node_test"))
.withKey(new NodeKey(new NodeId("node 1")))
- .addAugmentation(
- Node1.class, node1Rev180226)
- .addAugmentation(
- org.opendaylight
- .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class,
- node1)
- .addAugmentation(
- org.opendaylight
- .yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class,
- nodeIetf
- )
+ .addAugmentation(node1Rev180226)
+ .addAugmentation(node1)
+ .addAugmentation(nodeIetf)
.setSupportingNode(supportingNodes1);
}
- public static NodeBuilder getOTNNodeBuilderEmpty(List<SupportingNode> supportingNodes1,
+ public static NodeBuilder getOTNNodeBuilderEmpty(Map<SupportingNodeKey,SupportingNode> supportingNodes1,
OpenroadmTpType openroadmTpType) {
org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder tp1Bldr =
getTerminationPoint1Builder(openroadmTpType);
TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(openroadmTpType);
- xpdrTpBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
- .TerminationPoint1.class,
- tp1Bldr.build());
- xpdrTpBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
- .TerminationPoint1.class,
- createAnotherTerminationPoint(openroadmTpType).build());
+ xpdrTpBldr.addAugmentation(tp1Bldr.build());
+ xpdrTpBldr.addAugmentation(createAnotherTerminationPoint(openroadmTpType).build());
org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1Empty();
+ TerminationPoint xpdr = xpdrTpBldr.build();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 =
new Node1Builder()
- .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build()))
+ .setTerminationPoint(Map.of(xpdr.key(),xpdr))
.build();
return new NodeBuilder()
.setNodeId(new NodeId("node_test"))
.withKey(new NodeKey(new NodeId("node 1")))
- .addAugmentation(
- Node1.class, node1Rev180226)
- .addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class,
- node1)
+ .addAugmentation(node1Rev180226)
+ .addAugmentation(node1)
.setSupportingNode(supportingNodes1);
}
}
private static DegreeAttributes getDegAttributes() {
+ AvailableWavelengths aval = new AvailableWavelengthsBuilder()
+ .setIndex(Uint32.valueOf(20))
+ .build();
return (new DegreeAttributesBuilder())
- .setAvailableWavelengths(
- Collections.singletonList(new AvailableWavelengthsBuilder()
- .setIndex(20L)
- .build()))
+ .setAvailableWavelengths(Map.of(aval.key(),aval))
.build();
}
private static DegreeAttributes getEmptyDegAttributes() {
return (new DegreeAttributesBuilder())
- .setAvailableWavelengths(
- new ArrayList<>())
+ .setAvailableWavelengths(Map.of())
.build();
}
private static SrgAttributes getEmptySrgAttributes() {
- List<org.opendaylight.yang.gen
- .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
- waveList = new ArrayList<>();
- return new SrgAttributesBuilder().setAvailableWavelengths(waveList).build();
+ return new SrgAttributesBuilder().setAvailableWavelengths(Map.of()).build();
}
private static TerminationPointBuilder getTerminationPointBuilder(OpenroadmTpType openroadmTpType) {
return new TerminationPointBuilder()
.setTpId(new TpId("2"))
- .addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130
- .TerminationPoint1.class,
- createOTNTerminationPoint(openroadmTpType).build());
+ .addAugmentation(createOTNTerminationPoint(openroadmTpType).build());
}
private static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder
return new org.opendaylight
.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder()
.setTpType(openroadmTpType)
- .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
- .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(new ArrayList<>()).build())
+ .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
+ .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(Map.of()).build())
.setXpdrClientAttributes((new XpdrClientAttributesBuilder()).build())
.setXpdrPortAttributes((new XpdrPortAttributesBuilder()).build())
.setXpdrNetworkAttributes(new XpdrNetworkAttributesBuilder()
.setIfCapType(If1GEODU0.class)
.build();
- List<SupportedInterfaceCapability> supIfCapaList = new ArrayList<>();
- supIfCapaList.add(supIfCapa);
- supIfCapaList.add(supIfCapa1);
- supIfCapaList.add(supIfCapa2);
- supIfCapaList.add(supIfCapa3);
+ Map<SupportedInterfaceCapabilityKey,SupportedInterfaceCapability> supIfCapaList = new HashMap<>();
+ supIfCapaList.put(supIfCapa.key(),supIfCapa);
+ supIfCapaList.put(supIfCapa1.key(),supIfCapa1);
+ supIfCapaList.put(supIfCapa2.key(),supIfCapa2);
+ supIfCapaList.put(supIfCapa3.key(),supIfCapa3);
TpSupportedInterfaces tpSupIf = new TpSupportedInterfacesBuilder()
.setSupportedInterfaceCapability(supIfCapaList)
.setTpType(openroadmTpType);
}
- private static List<org.opendaylight.yang.gen
+ private static Map<org.opendaylight.yang.gen
+ .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsKey,
+ org.opendaylight.yang.gen
.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths> create96AvalWaveSrg() {
- List<org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
- waveList = new ArrayList<>();
+ Map<org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsKey,
+ org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
+ waveList = new HashMap<>();
for (int i = 1; i < 97; i++) {
org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes
.setIndex(Uint32.valueOf(i))
.withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes
.AvailableWavelengthsKey(Uint32.valueOf(i)));
- waveList.add(avalBldr.build());
+ org.opendaylight.yang.gen.v1.http.org.openroadm.srg
+ .rev181130.srg.node.attributes.AvailableWavelengths aval =
+ avalBldr.build();
+ waveList.put(aval.key(),aval);
}
return waveList;
}
package org.opendaylight.transportpce.pce.utils;
import java.util.Arrays;
+import java.util.Map;
import org.opendaylight.transportpce.common.ResponseCodes;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInputBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.ExcludeBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.IncludeBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.LatencyBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.include_.OrderedHops;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.include_.OrderedHopsBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicability;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirectionBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeader;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint32;
public final class PceTestData {
.build();
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
.setServiceFormat(ServiceFormat.ODU)
- .setServiceRate(100L)
+ .setServiceRate(Uint32.valueOf(100))
.setClli("clli11")
.setNodeId("XPONDER-2-2")
.setTxDirection(new TxDirectionBuilder().setPort(
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
.setServiceFormat(ServiceFormat.ODU)
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setClli("Some clli11")
.setNodeId("XPONDER-1-2")
.setTxDirection(new TxDirectionBuilder().setPort(
.build();
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
.setServiceFormat(ServiceFormat.Ethernet)
- .setServiceRate(100L)
+ .setServiceRate(Uint32.valueOf(100))
.setClli("clli11")
.setNodeId("XPONDER-2-2")
.setTxDirection(new TxDirectionBuilder().setPort(
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
.setServiceFormat(ServiceFormat.Ethernet)
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setClli("Some clli11")
.setNodeId("XPONDER-1-2")
.setTxDirection(new TxDirectionBuilder().setPort(
.build();
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
.setServiceFormat(ServiceFormat.Ethernet)
- .setServiceRate(100L)
+ .setServiceRate(Uint32.valueOf(100))
.setClli("clli11")
.setNodeId("XPONDER-2-2")
.setTxDirection(new TxDirectionBuilder().setPort(
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
.setServiceFormat(ServiceFormat.Ethernet)
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setClli("Some clli11")
.setNodeId("XPONDER-1-2")
.setTxDirection(new TxDirectionBuilder().setPort(
.setRequestId("request 1")
.build();
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-1-2")
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-3-2")
.build();
PathComputationRequestInput input = new PathComputationRequestInputBuilder()
.setRequestId("request 1")
.build();
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-1-2")
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-3-2")
.build();
+ OrderedHops orderedHops = new OrderedHopsBuilder()
+ .setHopNumber(Uint16.valueOf(22))
+ .setHopType(new HopTypeBuilder()
+ .setHopType(new HopTypeBuilder().getHopType()).build())
+ .build();
PathComputationRequestInput input = new PathComputationRequestInputBuilder()
.setServiceHandlerHeader(serviceHandlerHeader)
.setServiceName("service 1")
.setExclude(new ExcludeBuilder()
.setNodeId(Arrays.asList("OpenROADM-2-2"))
.build())
- .setLatency(new LatencyBuilder().setMaxLatency(3223L).build())
+ .setLatency(new LatencyBuilder().setMaxLatency(Uint32.valueOf(3223)).build())
.setInclude(new IncludeBuilder()
- .setOrderedHops(Arrays.asList(new OrderedHopsBuilder()
- .setHopNumber(22)
- .setHopType(new HopTypeBuilder()
- .setHopType(new HopTypeBuilder().getHopType()).build())
- .build()))
+ .setOrderedHops(Map.of(orderedHops.key(),orderedHops))
.build())
.build())
.build())
.setRequestId("request 1")
.build();
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-1-2")
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-3-2")
.build();
PathComputationRequestInput input = new PathComputationRequestInputBuilder()
.setRequestId("request 1")
.build();
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-1-2")
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-3-2")
.build();
HardConstraints hardConstrains = new HardConstraintsBuilder().build();
.setRequestId("request 1")
.build();
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-1-2")
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-3-2")
.build();
PathComputationRequestInput input = new PathComputationRequestInputBuilder()
private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
long zaWaveLength) {
AToZDirection atozDirection = new AToZDirectionBuilder()
- .setRate(azRate)
- .setAToZWavelengthNumber(azWaveLength)
- .setAToZ(null)
+ .setRate(Uint32.valueOf(azRate))
+ .setAToZWavelengthNumber(Uint32.valueOf(azWaveLength))
.build();
ZToADirection ztoaDirection = new ZToADirectionBuilder()
- .setRate(zaRate)
- .setZToAWavelengthNumber(zaWaveLength)
- .setZToA(null)
+ .setRate(Uint32.valueOf(zaRate))
+ .setZToAWavelengthNumber(Uint32.valueOf(zaWaveLength))
.build();
PathDescription pathDescription = new PathDescriptionBuilder()
.setAToZDirection(atozDirection)
.setNode(true).build();
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-1-1")
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId("XPONDER-3-1")
.build();
.setHardConstraints(new HardConstraintsBuilder()
.setCoRoutingOrGeneral(new GeneralBuilder()
.setLatency(new LatencyBuilder()
- .setMaxLatency(3223L).build())
+ .setMaxLatency(Uint32.valueOf(3223)).build())
.setDiversity(new DiversityBuilder()
.setExistingService(Arrays.asList(base.getServiceName()))
.setExistingServiceApplicability(nodeTrue)
new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
.service.create.input.ServiceAEndBuilder()
.setClli("clli")
- .setServiceRate((long) 0)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId(new NodeIdType("XPONDER-1-2"))
.setTxDirection(new org.opendaylight.yang.gen.v1.http.org
.openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
.service.create.input.ServiceZEndBuilder()
.setClli("clli")
- .setServiceRate((long) 0)
+ .setServiceRate(Uint32.valueOf(0))
.setNodeId(new NodeIdType("XPONDER-3-2"))
.setTxDirection(new org.opendaylight.yang.gen.v1.http.org
.openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
.build();
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
.setServiceFormat(ServiceFormat.Ethernet)
- .setServiceRate(100L)
+ .setServiceRate(Uint32.valueOf(100))
.setClli("clli11")
.setNodeId(nodeA)
.setTxDirection(new TxDirectionBuilder().setPort(
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
.setServiceFormat(ServiceFormat.Ethernet)
- .setServiceRate(0L)
+ .setServiceRate(Uint32.valueOf(0))
.setClli("Some clli11")
.setNodeId(nodeZ)
.setTxDirection(new TxDirectionBuilder().setPort(
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
import org.junit.Assert;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.WriteTransaction;
import org.opendaylight.transportpce.common.converter.api.DataObjectConverter;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutput;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.atoz.direction.AToZ;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.atoz.direction.AToZKey;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.resource.resource.Node;
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;
Networks networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(networkReader,
QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks"));
- saveOpenRoadmNetwork(networks.getNetwork().get(0), NetworkUtils.UNDERLAY_NETWORK_ID, dataBroker);
+ @NonNull
+ List<Network> networkMap = new ArrayList<>(networks.nonnullNetwork().values());
+ saveOpenRoadmNetwork(networkMap.get(0), NetworkUtils.UNDERLAY_NETWORK_ID, dataBroker);
networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(topoReader,
QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks"));
- saveOpenRoadmNetwork(networks.getNetwork().get(0), NetworkUtils.OVERLAY_NETWORK_ID, dataBroker);
+ saveOpenRoadmNetwork(networkMap.get(0), NetworkUtils.OVERLAY_NETWORK_ID, dataBroker);
} catch (IOException | ExecutionException | InterruptedException e) {
LOG.error("Cannot init test ", e);
Assert.fail("Cannot init test ");
}
private static List<String> getNodesFromPath(PathComputationRequestOutput output) {
- List<AToZ> atozList = output.getResponseParameters().getPathDescription().getAToZDirection().getAToZ();
- return atozList.stream()
+ @Nullable Map<AToZKey, AToZ> atozList = output.getResponseParameters()
+ .getPathDescription().getAToZDirection().getAToZ();
+ return atozList.values().stream()
.filter(aToZ -> {
if ((aToZ.getResource() == null) || (aToZ.getResource().getResource() == null)) {
LOG.debug("Diversity constraint: Resource of AToZ node {} is null! Skipping this node!",
package org.opendaylight.transportpce.pce.utils;
import java.math.BigDecimal;
-import java.util.ArrayList;
import java.util.Collections;
-import java.util.List;
+import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.nodes.MappingBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.FiberPmd;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State;
import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev181130.AdminStates;
import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLinkKey;
import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.SectionElementBuilder;
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.LinkConcatenationBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1;
+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.Link1Builder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.AmplifiedLinkBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.list.CurrentPmEntryBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.val.group.Measurement;
import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.val.group.MeasurementBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.val.group.MeasurementKey;
import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev171215.PmDataType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev171215.Validity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths;
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.NodeId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkBuilder;
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.rev180226.networks.network.node.SupportingNode;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeKey;
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.Network1Builder;
import org.opendaylight.yangtools.yang.binding.Augmentation;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint16;
import org.opendaylight.yangtools.yang.common.Uint32;
public final class TransactionUtils {
public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks
.Network getNetworkForSpanLoss() {
- List<LinkConcatenation> linkConcentationValues = new ArrayList<>();
+ Map<LinkConcatenationKey,LinkConcatenation> linkConcentationValues = new HashMap<>();
LinkConcatenation linkConcatenation = new LinkConcatenationBuilder()
.setFiberType(LinkConcatenation.FiberType.Truewave)
.setPmd(new FiberPmd(BigDecimal.ONE))
- .setSRLGId(Long.valueOf(1))
- .setSRLGLength(Long.valueOf(1))
+ .setSRLGId(Uint32.valueOf(1))
+ .setSRLGLength(Uint32.valueOf(1))
.build();
LinkConcatenation linkConcatenation2 = new LinkConcatenationBuilder()
.setFiberType(LinkConcatenation.FiberType.Truewave)
.setPmd(new FiberPmd(BigDecimal.ONE))
- .setSRLGId(Long.valueOf(1))
- .setSRLGLength(Long.valueOf(1))
+ .setSRLGId(Uint32.valueOf(1))
+ .setSRLGLength(Uint32.valueOf(1))
.build();
- linkConcentationValues.add(linkConcatenation);
- linkConcentationValues.add(linkConcatenation2);
+ linkConcentationValues.put(linkConcatenation.key(),linkConcatenation);
+ linkConcentationValues.put(linkConcatenation2.key(),linkConcatenation2);
// create 2 openroadm-topology degree nodes, end points of the link to be
// measured
- List<SupportingNode> supportingNodeListA = new ArrayList<>();
- supportingNodeListA.add(new SupportingNodeBuilder().setNetworkRef(new NetworkId("openroadm-network"))
- .setNodeRef(new NodeId("ROADM-A1")).build());
- Node ietfNodeA = new NodeBuilder().setNodeId(new NodeId("ROADM-A1-DEG2")).setSupportingNode(supportingNodeListA)
- .addAugmentation(Node1.class,getNode1AugImpl()).build();
- List<SupportingNode> supportingNodeListC = new ArrayList<>();
- supportingNodeListC.add(new SupportingNodeBuilder().setNetworkRef(new NetworkId("openroadm-network"))
-
- .setNodeRef(new NodeId("ROADM-C1")).build());
- supportingNodeListC.add(new SupportingNodeBuilder().setNetworkRef(new NetworkId("clli-network"))
- .setNodeRef(new NodeId("ROADM-C2")).build());
+ SupportingNode supportingNodeA = new SupportingNodeBuilder().setNetworkRef(new NetworkId("openroadm-network"))
+ .setNodeRef(new NodeId("ROADM-A1")).build();
+ Node ietfNodeA = new NodeBuilder().setNodeId(new NodeId("ROADM-A1-DEG2"))
+ .setSupportingNode(Map.of(supportingNodeA.key(),supportingNodeA))
+ .addAugmentation(getNode1AugImpl()).build();
+ Map<SupportingNodeKey,SupportingNode> supportingNodeListC = new HashMap<>();
+ SupportingNode supportingNode = new SupportingNodeBuilder().setNetworkRef(new NetworkId("openroadm-network"))
+ .setNodeRef(new NodeId("ROADM-C1")).build();
+ supportingNodeListC.put(supportingNode.key(),supportingNode);
+ SupportingNode supportingNode2 = new SupportingNodeBuilder().setNetworkRef(new NetworkId("clli-network"))
+ .setNodeRef(new NodeId("ROADM-C2")).build();
+ supportingNodeListC.put(supportingNode2.key(),supportingNode2);
Node ietfNodeC = new NodeBuilder().setNodeId(new NodeId("ROADM-C1-DEG1")).setSupportingNode(supportingNodeListC)
- .addAugmentation(Node1.class,getNode1AugImpl())
- .addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class,
- getNode1())
+ .addAugmentation(getNode1AugImpl())
+ .addAugmentation(getNode1())
.build();
- List<Node> ietfNodeList = new ArrayList<>();
- ietfNodeList.add(ietfNodeA);
- ietfNodeList.add(ietfNodeC);
+ Map<NodeKey,Node> ietfNodeList = new HashMap<>();
+ ietfNodeList.put(ietfNodeA.key(),ietfNodeA);
+ ietfNodeList.put(ietfNodeC.key(),ietfNodeC);
- List<AmplifiedLink>
- amplifiedLinkValues = new ArrayList<>();
+ Map<AmplifiedLinkKey,AmplifiedLink>
+ amplifiedLinkValues = new HashMap<>();
org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al =
new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes
.AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
.build())
.build())
.build())
- .setSectionEltNumber(Integer.valueOf(1)).build();
+ .setSectionEltNumber(Uint16.valueOf(1)).build();
org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al2 =
new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes
.AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
.build())
.build())
.build())
- .setSectionEltNumber(Integer.valueOf(1)).build();
- amplifiedLinkValues.add(al);
- amplifiedLinkValues.add(al2);
+ .setSectionEltNumber(Uint16.valueOf(1)).build();
+ amplifiedLinkValues.put(al.key(),al);
+ amplifiedLinkValues.put(al2.key(),al2);
Map<Class<? extends Augmentation<Link>>, Augmentation<Link>> map = Collections.emptyMap();
- Augmentation<Link> aug11 = new Link1Builder().setAdministrativeGroup(Long.valueOf(123))
+ Augmentation<Link> aug11 = new Link1Builder().setAdministrativeGroup(Uint32.valueOf(123))
.setAdministrativeState(State.InService)
.setAmplified(true)
- .setLinkLatency(Long.valueOf(123))
+ .setLinkLatency(Uint32.valueOf(123))
.setLinkLength(BigDecimal.valueOf(123))
.setOMSAttributes(new OMSAttributesBuilder()
.setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
.setOppositeLink(new LinkId("link 1"))
.setSpan(new SpanBuilder().build())
- .setTEMetric(Long.valueOf(123)).build())
+ .setTEMetric(Uint32.valueOf(123)).build())
.setOperationalState(State.InService).build();
org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1 aug12 =
new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder()
.setLinkType(OpenroadmLinkType.ROADMTOROADM).build();
Augmentation<Link> aug21 = new Link1Builder()
- .setAdministrativeGroup(Long.valueOf(123))
+ .setAdministrativeGroup(Uint32.valueOf(123))
.setAdministrativeState(State.InService)
.setAmplified(true)
- .setLinkLatency(Long.valueOf(123))
+ .setLinkLatency(Uint32.valueOf(123))
.setLinkLength(BigDecimal.valueOf(123))
.setOMSAttributes(new OMSAttributesBuilder()
.setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
.setOppositeLink(new LinkId("link 1"))
.setSpan(new SpanBuilder().build())
- .setTEMetric(Long.valueOf(123)).build())
+ .setTEMetric(Uint32.valueOf(123)).build())
.setOperationalState(State.InService).build();
org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1 aug22 =
new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder()
.setLinkType(OpenroadmLinkType.ROADMTOROADM).build();
// create the roadm-to-roadm link to be measured
- List<Link> ietfLinkList = new ArrayList<>();
Link roadm2roadmLink = new LinkBuilder().setLinkId(new LinkId("ROADM-A1-to-ROADM-C1"))
.setSource(new SourceBuilder().setSourceNode(ietfNodeA.getNodeId())
.setSourceTp("DEG2-TTP-TXRX").build())
.setDestination(
new DestinationBuilder().setDestNode(ietfNodeC.getNodeId()).setDestTp("DEG1-TTP-TXRX").build())
- .addAugmentation(Link1.class, aug11)
- .addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class,
- aug12)
- .addAugmentation(Link1.class, aug21)
- .addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class,
- aug22)
+ .addAugmentation(aug11)
+ .addAugmentation(aug12)
+ .addAugmentation(aug21)
+ .addAugmentation(aug22)
.build();
- ietfLinkList.add(roadm2roadmLink);
// create the ietf network
- Network1 openroadmAugmToIetfNetwork = new Network1Builder().setLink(ietfLinkList).build();
+ Network1 openroadmAugmToIetfNetwork = new Network1Builder()
+ .setLink(Map.of(roadm2roadmLink.key(),roadm2roadmLink)).build();
// openroadm Topology builder
NetworkBuilder ietfNetworkBldr = new NetworkBuilder()
.setNetworkId(new NetworkId("openroadm-topology"))
.setNode(ietfNodeList)
- .addAugmentation(Network1.class, openroadmAugmToIetfNetwork);
+ .addAugmentation(openroadmAugmToIetfNetwork);
return ietfNetworkBldr.build();
}
.setPmParameterValue(new PmDataType(new BigDecimal("-3.5")))
.setValidity(Validity.Complete)
.build();
- List<Measurement> measurementListA = new ArrayList<>();
- measurementListA.add(measurementA);
CurrentPm cpA = new CurrentPmBuilder()
.setType(org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev171215.PmNamesEnum
.OpticalPowerOutput)
- .setMeasurement(measurementListA)
+ .setMeasurement(Map.of(measurementA.key(),measurementA))
.build();
- List<CurrentPm> currentPmListA = new ArrayList<>();
- currentPmListA.add(cpA);
InstanceIdentifier<Interface> interfaceIIDA = InstanceIdentifier.create(OrgOpenroadmDevice.class)
.child(Interface.class, new InterfaceKey("OTS-DEG2-TTP-TXRX"));
CurrentPmEntry currentPmEntryA = new CurrentPmEntryBuilder()
- .setCurrentPm(currentPmListA)
+ .setCurrentPm(Map.of(cpA.key(),cpA))
.setPmResourceInstance(interfaceIIDA)
.setPmResourceType(
org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev181019.ResourceTypeEnum
.setPmResourceTypeExtension("")
.setRetrievalTime(new DateAndTime("2018-06-07T13:22:58+00:00"))
.build();
- List<CurrentPmEntry> currentPmEntryListA = new ArrayList<>();
- currentPmEntryListA.add(currentPmEntryA);
- return Optional.of(new CurrentPmListBuilder().setCurrentPmEntry(currentPmEntryListA).build());
+ return Optional.of(new CurrentPmListBuilder()
+ .setCurrentPmEntry(Map.of(currentPmEntryA.key(),currentPmEntryA)).build());
}
public static Optional<CurrentPmList> getCurrentPmListC() {
.setPmParameterValue(new PmDataType(new BigDecimal("-18.1")))
.setValidity(Validity.Complete)
.build();
- List<Measurement> measurementListC = new ArrayList<>();
- measurementListC.add(measurementC);
+ Map<MeasurementKey,Measurement> measurementListC = new HashMap<>();
+ measurementListC.put(measurementC.key(),measurementC);
CurrentPm cpC = new CurrentPmBuilder()
.setType(org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev171215.PmNamesEnum
.OpticalPowerInput)
.setMeasurement(measurementListC)
.build();
- List<CurrentPm> currentPmListC = new ArrayList<>();
- currentPmListC.add(cpC);
InstanceIdentifier<Interface> interfaceIIDC = InstanceIdentifier.create(OrgOpenroadmDevice.class)
.child(Interface.class, new InterfaceKey("OTS-DEG1-TTP-TXRX"));
CurrentPmEntry currentPmEntryC = new CurrentPmEntryBuilder()
- .setCurrentPm(currentPmListC)
+ .setCurrentPm(Map.of(cpC.key(),cpC))
.setPmResourceInstance(interfaceIIDC)
.setPmResourceType(
org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev181019.ResourceTypeEnum
.setPmResourceTypeExtension("")
.setRetrievalTime(new DateAndTime("2018-06-07T13:22:58+00:00"))
.build();
- List<CurrentPmEntry> currentPmEntryListC = new ArrayList<>();
- currentPmEntryListC.add(currentPmEntryC);
- return Optional.of(new CurrentPmListBuilder().setCurrentPmEntry(currentPmEntryListC).build());
+ return Optional.of(new CurrentPmListBuilder()
+ .setCurrentPmEntry(Map.of(currentPmEntryC.key(),currentPmEntryC)).build());
}
private static org.opendaylight
}
private static DegreeAttributes getDegAttributes() {
+ org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths
+ aval = new AvailableWavelengthsBuilder()
+ .setIndex(Uint32.valueOf(20L))
+ .build();
return (new DegreeAttributesBuilder())
- .setAvailableWavelengths(
- Collections.singletonList(new AvailableWavelengthsBuilder()
- .setIndex(20L)
- .build()))
+ .setAvailableWavelengths(Map.of(aval.key(),aval))
.build();
}
return new SrgAttributesBuilder().setAvailableWavelengths(create96AvalWaveSrg()).build();
}
- public static List<org.opendaylight.yang.gen
+ public static Map<org.opendaylight.yang.gen
+ .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsKey,org.opendaylight.yang.gen
.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths> create96AvalWaveSrg() {
- List<org.opendaylight.yang.gen
+ Map<org.opendaylight.yang.gen
+ .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsKey,org.opendaylight.yang.gen
.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
- waveList = new ArrayList<>();
+ waveMap = new HashMap<>();
for (int i = 1; i < 97; i++) {
org.opendaylight.yang.gen
.setIndex(Uint32.valueOf(i))
.withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes
.AvailableWavelengthsKey(Uint32.valueOf(i)));
- waveList.add(avalBldr.build());
+ AvailableWavelengths aval = avalBldr.build();
+ waveMap.put(aval.key(),aval);
}
- return waveList;
+ return waveMap;
}