X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=servicehandler%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fservicehandler%2FMappingConstraints.java;h=8631555ec7a850b7e6b6fd19a2d59b30fba39250;hb=refs%2Fchanges%2F76%2F96276%2F3;hp=e61f605e5ce856d9d86c3a731974f8e238c28953;hpb=8e869851857c216b2513c2bf1adae927737de507;p=transportpce.git diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/MappingConstraints.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/MappingConstraints.java index e61f605e5..8631555ec 100644 --- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/MappingConstraints.java +++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/MappingConstraints.java @@ -9,27 +9,32 @@ package org.opendaylight.transportpce.servicehandler; -import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.constraints.CoRoutingOrGeneral; -import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.constraints.co.routing.or.general.CoRouting; -import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.constraints.co.routing.or.general.General; -import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.constraints.co.routing.or.general.general.Diversity; -import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.constraints.co.routing.or.general.general.Exclude; -import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.constraints.co.routing.or.general.general.Include; -import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.constraints.co.routing.or.general.general.Latency; -import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.routing.constraints.HardConstraints; -import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.routing.constraints.SoftConstraints; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.constraints.sp.co.routing.or.general.general.DiversityBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.constraints.sp.co.routing.or.general.general.ExcludeBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.constraints.sp.co.routing.or.general.general.IncludeBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.constraints.sp.co.routing.or.general.general.LatencyBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.routing.constraints.sp.HardConstraintsBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.routing.constraints.sp.SoftConstraintsBuilder; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev181130.NodeIdType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.Constraints; +import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.CoRoutingOrGeneral; +import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.CoRouting; +import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.General; +import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.general.Diversity; +import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.general.Exclude; +import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.general.Include; +import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.general.Latency; +import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.HardConstraints; +import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.SoftConstraints; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.ConstraintsSp; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.DiversityBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.ExcludeBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.IncludeBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.LatencyBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder; +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.slf4j.Logger; import org.slf4j.LoggerFactory; -/* +/** * Class for mapping * Hard/soft constraint from Service 1.2 * to servicePath 1.4. @@ -37,17 +42,16 @@ import org.slf4j.LoggerFactory; * */ public class MappingConstraints { - /* Logging. */ + /** Logging. */ private static final Logger LOG = LoggerFactory.getLogger(MappingConstraints.class); private HardConstraints serviceHardConstraints; private SoftConstraints serviceSoftConstraints; private org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface - .routing.constraints.rev170426.routing.constraints.sp.HardConstraints servicePathHardConstraints; + .routing.constraints.rev171017.routing.constraints.sp.HardConstraints servicePathHardConstraints; private org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface - .routing.constraints.rev170426.routing.constraints.sp.SoftConstraints servicePathSoftConstraints; - + .routing.constraints.rev171017.routing.constraints.sp.SoftConstraints servicePathSoftConstraints; - /* + /** * MappingConstraints class constructor * for hard/soft from service 1.2. * @@ -59,7 +63,7 @@ public class MappingConstraints { setServiceSoftConstraints(soft); } - /* + /** * MappingConstraints class constructor * for hard/soft from servicePath 1.4. * @@ -67,178 +71,169 @@ public class MappingConstraints { * @param soft SoftConstraints */ public MappingConstraints(org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface - .routing.constraints.rev170426.routing.constraints.sp.HardConstraints hard, + .routing.constraints.rev171017.routing.constraints.sp.HardConstraints hard, org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface - .routing.constraints.rev170426.routing.constraints.sp.SoftConstraints soft) { + .routing.constraints.rev171017.routing.constraints.sp.SoftConstraints soft) { setServicePathHardConstraints(hard); setServicePathSoftConstraints(soft); } - /* + /** + *get all constraints informations + *from service constraints to map to + *servicePath constraints. + * + * @param input HardConstraints or SoftConstraints + * @return ConstraintsSp HardConstraintsSp or HardConstraintsSp + */ + private ConstraintsSp getConstraints(T input) { + HardConstraintsBuilder tempHard = new HardConstraintsBuilder(); + SoftConstraintsBuilder tempSoft = new SoftConstraintsBuilder(); + if ((input != null) && (input instanceof Constraints)) { + updateConstraintBuilders(input, tempHard, tempSoft); + } + if (input instanceof HardConstraints) { + return tempHard.build(); + } else if (input instanceof SoftConstraints) { + return tempSoft.build(); + } else { + return null; + } + } + + /** + * Update hardConstraintsBuilder and softConstraintsBuilder regarding input. + * @param T + * @param input T + * @param hardConstraintsBuilder HardConstraintsBuilder + * @param softConstraintsBuilder SoftConstraintsBuilder + */ + private void updateConstraintBuilders(T input, + HardConstraintsBuilder hardConstraintsBuilder, + SoftConstraintsBuilder softConstraintsBuilder) { + Constraints constraints = (Constraints)input; + CoRoutingOrGeneral coRoutingOrGeneral = constraints.getCoRoutingOrGeneral(); + if (coRoutingOrGeneral != null) { + if (coRoutingOrGeneral instanceof General) { + updateConstraintBuilders4General(hardConstraintsBuilder, softConstraintsBuilder, constraints); + } else if (coRoutingOrGeneral instanceof CoRouting) { + updateConstraintBuilders4Corouting(hardConstraintsBuilder, softConstraintsBuilder, constraints); + } + } + } + + /** + * Update hardConstraintsBuilder and softConstraintsBuilder for corouting constraints. + * @param hardConstraintsBuilder HardConstraintsBuilder + * @param softConstraintsBuilder SoftConstraintsBuilder + * @param constraints Constraints + */ + private void updateConstraintBuilders4Corouting(HardConstraintsBuilder hardConstraintsBuilder, + SoftConstraintsBuilder softConstraintsBuilder, Constraints constraints) { + org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017 + .constraints.sp.co.routing.or.general.CoRoutingBuilder finalCoRouting = + new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017 + .constraints.sp.co.routing.or.general.CoRoutingBuilder(); + CoRouting tmpCoRouting = (CoRouting)constraints.getCoRoutingOrGeneral(); + if (tmpCoRouting != null) { + org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329 + .constraints.co.routing.or.general.co.routing.CoRouting tmpCoRoutingCoRouting = + tmpCoRouting.getCoRouting(); + if (tmpCoRoutingCoRouting != null) { + finalCoRouting.setCoRouting( + new CoRoutingBuilder() + .setExistingService(tmpCoRoutingCoRouting.getExistingService()) + .build()); + } + } + hardConstraintsBuilder.setCoRoutingOrGeneral(finalCoRouting.build()) + .setCustomerCode(constraints.getCustomerCode()); + softConstraintsBuilder.setCoRoutingOrGeneral(finalCoRouting.build()) + .setCustomerCode(constraints.getCustomerCode()); + } + + /** + * Update hardConstraintsBuilder and softConstraintsBuilder for general constraints. + * @param hardConstraintsBuilder HardConstraintsBuilder + * @param softConstraintsBuilder SoftConstraintsBuilder + * @param constraints Constraints + */ + private void updateConstraintBuilders4General(HardConstraintsBuilder hardConstraintsBuilder, + SoftConstraintsBuilder softConstraintsBuilder, Constraints constraints) { + org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017 + .constraints.sp.co.routing.or.general.GeneralBuilder finalGeneral = + new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017 + .constraints.sp.co.routing.or.general.GeneralBuilder(); + General tmpGeneral = (General) constraints.getCoRoutingOrGeneral(); + if (tmpGeneral != null) { + Diversity tmpDiversity = tmpGeneral.getDiversity(); + if (tmpDiversity != null) { + finalGeneral.setDiversity( + new DiversityBuilder() + .setExistingService(tmpDiversity.getExistingService()) + .setExistingServiceApplicability( + new ExistingServiceApplicabilityBuilder() + .setClli(tmpDiversity.getExistingServiceApplicability().getSite()) + .setNode(tmpDiversity.getExistingServiceApplicability().getNode()) + .setSrlg(tmpDiversity.getExistingServiceApplicability().getSrlg()) + .build()) + .build()); + } + Exclude tmpExclude = tmpGeneral.getExclude(); + if (tmpExclude != null) { + List nodeIdList = new ArrayList<>(); + for (NodeIdType nodeId : tmpExclude.getNodeId()) { + nodeIdList.add(nodeId.getValue()); + } + finalGeneral.setExclude( + new ExcludeBuilder() + .setSupportingServiceName(tmpExclude.getSupportingServiceName()) + .setClli(tmpExclude.getSite()) + .setNodeId(nodeIdList) + .build()); + } + Include tmpInclude = tmpGeneral.getInclude(); + if (tmpInclude != null) { + finalGeneral.setInclude( + new IncludeBuilder() + .build()); + } + Latency tmpLatency = tmpGeneral.getLatency(); + if (tmpLatency != null) { + finalGeneral.setLatency( + new LatencyBuilder() + .setMaxLatency(tmpLatency.getMaxLatency()) + .build()); + } + } + hardConstraintsBuilder.setCoRoutingOrGeneral(finalGeneral.build()) + .setCustomerCode(constraints.getCustomerCode()); + softConstraintsBuilder.setCoRoutingOrGeneral(finalGeneral.build()) + .setCustomerCode(constraints.getCustomerCode()); + } + + /** * map hard/soft constraints from Service 1.2 * to ServicePath 1.4. */ public void serviceToServicePathConstarints() { LOG.info("Mapping Service Constraints to ServicePath Constraints"); - CoRoutingOrGeneral coRoutingOrGeneral = null; if (serviceHardConstraints != null) { - HardConstraintsBuilder tempHard = new HardConstraintsBuilder(); - coRoutingOrGeneral = serviceHardConstraints.getCoRoutingOrGeneral(); - General tmpGeneral = null; - CoRouting tmpCoRouting = null; - if (coRoutingOrGeneral != null) { - org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints - .rev170426.constraints.sp.co.routing.or.general.GeneralBuilder finalGeneral = - new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints - .rev170426.constraints.sp.co.routing.or.general.GeneralBuilder(); - org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints - .rev170426.constraints.sp.co.routing.or.general.CoRoutingBuilder finalCoRouting = - new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints - .rev170426.constraints.sp.co.routing.or.general.CoRoutingBuilder(); - if (coRoutingOrGeneral instanceof General) { - tmpGeneral = (General) coRoutingOrGeneral; - if (tmpGeneral != null) { - Diversity tmpDiversity = tmpGeneral.getDiversity(); - if (tmpDiversity != null) { - finalGeneral.setDiversity( - new DiversityBuilder() - .setExistingService(tmpDiversity.getExistingService()) - .setExistingServiceApplicability( - new ExistingServiceApplicabilityBuilder() - .setClli(tmpDiversity.getExistingServiceApplicability().isSite()) - .setNode(tmpDiversity.getExistingServiceApplicability().isNode()) - .setSrlg(tmpDiversity.getExistingServiceApplicability().isSrlg()) - .build()) - .build()); - } - Exclude tmpExclude = tmpGeneral.getExclude(); - if (tmpExclude != null) { - finalGeneral.setExclude( - new ExcludeBuilder() - .setSupportingServiceName(tmpExclude.getSupportingServiceName()) - .setClli(tmpExclude.getSite()) - .setNodeId(tmpExclude.getNodeId()) - //.setAffinity(value) - //.setSRLG(value) - .build()); - } - Include tmpInclude = tmpGeneral.getInclude(); - if (tmpInclude != null) { - finalGeneral.setInclude( - new IncludeBuilder() - //.setOrderedHops() - .build()); - } - Latency tmpLatency = tmpGeneral.getLatency(); - if (tmpLatency != null) { - finalGeneral.setLatency( - new LatencyBuilder() - .setMaxLatency(tmpLatency.getMaxLatency()) - .build()); - } - } - tempHard - .setCoRoutingOrGeneral(finalGeneral.build()) - .setCustomerCode(serviceHardConstraints.getCustomerCode()); - } else if (coRoutingOrGeneral instanceof CoRouting) { - tmpCoRouting = (CoRouting)coRoutingOrGeneral; - if (tmpCoRouting != null) { - org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014 - .constraints.co.routing.or.general.co.routing.CoRouting tmpCoRoutingCoRouting = - tmpCoRouting.getCoRouting(); - if (tmpCoRoutingCoRouting != null) { - finalCoRouting.setCoRouting( - new CoRoutingBuilder() - .setExistingService(tmpCoRoutingCoRouting.getExistingService()) - .build()); - } - } - tempHard - .setCoRoutingOrGeneral(finalCoRouting.build()) - .setCustomerCode(serviceHardConstraints.getCustomerCode()); - - } + org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints + .rev171017.routing.constraints.sp.HardConstraints tempHard = (org.opendaylight.yang.gen + .v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing + .constraints.sp.HardConstraints) getConstraints(serviceHardConstraints); + if (tempHard != null) { + servicePathHardConstraints = tempHard; } - servicePathHardConstraints = tempHard.build(); } else if (serviceSoftConstraints != null) { - SoftConstraintsBuilder tempSoft = new SoftConstraintsBuilder(); - coRoutingOrGeneral = serviceSoftConstraints.getCoRoutingOrGeneral(); - General tmpGeneral = null; - CoRouting tmpCoRouting = null; - if (coRoutingOrGeneral != null) { - org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints - .rev170426.constraints.sp.co.routing.or.general.GeneralBuilder finalGeneral = - new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints - .rev170426.constraints.sp.co.routing.or.general.GeneralBuilder(); - org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints - .rev170426.constraints.sp.co.routing.or.general.CoRoutingBuilder finalCoRouting = - new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints - .rev170426.constraints.sp.co.routing.or.general.CoRoutingBuilder(); - if (coRoutingOrGeneral instanceof General) { - tmpGeneral = (General) coRoutingOrGeneral; - if (tmpGeneral != null) { - Diversity tmpDiversity = tmpGeneral.getDiversity(); - if (tmpDiversity != null) { - finalGeneral.setDiversity( - new DiversityBuilder() - .setExistingService(tmpDiversity.getExistingService()) - .setExistingServiceApplicability( - new ExistingServiceApplicabilityBuilder() - .setClli(tmpDiversity.getExistingServiceApplicability().isSite()) - .setNode(tmpDiversity.getExistingServiceApplicability().isNode()) - .setSrlg(tmpDiversity.getExistingServiceApplicability().isSrlg()) - .build()) - .build()); - } - Exclude tmpExclude = tmpGeneral.getExclude(); - if (tmpExclude != null) { - finalGeneral.setExclude( - new ExcludeBuilder() - .setSupportingServiceName(tmpExclude.getSupportingServiceName()) - .setClli(tmpExclude.getSite()) - .setNodeId(tmpExclude.getNodeId()) - //.setAffinity(value) - //.setSRLG(value) - .build()); - } - Include tmpInclude = tmpGeneral.getInclude(); - if (tmpInclude != null) { - finalGeneral.setInclude( - new IncludeBuilder() - //.setOrderedHops() - .build()); - } - Latency tmpLatency = tmpGeneral.getLatency(); - if (tmpLatency != null) { - finalGeneral.setLatency( - new LatencyBuilder() - .setMaxLatency(tmpLatency.getMaxLatency()) - .build()); - } - } - tempSoft - .setCoRoutingOrGeneral(finalGeneral.build()) - .setCustomerCode(serviceSoftConstraints.getCustomerCode()); - } else if (coRoutingOrGeneral instanceof CoRouting) { - tmpCoRouting = (CoRouting)coRoutingOrGeneral; - if (tmpCoRouting != null) { - org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014 - .constraints.co.routing.or.general.co.routing.CoRouting tmpCoRoutingCoRouting = - tmpCoRouting.getCoRouting(); - if (tmpCoRoutingCoRouting != null) { - finalCoRouting.setCoRouting( - new CoRoutingBuilder() - .setExistingService(tmpCoRoutingCoRouting.getExistingService()) - .build()); - } - } - tempSoft - .setCoRoutingOrGeneral(finalCoRouting.build()) - .setCustomerCode(serviceSoftConstraints.getCustomerCode()); - - } + org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints + .rev171017.routing.constraints.sp.SoftConstraints tempSoft = (org.opendaylight.yang.gen + .v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing + .constraints.sp.SoftConstraints) getConstraints(serviceSoftConstraints); + if (tempSoft != null) { + servicePathSoftConstraints = tempSoft; } - servicePathSoftConstraints = tempSoft.build(); } } @@ -264,25 +259,25 @@ public class MappingConstraints { public org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface - .routing.constraints.rev170426.routing.constraints.sp.HardConstraints getServicePathHardConstraints() { + .routing.constraints.rev171017.routing.constraints.sp.HardConstraints getServicePathHardConstraints() { return servicePathHardConstraints; } public void setServicePathHardConstraints(org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface - .routing.constraints.rev170426.routing.constraints.sp.HardConstraints servicePathHardConstraints) { + .routing.constraints.rev171017.routing.constraints.sp.HardConstraints servicePathHardConstraints) { this.servicePathHardConstraints = servicePathHardConstraints; } public org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface - .routing.constraints.rev170426.routing.constraints.sp.SoftConstraints getServicePathSoftConstraints() { + .routing.constraints.rev171017.routing.constraints.sp.SoftConstraints getServicePathSoftConstraints() { return servicePathSoftConstraints; } public void setServicePathSoftConstraints(org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface - .routing.constraints.rev170426.routing.constraints.sp.SoftConstraints servicePathSoftConstraints) { + .routing.constraints.rev171017.routing.constraints.sp.SoftConstraints servicePathSoftConstraints) { this.servicePathSoftConstraints = servicePathSoftConstraints; }