BUG-6890: Statistics-polling configuration 49/47449/7
authorShuva Kar <shuva.jyoti.kar@ericsson.com>
Mon, 24 Oct 2016 16:21:06 +0000 (21:51 +0530)
committerShuva Jyoti Kar <shuva.jyoti.kar@ericsson.com>
Mon, 31 Oct 2016 16:46:10 +0000 (16:46 +0000)
Changing the current flag to enable/disable statistics
polling.

Currently the statistics polling is controlled by the flag
is-statistics-polling-off which is off by default(value set to false).
However this logic being double-negative causes some confusion to the
end-user. Thus modifying the flag to is-statistics-polling-on and setting
it to true by default.

The associated logic involved at oyther places have been modified as
well as a part of this commit.

Change-Id: Ia9a027433611912c11ff0f3166aa6f68efdc6913
Signed-off-by: Shuva Kar <shuva.jyoti.kar@ericsson.com>
12 files changed:
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/OpenFlowPluginProvider.java
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/statistics/StatisticsManager.java
openflowplugin-api/src/main/yang/openflow-provider-config.yang
openflowplugin-blueprint-config/src/main/resources/initial/openflowplugin.cfg
openflowplugin-controller-config/src/main/resources/initial/42-openflowplugin-new.xml
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderFactoryImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsManagerImpl.java
openflowplugin-impl/src/main/yang/openflow-plugin-impl.yang
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImplParamTest.java
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImplTest.java

