package org.opendaylight.transportpce.servicehandler;
import com.google.common.util.concurrent.ListenableFuture;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceAEnd;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceAEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceZEnd;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceZEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.service.path.rpc.result.PathDescription;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.ServiceDeleteInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.ServiceImplementationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.ServiceImplementationRequestInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.PathComputationRequestOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceAEnd;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceAEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceZEnd;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceZEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.service.path.rpc.result.PathDescription;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequestInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequestInputBuilder;
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.configuration.response.common.ConfigurationResponseCommon;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommonBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev190531.RpcStatus;
import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev181130.AdminStates;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU0;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU2;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU2e;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU3;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU4;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODUCn;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODUflexCbr;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODUflexFlexe;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODUflexGfp;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODUflexImp;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OTU0;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OTU1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OTU2;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OTU2e;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OTU3;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OTU4;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OTUCn;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OTUflex;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OduRateIdentity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OtuRateIdentity;
import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInput;
import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateOutput;
import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateOutputBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.Services;
import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.ServicesBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.ServicesKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraintsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirection;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirection;
-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.ServiceHandlerHeaderBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.path.PathDescriptionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirection;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirection;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.path.PathDescriptionBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsKey;
} else {
serviceImplementationRequestInputBuilder.setServiceName(input.getServiceName());
}
- org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.service.implementation
+ org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.service.implementation
.request.input.ServiceAEndBuilder serviceAEnd = new org.opendaylight.yang.gen.v1.http.org.opendaylight
- .transportpce.renderer.rev200520.service.implementation.request.input.ServiceAEndBuilder();
+ .transportpce.renderer.rev210915.service.implementation.request.input.ServiceAEndBuilder();
serviceAEnd.setServiceFormat(input.getServiceAEnd().getServiceFormat())
.setServiceRate(input.getServiceAEnd().getServiceRate())
- .setOtuServiceRate(input.getServiceAEnd().getOtuServiceRate())
- .setOduServiceRate(input.getServiceAEnd().getOduServiceRate())
+ .setOtuServiceRate(getOtuServiceRate(input.getServiceAEnd().getOtuServiceRate()))
+ .setOduServiceRate(getOduServiceRate(input.getServiceAEnd().getOduServiceRate()))
.setClli(input.getServiceAEnd().getClli())
.setNodeId(new NodeIdType(input.getServiceAEnd().getNodeId().getValue()).getValue())
.setTxDirection(new org.opendaylight.yang.gen.v1.http.org
- .transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirectionBuilder()
+ .transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirectionBuilder()
.setPort(input.getServiceAEnd().getTxDirection().getPort()).build())
.setRxDirection(new org.opendaylight.yang.gen.v1.http.org
- .transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirectionBuilder()
+ .transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirectionBuilder()
.setPort(input.getServiceAEnd().getRxDirection().getPort()).build());
- org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.service.implementation
+ org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.service.implementation
.request.input.ServiceZEndBuilder serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.opendaylight
- .transportpce.renderer.rev200520.service.implementation.request.input.ServiceZEndBuilder();
+ .transportpce.renderer.rev210915.service.implementation.request.input.ServiceZEndBuilder();
serviceZEnd.setServiceFormat(input.getServiceZEnd().getServiceFormat())
.setServiceRate(input.getServiceZEnd().getServiceRate())
- .setOtuServiceRate(input.getServiceZEnd().getOtuServiceRate())
- .setOduServiceRate(input.getServiceZEnd().getOduServiceRate())
+ .setOtuServiceRate(getOtuServiceRate(input.getServiceZEnd().getOtuServiceRate()))
+ .setOduServiceRate(getOduServiceRate(input.getServiceZEnd().getOduServiceRate()))
.setClli(input.getServiceZEnd().getClli())
.setNodeId(new NodeIdType(input.getServiceZEnd().getNodeId().getValue()).getValue())
.setTxDirection(new org.opendaylight.yang.gen.v1.http.org
- .transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirectionBuilder()
+ .transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirectionBuilder()
.setPort(input.getServiceZEnd().getTxDirection().getPort()).build())
.setRxDirection(new org.opendaylight.yang.gen.v1.http.org
- .transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirectionBuilder()
+ .transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirectionBuilder()
.setPort(input.getServiceZEnd().getRxDirection().getPort()).build());
serviceImplementationRequestInputBuilder
.setConnectionType(input.getConnectionType())
.setServiceHandlerHeader(
new ServiceHandlerHeaderBuilder().setRequestId(input.getSdncRequestHeader().getRequestId()).build());
- org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.service.implementation
+ org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.service.implementation
.request.input.PathDescriptionBuilder pathDescBuilder = new org.opendaylight.yang.gen.v1.http.org
- .opendaylight.transportpce.renderer.rev200520.service.implementation.request.input
+ .opendaylight.transportpce.renderer.rev210915.service.implementation.request.input
.PathDescriptionBuilder();
pathDescBuilder
.setAToZDirection(pathDescription.getAToZDirection())
return serviceImplementationRequestInputBuilder.build();
}
- public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520
+ private static Class<? extends OduRateIdentity> getOduServiceRate(
+ Class<? extends org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.OduRateIdentity>
+ oduServiceRate) {
+ if (oduServiceRate == null) {
+ return null;
+ }
+ String oduRate = oduServiceRate.getSimpleName();
+ LOG.info("ODU rate = {}", oduRate);
+ switch (oduRate) {
+ case "ODU0":
+ return ODU0.class;
+ case "ODU1":
+ return ODU1.class;
+ case "ODU2":
+ return ODU2.class;
+ case "ODU2e":
+ return ODU2e.class;
+ case "ODU3":
+ return ODU3.class;
+ case "ODU4":
+ return ODU4.class;
+ case "ODUCn":
+ return ODUCn.class;
+ case "ODUflexCbr":
+ return ODUflexCbr.class;
+ case "ODUflexFlexe":
+ return ODUflexFlexe.class;
+ case "ODUflexGfp":
+ return ODUflexGfp.class;
+ case "ODUflexImp":
+ return ODUflexImp.class;
+ default:
+ LOG.error("OTU rate {} not recognized", oduRate);
+ }
+ return null;
+ }
+
+ private static Class<? extends OtuRateIdentity> getOtuServiceRate(
+ Class<? extends org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.OtuRateIdentity>
+ otuServiceRate) {
+ if (otuServiceRate == null) {
+ return null;
+ }
+ String otuRate = otuServiceRate.getSimpleName();
+ LOG.info("OTU rate = {}", otuRate);
+ switch (otuRate) {
+ case "OTU0":
+ return OTU0.class;
+ case "OTU1":
+ return OTU1.class;
+ case "OTU2":
+ return OTU2.class;
+ case "OTU2e":
+ return OTU2e.class;
+ case "OTU3":
+ return OTU3.class;
+ case "OTU4":
+ return OTU4.class;
+ case "OTUCn":
+ return OTUCn.class;
+ case "OTUflex":
+ return OTUflex.class;
+ default:
+ LOG.error("OTU rate {} not recognized", otuRate);
+ }
+ return null;
+ }
+
+ public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915
.ServiceDeleteInput createServiceDeleteInput(ServiceInput serviceInput) {
ServiceDeleteInputBuilder builder = new ServiceDeleteInputBuilder()
.setServiceName(serviceInput.getServiceName())
return builder.build();
}
- public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520
+ public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915
.ServiceDeleteInput createServiceDeleteInput(ServiceRerouteInput serviceRerouteinput, Services services) {
ServiceDeleteInputBuilder builder = new ServiceDeleteInputBuilder()
.setServiceName(serviceRerouteinput.getServiceName())
return builder.build();
}
- public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520
+ public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915
.ServiceDeleteInput createServiceDeleteInput(ServiceRestorationInput serviceRestorationInput,
Services services) {
ServiceDeleteInputBuilder builder = new ServiceDeleteInputBuilder()
return builder.build();
}
- public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.ServiceDeleteInput
+ public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteInput
createServiceDeleteInput(ServiceReconfigureInput serviceReconfigureInput) {
String serviceName = serviceReconfigureInput.getServiceName();
ServiceDeleteInputBuilder builder = new ServiceDeleteInputBuilder()
public static ServicePaths mappingServicePaths(ServiceInput serviceInput, PathComputationRequestOutput output) {
ServicePathsBuilder servicePathBuilder = new ServicePathsBuilder();
if (serviceInput != null) {
- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128
+ org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118
.service.path.ServiceAEndBuilder serviceAEnd =
- new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128
+ new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118
.service.path.ServiceAEndBuilder();
serviceAEnd.setServiceFormat(serviceInput.getServiceAEnd().getServiceFormat())
.setServiceRate(serviceInput.getServiceAEnd().getServiceRate())
.setClli(serviceInput.getServiceAEnd().getClli())
.setNodeId(new NodeIdType(serviceInput.getServiceAEnd().getNodeId()).getValue())
.setTxDirection(new org.opendaylight.yang.gen.v1.http.org
- .transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirectionBuilder()
+ .transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirectionBuilder()
.setPort(serviceInput.getServiceAEnd().getTxDirection().getPort()).build())
.setRxDirection(new org.opendaylight.yang.gen.v1.http.org
- .transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirectionBuilder()
+ .transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirectionBuilder()
.setPort(serviceInput.getServiceAEnd().getRxDirection().getPort()).build());
- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128
+ org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118
.service.path.ServiceZEndBuilder serviceZEnd =
- new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128
+ new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118
.service.path.ServiceZEndBuilder();
serviceZEnd.setServiceFormat(serviceInput.getServiceZEnd().getServiceFormat())
.setServiceRate(serviceInput.getServiceZEnd().getServiceRate())
.setClli(serviceInput.getServiceZEnd().getClli())
.setNodeId(new NodeIdType(serviceInput.getServiceZEnd().getNodeId()).getValue())
.setTxDirection(new org.opendaylight.yang.gen.v1.http.org
- .transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirectionBuilder()
+ .transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirectionBuilder()
.setPort(serviceInput.getServiceZEnd().getTxDirection().getPort()).build())
.setRxDirection(new org.opendaylight.yang.gen.v1.http.org
- .transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirectionBuilder()
+ .transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirectionBuilder()
.setPort(serviceInput.getServiceZEnd().getRxDirection().getPort()).build());
servicePathBuilder.setServiceAEnd(serviceAEnd.build());
servicePathBuilder.setServiceZEnd(serviceZEnd.build());
- MappingConstraints mapConstraints = new MappingConstraints(serviceInput.getHardConstraints(),
- serviceInput.getSoftConstraints());
- mapConstraints.serviceToServicePathConstarints();
- if (mapConstraints.getServicePathHardConstraints() != null) {
- HardConstraintsBuilder hardConstraintBuilder = new HardConstraintsBuilder()
- .setCustomerCode(serviceInput.getHardConstraints().getCustomerCode())
- .setCoRoutingOrGeneral(mapConstraints.getServicePathHardConstraints().getCoRoutingOrGeneral());
- servicePathBuilder.setHardConstraints(hardConstraintBuilder.build());
+ if (serviceInput.getHardConstraints() != null) {
+ servicePathBuilder.setHardConstraints(serviceInput.getHardConstraints());
}
- if (mapConstraints.getServicePathSoftConstraints() != null) {
- SoftConstraintsBuilder softConstraintBuilder = new SoftConstraintsBuilder()
- .setCustomerCode(mapConstraints.getServicePathSoftConstraints().getCustomerCode())
- .setCoRoutingOrGeneral(mapConstraints.getServicePathSoftConstraints().getCoRoutingOrGeneral());
- servicePathBuilder.setSoftConstraints(softConstraintBuilder.build());
+ if (serviceInput.getSoftConstraints() != null) {
+ servicePathBuilder.setSoftConstraints(serviceInput.getSoftConstraints());
}
servicePathBuilder.setServicePathName(serviceInput.getServiceName());
servicePathBuilder.setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()