Added support for multiple data store types to DOM transaction chains and to simple...
[controller.git] / benchmark / dsbenchmark / src / main / java / org / opendaylight / dsbenchmark / DatastoreAbstractWriter.java
index 93a4876340bf85e5e7fd6b9659aada5865144861..20024e455eb2448267d04bfabc8b9a8a8b240c24 100644 (file)
@@ -8,24 +8,37 @@
 
 package org.opendaylight.dsbenchmark;
 
+import java.util.Random;
+
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchmark.rev150105.StartTestInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchmark.rev150105.StartTestInput.DataStore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public abstract class DatastoreAbstractWriter {
+    private static final Logger LOG = LoggerFactory.getLogger(DatastoreAbstractWriter.class);
+
     protected final int outerListElem;
     protected final int innerListElem;
     protected final long writesPerTx;
     protected final StartTestInput.Operation oper;
+    protected final StartTestInput.DataStore dataStore;
+    protected final Random rn = new Random();
+
 
     protected int txOk = 0;
     protected int txError = 0;
 
 
     public DatastoreAbstractWriter(StartTestInput.Operation oper,
-                                   int outerListElem, int innerListElem, long writesPerTx) {
+                                   int outerListElem, int innerListElem, long writesPerTx, DataStore dataStore) {
         this.outerListElem = outerListElem;
         this.innerListElem = innerListElem;
         this.writesPerTx = writesPerTx;
         this.oper = oper;
+        this.dataStore = dataStore;
+        LOG.info("DatastoreAbstractWriter created: {}", this);
     }
 
     public abstract void createList();
@@ -39,4 +52,22 @@ public abstract class DatastoreAbstractWriter {
         return txOk;
     }
 
+    protected LogicalDatastoreType getDataStoreType() {
+        final LogicalDatastoreType dsType;
+        if (dataStore == DataStore.CONFIG) {
+            dsType = LogicalDatastoreType.CONFIGURATION;
+        }
+        else if (dataStore == DataStore.OPERATIONAL) {
+            dsType = LogicalDatastoreType.OPERATIONAL;
+        }
+        else
+        {
+            if (rn.nextBoolean() == true) {
+                dsType = LogicalDatastoreType.OPERATIONAL;
+            } else {
+                dsType = LogicalDatastoreType.CONFIGURATION;
+            }
+        }
+        return dsType;
+    }
 }