@Override protected GroupProviderService createProviderService(GroupProvider provider) { return new InternalGroupProviderService(provider); }
@Modified public void modified(ComponentContext context) { if (context != null) { readComponentConfiguration(context); } defaultProvider.init(deviceService, new InternalGroupProviderService(defaultProvider), mastershipService, fallbackGroupPollFrequency); }
@Override public void event(DeviceEvent event) { eventExecutor.execute(() -> processEventInternal(event)); }
@Override public void performGroupOperation(DeviceId deviceId, GroupOperations groupOps) { GroupProgrammable programmable = getGroupProgrammable(deviceId); if (programmable != null) { programmable.performGroupOperation(deviceId, groupOps); } }
@Override public void event(DeviceEvent event) { executor.execute(() -> handleEvent(event)); }
@Override public void pushGroupMetrics(DeviceId deviceId, Collection<Group> groupEntries) { log.trace("Received group metrics from device {}", deviceId); checkValidity(); store.pushGroupMetrics(deviceId, groupEntries); }
@Deactivate public void deactivate() { eventExecutor.shutdown(); defaultProvider.terminate(); deviceService.removeListener(deviceListener); cfgService.unregisterProperties(getClass(), false); store.unsetDelegate(delegate); eventDispatcher.removeSink(GroupEvent.class); log.info("Stopped"); }
private void pollGroups() { deviceService.getAvailableDevices().forEach(device -> { if (mastershipService.isLocalMaster(device.id()) && device.is(GroupProgrammable.class)) { pollDeviceGroups(device.id()); } }); }
@Activate public void activate(ComponentContext context) { eventExecutor = Executors.newSingleThreadExecutor(groupedThreads("onos/group", "event")); store.setDelegate(delegate); eventDispatcher.addSink(GroupEvent.class, listenerRegistry); deviceService.addListener(deviceListener); cfgService.registerProperties(getClass()); modified(context); log.info("Started"); }
private void pollDeviceGroups(DeviceId deviceId) { Collection<Group> groups = getGroupProgrammable(deviceId).getGroups(); groupProviderService.pushGroupMetrics(deviceId, groups); }