http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/StartAll.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/StartAll.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/StartAll.java index d164695..8504fd1 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/StartAll.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/StartAll.java @@ -33,7 +33,7 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class StartAll extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { log.info("Starting all servers"); @@ -52,5 +52,5 @@ public class StartAll extends Test { } } } - + }
http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/StopTabletServer.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/StopTabletServer.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/StopTabletServer.java index c16160e..995a72e 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/StopTabletServer.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/StopTabletServer.java @@ -38,7 +38,7 @@ import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.data.Stat; public class StopTabletServer extends Test { - + Set<TServerInstance> getTServers(Instance instance) throws KeeperException, InterruptedException { Set<TServerInstance> result = new HashSet<TServerInstance>(); ZooReader rdr = new ZooReader(instance.getZooKeepers(), instance.getZooKeepersSessionTimeOut()); @@ -60,12 +60,12 @@ public class StopTabletServer extends Test { } return result; } - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - + Instance instance = env.getInstance(); - + List<TServerInstance> currentServers = new ArrayList<TServerInstance>(getTServers(instance)); Collections.shuffle(currentServers); Runtime runtime = Runtime.getRuntime(); @@ -80,5 +80,5 @@ public class StopTabletServer extends Test { throw new RuntimeException("Failed to stop " + victim); } } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Compact.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Compact.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Compact.java index df9803f..1b0e03b 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Compact.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Compact.java @@ -26,7 +26,7 @@ import org.apache.accumulo.test.randomwalk.Test; import org.apache.hadoop.io.Text; /** - * + * */ public class Compact extends Test { @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Flush.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Flush.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Flush.java index 37c8c91..cb5c5f1 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Flush.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Flush.java @@ -26,7 +26,7 @@ import org.apache.accumulo.test.randomwalk.Test; import org.apache.hadoop.io.Text; /** - * + * */ public class Flush extends Test { @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Init.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Init.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Init.java index fe47813..ebe12ef 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Init.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Init.java @@ -32,7 +32,7 @@ import org.apache.accumulo.test.randomwalk.Test; import org.apache.hadoop.io.Text; /** - * + * */ public class Init extends Test { @@ -68,21 +68,21 @@ public class Init extends Test { if (j % 1000 == 0 && j > 0) { Status status = cw.write(m).getStatus(); - - while(status == Status.UNKNOWN) + + while (status == Status.UNKNOWN) status = cw.write(m).getStatus(); - + if (status == Status.ACCEPTED) acceptedCount++; m = new ConditionalMutation(Utils.getBank(i)); } } - if (m.getConditions().size() > 0){ + if (m.getConditions().size() > 0) { Status status = cw.write(m).getStatus(); - while(status == Status.UNKNOWN) + while (status == Status.UNKNOWN) status = cw.write(m).getStatus(); - + if (status == Status.ACCEPTED) acceptedCount++; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Merge.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Merge.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Merge.java index a6318d5..2124518 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Merge.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Merge.java @@ -26,7 +26,7 @@ import org.apache.accumulo.test.randomwalk.Test; import org.apache.hadoop.io.Text; /** - * + * */ public class Merge extends Test { @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Setup.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Setup.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Setup.java index 90c2978..c22d5b8 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Setup.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Setup.java @@ -33,7 +33,7 @@ public class Setup extends Test { public void visit(State state, Environment env, Properties props) throws Exception { Random rand = new Random(); state.set("rand", rand); - + int numBanks = Integer.parseInt(props.getProperty("numBanks", "1000")); log.debug("numBanks = " + numBanks); state.set("numBanks", numBanks); @@ -53,9 +53,7 @@ public class Setup extends Test { log.debug("set " + Property.TABLE_BLOCKCACHE_ENABLED.getKey() + " " + blockCache); } catch (TableExistsException tee) {} - - ConditionalWriter cw = env.getConnector() - .createConditionalWriter(tableName, new ConditionalWriterConfig().setMaxWriteThreads(1)); + ConditionalWriter cw = env.getConnector().createConditionalWriter(tableName, new ConditionalWriterConfig().setMaxWriteThreads(1)); state.set("cw", cw); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Split.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Split.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Split.java index c6665b9..a1ca830 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Split.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Split.java @@ -28,7 +28,7 @@ import org.apache.accumulo.test.randomwalk.Test; import org.apache.hadoop.io.Text; /** - * + * */ public class Split extends Test { @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/TearDown.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/TearDown.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/TearDown.java index 3f326c0..0c59eae 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/TearDown.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/TearDown.java @@ -24,7 +24,7 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; /** - * + * */ public class TearDown extends Test { @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Transfer.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Transfer.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Transfer.java index f9bfaaa..ec4edaf 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Transfer.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Transfer.java @@ -38,7 +38,7 @@ import org.apache.commons.math.distribution.ZipfDistributionImpl; import org.apache.hadoop.io.Text; /** - * + * */ public class Transfer extends Test { @@ -108,7 +108,6 @@ public class Transfer extends Test { throw new Exception("Unexpected column qual: " + cq); } - int amt = rand.nextInt(50); log.debug("transfer req " + bank + " " + amt + " " + acct1 + " " + a1 + " " + acct2 + " " + a2); @@ -123,14 +122,13 @@ public class Transfer extends Test { ConditionalWriter cw = (ConditionalWriter) state.get("cw"); Status status = cw.write(cm).getStatus(); - while(status == Status.UNKNOWN){ - log.debug("retrying transfer "+status); + while (status == Status.UNKNOWN) { + log.debug("retrying transfer " + status); status = cw.write(cm).getStatus(); } log.debug("transfer result " + bank + " " + status + " " + a1 + " " + a2); } - } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Utils.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Utils.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Utils.java index 043ea71..1c83686 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Utils.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Utils.java @@ -16,9 +16,8 @@ */ package org.apache.accumulo.test.randomwalk.conditional; - /** - * + * */ public class Utils { http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Verify.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Verify.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Verify.java index 8acc3ed..2690ffc 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Verify.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/conditional/Verify.java @@ -34,7 +34,7 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; /** - * + * */ public class Verify extends Test { @@ -80,7 +80,6 @@ public class Verify extends Test { throw new Exception("Sum is off " + sum); } - log.debug("Verified " + row + " count = " + count + " sum = " + sum + " min = " + min + " max = " + max); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Commit.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Commit.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Commit.java index 26b69cd..4468591 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Commit.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Commit.java @@ -23,13 +23,13 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class Commit extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { env.getMultiTableBatchWriter().flush(); - + log.debug("Committed " + state.getLong("numWrites") + " writes. Total writes: " + state.getLong("totalWrites")); state.set("numWrites", Long.valueOf(0)); } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/image/ImageFixture.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/ImageFixture.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/ImageFixture.java index bcf7cad..3bcc41c 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/ImageFixture.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/ImageFixture.java @@ -31,36 +31,36 @@ import org.apache.accumulo.core.client.MultiTableBatchWriter; import org.apache.accumulo.core.client.MutationsRejectedException; import org.apache.accumulo.core.client.TableExistsException; import org.apache.accumulo.core.client.impl.Tables; -import org.apache.accumulo.test.randomwalk.Fixture; import org.apache.accumulo.test.randomwalk.Environment; +import org.apache.accumulo.test.randomwalk.Fixture; import org.apache.accumulo.test.randomwalk.State; import org.apache.hadoop.io.Text; public class ImageFixture extends Fixture { - + String imageTableName; String indexTableName; - + @Override public void setUp(State state, Environment env) throws Exception { - + Connector conn = env.getConnector(); Instance instance = env.getInstance(); - + SortedSet<Text> splits = new TreeSet<Text>(); for (int i = 1; i < 256; i++) { splits.add(new Text(String.format("%04x", i << 8))); } - + String hostname = InetAddress.getLocalHost().getHostName().replaceAll("[-.]", "_"); String pid = env.getPid(); - + imageTableName = String.format("img_%s_%s_%d", hostname, pid, System.currentTimeMillis()); state.set("imageTableName", imageTableName); - + indexTableName = String.format("img_ndx_%s_%s_%d", hostname, pid, System.currentTimeMillis()); state.set("indexTableName", indexTableName); - + try { conn.tableOperations().create(imageTableName); conn.tableOperations().addSplits(imageTableName, splits); @@ -69,7 +69,7 @@ public class ImageFixture extends Fixture { log.error("Table " + imageTableName + " already exists."); throw e; } - + try { conn.tableOperations().create(indexTableName); log.debug("Created table " + indexTableName + " (id:" + Tables.getNameToIdMap(instance).get(indexTableName) + ")"); @@ -77,35 +77,35 @@ public class ImageFixture extends Fixture { log.error("Table " + imageTableName + " already exists."); throw e; } - + Random rand = new Random(); if (rand.nextInt(10) < 5) { // setup locality groups Map<String,Set<Text>> groups = getLocalityGroups(); - + conn.tableOperations().setLocalityGroups(imageTableName, groups); log.debug("Configured locality groups for " + imageTableName + " groups = " + groups); } - + state.set("numWrites", Long.valueOf(0)); state.set("totalWrites", Long.valueOf(0)); state.set("verified", Integer.valueOf(0)); state.set("lastIndexRow", new Text("")); } - + static Map<String,Set<Text>> getLocalityGroups() { Map<String,Set<Text>> groups = new HashMap<String,Set<Text>>(); - + HashSet<Text> lg1 = new HashSet<Text>(); lg1.add(Write.CONTENT_COLUMN_FAMILY); groups.put("lg1", lg1); - + HashSet<Text> lg2 = new HashSet<Text>(); lg2.add(Write.META_COLUMN_FAMILY); groups.put("lg2", lg2); return groups; } - + @Override public void tearDown(State state, Environment env) throws Exception { // We have resources we need to clean up @@ -116,19 +116,19 @@ public class ImageFixture extends Fixture { } catch (MutationsRejectedException e) { log.error("Ignoring mutations that weren't flushed", e); } - + // Reset the MTBW on the state to null env.resetMultiTableBatchWriter(); } - + // Now we can safely delete the tables log.debug("Dropping tables: " + imageTableName + " " + indexTableName); - + Connector conn = env.getConnector(); - + conn.tableOperations().delete(imageTableName); conn.tableOperations().delete(indexTableName); - + log.debug("Final total of writes: " + state.getLong("totalWrites")); } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/image/ScanMeta.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/ScanMeta.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/ScanMeta.java index 8a2ca3d..4b801c2 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/ScanMeta.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/ScanMeta.java @@ -16,13 +16,13 @@ */ package org.apache.accumulo.test.randomwalk.image; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import java.util.Random; import java.util.Map.Entry; -import java.util.ArrayList; import java.util.Properties; +import java.util.Random; import java.util.UUID; import org.apache.accumulo.core.client.BatchScanner; @@ -38,74 +38,74 @@ import org.apache.accumulo.test.randomwalk.Test; import org.apache.hadoop.io.Text; public class ScanMeta extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - + // scan just the metadata of the images table to find N hashes... use the batch scanner to lookup those N hashes in the index table // this scan will test locality groups.... - + String indexTableName = state.getString("indexTableName"); String imageTableName = state.getString("imageTableName"); - + String uuid = UUID.randomUUID().toString(); - + Connector conn = env.getConnector(); - + Scanner imageScanner = conn.createScanner(imageTableName, new Authorizations()); - + imageScanner.setRange(new Range(new Text(uuid), null)); imageScanner.fetchColumn(Write.META_COLUMN_FAMILY, Write.SHA1_COLUMN_QUALIFIER); - + int minScan = Integer.parseInt(props.getProperty("minScan")); int maxScan = Integer.parseInt(props.getProperty("maxScan")); - + Random rand = new Random(); int numToScan = rand.nextInt(maxScan - minScan) + minScan; - + Map<Text,Text> hashes = new HashMap<Text,Text>(); - + Iterator<Entry<Key,Value>> iter = imageScanner.iterator(); - + while (iter.hasNext() && numToScan > 0) { - + Entry<Key,Value> entry = iter.next(); - + hashes.put(new Text(entry.getValue().get()), entry.getKey().getRow()); - + numToScan--; } - + log.debug("Found " + hashes.size() + " hashes starting at " + uuid); if (hashes.isEmpty()) { return; } - + // use batch scanner to verify all of these exist in index BatchScanner indexScanner = conn.createBatchScanner(indexTableName, Authorizations.EMPTY, 3); ArrayList<Range> ranges = new ArrayList<Range>(); for (Text row : hashes.keySet()) { ranges.add(new Range(row)); } - + indexScanner.setRanges(ranges); - + Map<Text,Text> hashes2 = new HashMap<Text,Text>(); - + for (Entry<Key,Value> entry : indexScanner) hashes2.put(entry.getKey().getRow(), new Text(entry.getValue().get())); - + log.debug("Looked up " + ranges.size() + " ranges, found " + hashes2.size()); - + if (!hashes.equals(hashes2)) { log.error("uuids from doc table : " + hashes.values()); log.error("uuids from index : " + hashes2.values()); throw new Exception("Mismatch between document table and index " + indexTableName + " " + imageTableName); } - + indexScanner.close(); - + } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/image/TableOp.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/TableOp.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/TableOp.java index bf3ff17..b62ec34 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/TableOp.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/TableOp.java @@ -30,10 +30,10 @@ import org.apache.accumulo.test.randomwalk.Test; import org.apache.hadoop.io.Text; public class TableOp extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - + // choose a table Random rand = new Random(); String tableName; @@ -42,7 +42,7 @@ public class TableOp extends Test { } else { tableName = state.getString("indexTableName"); } - + // check if chosen table exists Connector conn = env.getConnector(); TableOperations tableOps = conn.tableOperations(); @@ -50,7 +50,7 @@ public class TableOp extends Test { log.error("Table " + tableName + " does not exist!"); return; } - + // choose a random action int num = rand.nextInt(10); if (num > 6) { @@ -63,10 +63,10 @@ public class TableOp extends Test { log.debug("Clearing locator cache for " + tableName); tableOps.clearLocatorCache(tableName); } - + if (rand.nextInt(10) < 3) { Map<String,Set<Text>> groups = tableOps.getLocalityGroups(state.getString("imageTableName")); - + if (groups.size() == 0) { log.debug("Adding locality groups to " + state.getString("imageTableName")); groups = ImageFixture.getLocalityGroups(); @@ -74,7 +74,7 @@ public class TableOp extends Test { log.debug("Removing locality groups from " + state.getString("imageTableName")); groups = new HashMap<String,Set<Text>>(); } - + tableOps.setLocalityGroups(state.getString("imageTableName"), groups); } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Verify.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Verify.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Verify.java index 6ca524a..cfac23f 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Verify.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Verify.java @@ -37,91 +37,91 @@ import org.apache.accumulo.test.randomwalk.Test; import org.apache.hadoop.io.Text; public class Verify extends Test { - + String indexTableName; String imageTableName; - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - + Random rand = new Random(); - + int maxVerify = Integer.parseInt(props.getProperty("maxVerify")); int numVerifications = rand.nextInt(maxVerify - 1) + 1; - + indexTableName = state.getString("indexTableName"); imageTableName = state.getString("imageTableName"); - + Connector conn = env.getConnector(); - + Scanner indexScanner = conn.createScanner(indexTableName, new Authorizations()); Scanner imageScanner = conn.createScanner(imageTableName, new Authorizations()); - + String uuid = UUID.randomUUID().toString(); - + MessageDigest alg = MessageDigest.getInstance("SHA-1"); alg.update(uuid.getBytes(UTF_8)); - + indexScanner.setRange(new Range(new Text(alg.digest()), null)); indexScanner.setBatchSize(numVerifications); - + Text curRow = null; int count = 0; for (Entry<Key,Value> entry : indexScanner) { - + curRow = entry.getKey().getRow(); String rowToVerify = entry.getValue().toString(); - + verifyRow(imageScanner, rowToVerify); - + count++; if (count == numVerifications) { break; } } - + if (count != numVerifications && curRow != null) { Text lastRow = (Text) state.get("lastIndexRow"); if (lastRow.compareTo(curRow) != 0) { log.error("Verified only " + count + " of " + numVerifications + " - curRow " + curRow + " lastKey " + lastRow); } } - + int verified = ((Integer) state.get("verified")).intValue() + numVerifications; log.debug("Verified " + numVerifications + " - Total " + verified); state.set("verified", Integer.valueOf(verified)); } - + public void verifyRow(Scanner scanner, String row) throws Exception { - + scanner.setRange(new Range(new Text(row))); scanner.clearColumns(); scanner.fetchColumnFamily(Write.CONTENT_COLUMN_FAMILY); scanner.fetchColumn(Write.META_COLUMN_FAMILY, Write.SHA1_COLUMN_QUALIFIER); - + Iterator<Entry<Key,Value>> scanIter = scanner.iterator(); - + if (scanIter.hasNext() == false) { log.error("Found row(" + row + ") in " + indexTableName + " but not " + imageTableName); return; } - + // get image Entry<Key,Value> entry = scanIter.next(); byte[] imageBytes = entry.getValue().get(); - + MessageDigest alg = MessageDigest.getInstance("SHA-1"); alg.update(imageBytes); byte[] localHash = alg.digest(); - + // get stored hash entry = scanIter.next(); byte[] storedHash = entry.getValue().get(); - + if (localHash.length != storedHash.length) { throw new Exception("Hash lens do not match for " + row); } - + for (int i = 0; i < localHash.length; i++) { if (localHash[i] != storedHash[i]) { throw new Exception("Hashes do not match for " + row); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Write.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Write.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Write.java index d239495..fc5d73e 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Write.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/image/Write.java @@ -33,62 +33,62 @@ import org.apache.accumulo.test.randomwalk.Test; import org.apache.hadoop.io.Text; public class Write extends Test { - + static final Text UUID_COLUMN_QUALIFIER = new Text("uuid"); static final Text COUNT_COLUMN_QUALIFIER = new Text("count"); static final Text SHA1_COLUMN_QUALIFIER = new Text("sha1"); static final Text IMAGE_COLUMN_QUALIFIER = new Text("image"); static final Text META_COLUMN_FAMILY = new Text("meta"); static final Text CONTENT_COLUMN_FAMILY = new Text("content"); - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - + MultiTableBatchWriter mtbw = env.getMultiTableBatchWriter(); - + BatchWriter imagesBW = mtbw.getBatchWriter(state.getString("imageTableName")); BatchWriter indexBW = mtbw.getBatchWriter(state.getString("indexTableName")); - + String uuid = UUID.randomUUID().toString(); Mutation m = new Mutation(new Text(uuid)); - + // create a fake image between 4KB and 1MB int maxSize = Integer.parseInt(props.getProperty("maxSize")); int minSize = Integer.parseInt(props.getProperty("minSize")); - + Random rand = new Random(); int numBytes = rand.nextInt(maxSize - minSize) + minSize; byte[] imageBytes = new byte[numBytes]; rand.nextBytes(imageBytes); m.put(CONTENT_COLUMN_FAMILY, IMAGE_COLUMN_QUALIFIER, new Value(imageBytes)); - + // store size m.put(META_COLUMN_FAMILY, new Text("size"), new Value(String.format("%d", numBytes).getBytes(UTF_8))); - + // store hash MessageDigest alg = MessageDigest.getInstance("SHA-1"); alg.update(imageBytes); byte[] hash = alg.digest(); m.put(META_COLUMN_FAMILY, SHA1_COLUMN_QUALIFIER, new Value(hash)); - + // update write counts state.set("numWrites", state.getLong("numWrites") + 1); Long totalWrites = state.getLong("totalWrites") + 1; state.set("totalWrites", totalWrites); - + // set count m.put(META_COLUMN_FAMILY, COUNT_COLUMN_QUALIFIER, new Value(String.format("%d", totalWrites).getBytes(UTF_8))); - + // add mutation imagesBW.addMutation(m); - + // now add mutation to index Text row = new Text(hash); m = new Mutation(row); m.put(META_COLUMN_FAMILY, UUID_COLUMN_QUALIFIER, new Value(uuid.getBytes(UTF_8))); - + indexBW.addMutation(m); - + Text lastRow = (Text) state.get("lastIndexRow"); if (lastRow.compareTo(row) < 0) { state.set("lastIndexRow", new Text(row)); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/Commit.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/Commit.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/Commit.java index 106de52..a81e396 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/Commit.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/Commit.java @@ -23,18 +23,18 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class Commit extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { env.getMultiTableBatchWriter().flush(); - + Long numWrites = state.getLong("numWrites"); Long totalWrites = state.getLong("totalWrites") + numWrites; - + log.debug("Committed " + numWrites + " writes. Total writes: " + totalWrites); - + state.set("totalWrites", totalWrites); state.set("numWrites", Long.valueOf(0)); } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/CopyTool.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/CopyTool.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/CopyTool.java index d92dea2..d39f8df 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/CopyTool.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/CopyTool.java @@ -35,7 +35,7 @@ import org.apache.log4j.Logger; public class CopyTool extends Configured implements Tool { protected final Logger log = Logger.getLogger(this.getClass()); - + public static class SeqMapClass extends Mapper<Key,Value,Text,Mutation> { @Override public void map(Key key, Value val, Context output) throws IOException, InterruptedException { @@ -44,18 +44,18 @@ public class CopyTool extends Configured implements Tool { output.write(null, m); } } - + @Override public int run(String[] args) throws Exception { @SuppressWarnings("deprecation") Job job = new Job(getConf(), this.getClass().getSimpleName()); job.setJarByClass(this.getClass()); - + if (job.getJar() == null) { log.error("M/R requires a jar file! Run mvn package."); return 1; } - + ClientConfiguration clientConf = new ClientConfiguration().withInstance(args[3]).withZkHosts(args[4]); job.setInputFormatClass(AccumuloInputFormat.class); @@ -63,19 +63,19 @@ public class CopyTool extends Configured implements Tool { AccumuloInputFormat.setInputTableName(job, args[2]); AccumuloInputFormat.setScanAuthorizations(job, Authorizations.EMPTY); AccumuloInputFormat.setZooKeeperInstance(job, clientConf); - + job.setMapperClass(SeqMapClass.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(Mutation.class); - + job.setNumReduceTasks(0); - + job.setOutputFormatClass(AccumuloOutputFormat.class); AccumuloOutputFormat.setConnectorInfo(job, args[0], new PasswordToken(args[1])); AccumuloOutputFormat.setCreateTables(job, true); AccumuloOutputFormat.setDefaultTableName(job, args[5]); AccumuloOutputFormat.setZooKeeperInstance(job, clientConf); - + job.waitForCompletion(true); return job.isSuccessful() ? 0 : 1; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/DropTable.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/DropTable.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/DropTable.java index 9a670dc..2bbd873 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/DropTable.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/DropTable.java @@ -26,21 +26,21 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class DropTable extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - + @SuppressWarnings("unchecked") ArrayList<String> tables = (ArrayList<String>) state.get("tableList"); - + // don't drop a table if we only have one table or less if (tables.size() <= 1) { return; } - + Random rand = new Random(); String tableName = tables.remove(rand.nextInt(tables.size())); - + try { env.getConnector().tableOperations().delete(tableName); log.debug("Dropped " + tableName); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/MultiTableFixture.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/MultiTableFixture.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/MultiTableFixture.java index 536de08..4d46295 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/MultiTableFixture.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/MultiTableFixture.java @@ -23,24 +23,24 @@ import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.MultiTableBatchWriter; import org.apache.accumulo.core.client.MutationsRejectedException; import org.apache.accumulo.core.client.TableNotFoundException; -import org.apache.accumulo.test.randomwalk.Fixture; import org.apache.accumulo.test.randomwalk.Environment; +import org.apache.accumulo.test.randomwalk.Fixture; import org.apache.accumulo.test.randomwalk.State; public class MultiTableFixture extends Fixture { - + @Override public void setUp(State state, Environment env) throws Exception { - + String hostname = InetAddress.getLocalHost().getHostName().replaceAll("[-.]", "_"); - + state.set("tableNamePrefix", String.format("multi_%s_%s_%d", hostname, env.getPid(), System.currentTimeMillis())); state.set("nextId", Integer.valueOf(0)); state.set("numWrites", Long.valueOf(0)); state.set("totalWrites", Long.valueOf(0)); state.set("tableList", new ArrayList<String>()); } - + @Override public void tearDown(State state, Environment env) throws Exception { // We have resources we need to clean up @@ -51,16 +51,16 @@ public class MultiTableFixture extends Fixture { } catch (MutationsRejectedException e) { log.error("Ignoring mutations that weren't flushed", e); } - + // Reset the MTBW on the state to null env.resetMultiTableBatchWriter(); } - + Connector conn = env.getConnector(); - + @SuppressWarnings("unchecked") ArrayList<String> tables = (ArrayList<String>) state.get("tableList"); - + for (String tableName : tables) { try { conn.tableOperations().delete(tableName); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/OfflineTable.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/OfflineTable.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/OfflineTable.java index bc54ada..90c555b 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/OfflineTable.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/OfflineTable.java @@ -25,20 +25,20 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class OfflineTable extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - + @SuppressWarnings("unchecked") ArrayList<String> tables = (ArrayList<String>) state.get("tableList"); - + if (tables.size() <= 0) { return; } - + Random rand = new Random(); String tableName = tables.get(rand.nextInt(tables.size())); - + env.getConnector().tableOperations().offline(tableName, rand.nextBoolean()); log.debug("Table " + tableName + " offline "); env.getConnector().tableOperations().online(tableName, rand.nextBoolean()); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/Write.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/Write.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/Write.java index c3c91c0..494b794 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/Write.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/Write.java @@ -35,10 +35,10 @@ import org.apache.accumulo.test.randomwalk.Test; import org.apache.hadoop.io.Text; public class Write extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - + @SuppressWarnings("unchecked") ArrayList<String> tables = (ArrayList<String>) state.get("tableList"); @@ -46,10 +46,10 @@ public class Write extends Test { log.debug("No tables to ingest into"); return; } - + Random rand = new Random(); String tableName = tables.get(rand.nextInt(tables.size())); - + BatchWriter bw = null; try { bw = env.getMultiTableBatchWriter().getBatchWriter(tableName); @@ -60,30 +60,30 @@ public class Write extends Test { log.error("Table " + tableName + " not found!"); return; } - + Text meta = new Text("meta"); String uuid = UUID.randomUUID().toString(); - + Mutation m = new Mutation(new Text(uuid)); - + // create a fake payload between 4KB and 16KB int numBytes = rand.nextInt(12000) + 4000; byte[] payloadBytes = new byte[numBytes]; rand.nextBytes(payloadBytes); m.put(meta, new Text("payload"), new Value(payloadBytes)); - + // store size m.put(meta, new Text("size"), new Value(String.format("%d", numBytes).getBytes(UTF_8))); - + // store hash MessageDigest alg = MessageDigest.getInstance("SHA-1"); alg.update(payloadBytes); m.put(meta, new Text("sha1"), new Value(alg.digest())); - + // add mutation bw.addMutation(m); - + state.set("numWrites", state.getLong("numWrites") + 1); } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterSystemPerm.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterSystemPerm.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterSystemPerm.java index 663f2c2..ba4d2e9 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterSystemPerm.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterSystemPerm.java @@ -28,17 +28,17 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class AlterSystemPerm extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { Connector conn = env.getConnector(); - WalkingSecurity ws = new WalkingSecurity(state,env); - + WalkingSecurity ws = new WalkingSecurity(state, env); + String action = props.getProperty("task", "toggle"); String perm = props.getProperty("perm", "random"); - - String targetUser = WalkingSecurity.get(state,env).getSysUserName(); - + + String targetUser = WalkingSecurity.get(state, env).getSysUserName(); + SystemPermission sysPerm; if (perm.equals("random")) { Random r = new Random(); @@ -46,9 +46,9 @@ public class AlterSystemPerm extends Test { sysPerm = SystemPermission.values()[i]; } else sysPerm = SystemPermission.valueOf(perm); - + boolean hasPerm = ws.hasSystemPermission(targetUser, sysPerm); - + // toggle if (!"take".equals(action) && !"give".equals(action)) { if (hasPerm != conn.securityOperations().hasSystemPermission(targetUser, sysPerm)) @@ -58,7 +58,7 @@ public class AlterSystemPerm extends Test { else action = "give"; } - + if ("take".equals(action)) { try { conn.securityOperations().revokeSystemPermission(targetUser, sysPerm); @@ -96,5 +96,5 @@ public class AlterSystemPerm extends Test { ws.grantSystemPermission(targetUser, sysPerm); } } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTable.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTable.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTable.java index 4f9a8b9..70c98e4 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTable.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTable.java @@ -30,22 +30,22 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class AlterTable extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - Connector conn = env.getInstance().getConnector(WalkingSecurity.get(state,env).getSysUserName(), WalkingSecurity.get(state,env).getSysToken()); - - String tableName = WalkingSecurity.get(state,env).getTableName(); - String namespaceName = WalkingSecurity.get(state,env).getNamespaceName(); - - boolean exists = WalkingSecurity.get(state,env).getTableExists(); - boolean hasPermission = WalkingSecurity.get(state,env).canAlterTable(WalkingSecurity.get(state,env).getSysCredentials(), tableName, namespaceName); + Connector conn = env.getInstance().getConnector(WalkingSecurity.get(state, env).getSysUserName(), WalkingSecurity.get(state, env).getSysToken()); + + String tableName = WalkingSecurity.get(state, env).getTableName(); + String namespaceName = WalkingSecurity.get(state, env).getNamespaceName(); + + boolean exists = WalkingSecurity.get(state, env).getTableExists(); + boolean hasPermission = WalkingSecurity.get(state, env).canAlterTable(WalkingSecurity.get(state, env).getSysCredentials(), tableName, namespaceName); String newTableName = String.format("security_%s_%s_%d", InetAddress.getLocalHost().getHostName().replaceAll("[-.]", "_"), env.getPid(), System.currentTimeMillis()); - + renameTable(conn, state, env, tableName, newTableName, hasPermission, exists); } - + public static void renameTable(Connector conn, State state, Environment env, String oldName, String newName, boolean hasPermission, boolean tableExists) throws AccumuloSecurityException, AccumuloException, TableExistsException { try { @@ -57,7 +57,7 @@ public class AlterTable extends Test { else return; } else if (ae.getSecurityErrorCode().equals(SecurityErrorCode.BAD_CREDENTIALS)) { - if (WalkingSecurity.get(state,env).userPassTransient(conn.whoami())) + if (WalkingSecurity.get(state, env).userPassTransient(conn.whoami())) return; } throw new AccumuloException("Got unexpected ae error code", ae); @@ -67,7 +67,7 @@ public class AlterTable extends Test { else return; } - WalkingSecurity.get(state,env).setTableName(newName); + WalkingSecurity.get(state, env).setTableName(newName); if (!hasPermission) throw new AccumuloException("Didn't get Security Exception when we should have"); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTablePerm.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTablePerm.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTablePerm.java index 42ac364..8befe8a 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTablePerm.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTablePerm.java @@ -30,28 +30,28 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class AlterTablePerm extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { alter(state, env, props); } - + public static void alter(State state, Environment env, Properties props) throws Exception { String action = props.getProperty("task", "toggle"); String perm = props.getProperty("perm", "random"); String sourceUserProp = props.getProperty("source", "system"); String targetUser = props.getProperty("target", "table"); - boolean tabExists = WalkingSecurity.get(state,env).getTableExists(); - + boolean tabExists = WalkingSecurity.get(state, env).getTableExists(); + String target; if ("table".equals(targetUser)) - target = WalkingSecurity.get(state,env).getTabUserName(); + target = WalkingSecurity.get(state, env).getTabUserName(); else - target = WalkingSecurity.get(state,env).getSysUserName(); - - boolean exists = WalkingSecurity.get(state,env).userExists(target); - boolean tableExists = WalkingSecurity.get(state,env).getTableExists(); - + target = WalkingSecurity.get(state, env).getSysUserName(); + + boolean exists = WalkingSecurity.get(state, env).userExists(target); + boolean tableExists = WalkingSecurity.get(state, env).getTableExists(); + TablePermission tabPerm; if (perm.equals("random")) { Random r = new Random(); @@ -59,26 +59,26 @@ public class AlterTablePerm extends Test { tabPerm = TablePermission.values()[i]; } else tabPerm = TablePermission.valueOf(perm); - String tableName = WalkingSecurity.get(state,env).getTableName(); - boolean hasPerm = WalkingSecurity.get(state,env).hasTablePermission(target, tableName, tabPerm); + String tableName = WalkingSecurity.get(state, env).getTableName(); + boolean hasPerm = WalkingSecurity.get(state, env).hasTablePermission(target, tableName, tabPerm); boolean canGive; String sourceUser; AuthenticationToken sourceToken; if ("system".equals(sourceUserProp)) { - sourceUser = WalkingSecurity.get(state,env).getSysUserName(); - sourceToken = WalkingSecurity.get(state,env).getSysToken(); + sourceUser = WalkingSecurity.get(state, env).getSysUserName(); + sourceToken = WalkingSecurity.get(state, env).getSysToken(); } else if ("table".equals(sourceUserProp)) { - sourceUser = WalkingSecurity.get(state,env).getTabUserName(); - sourceToken = WalkingSecurity.get(state,env).getTabToken(); + sourceUser = WalkingSecurity.get(state, env).getTabUserName(); + sourceToken = WalkingSecurity.get(state, env).getTabToken(); } else { sourceUser = env.getUserName(); sourceToken = env.getToken(); } Connector conn = env.getInstance().getConnector(sourceUser, sourceToken); - - canGive = WalkingSecurity.get(state,env).canGrantTable(new Credentials(sourceUser, sourceToken).toThrift(env.getInstance()), target, - WalkingSecurity.get(state,env).getTableName(), WalkingSecurity.get(state,env).getNamespaceName()); - + + canGive = WalkingSecurity.get(state, env).canGrantTable(new Credentials(sourceUser, sourceToken).toThrift(env.getInstance()), target, + WalkingSecurity.get(state, env).getTableName(), WalkingSecurity.get(state, env).getNamespaceName()); + // toggle if (!"take".equals(action) && !"give".equals(action)) { try { @@ -86,7 +86,7 @@ public class AlterTablePerm extends Test { if (hasPerm != (res = env.getConnector().securityOperations().hasTablePermission(target, tableName, tabPerm))) throw new AccumuloException("Test framework and accumulo are out of sync for user " + conn.whoami() + " for perm " + tabPerm.name() + " with local vs. accumulo being " + hasPerm + " " + res); - + if (hasPerm) action = "take"; else @@ -108,8 +108,8 @@ public class AlterTablePerm extends Test { } } } - - boolean trans = WalkingSecurity.get(state,env).userPassTransient(conn.whoami()); + + boolean trans = WalkingSecurity.get(state, env).userPassTransient(conn.whoami()); if ("take".equals(action)) { try { conn.securityOperations().revokeTablePermission(target, tableName, tabPerm); @@ -137,7 +137,7 @@ public class AlterTablePerm extends Test { throw new AccumuloException("Got unexpected exception", ae); } } - WalkingSecurity.get(state,env).revokeTablePermission(target, tableName, tabPerm); + WalkingSecurity.get(state, env).revokeTablePermission(target, tableName, tabPerm); } else if ("give".equals(action)) { try { conn.securityOperations().grantTablePermission(target, tableName, tabPerm); @@ -165,16 +165,16 @@ public class AlterTablePerm extends Test { throw new AccumuloException("Got unexpected exception", ae); } } - WalkingSecurity.get(state,env).grantTablePermission(target, tableName, tabPerm); + WalkingSecurity.get(state, env).grantTablePermission(target, tableName, tabPerm); } - + if (!exists) throw new AccumuloException("User shouldn't have existed, but apparantly does"); if (!tableExists) throw new AccumuloException("Table shouldn't have existed, but apparantly does"); if (!canGive) throw new AccumuloException(conn.whoami() + " shouldn't have been able to grant privilege"); - + } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/Authenticate.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/Authenticate.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/Authenticate.java index 1b4b15c..bceeaeb 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/Authenticate.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/Authenticate.java @@ -30,36 +30,36 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class Authenticate extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - authenticate(WalkingSecurity.get(state,env).getSysUserName(), WalkingSecurity.get(state,env).getSysToken(), state, env, props); + authenticate(WalkingSecurity.get(state, env).getSysUserName(), WalkingSecurity.get(state, env).getSysToken(), state, env, props); } - + public static void authenticate(String principal, AuthenticationToken token, State state, Environment env, Properties props) throws Exception { String targetProp = props.getProperty("target"); boolean success = Boolean.parseBoolean(props.getProperty("valid")); - + Connector conn = env.getInstance().getConnector(principal, token); - + String target; - + if (targetProp.equals("table")) { - target = WalkingSecurity.get(state,env).getTabUserName(); + target = WalkingSecurity.get(state, env).getTabUserName(); } else { - target = WalkingSecurity.get(state,env).getSysUserName(); + target = WalkingSecurity.get(state, env).getSysUserName(); } - boolean exists = WalkingSecurity.get(state,env).userExists(target); + boolean exists = WalkingSecurity.get(state, env).userExists(target); // Copy so if failed it doesn't mess with the password stored in state - byte[] password = Arrays.copyOf(WalkingSecurity.get(state,env).getUserPassword(target), WalkingSecurity.get(state,env).getUserPassword(target).length); - boolean hasPermission = WalkingSecurity.get(state,env).canAskAboutUser(new Credentials(principal, token).toThrift(env.getInstance()), target); - + byte[] password = Arrays.copyOf(WalkingSecurity.get(state, env).getUserPassword(target), WalkingSecurity.get(state, env).getUserPassword(target).length); + boolean hasPermission = WalkingSecurity.get(state, env).canAskAboutUser(new Credentials(principal, token).toThrift(env.getInstance()), target); + if (!success) for (int i = 0; i < password.length; i++) password[i]++; - + boolean result; - + try { result = conn.securityOperations().authenticateUser(target, new PasswordToken(password)); } catch (AccumuloSecurityException ae) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/ChangePass.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/ChangePass.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/ChangePass.java index 724ec98..28414c2 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/ChangePass.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/ChangePass.java @@ -30,40 +30,40 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class ChangePass extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { String target = props.getProperty("target"); String source = props.getProperty("source"); - + String principal; AuthenticationToken token; if (source.equals("system")) { - principal = WalkingSecurity.get(state,env).getSysUserName(); - token = WalkingSecurity.get(state,env).getSysToken(); + principal = WalkingSecurity.get(state, env).getSysUserName(); + token = WalkingSecurity.get(state, env).getSysToken(); } else { - principal = WalkingSecurity.get(state,env).getTabUserName(); - token = WalkingSecurity.get(state,env).getTabToken(); + principal = WalkingSecurity.get(state, env).getTabUserName(); + token = WalkingSecurity.get(state, env).getTabToken(); } Connector conn = env.getInstance().getConnector(principal, token); - + boolean hasPerm; boolean targetExists; if (target.equals("table")) { - target = WalkingSecurity.get(state,env).getTabUserName(); + target = WalkingSecurity.get(state, env).getTabUserName(); } else - target = WalkingSecurity.get(state,env).getSysUserName(); - - targetExists = WalkingSecurity.get(state,env).userExists(target); - - hasPerm = WalkingSecurity.get(state,env).canChangePassword(new Credentials(principal, token).toThrift(env.getInstance()), target); - + target = WalkingSecurity.get(state, env).getSysUserName(); + + targetExists = WalkingSecurity.get(state, env).userExists(target); + + hasPerm = WalkingSecurity.get(state, env).canChangePassword(new Credentials(principal, token).toThrift(env.getInstance()), target); + Random r = new Random(); - + byte[] newPassw = new byte[r.nextInt(50) + 1]; for (int i = 0; i < newPassw.length; i++) newPassw[i] = (byte) ((r.nextInt(26) + 65) & 0xFF); - + PasswordToken newPass = new PasswordToken(newPassw); try { conn.securityOperations().changeLocalUserPassword(target, newPass); @@ -78,14 +78,14 @@ public class ChangePass extends Test { throw new AccumuloException("User " + target + " doesn't exist and they SHOULD.", ae); return; case BAD_CREDENTIALS: - if (!WalkingSecurity.get(state,env).userPassTransient(conn.whoami())) + if (!WalkingSecurity.get(state, env).userPassTransient(conn.whoami())) throw new AccumuloException("Bad credentials for user " + conn.whoami()); return; default: throw new AccumuloException("Got unexpected exception", ae); } } - WalkingSecurity.get(state,env).changePassword(target, newPass); + WalkingSecurity.get(state, env).changePassword(target, newPass); // Waiting 1 second for password to propogate through Zk Thread.sleep(1000); if (!hasPerm) http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/CreateTable.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/CreateTable.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/CreateTable.java index 0866923..fb4f309 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/CreateTable.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/CreateTable.java @@ -29,16 +29,16 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class CreateTable extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - Connector conn = env.getInstance().getConnector(WalkingSecurity.get(state,env).getSysUserName(), WalkingSecurity.get(state,env).getSysToken()); - - String tableName = WalkingSecurity.get(state,env).getTableName(); - - boolean exists = WalkingSecurity.get(state,env).getTableExists(); - boolean hasPermission = WalkingSecurity.get(state,env).canCreateTable(WalkingSecurity.get(state,env).getSysCredentials(), null, null); - + Connector conn = env.getInstance().getConnector(WalkingSecurity.get(state, env).getSysUserName(), WalkingSecurity.get(state, env).getSysToken()); + + String tableName = WalkingSecurity.get(state, env).getTableName(); + + boolean exists = WalkingSecurity.get(state, env).getTableExists(); + boolean hasPermission = WalkingSecurity.get(state, env).canCreateTable(WalkingSecurity.get(state, env).getSysCredentials(), null, null); + try { conn.tableOperations().create(tableName); } catch (AccumuloSecurityException ae) { @@ -50,7 +50,7 @@ public class CreateTable extends Test { { try { env.getConnector().tableOperations().create(tableName); - WalkingSecurity.get(state,env).initTable(tableName); + WalkingSecurity.get(state, env).initTable(tableName); } catch (TableExistsException tee) { if (exists) return; @@ -67,9 +67,9 @@ public class CreateTable extends Test { else return; } - WalkingSecurity.get(state,env).initTable(tableName); + WalkingSecurity.get(state, env).initTable(tableName); for (TablePermission tp : TablePermission.values()) - WalkingSecurity.get(state,env).grantTablePermission(conn.whoami(), tableName, tp); + WalkingSecurity.get(state, env).grantTablePermission(conn.whoami(), tableName, tp); if (!hasPermission) throw new AccumuloException("Didn't get Security Exception when we should have"); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/CreateUser.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/CreateUser.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/CreateUser.java index 336b4e4..eb07c43 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/CreateUser.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/CreateUser.java @@ -27,15 +27,15 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class CreateUser extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - Connector conn = env.getInstance().getConnector(WalkingSecurity.get(state,env).getSysUserName(), WalkingSecurity.get(state,env).getSysToken()); - - String tableUserName = WalkingSecurity.get(state,env).getTabUserName(); - - boolean exists = WalkingSecurity.get(state,env).userExists(tableUserName); - boolean hasPermission = WalkingSecurity.get(state,env).canCreateUser(WalkingSecurity.get(state,env).getSysCredentials(), tableUserName); + Connector conn = env.getInstance().getConnector(WalkingSecurity.get(state, env).getSysUserName(), WalkingSecurity.get(state, env).getSysToken()); + + String tableUserName = WalkingSecurity.get(state, env).getTabUserName(); + + boolean exists = WalkingSecurity.get(state, env).userExists(tableUserName); + boolean hasPermission = WalkingSecurity.get(state, env).canCreateUser(WalkingSecurity.get(state, env).getSysCredentials(), tableUserName); PasswordToken tabUserPass = new PasswordToken("Super Sekret Table User Password"); try { conn.securityOperations().createLocalUser(tableUserName, tabUserPass); @@ -49,7 +49,7 @@ public class CreateUser extends Test { { if (!exists) { env.getConnector().securityOperations().createLocalUser(tableUserName, tabUserPass); - WalkingSecurity.get(state,env).createUser(tableUserName, tabUserPass); + WalkingSecurity.get(state, env).createUser(tableUserName, tabUserPass); Thread.sleep(1000); } return; @@ -63,7 +63,7 @@ public class CreateUser extends Test { throw new AccumuloException("Got unexpected exception", ae); } } - WalkingSecurity.get(state,env).createUser(tableUserName, tabUserPass); + WalkingSecurity.get(state, env).createUser(tableUserName, tabUserPass); Thread.sleep(1000); if (!hasPermission) throw new AccumuloException("Didn't get Security Exception when we should have"); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropTable.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropTable.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropTable.java index 06aa037..a0bff7a 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropTable.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropTable.java @@ -31,31 +31,32 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class DropTable extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { dropTable(state, env, props); } - + public static void dropTable(State state, Environment env, Properties props) throws Exception { String sourceUser = props.getProperty("source", "system"); String principal; AuthenticationToken token; if (sourceUser.equals("table")) { - principal = WalkingSecurity.get(state,env).getTabUserName(); - token = WalkingSecurity.get(state,env).getTabToken(); + principal = WalkingSecurity.get(state, env).getTabUserName(); + token = WalkingSecurity.get(state, env).getTabToken(); } else { - principal = WalkingSecurity.get(state,env).getSysUserName(); - token = WalkingSecurity.get(state,env).getSysToken(); + principal = WalkingSecurity.get(state, env).getSysUserName(); + token = WalkingSecurity.get(state, env).getSysToken(); } Connector conn = env.getInstance().getConnector(principal, token); - - String tableName = WalkingSecurity.get(state,env).getTableName(); - String namespaceName = WalkingSecurity.get(state,env).getNamespaceName(); - - boolean exists = WalkingSecurity.get(state,env).getTableExists(); - boolean hasPermission = WalkingSecurity.get(state,env).canDeleteTable(new Credentials(principal, token).toThrift(env.getInstance()), tableName, namespaceName); - + + String tableName = WalkingSecurity.get(state, env).getTableName(); + String namespaceName = WalkingSecurity.get(state, env).getNamespaceName(); + + boolean exists = WalkingSecurity.get(state, env).getTableExists(); + boolean hasPermission = WalkingSecurity.get(state, env).canDeleteTable(new Credentials(principal, token).toThrift(env.getInstance()), tableName, + namespaceName); + try { conn.tableOperations().delete(tableName); } catch (AccumuloSecurityException ae) { @@ -65,11 +66,11 @@ public class DropTable extends Test { else { // Drop anyway for sake of state env.getConnector().tableOperations().delete(tableName); - WalkingSecurity.get(state,env).cleanTablePermissions(tableName); + WalkingSecurity.get(state, env).cleanTablePermissions(tableName); return; } } else if (ae.getSecurityErrorCode().equals(SecurityErrorCode.BAD_CREDENTIALS)) { - if (WalkingSecurity.get(state,env).userPassTransient(conn.whoami())) + if (WalkingSecurity.get(state, env).userPassTransient(conn.whoami())) return; } throw new AccumuloException("Got unexpected ae error code", ae); @@ -79,7 +80,7 @@ public class DropTable extends Test { else return; } - WalkingSecurity.get(state,env).cleanTablePermissions(tableName); + WalkingSecurity.get(state, env).cleanTablePermissions(tableName); if (!hasPermission) throw new AccumuloException("Didn't get Security Exception when we should have"); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java index 40bde3b..e0ca60f 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java @@ -26,16 +26,16 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class DropUser extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { - Connector conn = env.getInstance().getConnector(WalkingSecurity.get(state,env).getSysUserName(), WalkingSecurity.get(state,env).getSysToken()); - - String tableUserName = WalkingSecurity.get(state,env).getTabUserName(); - - boolean exists = WalkingSecurity.get(state,env).userExists(tableUserName); - boolean hasPermission = WalkingSecurity.get(state,env).canDropUser(WalkingSecurity.get(state,env).getSysCredentials(), tableUserName); - + Connector conn = env.getInstance().getConnector(WalkingSecurity.get(state, env).getSysUserName(), WalkingSecurity.get(state, env).getSysToken()); + + String tableUserName = WalkingSecurity.get(state, env).getTabUserName(); + + boolean exists = WalkingSecurity.get(state, env).userExists(tableUserName); + boolean hasPermission = WalkingSecurity.get(state, env).canDropUser(WalkingSecurity.get(state, env).getSysCredentials(), tableUserName); + try { conn.securityOperations().dropLocalUser(tableUserName); } catch (AccumuloSecurityException ae) { @@ -46,11 +46,11 @@ public class DropUser extends Test { else { if (exists) { env.getConnector().securityOperations().dropLocalUser(tableUserName); - WalkingSecurity.get(state,env).dropUser(tableUserName); + WalkingSecurity.get(state, env).dropUser(tableUserName); } return; } - + case USER_DOESNT_EXIST: if (exists) throw new AccumuloException("Got user DNE exception when user should exists.", ae); @@ -60,7 +60,7 @@ public class DropUser extends Test { throw new AccumuloException("Got unexpected exception", ae); } } - WalkingSecurity.get(state,env).dropUser(tableUserName); + WalkingSecurity.get(state, env).dropUser(tableUserName); Thread.sleep(1000); if (!hasPermission) throw new AccumuloException("Didn't get Security Exception when we should have"); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityFixture.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityFixture.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityFixture.java index 9ce5bfb..915eca0 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityFixture.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityFixture.java @@ -24,24 +24,24 @@ import org.apache.accumulo.core.client.security.tokens.PasswordToken; import org.apache.accumulo.core.security.Authorizations; import org.apache.accumulo.core.security.SystemPermission; import org.apache.accumulo.core.security.TablePermission; -import org.apache.accumulo.test.randomwalk.Fixture; import org.apache.accumulo.test.randomwalk.Environment; +import org.apache.accumulo.test.randomwalk.Fixture; import org.apache.accumulo.test.randomwalk.State; public class SecurityFixture extends Fixture { - + @Override public void setUp(State state, Environment env) throws Exception { String secTableName, systemUserName, tableUserName, secNamespaceName; Connector conn = env.getConnector(); - + String hostname = InetAddress.getLocalHost().getHostName().replaceAll("[-.]", "_"); - + systemUserName = String.format("system_%s", hostname); tableUserName = String.format("table_%s", hostname); secTableName = String.format("security_%s", hostname); secNamespaceName = String.format("securityNs_%s", hostname); - + if (conn.tableOperations().exists(secTableName)) conn.tableOperations().delete(secTableName); Set<String> users = conn.securityOperations().listLocalUsers(); @@ -49,63 +49,63 @@ public class SecurityFixture extends Fixture { conn.securityOperations().dropLocalUser(tableUserName); if (users.contains(systemUserName)) conn.securityOperations().dropLocalUser(systemUserName); - + PasswordToken sysUserPass = new PasswordToken("sysUser"); conn.securityOperations().createLocalUser(systemUserName, sysUserPass); - - WalkingSecurity.get(state,env).setTableName(secTableName); - WalkingSecurity.get(state,env).setNamespaceName(secNamespaceName); + + WalkingSecurity.get(state, env).setTableName(secTableName); + WalkingSecurity.get(state, env).setNamespaceName(secNamespaceName); state.set("rootUserPass", env.getToken()); - - WalkingSecurity.get(state,env).setSysUserName(systemUserName); - WalkingSecurity.get(state,env).createUser(systemUserName, sysUserPass); - - WalkingSecurity.get(state,env).changePassword(tableUserName, new PasswordToken(new byte[0])); - - WalkingSecurity.get(state,env).setTabUserName(tableUserName); - + + WalkingSecurity.get(state, env).setSysUserName(systemUserName); + WalkingSecurity.get(state, env).createUser(systemUserName, sysUserPass); + + WalkingSecurity.get(state, env).changePassword(tableUserName, new PasswordToken(new byte[0])); + + WalkingSecurity.get(state, env).setTabUserName(tableUserName); + for (TablePermission tp : TablePermission.values()) { - WalkingSecurity.get(state,env).revokeTablePermission(systemUserName, secTableName, tp); - WalkingSecurity.get(state,env).revokeTablePermission(tableUserName, secTableName, tp); + WalkingSecurity.get(state, env).revokeTablePermission(systemUserName, secTableName, tp); + WalkingSecurity.get(state, env).revokeTablePermission(tableUserName, secTableName, tp); } for (SystemPermission sp : SystemPermission.values()) { - WalkingSecurity.get(state,env).revokeSystemPermission(systemUserName, sp); - WalkingSecurity.get(state,env).revokeSystemPermission(tableUserName, sp); + WalkingSecurity.get(state, env).revokeSystemPermission(systemUserName, sp); + WalkingSecurity.get(state, env).revokeSystemPermission(tableUserName, sp); } - WalkingSecurity.get(state,env).changeAuthorizations(tableUserName, new Authorizations()); + WalkingSecurity.get(state, env).changeAuthorizations(tableUserName, new Authorizations()); } - + @Override public void tearDown(State state, Environment env) throws Exception { log.debug("One last validate"); Validate.validate(state, env, log); Connector conn = env.getConnector(); - - if (WalkingSecurity.get(state,env).getTableExists()) { - String secTableName = WalkingSecurity.get(state,env).getTableName(); + + if (WalkingSecurity.get(state, env).getTableExists()) { + String secTableName = WalkingSecurity.get(state, env).getTableName(); log.debug("Dropping tables: " + secTableName); - + conn.tableOperations().delete(secTableName); } - - if (WalkingSecurity.get(state,env).getNamespaceExists()) { - String secNamespaceName = WalkingSecurity.get(state,env).getNamespaceName(); + + if (WalkingSecurity.get(state, env).getNamespaceExists()) { + String secNamespaceName = WalkingSecurity.get(state, env).getNamespaceName(); log.debug("Dropping namespace: " + secNamespaceName); - + conn.namespaceOperations().delete(secNamespaceName); } - - if (WalkingSecurity.get(state,env).userExists(WalkingSecurity.get(state,env).getTabUserName())) { - String tableUserName = WalkingSecurity.get(state,env).getTabUserName(); + + if (WalkingSecurity.get(state, env).userExists(WalkingSecurity.get(state, env).getTabUserName())) { + String tableUserName = WalkingSecurity.get(state, env).getTabUserName(); log.debug("Dropping user: " + tableUserName); - + conn.securityOperations().dropLocalUser(tableUserName); } - String systemUserName = WalkingSecurity.get(state,env).getSysUserName(); + String systemUserName = WalkingSecurity.get(state, env).getSysUserName(); log.debug("Dropping user: " + systemUserName); conn.securityOperations().dropLocalUser(systemUserName); WalkingSecurity.clearInstance(); - + // Allow user drops to propagate, in case a new security test starts Thread.sleep(2000); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityHelper.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityHelper.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityHelper.java index ba1893f..f106dd5 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityHelper.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityHelper.java @@ -32,150 +32,150 @@ import org.apache.log4j.Logger; public class SecurityHelper { private static final Logger log = Logger.getLogger(SecurityHelper.class); - + private static final String tableName = "secTableName"; private static final String masterName = "sysUserName"; private static final String tUserName = "tabUserName"; - + private static final String masterPass = "sysUserPass"; private static final String tUserPass = "tabUserPass"; - + private static final String tUserExists = "tabUserExists"; private static final String tableExists = "secTableExists"; - + private static final String masterConn = "sysUserConn"; - + private static final String authsMap = "authorizationsCountMap"; private static final String lastKey = "lastMutationKey"; private static final String filesystem = "securityFileSystem"; - + public static String getTableName(State state) { return state.getString(tableName); } - + public static void setTableName(State state, String tName) { state.set(tableName, tName); } - + public static String getSysUserName(State state) { return state.getString(masterName); } - + public static void setSysUserName(State state, String sysUserName) { state.set(masterName, sysUserName); } - + public static String getTabUserName(State state) { return state.getString(tUserName); } - + public static void setTabUserName(State state, String tabUserName) { state.set(tUserName, tabUserName); } - + public static byte[] getSysUserPass(State state) { return (byte[]) state.get(masterPass); } - + public static void setSysUserPass(State state, byte[] sysUserPass) { log.debug("Setting system user pass to " + new String(sysUserPass, UTF_8)); state.set(masterPass, sysUserPass); state.set(masterPass + "time", System.currentTimeMillis()); - + } - + public static boolean sysUserPassTransient(State state) { return System.currentTimeMillis() - state.getLong(masterPass + "time") < 1000; } - + public static byte[] getTabUserPass(State state) { return (byte[]) state.get(tUserPass); } - + public static void setTabUserPass(State state, byte[] tabUserPass) { log.debug("Setting table user pass to " + new String(tabUserPass, UTF_8)); state.set(tUserPass, tabUserPass); state.set(tUserPass + "time", System.currentTimeMillis()); } - + public static boolean tabUserPassTransient(State state) { return System.currentTimeMillis() - state.getLong(tUserPass + "time") < 1000; } - + public static boolean getTabUserExists(State state) { return Boolean.parseBoolean(state.getString(tUserExists)); } - + public static void setTabUserExists(State state, boolean exists) { state.set(tUserExists, Boolean.toString(exists)); } - + public static boolean getTableExists(State state) { return Boolean.parseBoolean(state.getString(tableExists)); } - + public static void setTableExists(State state, boolean exists) { state.set(tableExists, Boolean.toString(exists)); } - + public static Connector getSystemConnector(State state) { return (Connector) state.get(masterConn); } - + public static void setSystemConnector(State state, Connector conn) { state.set(masterConn, conn); } - + public static boolean getTabPerm(State state, String userName, TablePermission tp) { return Boolean.parseBoolean(state.getString("Tab" + userName + tp.name())); } - + public static void setTabPerm(State state, String userName, TablePermission tp, boolean value) { log.debug((value ? "Gave" : "Took") + " the table permission " + tp.name() + (value ? " to" : " from") + " user " + userName); state.set("Tab" + userName + tp.name(), Boolean.toString(value)); if (tp.equals(TablePermission.READ) || tp.equals(TablePermission.WRITE)) state.set("Tab" + userName + tp.name() + "time", System.currentTimeMillis()); - + } - + public static boolean getSysPerm(State state, String userName, SystemPermission tp) { return Boolean.parseBoolean(state.getString("Sys" + userName + tp.name())); } - + public static void setSysPerm(State state, String userName, SystemPermission tp, boolean value) { log.debug((value ? "Gave" : "Took") + " the system permission " + tp.name() + (value ? " to" : " from") + " user " + userName); state.set("Sys" + userName + tp.name(), Boolean.toString(value)); } - + public static Authorizations getUserAuths(State state, String target) { return (Authorizations) state.get(target + "_auths"); } - + public static void setUserAuths(State state, String target, Authorizations auths) { state.set(target + "_auths", auths); } - + @SuppressWarnings("unchecked") public static Map<String,Integer> getAuthsMap(State state) { return (Map<String,Integer>) state.get(authsMap); } - + public static void setAuthsMap(State state, Map<String,Integer> map) { state.set(authsMap, map); } - + public static String[] getAuthsArray() { return new String[] {"Fishsticks", "PotatoSkins", "Ribs", "Asparagus", "Paper", "Towels", "Lint", "Brush", "Celery"}; } - + public static String getLastKey(State state) { return state.getString(lastKey); } - + public static void setLastKey(State state, String key) { state.set(lastKey, key); } - + public static void increaseAuthMap(State state, String s, int increment) { Integer curVal = getAuthsMap(state).get(s); if (curVal == null) { @@ -184,7 +184,7 @@ public class SecurityHelper { } curVal += increment; } - + public static FileSystem getFs(State state) { FileSystem fs = null; try { @@ -201,7 +201,7 @@ public class SecurityHelper { } return fs; } - + public static boolean inAmbiguousZone(State state, String userName, TablePermission tp) { if (tp.equals(TablePermission.READ) || tp.equals(TablePermission.WRITE)) { Long setTime = (Long) state.get("Tab" + userName + tp.name() + "time"); @@ -210,5 +210,5 @@ public class SecurityHelper { } return false; } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SetAuths.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SetAuths.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SetAuths.java index e20367d..e80e475 100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SetAuths.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SetAuths.java @@ -30,33 +30,34 @@ import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; public class SetAuths extends Test { - + @Override public void visit(State state, Environment env, Properties props) throws Exception { String authsString = props.getProperty("auths", "_random"); - + String targetUser = props.getProperty("system"); String target; String authPrincipal; AuthenticationToken authToken; if ("table".equals(targetUser)) { - target = WalkingSecurity.get(state,env).getTabUserName(); - authPrincipal = WalkingSecurity.get(state,env).getSysUserName(); - authToken = WalkingSecurity.get(state,env).getSysToken(); + target = WalkingSecurity.get(state, env).getTabUserName(); + authPrincipal = WalkingSecurity.get(state, env).getSysUserName(); + authToken = WalkingSecurity.get(state, env).getSysToken(); } else { - target = WalkingSecurity.get(state,env).getSysUserName(); + target = WalkingSecurity.get(state, env).getSysUserName(); authPrincipal = env.getUserName(); authToken = env.getToken(); } Connector conn = env.getInstance().getConnector(authPrincipal, authToken); - - boolean exists = WalkingSecurity.get(state,env).userExists(target); - boolean hasPermission = WalkingSecurity.get(state,env).canChangeAuthorizations(new Credentials(authPrincipal, authToken).toThrift(env.getInstance()), target); - + + boolean exists = WalkingSecurity.get(state, env).userExists(target); + boolean hasPermission = WalkingSecurity.get(state, env).canChangeAuthorizations(new Credentials(authPrincipal, authToken).toThrift(env.getInstance()), + target); + Authorizations auths; if (authsString.equals("_random")) { - String[] possibleAuths = WalkingSecurity.get(state,env).getAuthsArray(); - + String[] possibleAuths = WalkingSecurity.get(state, env).getAuthsArray(); + Random r = new Random(); int i = r.nextInt(possibleAuths.length); String[] authSet = new String[i]; @@ -72,7 +73,7 @@ public class SetAuths extends Test { } else { auths = new Authorizations(authsString.split(",")); } - + try { conn.securityOperations().changeUserAuthorizations(target, auths); } catch (AccumuloSecurityException ae) { @@ -91,9 +92,9 @@ public class SetAuths extends Test { throw new AccumuloException("Got unexpected exception", ae); } } - WalkingSecurity.get(state,env).changeAuthorizations(target, auths); + WalkingSecurity.get(state, env).changeAuthorizations(target, auths); if (!hasPermission) throw new AccumuloException("Didn't get Security Exception when we should have"); } - + }