-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.
- *
- * <p>
- * 1. get-pm This operation traverse through current PM list and gets PM for
- * given NodeId and Resource name
- *
- * <p>
- * 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<RpcResult<GetPmOutput>> 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.
- *
- * <p>
- * 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
- *
- * <p>
- * 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<RpcResult<ServicePowerSetupOutput>> 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.
- *
- * <p>
- * 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
- *
- * <p>
- * 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<RpcResult<ServicePowerTurndownOutput>> 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.
- *
- * <p>
- * 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
- *
- * <p>
- * 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<RpcResult<CalculateSpanlossBaseOutput>> 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");