X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=pce%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fpce%2FPceSendingPceRPCs.java;h=d0610c8cf1c9868d0cd9ab1ad6a744fe4ed2d7ce;hb=952583aa9f0de2de04f230291a5989413591a7b7;hp=5dc2c9c7f213df8bfc080182c74371bf3787f807;hpb=3698762c472dcee815709036258f76af446bec35;p=transportpce.git diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/PceSendingPceRPCs.java b/pce/src/main/java/org/opendaylight/transportpce/pce/PceSendingPceRPCs.java index 5dc2c9c7f..d0610c8cf 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/PceSendingPceRPCs.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/PceSendingPceRPCs.java @@ -8,23 +8,22 @@ package org.opendaylight.transportpce.pce; -import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices; import org.opendaylight.transportpce.common.ResponseCodes; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.pce.constraints.PceConstraints; import org.opendaylight.transportpce.pce.constraints.PceConstraintsCalc; -import org.opendaylight.transportpce.pce.gnpy.ConnectToGnpyServer; import org.opendaylight.transportpce.pce.gnpy.GnpyException; import org.opendaylight.transportpce.pce.gnpy.GnpyResult; import org.opendaylight.transportpce.pce.gnpy.GnpyUtilitiesImpl; +import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumer; import org.opendaylight.transportpce.pce.graph.PceGraph; import org.opendaylight.transportpce.pce.networkanalyzer.PceCalculation; import org.opendaylight.transportpce.pce.networkanalyzer.PceResult; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInputBuilder; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.service.path.rpc.result.PathDescriptionBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.AToZDirection; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.ZToADirection; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.AToZDirection; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.ZToADirection; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp.PceMetric; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraints; import org.slf4j.Logger; @@ -59,22 +58,23 @@ public class PceSendingPceRPCs { private Boolean success; private String message; private String responseCode; - private BindingDOMCodecServices bindingDOMCodecServices; + private final GnpyConsumer gnpyConsumer; - public PceSendingPceRPCs() { + public PceSendingPceRPCs(GnpyConsumer gnpyConsumer) { setPathDescription(null); this.input = null; this.networkTransaction = null; + this.gnpyConsumer = gnpyConsumer; } public PceSendingPceRPCs(PathComputationRequestInput input, - NetworkTransactionService networkTransaction, BindingDOMCodecServices bindingDOMCodecServices) { + NetworkTransactionService networkTransaction, GnpyConsumer gnpyConsumer) { + this.gnpyConsumer = gnpyConsumer; setPathDescription(null); // TODO compliance check to check that input is not empty this.input = input; this.networkTransaction = networkTransaction; - this.bindingDOMCodecServices = bindingDOMCodecServices; } public void cancelResourceReserve() { @@ -155,10 +155,9 @@ public class PceSendingPceRPCs { //Connect to Gnpy to check path feasibility and recompute another path in case of path non-feasibility try { - ConnectToGnpyServer connectToGnpy = new ConnectToGnpyServer(); - if (connectToGnpy.isGnpyURLExist()) { + if (gnpyConsumer.isAvailable()) { GnpyUtilitiesImpl gnpy = new GnpyUtilitiesImpl(networkTransaction, input, - bindingDOMCodecServices); + gnpyConsumer); if (rc.getStatus() && gnpyToCheckFeasiblity(atoz,ztoa,gnpy)) { setPathDescription(new PathDescriptionBuilder().setAToZDirection(atoz).setZToADirection(ztoa)); return; @@ -175,7 +174,7 @@ public class PceSendingPceRPCs { } private boolean gnpyToCheckFeasiblity(AToZDirection atoz, ZToADirection ztoa, GnpyUtilitiesImpl gnpy) - throws GnpyException, Exception { + throws GnpyException { //Call GNPy for path verification if (gnpy.verifyComputationByGnpy(atoz, ztoa, pceHardConstraints)) { @@ -187,7 +186,7 @@ public class PceSendingPceRPCs { return false; } - private void callGnpyToComputeNewPath(GnpyUtilitiesImpl gnpy) throws GnpyException, Exception { + private void callGnpyToComputeNewPath(GnpyUtilitiesImpl gnpy) throws GnpyException { //Call GNPy in the case of non feasibility LOG.info("In pceSendingPceRPC: the path is not feasible according to Gnpy");