index 6364220ff9c56e50ad70fc063d100e3d16b0ba7a..a2b0e0e14816e59efd72a97d0aa6fea545c030a8 100644 (file)
@@ -56,9 +56,9 @@ public interface OpenFlowPluginProvider extends AutoCloseable, BindingService {
 
     boolean isSwitchFeaturesMandatory();
 
-    boolean isStatisticsPollingOff();
+    boolean isStatisticsPollingOn();
 
-    void setIsStatisticsPollingOff(final boolean isStatisticsPollingOff);
+    void setIsStatisticsPollingOn(final boolean isStatisticsPollingOn);
 
     /**
      * Backward compatibility feature - exposing rpc for statistics polling (result is provided in form of async notification)
index e16cec91303922b8bbe2b5e6a3ea4388e413e7f5..1c3c6fcd7c4dbd97bcb8200fe737a9f3ec785409 100644 (file)
@@ -34,6 +34,6 @@ public interface StatisticsManager extends DeviceLifecycleSupervisor, DeviceInit
     @Override
     void close();
 
-    void setIsStatisticsPollingOff(boolean isStatisticsPollingOff);
+    void setIsStatisticsPollingOn(boolean isStatisticsPollingOn);
 
 }
index 26502d36e6c6cafc07b4bb9bd34f6f4b6a4680bf..caabb2525ec953b1d31c6ae3da0f6d685e9a7406 100644 (file)
@@ -39,9 +39,9 @@ module openflow-provider-config {
             default 64000;
         }
 
-        leaf is-statistics-polling-off {
+        leaf is-statistics-polling-on {
             type boolean;
-            default "false";
+            default "true";
         }
 
         leaf is-statistics-rpc-enabled {
index 5ead098e86162c731c701f0398ce084860c5146e..bed5437b1401f741aca9e2daf5262fa228ac30b2 100644 (file)
@@ -24,5 +24,5 @@ barrier-count-limit=25600
 echo-reply-timeout=2000
 #flag to turn on/off statistics polling
 #can be changed on demand
-#Turned on by default. Default value is false
-is-statistics-polling-off=false
+#Turned on by default. Default value is true
+is-statistics-polling-on=true
index 0c9db146a83f134650d5da12538282b19ba1a98b..18a356d65a234535624b691b94200a620738f73b 100644 (file)
@@ -92,7 +92,7 @@ NOTE: This file is deprecated as wiring is now done via blueprint. This file is
                     <rpc-requests-quota>20000</rpc-requests-quota>
                     <switch-features-mandatory>false</switch-features-mandatory>
                     <global-notification-quota>64000</global-notification-quota>
-                    <is-statistics-polling-off>false</is-statistics-polling-off>
+                    <is-statistics-polling-on>true</is-statistics-polling-on>
                     <barrier-interval-timeout-limit>500</barrier-interval-timeout-limit>
                     <barrier-count-limit>25600</barrier-count-limit>
                     <echo-reply-timeout>2000</echo-reply-timeout>
index c9cb514b7e081c6ca848731f01a078d87561b745..a9555974d2e67e9a0b83e0d2f74750c237a2034d 100644 (file)
@@ -56,7 +56,7 @@ public class OpenFlowPluginProviderFactoryImpl implements OpenFlowPluginProvider
         openflowPluginProvider.setNotificationProviderService(notificationService);
         openflowPluginProvider.setNotificationPublishService(notificationPublishService);
         openflowPluginProvider.setSwitchFeaturesMandatory(providerConfig.isSwitchFeaturesMandatory());
-        openflowPluginProvider.setIsStatisticsPollingOff(providerConfig.isIsStatisticsPollingOff());
+        openflowPluginProvider.setIsStatisticsPollingOn(providerConfig.isIsStatisticsPollingOn());
         openflowPluginProvider.setIsStatisticsRpcEnabled(providerConfig.isIsStatisticsRpcEnabled());
         openflowPluginProvider.setBarrierCountLimit(providerConfig.getBarrierCountLimit().getValue());
         openflowPluginProvider.setBarrierInterval(providerConfig.getBarrierIntervalTimeoutLimit().getValue());
@@ -68,7 +68,7 @@ public class OpenFlowPluginProviderFactoryImpl implements OpenFlowPluginProvider
         openflowPluginProvider.initialize();
 
         LOG.info("Configured values, " +
-                "StatisticsPollingOff:{}, " +
+                "StatisticsPollingOn:{}, " +
                 "SwitchFeaturesMandatory:{}, " +
                 "BarrierCountLimit:{}, " +
                 "BarrierTimeoutLimit:{}, " +
@@ -77,7 +77,7 @@ public class OpenFlowPluginProviderFactoryImpl implements OpenFlowPluginProvider
                 "ThreadPoolMaxThreads:{}, " +
                 "ThreadPoolTimeout:{}, " +
                 "NotificationFlowRemovedOff:{}",
-                providerConfig.isIsStatisticsPollingOff(),
+                providerConfig.isIsStatisticsPollingOn(),
                 providerConfig.isSwitchFeaturesMandatory(),
                 providerConfig.getBarrierCountLimit().getValue(),
                 providerConfig.getBarrierIntervalTimeoutLimit().getValue(),
index 4aa1ee04437e353f39f777212c8a065176a593b6..ceaee26b889a20343f48bc925d0f0c8b19c56326 100644 (file)
@@ -90,7 +90,7 @@ public class OpenFlowPluginProviderImpl implements OpenFlowPluginProvider, OpenF
     private DataBroker dataBroker;
     private Collection<SwitchConnectionProvider> switchConnectionProviders;
     private boolean switchFeaturesMandatory = false;
-    private boolean isStatisticsPollingOff = false;
+    private boolean isStatisticsPollingOn = true;
     private boolean isStatisticsRpcEnabled;
     private boolean isNotificationFlowRemovedOff = false;
     private boolean skipTableFeatures = true;
@@ -119,13 +119,13 @@ public class OpenFlowPluginProviderImpl implements OpenFlowPluginProvider, OpenF
     }
 
     @Override
-    public boolean isStatisticsPollingOff() {
-        return isStatisticsPollingOff;
+    public boolean isStatisticsPollingOn() {
+        return isStatisticsPollingOn;
     }
 
     @Override
-    public void setIsStatisticsPollingOff(final boolean isStatisticsPollingOff) {
-        this.isStatisticsPollingOff = isStatisticsPollingOff;
+    public void setIsStatisticsPollingOn(final boolean isStatisticsPollingOn) {
+        this.isStatisticsPollingOn = isStatisticsPollingOn;
     }
 
     private void startSwitchConnections() {
@@ -242,7 +242,7 @@ public class OpenFlowPluginProviderImpl implements OpenFlowPluginProvider, OpenF
         ((ExtensionConverterProviderKeeper) deviceManager).setExtensionConverterProvider(extensionConverterManager);
 
         rpcManager = new RpcManagerImpl(rpcProviderRegistry, rpcRequestsQuota, extensionConverterManager, convertorManager, notificationPublishService);
-        statisticsManager = new StatisticsManagerImpl(rpcProviderRegistry, isStatisticsPollingOff, hashedWheelTimer, convertorManager);
+        statisticsManager = new StatisticsManagerImpl(rpcProviderRegistry, isStatisticsPollingOn, hashedWheelTimer, convertorManager);
 
         /* Initialization Phase ordering - OFP Device Context suite */
         // CM -> DM -> SM -> RPC -> Role -> DM
@@ -303,8 +303,8 @@ public class OpenFlowPluginProviderImpl implements OpenFlowPluginProvider, OpenF
             }
         }
 
