*/
package org.opendaylight.transportpce.servicehandler;
+import com.google.common.collect.ImmutableMap;
import com.google.common.util.concurrent.ListenableFuture;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220615.PathComputationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220615.path.computation.request.input.ServiceAEnd;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220615.path.computation.request.input.ServiceAEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220615.path.computation.request.input.ServiceZEnd;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220615.path.computation.request.input.ServiceZEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220615.service.path.rpc.result.PathDescription;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.util.HashMap;
+import java.util.Map;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.PathComputationRequestOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.path.computation.request.input.ServiceAEnd;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.path.computation.request.input.ServiceAEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.path.computation.request.input.ServiceZEnd;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.path.computation.request.input.ServiceZEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.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.rev211210.ServiceEndpoint;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommonBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.response.parameters.ResponseParametersBuilder;
+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.rev230526.ServiceEndpoint;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.configuration.response.common.ConfigurationResponseCommonBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.response.parameters.ResponseParametersBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service.hierarchy.TransportAssignmentBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service.hierarchy.transport.assignment.McTtpBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service.hierarchy.transport.assignment.NmcCtp;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service.hierarchy.transport.assignment.NmcCtpBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service.hierarchy.transport.assignment.NmcCtpKey;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.LifecycleState;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.OTUflex;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.OduRateIdentity;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.OtuRateIdentity;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceDeleteInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceDeleteOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceDeleteOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.Services;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.ServicesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.ServicesKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddOpenroadmOperationalModesToCatalogInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddOpenroadmOperationalModesToCatalogOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddOpenroadmOperationalModesToCatalogOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddSpecificOperationalModesToCatalogInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddSpecificOperationalModesToCatalogOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddSpecificOperationalModesToCatalogOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceCreateInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceCreateOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceCreateOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceDeleteInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceDeleteOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceDeleteOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceFeasibilityCheckInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceFeasibilityCheckOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceFeasibilityCheckOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceReconfigureInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceReconfigureOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceReconfigureOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRerouteInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRerouteOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRerouteOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRestorationInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRestorationOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRestorationOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceCreateInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceCreateOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceCreateOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceDeleteInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceDeleteOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceDeleteOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.service.list.Services;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.service.list.ServicesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.service.list.ServicesKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.temp.service.list.services.SupportingServiceHierarchy;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.temp.service.list.services.SupportingServiceHierarchyBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.temp.service.list.services.SupportingServiceHierarchyKey;
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;
public final class ModelMappingUtils {
private static final Logger LOG = LoggerFactory.getLogger(ModelMappingUtils.class);
+ private static final ImmutableMap<String, OduRateIdentity> ODU_RATE_MAP =
+ ImmutableMap.<String, OduRateIdentity>builder()
+ .put("ODU0", ODU0.VALUE)
+ .put("ODU1", ODU1.VALUE)
+ .put("ODU2", ODU2.VALUE)
+ .put("ODU2e", ODU2e.VALUE)
+ .put("ODU3", ODU3.VALUE)
+ .put("ODU4", ODU4.VALUE)
+ .put("ODUCn", ODUCn.VALUE)
+ .put("ODUflexCbr", ODUflexCbr.VALUE)
+ .put("ODUflexFlexe", ODUflexFlexe.VALUE)
+ .put("ODUflexGfp", ODUflexGfp.VALUE)
+ .put("ODUflexImp", ODUflexImp.VALUE)
+ .build();
+
+ private static final ImmutableMap<String, OtuRateIdentity> OTU_RATE_MAP =
+ ImmutableMap.<String, OtuRateIdentity>builder()
+ .put("OTU0", OTU0.VALUE)
+ .put("OTU1", OTU1.VALUE)
+ .put("OTU2", OTU2.VALUE)
+ .put("OTU2e", OTU2e.VALUE)
+ .put("OTU3", OTU3.VALUE)
+ .put("OTU4", OTU4.VALUE)
+ .put("OTUCn", OTUCn.VALUE)
+ .put("OTUflex", OTUflex.VALUE)
+ .build();
+
private ModelMappingUtils() {
}
new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118
.service.endpoint.sp.TxDirectionBuilder()
.setPort(
- input.getServiceAEnd().getTxDirection().values().stream().findFirst().get().getPort())
+ input.getServiceAEnd().getTxDirection().values().stream().findFirst().orElseThrow()
+ .getPort())
.build())
.setRxDirection(
new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118
.service.endpoint.sp.RxDirectionBuilder()
.setPort(
- input.getServiceAEnd().getRxDirection().values().stream().findFirst().get().getPort())
+ input.getServiceAEnd().getRxDirection().values().stream().findFirst().orElseThrow()
+ .getPort())
.build())
.build())
.setServiceZEnd(
new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118
.service.endpoint.sp.TxDirectionBuilder()
.setPort(
- input.getServiceZEnd().getTxDirection().values().stream().findFirst().get().getPort())
+ input.getServiceZEnd().getTxDirection().values().stream().findFirst().orElseThrow()
+ .getPort())
.build())
.setRxDirection(
new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118
.service.endpoint.sp.RxDirectionBuilder()
.setPort(
- input.getServiceZEnd().getRxDirection().values().stream().findFirst().get().getPort())
+ input.getServiceZEnd().getRxDirection().values().stream().findFirst().orElseThrow()
+ .getPort())
.build())
.build())
.setConnectionType(input.getConnectionType())
.build();
}
- private static Class<? extends OduRateIdentity> getOduServiceRate(
- Class<? extends org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.OduRateIdentity>
- oduServiceRate) {
- if (oduServiceRate == null) {
+ private static OduRateIdentity getOduServiceRate(OduRateIdentity oduServiceRate) {
+ if (oduServiceRate == null || !ODU_RATE_MAP.containsKey(oduServiceRate.toString())) {
+ LOG.error("ODU rate {} not recognized", oduServiceRate);
return null;
}
- String oduRate = oduServiceRate.getSimpleName();
- LOG.info("ODU rate = {}", oduRate);
- //TODO a Map would probably be more indicated here
- 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;
+ return ODU_RATE_MAP.get(oduServiceRate.toString());
}
- private static Class<? extends OtuRateIdentity> getOtuServiceRate(
- Class<? extends org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.OtuRateIdentity>
- otuServiceRate) {
- if (otuServiceRate == null) {
+ private static OtuRateIdentity getOtuServiceRate(OtuRateIdentity otuServiceRate) {
+ if (otuServiceRate == null || !OTU_RATE_MAP.containsKey(otuServiceRate.toString())) {
+ LOG.error("OTU rate {} not recognized", otuServiceRate);
return null;
}
- String otuRate = otuServiceRate.getSimpleName();
- LOG.info("OTU rate = {}", otuRate);
- //TODO a Map would probably be more indicated here
- 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;
+ return OTU_RATE_MAP.get(otuServiceRate.toString());
}
public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915
return new ServiceAEndBuilder()
.setClli(serviceAEnd.getClli())
.setNodeId(serviceAEnd.getNodeId().getValue())
- .setRxDirection(createRxDirection(serviceAEnd.getRxDirection().values().stream().findFirst().get()))
+ .setRxDirection(createRxDirection(serviceAEnd.getRxDirection().values().stream().findFirst().orElseThrow()))
.setServiceFormat(serviceAEnd.getServiceFormat())
.setServiceRate(serviceAEnd.getServiceRate())
- .setTxDirection(createTxDirection(serviceAEnd.getTxDirection().values().stream().findFirst().get()))
+ .setTxDirection(createTxDirection(serviceAEnd.getTxDirection().values().stream().findFirst().orElseThrow()))
.build();
}
+ public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205
+ .path.computation.reroute.request.input.ServiceAEnd createServiceAEndReroute(ServiceEndpoint serviceAEnd) {
+ return new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205
+ .path.computation.reroute.request.input.ServiceAEndBuilder()
+ .setClli(serviceAEnd.getClli())
+ .setNodeId(serviceAEnd.getNodeId().getValue())
+ .setRxDirection(createRxDirection(serviceAEnd.getRxDirection().values().stream().findFirst()
+ .orElseThrow()))
+ .setServiceFormat(serviceAEnd.getServiceFormat())
+ .setServiceRate(serviceAEnd.getServiceRate())
+ .setTxDirection(createTxDirection(serviceAEnd.getTxDirection().values().stream().findFirst()
+ .orElseThrow()))
+ .build();
+ }
+
public static ServiceZEnd createServiceZEnd(ServiceEndpoint serviceZEnd) {
return new ServiceZEndBuilder()
.setClli(serviceZEnd.getClli())
.setNodeId(serviceZEnd.getNodeId().getValue())
- .setRxDirection(createRxDirection(serviceZEnd.getRxDirection().values().stream().findFirst().get()))
+ .setRxDirection(createRxDirection(serviceZEnd.getRxDirection().values().stream().findFirst().orElseThrow()))
.setServiceFormat(serviceZEnd.getServiceFormat())
.setServiceRate(serviceZEnd.getServiceRate())
- .setTxDirection(createTxDirection(serviceZEnd.getTxDirection().values().stream().findFirst().get()))
+ .setTxDirection(createTxDirection(serviceZEnd.getTxDirection().values().stream().findFirst().orElseThrow()))
.build();
}
+ public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205
+ .path.computation.reroute.request.input.ServiceZEnd createServiceZEndReroute(ServiceEndpoint serviceZEnd) {
+ return new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205
+ .path.computation.reroute.request.input.ServiceZEndBuilder()
+ .setClli(serviceZEnd.getClli())
+ .setNodeId(serviceZEnd.getNodeId().getValue())
+ .setRxDirection(createRxDirection(serviceZEnd.getRxDirection().values().stream().findFirst()
+ .orElseThrow()))
+ .setServiceFormat(serviceZEnd.getServiceFormat())
+ .setServiceRate(serviceZEnd.getServiceRate())
+ .setTxDirection(createTxDirection(serviceZEnd.getTxDirection().values().stream().findFirst()
+ .orElseThrow()))
+ .build();
+ }
+
public static RxDirection createRxDirection(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526
.service.endpoint.RxDirection rxDirection) {
return new RxDirectionBuilder().setPort(rxDirection.getPort()).build();
}
public static TxDirection createTxDirection(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526
.service.endpoint.TxDirection txDirection) {
return new TxDirectionBuilder().setPort(txDirection.getPort()).build();
}
}
public static ListenableFuture<RpcResult<ServiceRerouteOutput>> createRerouteServiceReply(
- ServiceRerouteInput input, String finalAckYes, String message) {
+ ServiceRerouteInput input, String finalAckYes, String message, String responseCode) {
return RpcResultBuilder
.success(
new ServiceRerouteOutputBuilder()
.setConfigurationResponseCommon(
new ConfigurationResponseCommonBuilder()
- .setResponseMessage(message)
- .build())
+ .setAckFinalIndicator(finalAckYes)
+ .setResponseCode(responseCode)
+ .setResponseMessage(message)
+ .build())
.setHardConstraints(null)
.setSoftConstraints(null)
.build())
.setSdncRequestHeader(serviceCreateInput.getSdncRequestHeader())
.setLifecycleState(LifecycleState.Planned)
.setServiceAEnd(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526
.service.ServiceAEndBuilder(serviceCreateInput.getServiceAEnd())
.build())
.setServiceZEnd(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526
.service.ServiceZEndBuilder(serviceCreateInput.getServiceZEnd())
.build())
.build();
.setSoftConstraints(serviceReconfigureInput.getSoftConstraints())
.setLifecycleState(LifecycleState.Planned)
.setServiceAEnd(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526
.service.ServiceAEndBuilder(serviceReconfigureInput.getServiceAEnd())
.build())
.setServiceZEnd(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526
.service.ServiceZEndBuilder(serviceReconfigureInput.getServiceZEnd())
.build())
.build();
return new ServicesBuilder().withKey(new ServicesKey("unknown")).build();
}
- public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210
- .temp.service.list.Services mappingServices(TempServiceCreateInput tempServiceCreateInput) {
- return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210
+ public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526
+ .temp.service.list.Services mappingServices(TempServiceCreateInput tempServiceCreateInput,
+ PathDescription pathDescription) {
+ Map<SupportingServiceHierarchyKey, SupportingServiceHierarchy> supportingServiceHierarchyMap = new HashMap<>();
+ Map<NmcCtpKey, NmcCtp> nmcCtpMap = new HashMap<>();
+ SupportingServiceHierarchyKey supportingServiceHierarchyKey = new SupportingServiceHierarchyKey(
+ tempServiceCreateInput.getCommonId());
+ // TODO: here we assume the A-Z and Z-A has parameters
+ LOG.info("Min and Max frequencies are {} {}", pathDescription.getAToZDirection().getAToZMinFrequency(),
+ pathDescription.getAToZDirection().getAToZMinFrequency());
+ nmcCtpMap.put(
+ new NmcCtpKey("1"),
+ new NmcCtpBuilder()
+ .setId("1")
+ .setFrequency(pathDescription.getAToZDirection().getCentralFrequency())
+ .setWidth(pathDescription.getAToZDirection().getWidth())
+ .build());
+ supportingServiceHierarchyMap.put(
+ supportingServiceHierarchyKey,
+ new SupportingServiceHierarchyBuilder().setServiceIdentifier(tempServiceCreateInput.getCommonId())
+ .setTransportAssignment(
+ new TransportAssignmentBuilder()
+ .setMcTtp(
+ new McTtpBuilder()
+ .setMaxFreq(pathDescription.getAToZDirection().getAToZMaxFrequency())
+ .setMinFreq(pathDescription.getAToZDirection().getAToZMinFrequency())
+ .build())
+ .setNmcCtp(nmcCtpMap)
+ .build())
+ .build());
+ return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526
.temp.service.list.ServicesBuilder()
.setServiceName(tempServiceCreateInput.getCommonId())
.setAdministrativeState(AdminStates.OutOfService)
.setSdncRequestHeader(tempServiceCreateInput.getSdncRequestHeader())
.setLifecycleState(LifecycleState.Planned)
.setServiceAEnd(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526
.service.ServiceAEndBuilder(tempServiceCreateInput.getServiceAEnd()).build())
.setServiceZEnd(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526
.service.ServiceZEndBuilder(tempServiceCreateInput.getServiceZEnd()).build())
+ .setSupportingServiceHierarchy(supportingServiceHierarchyMap)
.build();
}
.service.endpoint.sp.TxDirectionBuilder()
.setPort(
serviceInput.getServiceAEnd().getTxDirection()
- .values().stream().findFirst().get().getPort())
+ .values().stream().findFirst().orElseThrow().getPort())
.build())
.setRxDirection(
new org.opendaylight.yang.gen.v1
.service.endpoint.sp.RxDirectionBuilder()
.setPort(
serviceInput.getServiceAEnd().getRxDirection()
- .values().stream().findFirst().get().getPort())
+ .values().stream().findFirst().orElseThrow().getPort())
.build())
.build())
.setServiceZEnd(
.service.endpoint.sp.TxDirectionBuilder()
.setPort(
serviceInput.getServiceZEnd().getTxDirection()
- .values().stream().findFirst().get().getPort())
+ .values().stream().findFirst().orElseThrow().getPort())
.build())
.setRxDirection(
new org.opendaylight.yang.gen.v1
.service.endpoint.sp.RxDirectionBuilder()
.setPort(
serviceInput.getServiceZEnd().getRxDirection()
- .values().stream().findFirst().get().getPort())
+ .values().stream().findFirst().orElseThrow().getPort())
.build())
.build())
.setServicePathName(serviceInput.getServiceName())
}
- @edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
+ @SuppressFBWarnings(
value = "PZLA_PREFER_ZERO_LENGTH_ARRAYS",
justification = "not relevant to return and zero length array as we need real pos")
public static int[] findTheLongestSubstring(String s1, String s2) {
}
return new int[] { endPos - maxLen, endPos };
}
+
+ public static ListenableFuture<RpcResult<AddOpenroadmOperationalModesToCatalogOutput>>
+ addOpenroadmServiceReply(AddOpenroadmOperationalModesToCatalogInput input, String finalAck,
+ String message,String responseCode) {
+ return RpcResultBuilder
+ .success(
+ new AddOpenroadmOperationalModesToCatalogOutputBuilder()
+ .setConfigurationResponseCommon(
+ new ConfigurationResponseCommonBuilder()
+ .setAckFinalIndicator(finalAck)
+ .setResponseMessage(message)
+ .setResponseCode(responseCode)
+ .setRequestId(
+ input.getSdncRequestHeader() == null
+ ? null
+ : input.getSdncRequestHeader().getRequestId())
+ .build())
+ .build())
+ .buildFuture();
+ }
+
+ public static ListenableFuture<RpcResult<AddSpecificOperationalModesToCatalogOutput>>
+ addSpecificOpenroadmServiceReply(AddSpecificOperationalModesToCatalogInput input, String finalAck,
+ String message,String responseCode) {
+ return RpcResultBuilder
+ .success(
+ new AddSpecificOperationalModesToCatalogOutputBuilder()
+ .setConfigurationResponseCommon(
+ new ConfigurationResponseCommonBuilder()
+ .setAckFinalIndicator(finalAck)
+ .setResponseMessage(message)
+ .setResponseCode(responseCode)
+ .setRequestId(
+ input.getSdncRequestHeader() == null
+ ? null
+ : input.getSdncRequestHeader().getRequestId())
+ .build())
+ .build())
+ .buildFuture();
+ }
+
}