-public class OFOverlayProviderInstance implements AutoCloseable {
-
-
- public OFOverlayRenderer renderer;
-
- public OFOverlayProviderInstance(DataBroker dataBroker,
- PacketProcessingService packetProcessingService,
- SalFlowService flowService,
- NotificationService notificationService,
- EpRendererAugmentationRegistry epRendererAugmentationRegistry,
- PolicyValidatorRegistry policyValidatorRegistry,
- StatisticsManager statisticsManager,
- short tableOffset
- ) {
- renderer = new OFOverlayRenderer(dataBroker,
- packetProcessingService,
- flowService,
- notificationService,
- epRendererAugmentationRegistry,
- policyValidatorRegistry,
- statisticsManager,
- tableOffset);
+public class OFOverlayProviderInstance implements ClusterSingletonService, AutoCloseable {
+
+ private static final Logger LOG = LoggerFactory.getLogger(OFOverlayProviderInstance.class);
+
+ private static final ServiceGroupIdentifier IDENTIFIER =
+ ServiceGroupIdentifier.create(GroupbasedpolicyInstance.GBP_SERVICE_GROUP_IDENTIFIER);
+ private final DataBroker dataBroker;
+ private final PacketProcessingService packetProcessingService;
+ private final SalFlowService flowService;
+ private final NotificationService notificationService;
+ private final EpRendererAugmentationRegistry epRendererAugmentationRegistry;
+ private final PolicyValidatorRegistry policyValidatorRegistry;
+ private final StatisticsManager statisticsManager;
+ private final short tableOffset;
+ private final ClusterSingletonServiceProvider clusterSingletonService;
+ private ClusterSingletonServiceRegistration singletonServiceRegistration;
+ private OFOverlayRenderer renderer;
+
+ public OFOverlayProviderInstance(final DataBroker dataBroker,
+ final PacketProcessingService packetProcessingService,
+ final SalFlowService flowService,
+ final NotificationService notificationService,
+ final EpRendererAugmentationRegistry epRendererAugmentationRegistry,
+ final PolicyValidatorRegistry policyValidatorRegistry,
+ final StatisticsManager statisticsManager,
+ final short tableOffset,
+ final ClusterSingletonServiceProvider clusterSingletonService) {
+ this.dataBroker = Preconditions.checkNotNull(dataBroker);
+ this.packetProcessingService = Preconditions.checkNotNull(packetProcessingService);
+ this.flowService = Preconditions.checkNotNull(flowService);
+ this.notificationService = Preconditions.checkNotNull(notificationService);
+ this.epRendererAugmentationRegistry = Preconditions.checkNotNull(epRendererAugmentationRegistry);
+ this.policyValidatorRegistry = Preconditions.checkNotNull(policyValidatorRegistry);
+ this.statisticsManager = Preconditions.checkNotNull(statisticsManager);
+ this.tableOffset = Preconditions.checkNotNull(tableOffset);
+ this.clusterSingletonService = Preconditions.checkNotNull(clusterSingletonService);
+ }
+
+ public void initialize() {
+ LOG.info("Clustering session initiated for {}", this.getClass().getSimpleName());
+ singletonServiceRegistration = clusterSingletonService.registerClusterSingletonService(this);