-        if(statisticsManager != null && props.containsKey("is-statistics-polling-off")){
-            statisticsManager.setIsStatisticsPollingOff(Boolean.valueOf(props.get("is-statistics-polling-off").toString()));
+        if(statisticsManager != null && props.containsKey("is-statistics-polling-on")){
+            statisticsManager.setIsStatisticsPollingOn(Boolean.valueOf(props.get("is-statistics-polling-on").toString()));
         }
     }
 
index a8ded174eb7a0207c4344244361a082f1aabac59..8eade85cb81d661cb7aedf5256140950b1c54e8a 100644 (file)
@@ -59,7 +59,7 @@ class StatisticsContextImpl implements StatisticsContext {
     private final DeviceContext deviceContext;
     private final DeviceState devState;
     private final ListenableFuture<Boolean> emptyFuture;
-    private final boolean shuttingDownStatisticsPolling;
+    private final boolean isStatisticsPollingOn;
     private final SinglePurposeMultipartReplyTranslator multipartReplyTranslator;
     private final Object collectionStatTypeLock = new Object();
     @GuardedBy("collectionStatTypeLock")
@@ -80,14 +80,14 @@ class StatisticsContextImpl implements StatisticsContext {
     private ListenableFuture<Boolean> lastDataGathering;
 
     StatisticsContextImpl(@Nonnull final DeviceInfo deviceInfo,
-                          final boolean shuttingDownStatisticsPolling,
+                          final boolean isStatisticsPollingOn,
                           @Nonnull final LifecycleService lifecycleService,
                           @Nonnull final ConvertorExecutor convertorExecutor,
                           @Nonnull final StatisticsManager myManager) {
         this.lifecycleService = lifecycleService;
         this.deviceContext = lifecycleService.getDeviceContext();
         this.devState = Preconditions.checkNotNull(deviceContext.getDeviceState());
-        this.shuttingDownStatisticsPolling = shuttingDownStatisticsPolling;
+        this.isStatisticsPollingOn = isStatisticsPollingOn;
         multipartReplyTranslator = new SinglePurposeMultipartReplyTranslator(convertorExecutor);
         emptyFuture = Futures.immediateFuture(false);
         statisticsGatheringService = new StatisticsGatheringService(this, deviceContext);
@@ -141,7 +141,7 @@ class StatisticsContextImpl implements StatisticsContext {
 
     private ListenableFuture<Boolean> gatherDynamicData(final boolean initial) {
         this.lastDataGathering = null;
-        if (shuttingDownStatisticsPolling) {
+        if (!isStatisticsPollingOn) {
             LOG.debug("Statistics for device {} is not enabled.", getDeviceInfo().getNodeId().getValue());
             return Futures.immediateFuture(Boolean.TRUE);
         }
@@ -493,7 +493,7 @@ class StatisticsContextImpl implements StatisticsContext {
             }
         });
 
-        if (!this.shuttingDownStatisticsPolling) {
+        if (this.isStatisticsPollingOn) {
             myManager.startScheduling(deviceInfo);
         }
 
@@ -504,4 +504,4 @@ class StatisticsContextImpl implements StatisticsContext {
     public void setInitialSubmitHandler(final ClusterInitializationPhaseHandler initialSubmitHandler) {
         this.initialSubmitHandler = initialSubmitHandler;
     }
-}
+}
\ No newline at end of file
index d190ca6ef0ea765362f67cabd72b629472d5ea53..3b01989f0d0d65618f021c81ff7451ceba7f60c8 100644 (file)
@@ -21,7 +21,6 @@ import io.netty.util.TimerTask;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Optional;
-import java.util.concurrent.CancellationException;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.Future;
@@ -69,7 +68,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag
 
     private StatisticsWorkMode workMode = StatisticsWorkMode.COLLECTALL;
     private final Semaphore workModeGuard = new Semaphore(1, true);
-    private boolean isStatisticsPollingOff;
+    private boolean isStatisticsPollingOn;
     private BindingAwareBroker.RpcRegistration<StatisticsManagerControlService> controlServiceRegistration;
 
     private final HashedWheelTimer hashedWheelTimer;
@@ -80,7 +79,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag
     }
 
     public StatisticsManagerImpl(final RpcProviderRegistry rpcProviderRegistry,
-                                 final boolean isStatisticsPollingOff,
+                                 final boolean isStatisticsPollingOn,
                                  final HashedWheelTimer hashedWheelTimer,
                                  final ConvertorExecutor convertorExecutor) {
         Preconditions.checkArgument(rpcProviderRegistry != null);
@@ -88,7 +87,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag
         this.controlServiceRegistration = Preconditions.checkNotNull(
                 rpcProviderRegistry.addRpcImplementation(StatisticsManagerControlService.class, this)
         );
-        this.isStatisticsPollingOff = isStatisticsPollingOff;
+        this.isStatisticsPollingOn = isStatisticsPollingOn;
         this.hashedWheelTimer = hashedWheelTimer;
     }
 
@@ -99,7 +98,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag
         final StatisticsContext statisticsContext =
                 new StatisticsContextImpl(
                         deviceInfo,
-                        isStatisticsPollingOff,
+                        isStatisticsPollingOn,
                         lifecycleService,
                         converterExecutor,
                         this);
@@ -172,7 +171,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag
         if (LOG.isDebugEnabled()) {
             LOG.debug("SCHEDULING NEXT STATISTICS POLLING for device: {}", deviceInfo.getNodeId());
         }
-        if (!isStatisticsPollingOff) {
+        if (isStatisticsPollingOn) {
             final Timeout pollTimeout = hashedWheelTimer.newTimeout(
                     timeout -> pollStatistics(
                             deviceState,
@@ -231,7 +230,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag
         if (workModeGuard.tryAcquire()) {
             final StatisticsWorkMode targetWorkMode = input.getMode();
             if (!workMode.equals(targetWorkMode)) {
-                isStatisticsPollingOff = StatisticsWorkMode.FULLYDISABLED.equals(targetWorkMode);
+                isStatisticsPollingOn = !(StatisticsWorkMode.FULLYDISABLED.equals(targetWorkMode));
                 // iterate through stats-ctx: propagate mode
                 for (Map.Entry<DeviceInfo, StatisticsContext> entry : contexts.entrySet()) {
                     final DeviceInfo deviceInfo = entry.getKey();
@@ -271,7 +270,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag
 
     @Override
     public void startScheduling(final DeviceInfo deviceInfo) {
-        if (isStatisticsPollingOff) {
+        if (!isStatisticsPollingOn) {
             LOG.info("Statistics are shutdown for device: {}", deviceInfo.getNodeId());
             return;
         }
@@ -331,8 +330,8 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag
     }
 
     @Override
-    public void setIsStatisticsPollingOff(boolean isStatisticsPollingOff){
-        this.isStatisticsPollingOff = isStatisticsPollingOff;
+    public void setIsStatisticsPollingOn(boolean isStatisticsPollingOn){
+        this.isStatisticsPollingOn = isStatisticsPollingOn;
     }
 
 }
\ No newline at end of file
index e86ae12ba251fefd5f093801c7401ea573bb3bc1..6c54e4deefae5a59b9356452632a9391a3c19183 100644 (file)
@@ -103,9 +103,9 @@ module openflow-plugin-provider-impl {
                 type uint32;
                 default 131072;
             }
-            leaf is-statistics-polling-off {
+            leaf is-statistics-polling-on {
                 type boolean;
-                default "false";
+                default "true";
             }
             leaf is-statistics-rpc-enabled {
                 status deprecated;
index 5b7c3743505aedcdb3f7643a06d6ac7688fb176a..dfc779c73b4d71a5b57e9e316523f6bc2798912e 100644 (file)
@@ -67,7 +67,7 @@ public class StatisticsContextImplParamTest extends StatisticsContextImpMockInit
         when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState);
 
         final ConvertorManager convertorManager = ConvertorManagerFactory.createDefaultManager();
-        final StatisticsContextImpl statisticsContext = new StatisticsContextImpl(mockedDeviceInfo, false, lifecycleService ,convertorManager, mockedStatisticsManager);
+        final StatisticsContextImpl statisticsContext = new StatisticsContextImpl(mockedDeviceInfo, true, lifecycleService ,convertorManager, mockedStatisticsManager);
 
         final ListenableFuture<RpcResult<List<MultipartReply>>> rpcResult = immediateFuture(RpcResultBuilder.success(Collections.<MultipartReply>emptyList()).build());
         when(mockedStatisticsGatheringService.getStatisticsOfType(any(EventIdentifier.class), any(MultipartType
@@ -88,4 +88,4 @@ public class StatisticsContextImplParamTest extends StatisticsContextImpMockInit
 
     }
 
-}
+}
\ No newline at end of file
index 7154e7742312d8a020eb8afb1567bd91267fd279..4dea3b38ba04a140cd86a0bab2c50fb07c9a47c6 100644 (file)
@@ -56,7 +56,7 @@ public class StatisticsContextImplTest extends StatisticsContextImpMockInitiatio
     }
 
     private void initStatisticsContext() {
-        statisticsContext = new StatisticsContextImpl(mockedDeviceInfo, false, lifecycleService, convertorManager, mockedStatisticsManager);
+        statisticsContext = new StatisticsContextImpl(mockedDeviceInfo, true, lifecycleService, convertorManager, mockedStatisticsManager);
         statisticsContext.setStatisticsGatheringService(mockedStatisticsGatheringService);
         statisticsContext.setStatisticsGatheringOnTheFlyService(mockedStatisticsOnFlyGatheringService);
     }
@@ -74,7 +74,7 @@ public class StatisticsContextImplTest extends StatisticsContextImpMockInitiatio
      */
     @Test
     public void testClose() throws Exception {
-        final StatisticsContextImpl statisticsContext = new StatisticsContextImpl(mockedDeviceInfo, false, lifecycleService, convertorManager, mockedStatisticsManager);
+        final StatisticsContextImpl statisticsContext = new StatisticsContextImpl(mockedDeviceInfo, true, lifecycleService, convertorManager, mockedStatisticsManager);
         final RequestContext<Object> requestContext = statisticsContext.createRequestContext();
         statisticsContext.close();
         try {
@@ -163,4 +163,4 @@ public class StatisticsContextImplTest extends StatisticsContextImpMockInitiatio
             Assert.fail("connection in state HANDSHAKING should NOT have caused exception here");
         }
     }
-}
+}
\ No newline at end of file