*/
package org.opendaylight.transportpce.tapi.connectivity;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import org.opendaylight.transportpce.tapi.utils.GenericServiceEndpoint;
import org.opendaylight.transportpce.tapi.utils.ServiceEndpointType;
import org.opendaylight.transportpce.tapi.utils.TapiContext;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.Network;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.mapping.Mapping;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.mapping.MappingKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.network.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.network.NodesKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.equipment.types.rev181130.OpticTypes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev181130.NodeIdType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.RpcActions;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.Service;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.sdnc.request.header.SdncRequestHeaderBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.SubrateEthSlaBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.lgx.LgxBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.PortBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.ODU4;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.OTU4;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceAEnd;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceAEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceZEnd;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceZEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.Network;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.MappingKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.network.NodesKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.equipment.types.rev191129.OpticTypes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev210528.NodeIdType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ConnectionType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.RpcActions;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.Service;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ethernet.subrate.attributes.grp.EthernetAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.sdnc.request.header.SdncRequestHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.RxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.RxDirectionKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.TxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.TxDirectionKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.lgx.LgxBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.port.PortBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.subrate.eth.sla.SubrateEthSlaBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmNodeType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.ODU4;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.OTU4;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev191129.ServiceFormat;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input.ServiceAEnd;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input.ServiceAEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input.ServiceZEnd;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input.ServiceZEndBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.PathDescription;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.atoz.direction.AToZ;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.atoz.direction.AToZKey;
import org.opendaylight.yangtools.yang.common.Uint16;
import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.common.Uint64;
+import org.opendaylight.yangtools.yang.common.Uint8;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class ConnectivityUtils {
private final Uuid tapiTopoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
- .getBytes(Charset.forName("UTF-8"))).toString());
+ .getBytes(StandardCharsets.UTF_8)).toString());
private static final Logger LOG = LoggerFactory.getLogger(ConnectivityUtils.class);
private final ServiceDataStoreOperations serviceDataStoreOperations;
.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.ConnectionKey,
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection>
connectionFullMap; // this variable is for complete connection objects
- private Map<String, Map<String, Boolean>> networkMap = new HashMap<>();
private final NetworkTransactionService networkTransactionService;
+ private Connection topConnRdmRdm;
+ private Connection topConnXpdrXpdrPhtn;
+ private Connection topConnXpdrXpdrOdu;
// TODO -> handle cases for which node id is ROADM-A1 and not ROADMA01 or XPDR-A1 and not XPDRA01
public ConnectivityUtils(ServiceDataStoreOperations serviceDataStoreOperations,
this.sipMap = sipMap;
this.connectionFullMap = new HashMap<>();
this.networkTransactionService = networkTransactionService;
+ this.topConnRdmRdm = null;
+ this.topConnXpdrXpdrPhtn = null;
+ this.topConnXpdrXpdrOdu = null;
}
public static ServiceCreateInput buildServiceCreateInput(GenericServiceEndpoint sepA, GenericServiceEndpoint sepZ) {
.setOpticType(OpticTypes.Gray)
.setServiceFormat(ServiceFormat.Ethernet)
.setServiceRate(Uint32.valueOf(100))
- .setTxDirection(new TxDirectionBuilder()
+ .setTxDirection(Map.of(new TxDirectionKey(Uint8.ZERO), new TxDirectionBuilder()
.setPort(new PortBuilder()
.setPortDeviceName(txPortDeviceName)
.setPortName(txPortName)
.setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
- .build())
- .setRxDirection(new RxDirectionBuilder()
+ .build()))
+ .setRxDirection(Map.of(new RxDirectionKey(Uint8.ZERO), new RxDirectionBuilder()
.setPort(new PortBuilder()
.setPortDeviceName(rxPortDeviceName)
.setPortName(rxPortName)
.setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
- .build())
+ .build()))
.build();
}
.setOpticType(OpticTypes.Gray)
.setServiceFormat(ServiceFormat.Ethernet)
.setServiceRate(Uint32.valueOf(100))
- .setTxDirection(new TxDirectionBuilder()
+ .setTxDirection(Map.of(new TxDirectionKey(Uint8.ZERO), new TxDirectionBuilder()
.setPort(new PortBuilder()
.setPortDeviceName(txPortDeviceName)
.setPortName(txPortName)
.setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
- .build())
- .setRxDirection(new RxDirectionBuilder()
+ .build()))
+ .setRxDirection(Map.of(new RxDirectionKey(Uint8.ZERO), new RxDirectionBuilder()
.setPort(new PortBuilder()
.setPortDeviceName(rxPortDeviceName)
.setPortName(rxPortName)
.setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
- .build())
+ .build()))
.build();
}
LOG.error("No service path found for service {}", service.getServiceName());
return null;
}
- ServicePaths servicePaths = optServicePaths.get();
+ ServicePaths servicePaths = optServicePaths.orElseThrow();
PathDescription pathDescription = servicePaths.getPathDescription();
LOG.info("Path description of service = {}", pathDescription);
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.ServiceAEnd serviceAEnd
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.ServiceAEnd serviceAEnd
= service.getServiceAEnd();
// Endpoint creation
EndPoint endPoint1 = mapServiceAEndPoint(serviceAEnd, pathDescription);
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.ServiceZEnd serviceZEnd
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.ServiceZEnd serviceZEnd
= service.getServiceZEnd();
EndPoint endPoint2 = mapServiceZEndPoint(serviceZEnd, pathDescription);
Map<EndPointKey, EndPoint> endPointMap = new HashMap<>();
.setAdministrativeState(AdministrativeState.UNLOCKED)
.setOperationalState(OperationalState.ENABLED)
.setLifecycleState(LifecycleState.INSTALLED)
- .setUuid(new Uuid(UUID.nameUUIDFromBytes(service.getServiceName().getBytes(Charset.forName("UTF-8")))
+ .setUuid(new Uuid(UUID.nameUUIDFromBytes(service.getServiceName().getBytes(StandardCharsets.UTF_8))
.toString()))
.setServiceLayer(mapServiceLayer(serviceAEnd.getServiceFormat(), endPoint1, endPoint2))
.setServiceType(ServiceType.POINTTOPOINTCONNECTIVITY)
private OpenroadmNodeType getOpenroadmType(String nodeName) {
LOG.info("Node name = {}", nodeName);
Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+",nodeName, TapiStringConstants.DSR))
- .getBytes(Charset.forName("UTF-8"))).toString());
+ .getBytes(StandardCharsets.UTF_8)).toString());
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node tapiNode
= this.tapiContext.getTapiNode(this.tapiTopoUuid, nodeUuid);
if (tapiNode != null) {
return OpenroadmNodeType.forName(tapiNode.getName().get(new NameKey("Node Type"))
- .getValue()).get();
+ .getValue());
}
return null;
}
private Map<ConnectionKey, Connection> createConnectionsFromService(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.ServiceAEnd
- serviceAEnd,
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.ServiceZEnd
- serviceZEnd,
- PathDescription pathDescription) {
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.ServiceAEnd
+ serviceAEnd,
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.ServiceZEnd
+ serviceZEnd,
+ PathDescription pathDescription) {
Map<ConnectionKey, Connection> connectionServMap = new HashMap<>();
// build lists with ROADM nodes, XPDR/MUX/SWITCH nodes, ROADM DEG TTPs, ROADM SRG TTPs, XPDR CLIENT TTPs
// and XPDR NETWORK TTPs (if any). From the path description. This will help to build the uuid of the CEPs
List<String> rdmNodelist = new ArrayList<>();
List<String> xpdrNodelist = new ArrayList<>();
for (AToZ elem:pathDescription.getAToZDirection().getAToZ().values().stream()
- .sorted(Comparator.comparing(AToZ::getId)).collect(Collectors.toList())) {
+ .sorted((Comparator.comparing(atoz -> Integer.valueOf(atoz.getId())))).collect(Collectors.toList())) {
resourceType = elem.getResource().getResource().implementedInterface().getSimpleName();
switch (resourceType) {
case TapiStringConstants.TP:
// - XC Connection OTSi betwwen iOTSi y eOTSi of xpdr
// - Top connection OTSi between network ports of xpdrs in the Photonic media layer -> i_OTSi
connectionServMap.putAll(createXpdrCepsAndConnectionsPht(xpdrNetworkTplist, xpdrNodelist));
+ this.topConnRdmRdm = null;
break;
case ODU:
+ // TODO: verify if this is correct
// - XC Connection OTSi betwwen iODU and eODU of xpdr
// - Top connection in the ODU layer, between xpdr eODU ports (?)
- connectionServMap.putAll(createXpdrCepsAndConnectionsOdu(xpdrNetworkTplist, xpdrNodelist));
+ if (openroadmNodeType.equals(OpenroadmNodeType.MUXPDR)) {
+ connectionServMap.putAll(createXpdrCepsAndConnectionsOdu(xpdrNetworkTplist, xpdrNodelist));
+ this.topConnXpdrXpdrPhtn = null;
+ }
break;
case Ethernet:
// Check if OC, OTU and ODU are created
connectionServMap.putAll(createRoadmCepsAndConnections(rdmAddDropTplist, rdmDegTplist, rdmNodelist,
edgeRoadm1, edgeRoadm2));
connectionServMap.putAll(createXpdrCepsAndConnectionsPht(xpdrNetworkTplist, xpdrNodelist));
+ this.topConnRdmRdm = null;
xpdrClientTplist = getAssociatedClientsPort(xpdrNetworkTplist);
LOG.info("Associated client ports = {}", xpdrClientTplist);
connectionServMap.putAll(createXpdrCepsAndConnectionsEth(xpdrClientTplist, xpdrNodelist,
connectionServMap));
+ this.topConnXpdrXpdrPhtn = null;
}
if (openroadmNodeType.equals(OpenroadmNodeType.SWITCH)) {
// TODO: We create both ODU and DSR because there is no ODU service creation for the switch
// - XC Connection OTSi betwwen iODU and eODU of xpdr
// - Top connection in the ODU layer, between xpdr eODU ports (?)
- connectionServMap.putAll(createXpdrCepsAndConnectionsOdu(xpdrNetworkTplist, xpdrNodelist));
connectionServMap.putAll(createXpdrCepsAndConnectionsDsr(xpdrClientTplist, xpdrNetworkTplist,
xpdrNodelist));
+ this.topConnXpdrXpdrPhtn = null;
}
if (openroadmNodeType.equals(OpenroadmNodeType.MUXPDR)) {
// TODO: OTN service but mux has 3 steps at rendering. Verify that things exist
connectionServMap.putAll(createXpdrCepsAndConnectionsDsr(xpdrClientTplist, xpdrNetworkTplist,
xpdrNodelist));
+ this.topConnXpdrXpdrOdu = null;
}
break;
default:
// 1 top connection DSR between the CLIENT xpdrs
for (String xpdr:xpdrNodelist) {
LOG.info("Creating ceps and xc for xpdr {}", xpdr);
- String spcXpdrClient = xpdrClientTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst().get();
-
+ String spcXpdrClient = xpdrClientTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst()
+ .orElseThrow();
ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrClient, TapiStringConstants.DSR, TapiStringConstants.DSR,
LayerProtocolName.DSR);
putXpdrCepInTopologyContext(xpdr, spcXpdrClient, TapiStringConstants.DSR, TapiStringConstants.DSR, netCep1);
cepMapDsr.put(netCep1.key(), netCep1);
}
String spcXpdr1 = xpdrClientTplist.stream().filter(adp -> adp.contains(xpdrNodelist
- .get(0))).findFirst().get();
+ .get(0))).findFirst().orElseThrow();
String spcXpdr2 = xpdrClientTplist.stream().filter(adp -> adp.contains(xpdrNodelist
- .get(xpdrNodelist.size() - 1))).findFirst().get();
+ .get(xpdrNodelist.size() - 1))).findFirst().orElseThrow();
// DSR top connection between edge xpdr CLIENT DSR
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
connectionDsr = createTopConnection(spcXpdr1, spcXpdr2, cepMapDsr, TapiStringConstants.DSR,
- LayerProtocolName.DSR, xcMap);
+ LayerProtocolName.DSR, xcMap, this.topConnXpdrXpdrPhtn);
this.connectionFullMap.put(connectionDsr.key(), connectionDsr);
// DSR top connection that will be added to the service object
// 1 top connection between eODU and a top connection DSR between the CLIENT xpdrs
for (String xpdr:xpdrNodelist) {
LOG.info("Creating ceps and xc for xpdr {}", xpdr);
- String spcXpdrClient = xpdrClientTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst().get();
-
+ String spcXpdrClient = xpdrClientTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst()
+ .orElseThrow();
ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrClient, TapiStringConstants.DSR, TapiStringConstants.DSR,
LayerProtocolName.DSR);
putXpdrCepInTopologyContext(xpdr, spcXpdrClient, TapiStringConstants.DSR, TapiStringConstants.DSR, netCep1);
// DSR top connection between edge xpdr CLIENT DSR
String spcXpdr1 = xpdrClientTplist.stream().filter(adp -> adp.contains(xpdrNodelist
- .get(0))).findFirst().get();
+ .get(0))).findFirst().orElseThrow();
String spcXpdr2 = xpdrClientTplist.stream().filter(adp -> adp.contains(xpdrNodelist
- .get(xpdrNodelist.size() - 1))).findFirst().get();
+ .get(xpdrNodelist.size() - 1))).findFirst().orElseThrow();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
connectionOdu = createTopConnection(spcXpdr1, spcXpdr2, cepMapOdu, TapiStringConstants.E_ODU,
- LayerProtocolName.ODU, xcMap);
+ LayerProtocolName.ODU, xcMap, this.topConnXpdrXpdrOdu);
this.connectionFullMap.put(connectionOdu.key(), connectionOdu);
// ODU top connection that will be added to the service object
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
connectionDsr = createTopConnection(spcXpdr1, spcXpdr2, cepMapDsr, TapiStringConstants.DSR,
- LayerProtocolName.DSR, xcMap);
+ LayerProtocolName.DSR, xcMap, this.topConnXpdrXpdrPhtn);
this.connectionFullMap.put(connectionDsr.key(), connectionDsr);
// DSR top connection that will be added to the service object
// connection iODU between the xpdrs
for (String xpdr:xpdrNodelist) {
LOG.info("Creating ceps and xc for xpdr {}", xpdr);
- String spcXpdrNetwork = xpdrNetworkTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst().get();
-
+ String spcXpdrNetwork = xpdrNetworkTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst()
+ .orElseThrow();
ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.I_ODU,
TapiStringConstants.DSR, LayerProtocolName.ODU);
putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.I_ODU, TapiStringConstants.DSR,
// ODU top connection between edge xpdr i_ODU
String spcXpdr1 = xpdrNetworkTplist.stream().filter(adp -> adp.contains(xpdrNodelist
- .get(0))).findFirst().get();
+ .get(0))).findFirst().orElseThrow();
String spcXpdr2 = xpdrNetworkTplist.stream().filter(adp -> adp.contains(xpdrNodelist
- .get(xpdrNodelist.size() - 1))).findFirst().get();
+ .get(xpdrNodelist.size() - 1))).findFirst().orElseThrow();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, TapiStringConstants.I_ODU,
- LayerProtocolName.ODU, xcMap);
+ LayerProtocolName.ODU, xcMap, this.topConnXpdrXpdrPhtn);
this.connectionFullMap.put(connection.key(), connection);
// ODU top connection that will be added to the service object
Connection conn = new ConnectionBuilder().setConnectionUuid(connection.getUuid()).build();
connServMap.put(conn.key(), conn);
+ this.topConnXpdrXpdrOdu = conn;
return connServMap;
}
// create ceps and x connections within xpdr
for (String xpdr:xpdrNodelist) {
LOG.info("Creating ceps and xc for xpdr {}", xpdr);
- String spcXpdrNetwork = xpdrNetworkTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst().get();
+ String spcXpdrNetwork = xpdrNetworkTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst()
+ .orElseThrow();
// There should be 1 network tp per xpdr
// TODO photonic media model should be updated to have the corresponding CEPs. I will just create
// 3 different MC CEPs giving different IDs to show that they are different
}
// OTSi top connection between edge I_OTSI Xpdr
String spcXpdr1 = xpdrNetworkTplist.stream().filter(adp -> adp.contains(xpdrNodelist
- .get(0))).findFirst().get();
+ .get(0))).findFirst().orElseThrow();
String spcXpdr2 = xpdrNetworkTplist.stream().filter(adp -> adp.contains(xpdrNodelist
- .get(xpdrNodelist.size() - 1))).findFirst().get();
+ .get(xpdrNodelist.size() - 1))).findFirst().orElseThrow();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, TapiStringConstants.I_OTSI,
- LayerProtocolName.PHOTONICMEDIA, xcMap);
+ LayerProtocolName.PHOTONICMEDIA, xcMap, this.topConnRdmRdm);
this.connectionFullMap.put(connection.key(), connection);
// OTSi top connection that will be added to the service object
Connection conn = new ConnectionBuilder().setConnectionUuid(connection.getUuid()).build();
connServMap.put(conn.key(), conn);
-
+ this.topConnXpdrXpdrPhtn = conn;
return connServMap;
}
List<String> rdmDegTplist,
List<String> rdmNodelist,
String edgeRoadm1, String edgeRoadm2) {
- // TODO: when the number of roadms between 2 SPDR/XPDR is more thatn 1, we need to refine this code
- Map<ConnectionKey, Connection> connServMap = new HashMap<>();
+ // TODO: will need to check if things exist already or not
Map<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.cep.list.ConnectionEndPointKey,
ConnectionEndPoint> cepMap = new HashMap<>();
- Map<LowerConnectionKey, LowerConnection> xcMap = new HashMap<>();
// create ceps and x connections within roadm
+ Map<LowerConnectionKey, LowerConnection> xcLowerMap = new HashMap<>();
for (String roadm : rdmNodelist) {
LOG.info("Creating ceps and xc for roadm {}", roadm);
- String spcRdmAD = rdmAddDropTplist.stream().filter(adp -> adp.contains(roadm)).findFirst().get();
- LOG.info("AD port of ROADm {} = {}", roadm, spcRdmAD);
- // There should be only 1 AD and 1 DEG per roadm
- // TODO photonic media model should be updated to have the corresponding CEPs. I will just create
- // 3 different MC CEPs giving different IDs to show that they are different
- // Create 3 CEPs for each AD and DEG and the corresponding cross connections, matching the NEPs
- // created in the topology creation
- // add CEPs to the topology to the corresponding ONEP
- ConnectionEndPoint adCep1 = createCepRoadm(spcRdmAD, TapiStringConstants.PHTNC_MEDIA);
- putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.PHTNC_MEDIA, adCep1);
- ConnectionEndPoint adCep2 = createCepRoadm(spcRdmAD, TapiStringConstants.MC);
- putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.MC, adCep2);
- ConnectionEndPoint adCep3 = createCepRoadm(spcRdmAD, TapiStringConstants.OTSI_MC);
- putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.OTSI_MC, adCep3);
- cepMap.put(adCep1.key(), adCep1);
- cepMap.put(adCep2.key(), adCep2);
- cepMap.put(adCep3.key(), adCep3);
-
- String spcRdmDEG = rdmDegTplist.stream().filter(adp -> adp.contains(roadm)).findFirst().get();
- LOG.info("Degree port of ROADm {} = {}", roadm, spcRdmDEG);
-
- ConnectionEndPoint degCep1 = createCepRoadm(spcRdmDEG, TapiStringConstants.PHTNC_MEDIA);
- putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.PHTNC_MEDIA, degCep1);
- ConnectionEndPoint degCep2 = createCepRoadm(spcRdmDEG, TapiStringConstants.MC);
- putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.MC, degCep2);
- ConnectionEndPoint degCep3 = createCepRoadm(spcRdmDEG, TapiStringConstants.OTSI_MC);
- putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.OTSI_MC, degCep3);
- cepMap.put(degCep1.key(), degCep1);
- cepMap.put(degCep2.key(), degCep2);
- cepMap.put(degCep3.key(), degCep3);
-
- LOG.info("Going to create cross connections for ROADM {}", roadm);
- // Create X connections between MC and OTSi_MC for full map
- org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection1 = createXCBetweenCeps(adCep2, degCep2, spcRdmAD, spcRdmDEG, TapiStringConstants.MC,
- LayerProtocolName.PHOTONICMEDIA);
- LOG.info("Cross connection 1 created = {}", connection1);
- org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection2 = createXCBetweenCeps(adCep3, degCep3, spcRdmAD, spcRdmDEG, TapiStringConstants.OTSI_MC,
- LayerProtocolName.PHOTONICMEDIA);
- LOG.info("Cross connection 2 created = {}", connection2);
- this.connectionFullMap.put(connection1.key(), connection1);
- this.connectionFullMap.put(connection2.key(), connection2);
-
- // Create X connections that will be added to the service object
- LowerConnection conn1 = new LowerConnectionBuilder().setConnectionUuid(connection1.getUuid()).build();
- LowerConnection conn2 = new LowerConnectionBuilder().setConnectionUuid(connection2.getUuid()).build();
-
- xcMap.put(conn1.key(), conn1);
- xcMap.put(conn2.key(), conn2);
- }
- LOG.info("Going to create top connections betwee roadms");
- // create top connections between roadms: MC connections between AD MC CEPs of roadms
- for (int i = 0; i < rdmNodelist.size(); i++) {
- if (rdmNodelist.size() <= (i + 1)) {
- LOG.info("Reached last roadm. No more MC connections");
- break;
+ if (roadm.equals(edgeRoadm1) || roadm.equals(edgeRoadm2)) {
+ LOG.info("EDGE ROADM, cross connections needed between SRG and DEG");
+ String spcRdmAD = rdmAddDropTplist.stream().filter(adp -> adp.contains(roadm)).findFirst()
+ .orElseThrow();
+ LOG.info("AD port of ROADm {} = {}", roadm, spcRdmAD);
+ // There should be only 1 AD and 1 DEG per roadm
+ // TODO photonic media model should be updated to have the corresponding CEPs. I will just create
+ // 3 different MC CEPs giving different IDs to show that they are different
+ // Create 3 CEPs for each AD and DEG and the corresponding cross connections, matching the NEPs
+ // created in the topology creation
+ // add CEPs to the topology to the corresponding ONEP
+ ConnectionEndPoint adCep1 = createCepRoadm(spcRdmAD, TapiStringConstants.PHTNC_MEDIA);
+ putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.PHTNC_MEDIA, adCep1);
+ ConnectionEndPoint adCep2 = createCepRoadm(spcRdmAD, TapiStringConstants.MC);
+ putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.MC, adCep2);
+ ConnectionEndPoint adCep3 = createCepRoadm(spcRdmAD, TapiStringConstants.OTSI_MC);
+ putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.OTSI_MC, adCep3);
+ cepMap.put(adCep1.key(), adCep1);
+ cepMap.put(adCep2.key(), adCep2);
+ cepMap.put(adCep3.key(), adCep3);
+
+ String spcRdmDEG = rdmDegTplist.stream().filter(adp -> adp.contains(roadm)).findFirst().orElseThrow();
+ LOG.info("Degree port of ROADm {} = {}", roadm, spcRdmDEG);
+
+ ConnectionEndPoint degCep1 = createCepRoadm(spcRdmDEG, TapiStringConstants.PHTNC_MEDIA);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.PHTNC_MEDIA, degCep1);
+ ConnectionEndPoint degCep2 = createCepRoadm(spcRdmDEG, TapiStringConstants.MC);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.MC, degCep2);
+ ConnectionEndPoint degCep3 = createCepRoadm(spcRdmDEG, TapiStringConstants.OTSI_MC);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.OTSI_MC, degCep3);
+ cepMap.put(degCep1.key(), degCep1);
+ cepMap.put(degCep2.key(), degCep2);
+ cepMap.put(degCep3.key(), degCep3);
+
+ LOG.info("Going to create cross connections for ROADM {}", roadm);
+ // Create X connections between MC and OTSi_MC for full map
+ org.opendaylight.yang.gen.v1.urn
+ .onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection connection1
+ = createXCBetweenCeps(adCep2, degCep2, spcRdmAD, spcRdmDEG, TapiStringConstants.MC,
+ LayerProtocolName.PHOTONICMEDIA);
+ LOG.info("Cross connection 1 created = {}", connection1.toString());
+ org.opendaylight.yang.gen.v1.urn
+ .onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection connection2
+ = createXCBetweenCeps(adCep3, degCep3, spcRdmAD, spcRdmDEG, TapiStringConstants.OTSI_MC,
+ LayerProtocolName.PHOTONICMEDIA);
+ LOG.info("Cross connection 2 created = {}", connection2.toString());
+ this.connectionFullMap.put(connection1.key(), connection1);
+ this.connectionFullMap.put(connection2.key(), connection2);
+
+ // Create X connections that will be added to the service object
+ LowerConnection conn1 = new LowerConnectionBuilder().setConnectionUuid(connection1.getUuid()).build();
+ LowerConnection conn2 = new LowerConnectionBuilder().setConnectionUuid(connection2.getUuid()).build();
+
+ xcLowerMap.put(conn1.key(), conn1);
+ xcLowerMap.put(conn2.key(), conn2);
+ } else {
+ LOG.info("MIDDLE ROADM, cross connections needed between DEG and DEG");
+ String spcRdmDEG1 = rdmDegTplist.stream().filter(adp -> adp.contains(roadm)).findFirst().orElseThrow();
+ LOG.info("Degree 1 port of ROADm {} = {}", roadm, spcRdmDEG1);
+
+ ConnectionEndPoint deg1Cep1 = createCepRoadm(spcRdmDEG1, TapiStringConstants.PHTNC_MEDIA);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG1, TapiStringConstants.PHTNC_MEDIA, deg1Cep1);
+ ConnectionEndPoint deg1Cep2 = createCepRoadm(spcRdmDEG1, TapiStringConstants.MC);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG1, TapiStringConstants.MC, deg1Cep2);
+ ConnectionEndPoint deg1Cep3 = createCepRoadm(spcRdmDEG1, TapiStringConstants.OTSI_MC);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG1, TapiStringConstants.OTSI_MC, deg1Cep3);
+ cepMap.put(deg1Cep1.key(), deg1Cep1);
+ cepMap.put(deg1Cep2.key(), deg1Cep2);
+ cepMap.put(deg1Cep3.key(), deg1Cep3);
+
+ String spcRdmDEG2 = rdmDegTplist.stream().filter(adp -> adp.contains(roadm)).skip(1).findFirst()
+ .orElseThrow();
+ LOG.info("Degree 2 port of ROADm {} = {}", roadm, spcRdmDEG2);
+
+ ConnectionEndPoint deg2Cep1 = createCepRoadm(spcRdmDEG2, TapiStringConstants.PHTNC_MEDIA);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG2, TapiStringConstants.PHTNC_MEDIA, deg2Cep1);
+ ConnectionEndPoint deg2Cep2 = createCepRoadm(spcRdmDEG2, TapiStringConstants.MC);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG2, TapiStringConstants.MC, deg2Cep2);
+ ConnectionEndPoint deg2Cep3 = createCepRoadm(spcRdmDEG2, TapiStringConstants.OTSI_MC);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG2, TapiStringConstants.OTSI_MC, deg2Cep3);
+ cepMap.put(deg2Cep1.key(), deg2Cep1);
+ cepMap.put(deg2Cep2.key(), deg2Cep2);
+ cepMap.put(deg2Cep3.key(), deg2Cep3);
+
+ LOG.info("Going to create cross connections for ROADM {}", roadm);
+ // Create X connections between MC and OTSi_MC for full map
+ org.opendaylight.yang.gen.v1.urn
+ .onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection connection1
+ = createXCBetweenCeps(deg1Cep2, deg2Cep2, spcRdmDEG1, spcRdmDEG2,
+ TapiStringConstants.MC, LayerProtocolName.PHOTONICMEDIA);
+ LOG.info("Cross connection 1 created = {}", connection1.toString());
+ org.opendaylight.yang.gen.v1.urn
+ .onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection connection2
+ = createXCBetweenCeps(deg1Cep3, deg2Cep3, spcRdmDEG1, spcRdmDEG2,
+ TapiStringConstants.OTSI_MC, LayerProtocolName.PHOTONICMEDIA);
+ LOG.info("Cross connection 2 created = {}", connection2.toString());
+ this.connectionFullMap.put(connection1.key(), connection1);
+ this.connectionFullMap.put(connection2.key(), connection2);
+
+ // Create X connections that will be added to the service object
+ LowerConnection conn1 = new LowerConnectionBuilder().setConnectionUuid(connection1.getUuid()).build();
+ LowerConnection conn2 = new LowerConnectionBuilder().setConnectionUuid(connection2.getUuid()).build();
+
+ xcLowerMap.put(conn1.key(), conn1);
+ xcLowerMap.put(conn2.key(), conn2);
}
- // Current roadm with roadm i + 1 --> MC
- String roadm1 = rdmNodelist.get(i);
- String spcRdmAD1 = rdmAddDropTplist.stream().filter(adp -> adp.contains(roadm1)).findFirst().get();
- String roadm2 = rdmNodelist.get(i + 1);
- String spcRdmAD2 = rdmAddDropTplist.stream().filter(adp -> adp.contains(roadm2)).findFirst().get();
- LOG.info("Creating top connection from {} to {} between tps: {}-{}", roadm1, roadm2, spcRdmAD1, spcRdmAD2);
-
- // Create top connections between MC for full map
- org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, TapiStringConstants.MC,
- LayerProtocolName.PHOTONICMEDIA, xcMap);
- this.connectionFullMap.put(connection.key(), connection);
- LOG.info("Top connection created = {}", connection);
-
- // Create top connections that will be added to the service object
- Connection conn = new ConnectionBuilder().setConnectionUuid(connection.getUuid()).build();
- connServMap.put(conn.key(), conn);
- LowerConnection conn1 = new LowerConnectionBuilder().setConnectionUuid(connection.getUuid()).build();
- xcMap.put(conn1.key(), conn1);
}
-
- // OTSiMC top connection between edge roadms
- LOG.info("Going to created top connection between OTSiMC");
- String spcRdmAD1 = rdmAddDropTplist.stream().filter(adp -> adp.contains(edgeRoadm1)).findFirst().get();
- String spcRdmAD2 = rdmAddDropTplist.stream().filter(adp -> adp.contains(edgeRoadm2)).findFirst().get();
+ LOG.info("Going to create top connections between roadms");
+ String spcRdmAD1 = rdmAddDropTplist.stream().filter(adp -> adp.contains(edgeRoadm1)).findFirst().orElseThrow();
+ String spcRdmAD2 = rdmAddDropTplist.stream().filter(adp -> adp.contains(edgeRoadm2)).findFirst().orElseThrow();
+ // MC top connection between edge roadms
+ LOG.info("Going to created top connection between MC");
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, TapiStringConstants.OTSI_MC,
- LayerProtocolName.PHOTONICMEDIA, xcMap);
+ connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, TapiStringConstants.MC,
+ LayerProtocolName.PHOTONICMEDIA, xcLowerMap, null);
this.connectionFullMap.put(connection.key(), connection);
- LOG.info("Top connection created = {}", connection);
+ LOG.info("Top connection created = {}", connection.toString());
+ Map<ConnectionKey, Connection> connServMap = new HashMap<>();
// OTSiMC top connections that will be added to the service object
Connection conn = new ConnectionBuilder().setConnectionUuid(connection.getUuid()).build();
connServMap.put(conn.key(), conn);
+ LowerConnection conn1 = new LowerConnectionBuilder().setConnectionUuid(connection.getUuid()).build();
+ Map<LowerConnectionKey, LowerConnection> topLowerMap = new HashMap<>();
+ topLowerMap.put(conn1.key(), conn1);
+
+ // OTSiMC top connection between edge roadms
+ LOG.info("Going to created top connection between OTSiMC");
+ org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
+ connection1 = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, TapiStringConstants.OTSI_MC,
+ LayerProtocolName.PHOTONICMEDIA, topLowerMap, null);
+ this.connectionFullMap.put(connection1.key(), connection1);
+ LOG.info("Top connection created = {}", connection1.toString());
+
+ // OTSiMC top connections that will be added to the service object
+ Connection conn2 = new ConnectionBuilder().setConnectionUuid(connection1.getUuid()).build();
+ connServMap.put(conn2.key(), conn2);
+ this.topConnRdmRdm = conn2;
return connServMap;
}
Map<org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.connectivity.rev181210.cep.list.ConnectionEndPointKey,
ConnectionEndPoint> cepMap, String qual, LayerProtocolName topPortocol,
- Map<LowerConnectionKey, LowerConnection> xcMap) {
+ Map<LowerConnectionKey, LowerConnection> xcMap, Connection additionalLowerConn) {
// find cep for each AD MC of roadm 1 and 2
LOG.info("Top connection name = {}", String.join("+", "TOP", tp1, tp2, qual));
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.ConnectionEndPoint adCep1 =
cepMap.get(new org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.connectivity.rev181210.cep.list.ConnectionEndPointKey(
new Uuid(UUID.nameUUIDFromBytes((String.join("+", "CEP", tp1.split("\\+")[0],
- qual, tp1.split("\\+")[1])).getBytes(Charset.forName("UTF-8")))
+ qual, tp1.split("\\+")[1])).getBytes(StandardCharsets.UTF_8))
.toString())));
LOG.info("ADCEP1 = {}", adCep1);
org.opendaylight.yang.gen.v1.urn
new org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.connectivity.rev181210.connection.ConnectionEndPointBuilder()
.setNodeEdgePointUuid(adCep1.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getNodeEdgePointUuid())
+ .values().stream().findFirst().orElseThrow().getNodeEdgePointUuid())
.setTopologyUuid(adCep1.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getTopologyUuid())
+ .values().stream().findFirst().orElseThrow().getTopologyUuid())
.setNodeUuid(adCep1.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getNodeUuid())
+ .values().stream().findFirst().orElseThrow().getNodeUuid())
.setConnectionEndPointUuid(adCep1.getUuid())
.build();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.ConnectionEndPoint adCep2 =
cepMap.get(new org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.connectivity.rev181210.cep.list.ConnectionEndPointKey(
new Uuid(UUID.nameUUIDFromBytes((String.join("+", "CEP", tp2.split("\\+")[0],
- qual, tp2.split("\\+")[1])).getBytes(Charset.forName("UTF-8")))
+ qual, tp2.split("\\+")[1])).getBytes(StandardCharsets.UTF_8))
.toString())));
LOG.info("ADCEP2 = {}", adCep2);
org.opendaylight.yang.gen.v1.urn
new org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.connectivity.rev181210.connection.ConnectionEndPointBuilder()
.setNodeEdgePointUuid(adCep2.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getNodeEdgePointUuid())
+ .values().stream().findFirst().orElseThrow().getNodeEdgePointUuid())
.setTopologyUuid(adCep2.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getTopologyUuid())
+ .values().stream().findFirst().orElseThrow().getTopologyUuid())
.setNodeUuid(adCep2.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getNodeUuid())
+ .values().stream().findFirst().orElseThrow().getNodeUuid())
.setConnectionEndPointUuid(adCep1.getUuid())
.build();
Map<ConnectionEndPointKey, org.opendaylight.yang.gen.v1.urn
.setValue(String.join("+", "TOP", tp1, tp2, qual))
.build();
// TODO: lower connection, supported link.......
+ if (additionalLowerConn != null) {
+ xcMap.putIfAbsent(new LowerConnectionKey(additionalLowerConn.getConnectionUuid()),
+ new LowerConnectionBuilder().setConnectionUuid(additionalLowerConn.getConnectionUuid()).build());
+ }
return new org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.ConnectionBuilder()
.setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", "TOP", tp1, tp2, qual))
- .getBytes(Charset.forName("UTF-8"))).toString()))
+ .getBytes(StandardCharsets.UTF_8)).toString()))
.setName(Map.of(connName.key(), connName))
.setConnectionEndPoint(ceps)
.setOperationalState(OperationalState.ENABLED)
new org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.connectivity.rev181210.connection.ConnectionEndPointBuilder()
.setNodeEdgePointUuid(cep1.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getNodeEdgePointUuid())
+ .values().stream().findFirst().orElseThrow().getNodeEdgePointUuid())
.setTopologyUuid(cep1.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getTopologyUuid())
+ .values().stream().findFirst().orElseThrow().getTopologyUuid())
.setNodeUuid(cep1.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getNodeUuid())
+ .values().stream().findFirst().orElseThrow().getNodeUuid())
.setConnectionEndPointUuid(cep1.getUuid())
.build();
org.opendaylight.yang.gen.v1.urn
new org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.connectivity.rev181210.connection.ConnectionEndPointBuilder()
.setNodeEdgePointUuid(cep2.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getNodeEdgePointUuid())
+ .values().stream().findFirst().orElseThrow().getNodeEdgePointUuid())
.setTopologyUuid(cep2.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getTopologyUuid())
+ .values().stream().findFirst().orElseThrow().getTopologyUuid())
.setNodeUuid(cep2.getClientNodeEdgePoint()
- .values().stream().findFirst().get().getNodeUuid())
+ .values().stream().findFirst().orElseThrow().getNodeUuid())
.setConnectionEndPointUuid(cep2.getUuid())
.build();
Map<ConnectionEndPointKey, org.opendaylight.yang.gen.v1.urn
return new org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.ConnectionBuilder()
.setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", "XC", tp1, tp2, qual))
- .getBytes(Charset.forName("UTF-8"))).toString()))
+ .getBytes(StandardCharsets.UTF_8)).toString()))
.setName(Map.of(connName.key(), connName))
.setConnectionEndPoint(ceps)
.setOperationalState(OperationalState.ENABLED)
.build();
ClientNodeEdgePoint cnep = new ClientNodeEdgePointBuilder()
.setNodeEdgePointUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", id.split("\\+")[0],
- qualifier, id.split("\\+")[1])).getBytes(Charset.forName("UTF-8")))
+ qualifier, id.split("\\+")[1])).getBytes(StandardCharsets.UTF_8))
.toString()))
.setNodeUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+",id.split("\\+")[0],
- qualifier)).getBytes(Charset.forName("UTF-8")))
+ qualifier)).getBytes(StandardCharsets.UTF_8))
.toString()))
.setTopologyUuid(new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
- .getBytes(Charset.forName("UTF-8"))).toString()))
+ .getBytes(StandardCharsets.UTF_8)).toString()))
.build();
// TODO: add augmentation with the corresponding cep-spec (i.e. MC, OTSiMC...)
// TODO: add parent ONEP??
ConnectionEndPointBuilder cepBldr = new ConnectionEndPointBuilder()
.setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", "CEP", id.split("\\+")[0],
- qualifier, id.split("\\+")[1])).getBytes(Charset.forName("UTF-8")))
+ qualifier, id.split("\\+")[1])).getBytes(StandardCharsets.UTF_8))
.toString()))
.setClientNodeEdgePoint(Map.of(cnep.key(), cnep))
.setName(Map.of(cepName.key(), cepName))
.build();
ClientNodeEdgePoint cnep = new ClientNodeEdgePointBuilder()
.setNodeEdgePointUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", id.split("\\+")[0],
- qualifier, id.split("\\+")[1])).getBytes(Charset.forName("UTF-8")))
+ qualifier, id.split("\\+")[1])).getBytes(StandardCharsets.UTF_8))
.toString()))
.setNodeUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+",id.split("\\+")[0],
- nodeLayer)).getBytes(Charset.forName("UTF-8")))
+ nodeLayer)).getBytes(StandardCharsets.UTF_8))
.toString()))
.setTopologyUuid(new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
- .getBytes(Charset.forName("UTF-8"))).toString()))
+ .getBytes(StandardCharsets.UTF_8)).toString()))
.build();
// TODO: add augmentation with the corresponding cep-spec (i.e. MC, OTSiMC...)
// TODO: add parent ONEP??
ConnectionEndPointBuilder cepBldr = new ConnectionEndPointBuilder()
.setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", "CEP", id.split("\\+")[0],
- qualifier, id.split("\\+")[1])).getBytes(Charset.forName("UTF-8")))
+ qualifier, id.split("\\+")[1])).getBytes(StandardCharsets.UTF_8))
.toString()))
.setClientNodeEdgePoint(Map.of(cnep.key(), cnep))
.setName(Map.of(cepName.key(), cepName))
}
private EndPoint mapServiceZEndPoint(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.ServiceZEnd
- serviceZEnd, PathDescription pathDescription) {
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.ServiceZEnd
+ serviceZEnd, PathDescription pathDescription) {
EndPointBuilder endPointBuilder = new EndPointBuilder();
// 1. Service Format: ODU, OTU, ETH
ServiceFormat serviceFormat = serviceZEnd.getServiceFormat();
}
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.local._class.Name name =
new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.local._class.NameBuilder()
- .setValueName("OpenROADM node id")
- .setValue(serviceZEnd.getTxDirection().getPort().getPortDeviceName())
+ .setValueName("OpenROADM info")
+ .setValue(String.join("-", serviceZEnd.getClli(),
+ serviceZEnd.getTxDirection().values().stream().findFirst().orElseThrow().getPort()
+ .getPortDeviceName(),
+ serviceZEnd.getTxDirection().values().stream().findFirst().orElseThrow().getPort().getPortName()))
.build();
return endPointBuilder
.setServiceInterfacePoint(new ServiceInterfacePointBuilder()
.build())
.setProtectionRole(ProtectionRole.WORK)
.setRole(PortRole.SYMMETRIC)
- .setLocalId(serviceZEnd.getTxDirection().getPort().getPortDeviceName())
+ .setLocalId(serviceZEnd.getTxDirection().values().stream().findFirst().orElseThrow()
+ .getPort().getPortDeviceName())
.build();
}
private EndPoint mapServiceAEndPoint(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.ServiceAEnd
- serviceAEnd, PathDescription pathDescription) {
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.ServiceAEnd
+ serviceAEnd, PathDescription pathDescription) {
EndPointBuilder endPointBuilder = new EndPointBuilder();
// 1. Service Format: ODU, OTU, ETH
ServiceFormat serviceFormat = serviceAEnd.getServiceFormat();
}
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.local._class.Name name =
new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.local._class.NameBuilder()
- .setValueName("OpenROADM node id")
- .setValue(serviceAEnd.getTxDirection().getPort().getPortDeviceName())
+ .setValueName("OpenROADM info")
+ .setValue(String.join("-", serviceAEnd.getClli(),
+ serviceAEnd.getTxDirection().values().stream().findFirst().orElseThrow().getPort()
+ .getPortDeviceName(),
+ serviceAEnd.getTxDirection().values().stream().findFirst().orElseThrow().getPort().getPortName()))
.build();
return endPointBuilder
.setServiceInterfacePoint(new ServiceInterfacePointBuilder()
.build())
.setProtectionRole(ProtectionRole.WORK)
.setRole(PortRole.SYMMETRIC)
- .setLocalId(serviceAEnd.getTxDirection().getPort().getPortDeviceName())
+ .setLocalId(serviceAEnd.getTxDirection().values().stream().findFirst().orElseThrow().getPort()
+ .getPortDeviceName())
.build();
}
if (serviceNodeId.contains("ROADM")) {
// Service from ROADM to ROADM
// AddDrop-AddDrop ports --> MC layer SIPs
- ZToA firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("0")).findFirst().get();
+ ZToA firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("0")).findFirst()
+ .orElseThrow();
TerminationPoint tp = (TerminationPoint) firstElement.getResource().getResource();
Uuid sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), TapiStringConstants.MC, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
+ tp.getTpNodeId(), TapiStringConstants.MC, tp.getTpId())).getBytes(StandardCharsets.UTF_8))
.toString());
LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), TapiStringConstants.MC, tp.getTpId()));
for (ServiceInterfacePoint sip:this.sipMap.values()) {
Uuid sipUuid;
switch (serviceFormat) {
case ODU:
- firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("2")).findFirst().get();
+ firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("2")).findFirst()
+ .orElseThrow();
tp = (TerminationPoint) firstElement.getResource().getResource();
// Network-Network ports --> iODU layer SIPs TODO --> updated to E_ODU
- sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), TapiStringConstants.I_ODU, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
- .toString());
+ sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP", tp.getTpNodeId(),
+ TapiStringConstants.I_ODU, tp.getTpId())).getBytes(StandardCharsets.UTF_8)).toString());
LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), TapiStringConstants.I_ODU,
tp.getTpId()));
break;
case OTU:
- firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("2")).findFirst().get();
+ firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("2")).findFirst()
+ .orElseThrow();
tp = (TerminationPoint) firstElement.getResource().getResource();
// Network-Network ports --> iOTSi layer SIPs
- sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), TapiStringConstants.I_OTSI, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
- .toString());
+ sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP", tp.getTpNodeId(),
+ TapiStringConstants.I_OTSI, tp.getTpId())).getBytes(StandardCharsets.UTF_8)).toString());
LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), TapiStringConstants.I_OTSI,
tp.getTpId()));
break;
case Ethernet:
LOG.info("Elements ZA = {}", mapztoa.values().toString());
- firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("0")).findFirst().get();
+ firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("0")).findFirst()
+ .orElseThrow();
tp = (TerminationPoint) firstElement.getResource().getResource();
// Client-client ports --> DSR layer SIPs
- sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), TapiStringConstants.DSR, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
- .toString());
+ sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP", tp.getTpNodeId(),
+ TapiStringConstants.DSR, tp.getTpId())).getBytes(StandardCharsets.UTF_8)).toString());
LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), TapiStringConstants.DSR,
tp.getTpId()));
break;
if (serviceNodeId.contains("ROADM")) {
// Service from ROADM to ROADM
// AddDrop-AddDrop ports --> MC layer SIPs
- AToZ firstElement = mapatoz.values().stream().filter(atoz -> atoz.getId().equals("0")).findFirst().get();
+ AToZ firstElement = mapatoz.values().stream().filter(atoz -> atoz.getId().equals("0")).findFirst()
+ .orElseThrow();
LOG.info("First element of service path = {}", firstElement.getResource().getResource());
TerminationPoint tp = (TerminationPoint) firstElement.getResource().getResource();
Uuid sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), TapiStringConstants.MC, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
+ tp.getTpNodeId(), TapiStringConstants.MC, tp.getTpId())).getBytes(StandardCharsets.UTF_8))
.toString());
LOG.info("ROADM SIP name = {}", String.join("+", tp.getTpNodeId(), TapiStringConstants.MC,
tp.getTpId()));
Uuid sipUuid;
switch (serviceFormat) {
case ODU:
- firstElement = mapatoz.values().stream().filter(atoz -> atoz.getId().equals("2")).findFirst().get();
+ firstElement = mapatoz.values().stream().filter(atoz -> atoz.getId().equals("2")).findFirst()
+ .orElseThrow();
tp = (TerminationPoint) firstElement.getResource().getResource();
// Network-Network ports --> iODU layer SIPs. TODO -> updated to eODU
- sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), TapiStringConstants.I_ODU, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
- .toString());
+ sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP", tp.getTpNodeId(),
+ TapiStringConstants.I_ODU, tp.getTpId())).getBytes(StandardCharsets.UTF_8)).toString());
LOG.info("ODU XPDR SIP name = {}", String.join("+", tp.getTpNodeId(),
TapiStringConstants.I_ODU, tp.getTpId()));
break;
case OTU:
- firstElement = mapatoz.values().stream().filter(atoz -> atoz.getId().equals("2")).findFirst().get();
+ firstElement = mapatoz.values().stream().filter(atoz -> atoz.getId().equals("2")).findFirst()
+ .orElseThrow();
tp = (TerminationPoint) firstElement.getResource().getResource();
// Network-Network ports --> iOTSi layer SIPs
- sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), TapiStringConstants.I_OTSI, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
- .toString());
+ sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP", tp.getTpNodeId(),
+ TapiStringConstants.I_OTSI, tp.getTpId())).getBytes(StandardCharsets.UTF_8)).toString());
LOG.info("OTU XPDR SIP name = {}", String.join("+", tp.getTpNodeId(),
TapiStringConstants.I_OTSI, tp.getTpId()));
break;
case Ethernet:
LOG.info("Elements AZ = {}", mapatoz.values().toString());
- firstElement = mapatoz.values().stream().filter(atoz -> atoz.getId().equals("0")).findFirst().get();
+ firstElement = mapatoz.values().stream().filter(atoz -> atoz.getId().equals("0")).findFirst()
+ .orElseThrow();
tp = (TerminationPoint) firstElement.getResource().getResource();
// Client-client ports --> DSR layer SIPs
- sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), TapiStringConstants.DSR, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
- .toString());
+ sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP", tp.getTpNodeId(),
+ TapiStringConstants.DSR, tp.getTpId())).getBytes(StandardCharsets.UTF_8)).toString());
LOG.info("DSR XPDR SIP name = {}", String.join("+", tp.getTpNodeId(),
TapiStringConstants.DSR, tp.getTpId()));
break;
LOG.info("Node of NEP id before Merge = {}", String.join("+", node, TapiStringConstants.PHTNC_MEDIA));
// Give uuids so that it is easier to look for things: topology uuid, node uuid, nep uuid, cep
Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
- .getBytes(Charset.forName("UTF-8"))).toString());
+ .getBytes(StandardCharsets.UTF_8)).toString());
Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, TapiStringConstants.PHTNC_MEDIA)
- .getBytes(Charset.forName("UTF-8"))).toString());
+ .getBytes(StandardCharsets.UTF_8)).toString());
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, qual, spcRdmAD.split("\\+")[1])
- .getBytes(Charset.forName("UTF-8"))).toString());
+ .getBytes(StandardCharsets.UTF_8)).toString());
this.tapiContext.updateTopologyWithCep(topoUuid, nodeUuid, nepUuid, cep);
}
ConnectionEndPoint cep) {
// Give uuids so that it is easier to look for things: topology uuid, node uuid, nep uuid, cep
Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
- .getBytes(Charset.forName("UTF-8"))).toString());
+ .getBytes(StandardCharsets.UTF_8)).toString());
Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, nodeLayer)
- .getBytes(Charset.forName("UTF-8"))).toString());
+ .getBytes(StandardCharsets.UTF_8)).toString());
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, qual, spcXpdrNet.split("\\+")[1])
- .getBytes(Charset.forName("UTF-8"))).toString());
+ .getBytes(StandardCharsets.UTF_8)).toString());
this.tapiContext.updateTopologyWithCep(topoUuid, nodeUuid, nepUuid, cep);
}
public Map<org.opendaylight.yang.gen.v1.urn
- .onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.ConnectionKey,
- org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection>
+ .onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.ConnectionKey,
+ org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection>
getConnectionFullMap() {
return this.connectionFullMap;
}
ConnectivityConstraint constraint = input.getConnectivityConstraint();
ConnectionType connType = null;
ServiceFormat serviceFormat = null;
- String nodeAid = String.join("+", endPointMap.values().stream().findFirst().get().getLocalId(),
+ String nodeAid = String.join("+", endPointMap.values().stream().findFirst().orElseThrow().getLocalId(),
TapiStringConstants.DSR);
- String nodeZid = String.join("+", endPointMap.values().stream().skip(1).findFirst().get().getLocalId(),
+ String nodeZid = String.join("+", endPointMap.values().stream().skip(1).findFirst().orElseThrow().getLocalId(),
TapiStringConstants.DSR);
LOG.debug("Node a = {}", nodeAid);
LOG.debug("Node z = {}", nodeZid);
connType = getConnectionTypePhtnc(endPointMap.values());
serviceFormat = getServiceFormatPhtnc(endPointMap.values());
if (serviceFormat.equals(ServiceFormat.OC)) {
- nodeAid = String.join("+", endPointMap.values().stream().findFirst().get().getLocalId(),
- TapiStringConstants.PHTNC_MEDIA);
- nodeZid = String.join("+", endPointMap.values().stream().skip(1).findFirst().get().getLocalId(),
+ nodeAid = String.join("+", endPointMap.values().stream().findFirst().orElseThrow().getLocalId(),
TapiStringConstants.PHTNC_MEDIA);
+ nodeZid = String.join("+", endPointMap.values().stream().skip(1).findFirst().orElseThrow()
+ .getLocalId(), TapiStringConstants.PHTNC_MEDIA);
} else {
- nodeAid = String.join("+", endPointMap.values().stream().findFirst().get().getLocalId(),
- TapiStringConstants.OTSI);
- nodeZid = String.join("+", endPointMap.values().stream().skip(1).findFirst().get().getLocalId(),
+ nodeAid = String.join("+", endPointMap.values().stream().findFirst().orElseThrow().getLocalId(),
TapiStringConstants.OTSI);
+ nodeZid = String.join("+", endPointMap.values().stream().skip(1).findFirst().orElseThrow()
+ .getLocalId(), TapiStringConstants.OTSI);
}
LOG.debug("Node a photonic = {}", nodeAid);
LOG.debug("Node z photonic = {}", nodeZid);
// Requested Capacity for connectivity service
Uint64 capacity = input.getConnectivityConstraint().getRequestedCapacity().getTotalSize().getValue();
// map endpoints into service end points. Map the type of service from TAPI to OR
- ServiceAEnd serviceAEnd = tapiEndPointToServiceAPoint(endPointMap.values().stream().findFirst().get(),
+ ServiceAEnd serviceAEnd = tapiEndPointToServiceAPoint(endPointMap.values().stream().findFirst().orElseThrow(),
serviceFormat, nodeAid, capacity, constraint.getServiceLayer());
- ServiceZEnd serviceZEnd = tapiEndPointToServiceZPoint(endPointMap.values().stream().skip(1).findFirst().get(),
- serviceFormat, nodeZid, capacity, constraint.getServiceLayer());
+ ServiceZEnd serviceZEnd = tapiEndPointToServiceZPoint(endPointMap.values().stream().skip(1).findFirst()
+ .orElseThrow(), serviceFormat, nodeZid, capacity, constraint.getServiceLayer());
if (serviceAEnd == null || serviceZEnd == null) {
LOG.error("Couldnt map endpoints to service end");
return null;
// It could be obtained from the SIP which has the NEP and includes all the OR name.
Uuid sipUuid = endPoint.getServiceInterfacePoint().getServiceInterfacePointUuid();
// Todo -> need to find the NEP associated to that SIP
- Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(nodeZid.getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(nodeZid.getBytes(StandardCharsets.UTF_8)).toString());
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node node =
this.tapiContext.getTapiNode(this.tapiTopoUuid, nodeUuid);
if (node == null) {
LOG.error("Nep not found in datastore");
return null;
}
- String nodeName = endPoint.getName().values().stream().findFirst().get().getValue();
+ String nodeName = endPoint.getName().values().stream().findFirst().orElseThrow().getValue();
String nodeid = String.join("-", nodeName.split("-")[0], nodeName.split("-")[1]);
- String nepName = nep.getName().values().stream().findFirst().get().getValue();
+ String nepName = nep.getName().values().stream().findFirst().orElseThrow().getValue();
String txPortDeviceName = nepName.split("\\+")[0];
String txPortName = nepName.split("\\+")[2];
String rxPortDeviceName = txPortDeviceName;
String rxPortName = txPortName;
LOG.debug("Node z id = {}, txportDeviceName = {}, txPortName = {}", nodeid, txPortDeviceName, txPortName);
LOG.debug("Node z id = {}, rxportDeviceName = {}, rxPortName = {}", nodeid, rxPortDeviceName, rxPortName);
- if (serviceFormat.equals(ServiceFormat.ODU)) {
- // TODO --> populate network map
- populateNetworkMap(nodeid, txPortName);
- }
- if (serviceFormat.equals(ServiceFormat.Ethernet)) {
- // TODO --> choose from network Map un network port which hasnt been used yet by another service.
- // Set boolean to true and update txportName and so on
- String updTxName = findFreeConfiguredNetworkPort(nodeid);
- if (updTxName != null) {
- txPortName = updTxName;
- rxPortName = txPortName;
- }
- }
// TODO --> get clli from datastore?
String clli = "NodeSC";
LOG.info("Node z id = {}, txportDeviceName = {}, txPortName = {}", nodeid, txPortDeviceName, txPortName);
.setOpticType(OpticTypes.Gray)
.setServiceFormat(serviceFormat)
.setServiceRate(Uint32.valueOf(capacity))
- .setTxDirection(new TxDirectionBuilder()
+ .setEthernetAttributes(new EthernetAttributesBuilder().setSubrateEthSla(new SubrateEthSlaBuilder()
+ .setCommittedBurstSize(Uint16.valueOf(64))
+ .setCommittedInfoRate(Uint32.valueOf(100000))
+ .build())
+ .build())
+ .setTxDirection(Map.of(new TxDirectionKey(Uint8.ZERO), new TxDirectionBuilder()
.setPort(new PortBuilder()
.setPortDeviceName(txPortDeviceName)
.setPortName(txPortName)
.setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
- .build())
- .setRxDirection(new RxDirectionBuilder()
+ .setIndex(Uint8.ZERO)
+ .build()))
+ .setRxDirection(Map.of(new RxDirectionKey(Uint8.ZERO), new RxDirectionBuilder()
.setPort(new PortBuilder()
.setPortDeviceName(rxPortDeviceName)
.setPortName(rxPortName)
.setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
- .build());
+ .setIndex(Uint8.ZERO)
+ .build()));
if (serviceFormat.equals(ServiceFormat.ODU)) {
- serviceZEndBuilder.setOduServiceRate(ODU4.class);
+ serviceZEndBuilder.setOduServiceRate(ODU4.VALUE);
}
if (serviceFormat.equals(ServiceFormat.OTU)) {
- serviceZEndBuilder.setOtuServiceRate(OTU4.class);
+ serviceZEndBuilder.setOtuServiceRate(OTU4.VALUE);
}
if (!serviceLayer.equals(LayerProtocolName.ETH)) {
serviceZEndBuilder
- .setSubrateEthSla(new SubrateEthSlaBuilder().setSubrateEthSla(new org.opendaylight.yang.gen.v1.http
- .org.openroadm.common.service.types.rev190531.subrate.eth.sla.SubrateEthSlaBuilder()
+ .setEthernetAttributes(new EthernetAttributesBuilder().setSubrateEthSla(new SubrateEthSlaBuilder()
.setCommittedBurstSize(Uint16.valueOf(64))
.setCommittedInfoRate(Uint32.valueOf(100000))
.build())
// It could be obtained from the SIP which has the NEP and includes all the OR name.
Uuid sipUuid = endPoint.getServiceInterfacePoint().getServiceInterfacePointUuid();
// Todo -> need to find the NEP associated to that SIP
- Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(nodeAid.getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(nodeAid.getBytes(StandardCharsets.UTF_8)).toString());
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node node =
this.tapiContext.getTapiNode(this.tapiTopoUuid, nodeUuid);
if (node == null) {
LOG.error("Nep not found in datastore");
return null;
}
- String nodeName = endPoint.getName().values().stream().findFirst().get().getValue();
+ String nodeName = endPoint.getName().values().stream().findFirst().orElseThrow().getValue();
String nodeid = String.join("-", nodeName.split("-")[0], nodeName.split("-")[1]);
- String nepName = nep.getName().values().stream().findFirst().get().getValue();
+ String nepName = nep.getName().values().stream().findFirst().orElseThrow().getValue();
String txPortDeviceName = nepName.split("\\+")[0];
String txPortName = nepName.split("\\+")[2];
String rxPortDeviceName = txPortDeviceName;
String rxPortName = txPortName;
LOG.debug("Node a id = {}, txportDeviceName = {}, txPortName = {}", nodeid, txPortDeviceName, txPortName);
LOG.debug("Node a id = {}, rxportDeviceName = {}, rxPortName = {}", nodeid, rxPortDeviceName, rxPortName);
- if (serviceFormat.equals(ServiceFormat.ODU)) {
- // TODO --> populate network map
- populateNetworkMap(nodeid, txPortName);
- }
- if (serviceFormat.equals(ServiceFormat.Ethernet)) {
- // TODO --> choose from network Map un network port which hasnt been used yet by another service.
- // Set boolean to true and update txportName and so on
- String updTxName = findFreeConfiguredNetworkPort(nodeid);
- if (updTxName != null) {
- txPortName = updTxName;
- rxPortName = txPortName;
- }
- }
// TODO --> get clli from datastore?
String clli = "NodeSA";
LOG.info("Node a id = {}, txportDeviceName = {}, txPortName = {}", nodeid, txPortDeviceName, txPortName);
.setOpticType(OpticTypes.Gray)
.setServiceFormat(serviceFormat)
.setServiceRate(Uint32.valueOf(capacity))
- .setTxDirection(new TxDirectionBuilder()
+ .setEthernetAttributes(new EthernetAttributesBuilder().setSubrateEthSla(
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.subrate.eth
+ .sla.SubrateEthSlaBuilder()
+ .setCommittedBurstSize(Uint16.valueOf(64))
+ .setCommittedInfoRate(Uint32.valueOf(100000))
+ .build())
+ .build())
+ .setTxDirection(Map.of(new TxDirectionKey(Uint8.ZERO), new TxDirectionBuilder()
.setPort(new PortBuilder()
.setPortDeviceName(txPortDeviceName)
.setPortName(txPortName)
.setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
- .build())
- .setRxDirection(new RxDirectionBuilder()
+ .setIndex(Uint8.ZERO)
+ .build()))
+ .setRxDirection(Map.of(new RxDirectionKey(Uint8.ZERO), new RxDirectionBuilder()
.setPort(new PortBuilder()
.setPortDeviceName(rxPortDeviceName)
.setPortName(rxPortName)
.setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
- .build());
+ .setIndex(Uint8.ZERO)
+ .build()));
if (serviceFormat.equals(ServiceFormat.ODU)) {
- serviceAEndBuilder.setOduServiceRate(ODU4.class);
- }
- if (serviceFormat.equals(ServiceFormat.OTU)) {
- serviceAEndBuilder.setOtuServiceRate(OTU4.class);
+ serviceAEndBuilder.setOduServiceRate(ODU4.VALUE);
+ } else if (serviceFormat.equals(ServiceFormat.OTU)) {
+ serviceAEndBuilder.setOtuServiceRate(OTU4.VALUE);
}
if (!serviceLayer.equals(LayerProtocolName.ETH)) {
serviceAEndBuilder
- .setSubrateEthSla(new SubrateEthSlaBuilder().setSubrateEthSla(new org.opendaylight.yang.gen.v1.http
- .org.openroadm.common.service.types.rev190531.subrate.eth.sla.SubrateEthSlaBuilder()
+ .setEthernetAttributes(new EthernetAttributesBuilder().setSubrateEthSla(new SubrateEthSlaBuilder()
.setCommittedBurstSize(Uint16.valueOf(64))
.setCommittedInfoRate(Uint32.valueOf(100000))
.build())
return serviceAEndBuilder.build();
}
- private String findFreeConfiguredNetworkPort(String nodeid) {
- if (!this.networkMap.containsKey(nodeid)) {
- return null;
- }
- Map<String, Boolean> netMap = this.networkMap.get(nodeid);
- for (Map.Entry<String, Boolean> entry : netMap.entrySet()) {
- if (!entry.getValue()) {
- this.networkMap.get(nodeid).put(entry.getKey(), true);
- return entry.getKey();
- }
- }
- return null;
- }
-
- private void populateNetworkMap(String nodeid, String txPortName) {
- Map<String, Boolean> netMap = new HashMap<>();
- netMap.put(txPortName, false);
- if (!this.networkMap.containsKey(nodeid)) {
- this.networkMap.put(nodeid, netMap);
- } else if (!this.networkMap.get(nodeid).containsKey(txPortName)) {
- this.networkMap.get(nodeid).putAll(netMap);
- }
- }
-
private ConnectionType getConnectionTypePhtnc(Collection<org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.connectivity.rev181210.create.connectivity.service.input.EndPoint> endPoints) {
if (endPoints.stream().anyMatch(ep -> ep.getName().values().stream()
private ConnectionEndPoint getAssociatediODUCep(String spcXpdrNetwork) {
Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", spcXpdrNetwork.split("\\+")[0],
- TapiStringConstants.DSR).getBytes(Charset.forName("UTF-8")))).toString());
+ TapiStringConstants.DSR).getBytes(StandardCharsets.UTF_8))).toString());
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", spcXpdrNetwork.split("\\+")[0],
- TapiStringConstants.I_ODU, spcXpdrNetwork.split("\\+")[1]).getBytes(Charset.forName("UTF-8"))))
+ TapiStringConstants.I_ODU, spcXpdrNetwork.split("\\+")[1]).getBytes(StandardCharsets.UTF_8)))
.toString());
Uuid cepUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "CEP",
spcXpdrNetwork.split("\\+")[0], TapiStringConstants.I_ODU, spcXpdrNetwork.split("\\+")[1]))
- .getBytes(Charset.forName("UTF-8"))).toString());
+ .getBytes(StandardCharsets.UTF_8)).toString());
return this.tapiContext.getTapiCEP(this.tapiTopoUuid, nodeUuid, nepUuid, cepUuid);
}
if (!optMapping.isPresent()) {
LOG.error("Couldnt find mapping for port {} of node {}", tpId, nodeId);
}
- Mapping mapping = optMapping.get();
+ Mapping mapping = optMapping.orElseThrow();
LOG.info("Mapping for node+port {}+{} = {}", nodeId, tpId, mapping);
String key = String.join("+", String.join("-", nodeId, tpId.split("\\-")[0]),
mapping.getConnectionMapLcp());
List<OpenroadmNodeType> openroadmNodeTypeList = new ArrayList<>();
for (String xpdrNode:xpdrNodelist) {
Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+",xpdrNode, TapiStringConstants.DSR))
- .getBytes(Charset.forName("UTF-8"))).toString());
+ .getBytes(StandardCharsets.UTF_8)).toString());
InstanceIdentifier<org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.topology.rev181210.topology.Node> nodeIID = InstanceIdentifier.builder(
Context.class).augmentation(org.opendaylight.yang.gen.v1.urn
if (!optNode.isPresent()) {
return null;
}
- OpenroadmNodeType openroadmNodeType = OpenroadmNodeType.forName(optNode.get().getName().get(
- new NameKey("Node Type")).getValue()).get();
+ OpenroadmNodeType openroadmNodeType = OpenroadmNodeType.forName(optNode.orElseThrow().getName().get(
+ new NameKey("Node Type")).getValue());
if (!openroadmNodeTypeList.contains(openroadmNodeType)) {
openroadmNodeTypeList.add(openroadmNodeType);
}