Bug 5944 - Looping INFO messages for UNSUPPORTED AutoAttach OVS 70/39770/4
authorRashmi Pujar <rpujar@inocybe.com>
Thu, 2 Jun 2016 14:26:19 +0000 (10:26 -0400)
committerRashmi Pujar <rpujar@inocybe.com>
Thu, 2 Jun 2016 21:40:31 +0000 (17:40 -0400)
Change-Id: I93704b2a0997da85a3cf2373cbb0d5c77b313db6
Signed-off-by: Rashmi Pujar <rpujar@inocybe.com>
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundConstants.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachRemovedCommand.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachUpdateCommand.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbOperationalCommandAggregator.java
southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbMonitorCallbackTest.java
southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbOperationalCommandAggregatorTest.java

index 7bc8d7bb0afb6c16e6d3d0dde3b284c74c3886a5..8cf5b8f2df410a60583c09d0d26563f8927cd6ca 100755 (executable)
@@ -54,6 +54,7 @@ public class SouthboundConstants {
     public static final String QOS_URI_PREFIX = "qos";
     public static final String QUEUE_URI_PREFIX = "queue";
     public static final String AUTOATTACH_URI_PREFIX = "autoattach";
+    public static final String AUTOATTACH_SUPPORTED_OVS_SCHEMA_VERSION = "7.11.2";
     public static final Integer DEFAULT_OVSDB_PORT = 6640;
     public static final String DEFAULT_OPENFLOW_PORT = "6653";
     public static final String OPENFLOW_CONNECTION_PROTOCOL = "tcp";
index 8ea5e639d07c28da4ea97689874fcefdba280229..6dc4698eaf183f06fe859beea8ef4caf59ecec9d 100644 (file)
@@ -40,11 +40,7 @@ public class OvsdbAutoAttachRemovedCommand extends AbstractTransactionCommand {
     public OvsdbAutoAttachRemovedCommand(OvsdbConnectionInstance key,
             TableUpdates updates, DatabaseSchema dbSchema) {
         super(key, updates, dbSchema);
-        try {
-            removedAutoAttachRows = TyperUtils.extractRowsRemoved(AutoAttach.class, getUpdates(), getDbSchema());
-        } catch (final IllegalArgumentException e) {
-            LOG.info("UNSUPPORTED FUNCTIONALITY: AutoAttach not supported on this OVS", e.getMessage());
-        }
+        removedAutoAttachRows = TyperUtils.extractRowsRemoved(AutoAttach.class, getUpdates(), getDbSchema());
     }
 
     @Override
index 9f696369e3c364f8dea58fcd5a5f937a76421f06..aba26dbced5470f9664c29ff2006fac570911528 100644 (file)
@@ -52,12 +52,8 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand {
     public OvsdbAutoAttachUpdateCommand(OvsdbConnectionInstance key,
             TableUpdates updates, DatabaseSchema dbSchema) {
         super(key, updates, dbSchema);
-        try {
-            updatedAutoAttachRows = TyperUtils.extractRowsUpdated(AutoAttach.class, getUpdates(), getDbSchema());
-            oldAutoAttachRows = TyperUtils.extractRowsOld(AutoAttach.class, getUpdates(), getDbSchema());
-        } catch (final IllegalArgumentException e) {
-            LOG.info("UNSUPPORTED FUNCTIONALITY: AutoAttach not supported on this OVS", e.getMessage());
-        }
+        updatedAutoAttachRows = TyperUtils.extractRowsUpdated(AutoAttach.class, getUpdates(), getDbSchema());
+        oldAutoAttachRows = TyperUtils.extractRowsOld(AutoAttach.class, getUpdates(), getDbSchema());
     }
 
     @Override
@@ -99,7 +95,7 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand {
                         currentAutoattach = optionalAutoattach.get();
                     }
                 } catch (final Exception e) {
-                    LOG.warn("AutoAttach table entries not found in operational datastore, need to create it.", e);
+                    LOG.debug("AutoAttach table entries not found in operational datastore, need to create it.", e);
                 }
 
                 final AutoattachBuilder autoAttachBuilder = (currentAutoattach != null) ? new AutoattachBuilder(currentAutoattach)
index b0fab07b20b4bb27ce617e9fa014c08cccd1c4b0..529fabaab707a078be99ef70033b02a4558f82d9 100644 (file)
@@ -13,12 +13,16 @@ import java.util.List;
 
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.ovsdb.lib.message.TableUpdates;
+import org.opendaylight.ovsdb.lib.notation.Version;
 import org.opendaylight.ovsdb.lib.schema.DatabaseSchema;
 import org.opendaylight.ovsdb.southbound.OvsdbConnectionInstance;
+import org.opendaylight.ovsdb.southbound.SouthboundConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class OvsdbOperationalCommandAggregator implements TransactionCommand {
 
-
+    private static final Logger LOG = LoggerFactory.getLogger(OvsdbOperationalCommandAggregator.class);
     private List<TransactionCommand> commands = new ArrayList<>();
 
     public OvsdbOperationalCommandAggregator(OvsdbConnectionInstance key,TableUpdates updates,
@@ -36,8 +40,13 @@ public class OvsdbOperationalCommandAggregator implements TransactionCommand {
         commands.add(new OvsdbControllerRemovedCommand(key, updates,  dbSchema));
         commands.add(new OvsdbPortUpdateCommand(key, updates, dbSchema));
         commands.add(new OvsdbPortRemoveCommand(key, updates, dbSchema));
-        commands.add(new OvsdbAutoAttachUpdateCommand(key, updates, dbSchema));
-        commands.add(new OvsdbAutoAttachRemovedCommand(key, updates, dbSchema));
+
+        if(dbSchema.getVersion().compareTo(Version.fromString(SouthboundConstants.AUTOATTACH_SUPPORTED_OVS_SCHEMA_VERSION)) >= 0) {
+            commands.add(new OvsdbAutoAttachUpdateCommand(key, updates, dbSchema));
+            commands.add(new OvsdbAutoAttachRemovedCommand(key, updates, dbSchema));
+        } else {
+            LOG.debug("UNSUPPORTED FUNCTIONALITY: AutoAttach not supported in OVS schema version {}", dbSchema.getVersion().toString());
+        }
     }
 
     @Override
index 7a8f5714ccb144e379aa36a86fb7f0a4af3467d4..450a25f4b6ad2c8b04e8a3cfaa947e459d2e71b2 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.ovsdb.southbound;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -19,6 +20,7 @@ import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.runners.MockitoJUnitRunner;
 import org.opendaylight.ovsdb.lib.message.TableUpdates;
+import org.opendaylight.ovsdb.lib.notation.Version;
 import org.opendaylight.ovsdb.lib.schema.DatabaseSchema;
 import org.opendaylight.ovsdb.southbound.transactions.md.OvsdbOperationalCommandAggregator;
 import org.opendaylight.ovsdb.southbound.transactions.md.TransactionInvoker;
@@ -32,7 +34,9 @@ public class OvsdbMonitorCallbackTest {
 
     @Test
     public void testUpdate() {
-        ovsdbMonitorCallback.update(mock(TableUpdates.class), mock(DatabaseSchema.class));
+        DatabaseSchema dbSchema = mock(DatabaseSchema.class);
+        when(dbSchema.getVersion()).thenReturn(Version.fromString(SouthboundConstants.AUTOATTACH_SUPPORTED_OVS_SCHEMA_VERSION));
+        ovsdbMonitorCallback.update(mock(TableUpdates.class), dbSchema);
         verify(txInvoker).invoke(any(OvsdbOperationalCommandAggregator.class));
     }
 
index 95df974f478e0503b6f7d56e2db4c2c27a3c09f8..3d8325574e8bb38bfe5b796b8cfe2776114869df 100644 (file)
@@ -20,8 +20,10 @@ import org.junit.runner.RunWith;
 import org.mockito.Mockito;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.ovsdb.lib.message.TableUpdates;
+import org.opendaylight.ovsdb.lib.notation.Version;
 import org.opendaylight.ovsdb.lib.schema.DatabaseSchema;
 import org.opendaylight.ovsdb.southbound.OvsdbConnectionInstance;
+import org.opendaylight.ovsdb.southbound.SouthboundConstants;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.api.support.membermodification.MemberModifier;
 import org.powermock.core.classloader.annotations.PrepareForTest;
@@ -63,6 +65,7 @@ public class OvsdbOperationalCommandAggregatorTest {
         OvsdbConnectionInstance key = mock(OvsdbConnectionInstance.class);
         TableUpdates updates = mock(TableUpdates.class);
         DatabaseSchema dbSchema = mock(DatabaseSchema.class);
+        when(dbSchema.getVersion()).thenReturn(Version.fromString(SouthboundConstants.AUTOATTACH_SUPPORTED_OVS_SCHEMA_VERSION));
         OvsdbOperationalCommandAggregator ovsdbOperationalCommandAggregator1 = new OvsdbOperationalCommandAggregator(key, updates, dbSchema);
         List<TransactionCommand> testCommands = Whitebox.getInternalState(ovsdbOperationalCommandAggregator1, "commands");
         assertEquals(NUMBER_OF_COMMANDS, testCommands.size());