X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=olm%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Folm%2FOlmPowerServiceRpcImpl.java;h=5fd005995ee26de1cfff0360faa6945496f683c2;hb=d9ef75efa4ff5164c84d1d1e62ac1d4a7e21ab6a;hp=c0dfb20549a013aac5bfe17e9a24214481f92fd8;hpb=4ef19c0a7cddd25efa5c74c402b5f6b46bb73739;p=transportpce.git diff --git a/olm/src/main/java/org/opendaylight/transportpce/olm/OlmPowerServiceRpcImpl.java b/olm/src/main/java/org/opendaylight/transportpce/olm/OlmPowerServiceRpcImpl.java index c0dfb2054..5fd005995 100644 --- a/olm/src/main/java/org/opendaylight/transportpce/olm/OlmPowerServiceRpcImpl.java +++ b/olm/src/main/java/org/opendaylight/transportpce/olm/OlmPowerServiceRpcImpl.java @@ -5,144 +5,53 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ + package org.opendaylight.transportpce.olm; -import com.google.common.util.concurrent.ListenableFuture; +import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.transportpce.olm.rpc.impl.CalculateSpanlossBaseImpl; +import org.opendaylight.transportpce.olm.rpc.impl.CalculateSpanlossCurrentImpl; +import org.opendaylight.transportpce.olm.rpc.impl.GetPmImpl; +import org.opendaylight.transportpce.olm.rpc.impl.ServicePowerResetImpl; +import org.opendaylight.transportpce.olm.rpc.impl.ServicePowerSetupImpl; +import org.opendaylight.transportpce.olm.rpc.impl.ServicePowerTurndownImpl; import org.opendaylight.transportpce.olm.service.OlmPowerService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.CalculateSpanlossBaseInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.CalculateSpanlossBaseOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.CalculateSpanlossCurrentInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.CalculateSpanlossCurrentOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.GetPmInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.GetPmOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.OlmService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.ServicePowerResetInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.ServicePowerResetOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.ServicePowerSetupInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.ServicePowerSetupOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.ServicePowerTurndownInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.ServicePowerTurndownOutput; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.common.RpcResultBuilder; +import org.opendaylight.yangtools.concepts.Registration; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Deactivate; +import org.osgi.service.component.annotations.Reference; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * The Class OlmPowerServiceRpcImpl. */ -public class OlmPowerServiceRpcImpl implements OlmService { - private final OlmPowerService olmPowerService; - - public OlmPowerServiceRpcImpl(OlmPowerService olmPowerService) { - this.olmPowerService = olmPowerService; - } - - /** - * This method is the implementation of the 'get-pm' RESTCONF service, which - * is one of the external APIs into the olm application. - * - *

- * 1. get-pm This operation traverse through current PM list and gets PM for - * given NodeId and Resource name - * - *

- * The signature for this method was generated by yang tools from the - * olm API model. - * - * @param input - * Input parameter from the olm yang model - * - * @return Result of the request - */ - @Override - public ListenableFuture> getPm(GetPmInput input) { - return RpcResultBuilder.success(this.olmPowerService.getPm(input)).buildFuture(); - } - - /** - * This method is the implementation of the 'service-power-setup' RESTCONF service, which - * is one of the external APIs into the olm application. - * - *

- * 1. service-power-setup: This operation performs following steps: - * Step1: Calculate Spanloss on all links which are part of service. - * TODO Step2: Calculate power levels for each Tp-Id - * TODO Step3: Post power values on roadm connections - * - *

- * The signature for this method was generated by yang tools from the - * olm API model. - * - * @param input - * Input parameter from the olm yang model - * Input will contain nodeId and termination point - * - * @return Result of the request - */ - @Override - public ListenableFuture> servicePowerSetup( - ServicePowerSetupInput input) { - return RpcResultBuilder.success(this.olmPowerService.servicePowerSetup(input)).buildFuture(); - } - - /** - * This method is the implementation of the 'service-power-trundown' RESTCONF service, which - * is one of the external APIs into the olm application. - * - *

- * 1. service-power-turndown: This operation performs following steps: - * Step1: For each TP within Node sets interface outofservice . - * Step2: For each roam-connection sets power to -60dbm - * Step3: Turns power mode off - * - *

- * The signature for this method was generated by yang tools from the - * olm API model. - * - * @param input - * Input parameter from the olm yang model - * Input will contain nodeId and termination point - * - * @return Result of the request - */ - @Override - public ListenableFuture> servicePowerTurndown(ServicePowerTurndownInput input) { - return RpcResultBuilder.success(this.olmPowerService.servicePowerTurndown(input)).buildFuture(); - } - - /** - * This method calculates Spanloss for all Roadm to Roadm links, - * part of active inventory in Network Model or for newly added links - * based on input src-type. - * - *

- * 1. Calculate-Spanloss-Base: This operation performs following steps: - * Step1: Read all Roadm-to-Roadm links from network model or get data for given linkID. - * Step2: Retrieve PMs for each end point for OTS interface - * Step3: Calculates Spanloss - * Step4: Posts calculated spanloss in Device and in network model - * - *

- * The signature for this method was generated by yang tools from the - * renderer API model. - * - * @param input - * Input parameter from the olm yang model - * Input will contain SourceType and linkId if srcType is Link - * - * @return Result of the request - */ - @Override - public ListenableFuture> calculateSpanlossBase(CalculateSpanlossBaseInput input) { - return RpcResultBuilder.success(this.olmPowerService.calculateSpanlossBase(input)).buildFuture(); +@Component +public class OlmPowerServiceRpcImpl { + private static final Logger LOG = LoggerFactory.getLogger(OlmPowerServiceRpcImpl.class); + private Registration rpcRegistration; + + @Activate + public OlmPowerServiceRpcImpl(@Reference OlmPowerService olmPowerService, + @Reference RpcProviderService rpcProviderService) { + this.rpcRegistration = rpcProviderService.registerRpcImplementations( + new GetPmImpl(olmPowerService), + new ServicePowerSetupImpl(olmPowerService), + new ServicePowerTurndownImpl(olmPowerService), + new CalculateSpanlossBaseImpl(olmPowerService), + new CalculateSpanlossCurrentImpl(olmPowerService), + new ServicePowerResetImpl(olmPowerService)); + LOG.info("OlmPowerServiceRpcImpl instantiated"); } - @Override - public ListenableFuture> calculateSpanlossCurrent( - CalculateSpanlossCurrentInput input) { - return RpcResultBuilder.success(this.olmPowerService.calculateSpanlossCurrent(input)).buildFuture(); + @Deactivate + public void close() { + this.rpcRegistration.close(); + LOG.info("OlmPowerServiceRpcImpl Closed"); } - @Override - public ListenableFuture> servicePowerReset(ServicePowerResetInput input) { - return RpcResultBuilder.success(this.olmPowerService.servicePowerReset(input)).buildFuture(); + public Registration getRegisteredRpc() { + return rpcRegistration; } -} \ No newline at end of file +}