Merge "Added Mutate operation" into topic/schema
authorMadhu Venugopal <mavenugo@gmail.com>
Tue, 27 May 2014 21:00:01 +0000 (21:00 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 27 May 2014 21:00:01 +0000 (21:00 +0000)
library/src/main/java/org/opendaylight/ovsdb/lib/operations/Assert.java [new file with mode: 0644]
library/src/main/java/org/opendaylight/ovsdb/lib/operations/Comment.java [new file with mode: 0644]
library/src/main/java/org/opendaylight/ovsdb/lib/operations/Insert.java
library/src/main/java/org/opendaylight/ovsdb/lib/operations/Operations.java
library/src/test/java/org/opendaylight/ovsdb/lib/OvsDBClientTestIT.java

diff --git a/library/src/main/java/org/opendaylight/ovsdb/lib/operations/Assert.java b/library/src/main/java/org/opendaylight/ovsdb/lib/operations/Assert.java
new file mode 100644 (file)
index 0000000..2d3e291
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2014 Red Hat, Inc.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Authors : Madhu Venugopal
+ */
+package org.opendaylight.ovsdb.lib.operations;
+
+
+public class Assert extends Operation {
+
+    public static final String ASSERT = "assert";
+    String lock;
+
+    public Assert(String lock) {
+        super(null, ASSERT);
+        this.lock = lock;
+    }
+
+    public String getLock() {
+        return lock;
+    }
+}
diff --git a/library/src/main/java/org/opendaylight/ovsdb/lib/operations/Comment.java b/library/src/main/java/org/opendaylight/ovsdb/lib/operations/Comment.java
new file mode 100644 (file)
index 0000000..f2a6ba5
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2014 Red Hat, Inc.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Authors : Madhu Venugopal
+ */
+package org.opendaylight.ovsdb.lib.operations;
+
+
+public class Comment extends Operation {
+
+    public static final String COMMENT = "comment";
+    String comment;
+
+    public Comment(String comment) {
+        super(null, COMMENT);
+        this.comment = comment;
+    }
+
+    public String getComment() {
+        return comment;
+    }
+}
index 899d07210864c22683789622a5689826ee6b2d8d..fc99e92cb0f3ef80cffbda362e13e2c45edd50ca 100644 (file)
@@ -9,15 +9,16 @@
  */
 package org.opendaylight.ovsdb.lib.operations;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Maps;
+import java.util.Map;
+import java.util.Set;
+
 import org.opendaylight.ovsdb.lib.notation.OvsDBSet;
 import org.opendaylight.ovsdb.lib.schema.ColumnSchema;
 import org.opendaylight.ovsdb.lib.schema.TableSchema;
 
-import java.util.Map;
-import java.util.Set;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
 
 
 public class Insert<E extends TableSchema<E>> extends Operation<E> {
@@ -52,6 +53,8 @@ public class Insert<E extends TableSchema<E>> extends Operation<E> {
         if (columnSchema.getType().isMultiValued()) {
             Preconditions.checkArgument((value instanceof Set),"expected a set for multivalued item") ;
             tval = OvsDBSet.fromSet((Set) value);
+        } else {
+            tval = value;
         }
         row.put(columnSchema.getName(), tval);
         return this;
index b86af3406e0d0e1d12b4319de1a571d890a5a420..c88b0adecbdc5649d28bbe234e1ab4381aa5f50c 100644 (file)
@@ -45,4 +45,15 @@ public class Operations {
         return new Select<>(schema);
     }
 
-}
\ No newline at end of file
+    public Comment comment(String comment) {
+        return new Comment(comment);
+    }
+
+    /*
+     * Could not use Java keyword "assert" which clashes with the ovsdb json-rpc method.
+     * using assertion instead.
+     */
+    public Assert assertion(String lock) {
+        return new Assert(lock);
+    }
+}
index de49027e4806a8660ed62e8b9c11b2a3106181f5..2a25b22a64f68462590fa7afbbc1ba44380f3283 100644 (file)
@@ -9,14 +9,12 @@
  */
 package org.opendaylight.ovsdb.lib;
 
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-import com.google.common.util.concurrent.ListenableFuture;
 import static org.opendaylight.ovsdb.lib.operations.Operations.op;
 
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -41,7 +39,9 @@ import org.opendaylight.ovsdb.lib.schema.TableSchema;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Set;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.google.common.util.concurrent.ListenableFuture;
 
 
 public class OvsDBClientTestIT extends OvsdbTestBase {
@@ -66,13 +66,14 @@ public class OvsDBClientTestIT extends OvsdbTestBase {
 
         ListenableFuture<List<OperationResult>> results = ovs.transactBuilder()
                 .add(op.insert(bridge)
-                        .value(name, "br-int")
-                        .value(flood_vlans, Sets.newHashSet(100, 101, 4001))
-                )
+                        .value(name, "br-test")
+                        .value(flood_vlans, Sets.newHashSet(100, 101, 4001)))
+                .add(op.comment("Inserting Bridge br-int"))
                 .add(op.update(bridge)
                         .set(fail_mode, "secure")
                         .where(name.opEqual("br-int"))
                         .operation())
+                .add(op.comment("Updating fail_mode to secure on Bridge br-int"))
                 .add(op.select(bridge)
                         .column(name)
                         .where(name.opEqual("br-int"))
@@ -82,6 +83,7 @@ public class OvsDBClientTestIT extends OvsdbTestBase {
                         .where(name.opEqual("br-int"))
                         .operation())
                 .add(op.commit(true))
+                .add(op.comment("Commiting the operation"))
                 .execute();
 
         List<OperationResult> operationResults = results.get();
@@ -92,7 +94,9 @@ public class OvsDBClientTestIT extends OvsdbTestBase {
                 .add(op.delete(bridge)
                         .where(name.opEqual("br-int"))
                         .operation())
+                .add(op.comment("Deleting Bridge br-int"))
                 .add(op.commit(true))
+                .add(op.comment("Commiting the operation"))
                 .execute();
 
         operationResults = results.get();
@@ -112,8 +116,27 @@ public class OvsDBClientTestIT extends OvsdbTestBase {
 
         operationResults = results.get();
         Assert.assertFalse(operationResults.isEmpty());
+        /* Testing for Abort Error */
+        Assert.assertFalse(operationResults.get(1).getError() == null);
         System.out.println("Abort operation results = " + operationResults);
 
+        /*
+         * Adding a separate Abort operation in a transaction. Lets not mix this with other
+         * valid transactions as above.
+         */
+        results = ovs.transactBuilder()
+                .add(op.delete(bridge)
+                        .where(name.opEqual("br-int"))
+                        .operation())
+                .add(op.assertion("Assert12345")) // Failing intentionally
+                .execute();
+
+        operationResults = results.get();
+        Assert.assertFalse(operationResults.isEmpty());
+        /* Testing for an Assertion Error */
+        Assert.assertFalse(operationResults.get(1).getError() == null);
+        System.out.println("Assert operation results = " + operationResults);
+
     }
 
     @Test