import io.lighty.core.controller.api.AbstractLightyModule;
import io.lighty.core.controller.api.LightyServices;
+import java.util.ArrayList;
+import java.util.List;
import org.opendaylight.transportpce.common.crossconnect.CrossConnect;
import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl;
import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl121;
import org.opendaylight.transportpce.networkmodel.service.NetworkModelService;
import org.opendaylight.transportpce.networkmodel.service.NetworkModelServiceImpl;
import org.opendaylight.transportpce.olm.OlmPowerServiceRpcImpl;
-import org.opendaylight.transportpce.olm.OlmProvider;
import org.opendaylight.transportpce.olm.power.PowerMgmtImpl;
import org.opendaylight.transportpce.olm.service.OlmPowerServiceImpl;
import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumerImpl;
import org.opendaylight.transportpce.pce.impl.PceProvider;
import org.opendaylight.transportpce.pce.service.PathComputationService;
import org.opendaylight.transportpce.pce.service.PathComputationServiceImpl;
-import org.opendaylight.transportpce.renderer.RendererProvider;
import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory;
// Adding OTN interface
import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService;
import org.opendaylight.transportpce.tapi.utils.TapiLinkImpl;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService;
import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.OrgOpenroadmServiceService;
+import org.opendaylight.yangtools.concepts.Registration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final PceProvider pceProvider;
// network model beans
private final NetworkModelProvider networkModelProvider;
- // OLM beans
- private final OlmProvider olmProvider;
- // renderer beans
- private final RendererProvider rendererProvider;
// service-handler beans
private final ServicehandlerProvider servicehandlerProvider;
// T-api
private TapiProvider tapiProvider;
// nbi-notifications beans
private NbiNotificationsProvider nbiNotificationsProvider;
+ private List<Registration> rpcRegistrations = new ArrayList<>();
public TransportPCEImpl(
LightyServices lightyServices, boolean activateNbiNotification, boolean activateTapi,
MappingUtils mappingUtils = new MappingUtilsImpl(lgServBDB);
CrossConnect crossConnect = initCrossConnect(mappingUtils);
OpenRoadmInterfaces openRoadmInterfaces = initOpenRoadmInterfaces(mappingUtils, portMapping);
- TransportpceOlmService olmPowerServiceRpc = new OlmPowerServiceRpcImpl(
+ OlmPowerServiceRpcImpl olmPowerServiceRpc = new OlmPowerServiceRpcImpl(
new OlmPowerServiceImpl(
lgServBDB,
new PowerMgmtImpl(
openRoadmInterfaces, crossConnect, deviceTransactionManager,
portMapping, Long.valueOf(olmtimer1).longValue(), Long.valueOf(olmtimer2).longValue()),
- deviceTransactionManager, portMapping, mappingUtils, openRoadmInterfaces));
- olmProvider = new OlmProvider(lgServRPS, olmPowerServiceRpc);
+ deviceTransactionManager, portMapping, mappingUtils, openRoadmInterfaces),
+ lgServRPS);
+ rpcRegistrations.add(olmPowerServiceRpc.getRegisteredRpc());
LOG.info("Creating renderer beans ...");
initOpenRoadmFactory(mappingUtils, openRoadmInterfaces, portMapping);
DeviceRendererService deviceRendererService = new DeviceRendererServiceImpl(
mappingUtils, portMapping);
OtnDeviceRendererService otnDeviceRendererService = new OtnDeviceRendererServiceImpl(
crossConnect, openRoadmInterfaces, deviceTransactionManager, mappingUtils, portMapping);
- rendererProvider = initRenderer(
- lightyServices, olmPowerServiceRpc, deviceRendererService, otnDeviceRendererService, portMapping);
+ initRenderer(lightyServices, olmPowerServiceRpc, deviceRendererService, otnDeviceRendererService, portMapping);
LOG.info("Creating service-handler beans ...");
RendererServiceOperations rendererServiceOperations = new RendererServiceOperationsImpl(
LOG.info("Shutting down service-handler provider ...");
}
servicehandlerProvider.close();
- LOG.info("Shutting down renderer provider ...");
- rendererProvider.close();
- LOG.info("Shutting down OLM provider ...");
- olmProvider.close();
LOG.info("Shutting down network-model provider ...");
networkModelProvider.close();
LOG.info("Shutting down PCE provider ...");
pceProvider.close();
LOG.info("Shutting down transaction providers ...");
deviceTransactionManager.preDestroy();
+ LOG.info("Closing registered RPCs...");
+ for (Registration reg : rpcRegistrations) {
+ reg.close();
+ }
LOG.info("Shutdown done.");
return true;
}
tapiNetworkModelListenerImpl, tapiNetworkModelService);
}
- private RendererProvider initRenderer(
+ private void initRenderer(
LightyServices lightyServices, TransportpceOlmService olmPowerServiceRpc,
DeviceRendererService deviceRendererService, OtnDeviceRendererService otnDeviceRendererService,
PortMapping portMapping) {
- return new RendererProvider(
- lightyServices.getRpcProviderService(), deviceRendererService,
- otnDeviceRendererService,
- new DeviceRendererRPCImpl(deviceRendererService, otnDeviceRendererService),
+ rpcRegistrations.add(
+ new DeviceRendererRPCImpl(
+ lightyServices.getRpcProviderService(),
+ deviceRendererService,
+ otnDeviceRendererService)
+ .getRegisteredRpc());
+ rpcRegistrations.add(
new TransportPCEServicePathRPCImpl(
- new RendererServiceOperationsImpl(
- deviceRendererService, otnDeviceRendererService, olmPowerServiceRpc,
- lightyServices.getBindingDataBroker(), lightyServices.getBindingNotificationPublishService(),
- portMapping)));
+ new RendererServiceOperationsImpl(
+ deviceRendererService,
+ otnDeviceRendererService,
+ olmPowerServiceRpc,
+ lightyServices.getBindingDataBroker(),
+ lightyServices.getBindingNotificationPublishService(),
+ portMapping),
+ lightyServices.getRpcProviderService())
+ .getRegisteredRpc());
}
private OpenRoadmInterfaceFactory initOpenRoadmFactory(