Modified: accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/MetadataTable.java URL: http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/MetadataTable.java?rev=1438354&r1=1438353&r2=1438354&view=diff ============================================================================== --- accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/MetadataTable.java (original) +++ accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/MetadataTable.java Fri Jan 25 07:04:25 2013 @@ -61,7 +61,7 @@ import org.apache.accumulo.core.data.Par import org.apache.accumulo.core.data.Range; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.file.FileUtil; -import org.apache.accumulo.core.security.thrift.AuthInfo; +import org.apache.accumulo.core.security.tokens.InstanceTokenWrapper; import org.apache.accumulo.core.tabletserver.thrift.ConstraintViolationException; import org.apache.accumulo.core.tabletserver.thrift.NotServingTabletException; import org.apache.accumulo.core.util.CachedConfiguration; @@ -94,7 +94,7 @@ import org.apache.zookeeper.KeeperExcept public class MetadataTable extends org.apache.accumulo.core.util.MetadataTable { private static final Text EMPTY_TEXT = new Text(); - private static Map<AuthInfo,Writer> metadata_tables = new HashMap<AuthInfo,Writer>(); + private static Map<InstanceTokenWrapper,Writer> metadata_tables = new HashMap<InstanceTokenWrapper,Writer>(); private static final Logger log = Logger.getLogger(MetadataTable.class); private static final int SAVE_ROOT_TABLET_RETRIES = 3; @@ -103,7 +103,7 @@ public class MetadataTable extends org.a } - public synchronized static Writer getMetadataTable(AuthInfo credentials) { + public synchronized static Writer getMetadataTable(InstanceTokenWrapper credentials) { Writer metadataTable = metadata_tables.get(credentials); if (metadataTable == null) { metadataTable = new Writer(HdfsZooInstance.getInstance(), credentials, Constants.METADATA_TABLE_ID); @@ -116,11 +116,11 @@ public class MetadataTable extends org.a Constants.METADATA_LOCK_COLUMN.put(m, new Value(zooLock.getLockID().serialize(ZooUtil.getRoot(HdfsZooInstance.getInstance()) + "/").getBytes())); } - public static void update(AuthInfo credentials, Mutation m) { + public static void update(InstanceTokenWrapper credentials, Mutation m) { update(credentials, null, m); } - public static void update(AuthInfo credentials, ZooLock zooLock, Mutation m) { + public static void update(InstanceTokenWrapper credentials, ZooLock zooLock, Mutation m) { Writer t; t = getMetadataTable(credentials); if (zooLock != null) @@ -154,7 +154,7 @@ public class MetadataTable extends org.a * @param flushId * */ - public static void updateTabletDataFile(KeyExtent extent, String path, String mergeFile, DataFileValue dfv, String time, AuthInfo credentials, + public static void updateTabletDataFile(KeyExtent extent, String path, String mergeFile, DataFileValue dfv, String time, InstanceTokenWrapper credentials, Set<String> filesInUseByScans, String address, ZooLock zooLock, Set<String> unusedWalLogs, TServerInstance lastLocation, long flushId) { if (extent.equals(Constants.ROOT_TABLET_EXTENT)) { if (unusedWalLogs != null) { @@ -231,7 +231,7 @@ public class MetadataTable extends org.a } } - public static void updateTabletFlushID(KeyExtent extent, long flushID, AuthInfo credentials, ZooLock zooLock) { + public static void updateTabletFlushID(KeyExtent extent, long flushID, InstanceTokenWrapper credentials, ZooLock zooLock) { if (!extent.isRootTablet()) { Mutation m = new Mutation(extent.getMetadataEntry()); Constants.METADATA_FLUSH_COLUMN.put(m, new Value((flushID + "").getBytes())); @@ -239,7 +239,7 @@ public class MetadataTable extends org.a } } - public static void updateTabletCompactID(KeyExtent extent, long compactID, AuthInfo credentials, ZooLock zooLock) { + public static void updateTabletCompactID(KeyExtent extent, long compactID, InstanceTokenWrapper credentials, ZooLock zooLock) { if (!extent.isRootTablet()) { Mutation m = new Mutation(extent.getMetadataEntry()); Constants.METADATA_COMPACT_COLUMN.put(m, new Value((compactID + "").getBytes())); @@ -247,7 +247,7 @@ public class MetadataTable extends org.a } } - public static void updateTabletDataFile(long tid, KeyExtent extent, Map<String,DataFileValue> estSizes, String time, AuthInfo credentials, ZooLock zooLock) { + public static void updateTabletDataFile(long tid, KeyExtent extent, Map<String,DataFileValue> estSizes, String time, InstanceTokenWrapper credentials, ZooLock zooLock) { Mutation m = new Mutation(extent.getMetadataEntry()); byte[] tidBytes = Long.toString(tid).getBytes(); @@ -260,7 +260,7 @@ public class MetadataTable extends org.a update(credentials, zooLock, m); } - public static void addTablet(KeyExtent extent, String path, AuthInfo credentials, char timeType, ZooLock lock) { + public static void addTablet(KeyExtent extent, String path, InstanceTokenWrapper credentials, char timeType, ZooLock lock) { Mutation m = extent.getPrevRowUpdateMutation(); Constants.METADATA_DIRECTORY_COLUMN.put(m, new Value(path.getBytes())); @@ -269,7 +269,7 @@ public class MetadataTable extends org.a update(credentials, lock, m); } - public static void updateTabletPrevEndRow(KeyExtent extent, AuthInfo credentials) { + public static void updateTabletPrevEndRow(KeyExtent extent, InstanceTokenWrapper credentials) { Mutation m = extent.getPrevRowUpdateMutation(); // update(credentials, m); } @@ -323,7 +323,7 @@ public class MetadataTable extends org.a return results; } - public static boolean getBatchFromRootTablet(AccumuloConfiguration conf, AuthInfo credentials, Text startRow, SortedMap<Key,Value> results, + public static boolean getBatchFromRootTablet(AccumuloConfiguration conf, InstanceTokenWrapper credentials, Text startRow, SortedMap<Key,Value> results, SortedSet<Column> columns, boolean skipStartRow, int size) throws AccumuloSecurityException { while (true) { try { @@ -354,7 +354,7 @@ public class MetadataTable extends org.a return false; } - public static SortedMap<String,DataFileValue> getDataFileSizes(KeyExtent extent, AuthInfo credentials) { + public static SortedMap<String,DataFileValue> getDataFileSizes(KeyExtent extent, InstanceTokenWrapper credentials) { TreeMap<String,DataFileValue> sizes = new TreeMap<String,DataFileValue>(); Scanner mdScanner = new ScannerImpl(HdfsZooInstance.getInstance(), credentials, Constants.METADATA_TABLE_ID, Constants.NO_AUTHS); @@ -378,7 +378,7 @@ public class MetadataTable extends org.a } public static void addNewTablet(KeyExtent extent, String path, TServerInstance location, Map<String,DataFileValue> datafileSizes, - Map<String,Long> bulkLoadedFiles, AuthInfo credentials, String time, long lastFlushID, long lastCompactID, ZooLock zooLock) { + Map<String,Long> bulkLoadedFiles, InstanceTokenWrapper credentials, String time, long lastFlushID, long lastCompactID, ZooLock zooLock) { Mutation m = extent.getPrevRowUpdateMutation(); Constants.METADATA_DIRECTORY_COLUMN.put(m, new Value(path.getBytes())); @@ -405,7 +405,7 @@ public class MetadataTable extends org.a update(credentials, zooLock, m); } - public static void splitTablet(KeyExtent extent, Text oldPrevEndRow, double splitRatio, AuthInfo credentials, ZooLock zooLock) { + public static void splitTablet(KeyExtent extent, Text oldPrevEndRow, double splitRatio, InstanceTokenWrapper credentials, ZooLock zooLock) { Mutation m = extent.getPrevRowUpdateMutation(); // Constants.METADATA_SPLIT_RATIO_COLUMN.put(m, new Value(Double.toString(splitRatio).getBytes())); @@ -415,7 +415,7 @@ public class MetadataTable extends org.a update(credentials, zooLock, m); } - public static void finishSplit(Text metadataEntry, Map<String,DataFileValue> datafileSizes, List<String> highDatafilesToRemove, AuthInfo credentials, + public static void finishSplit(Text metadataEntry, Map<String,DataFileValue> datafileSizes, List<String> highDatafilesToRemove, InstanceTokenWrapper credentials, ZooLock zooLock) { Mutation m = new Mutation(metadataEntry); Constants.METADATA_SPLIT_RATIO_COLUMN.putDelete(m); @@ -433,18 +433,18 @@ public class MetadataTable extends org.a update(credentials, zooLock, m); } - public static void finishSplit(KeyExtent extent, Map<String,DataFileValue> datafileSizes, List<String> highDatafilesToRemove, AuthInfo credentials, + public static void finishSplit(KeyExtent extent, Map<String,DataFileValue> datafileSizes, List<String> highDatafilesToRemove, InstanceTokenWrapper credentials, ZooLock zooLock) { finishSplit(extent.getMetadataEntry(), datafileSizes, highDatafilesToRemove, credentials, zooLock); } public static void replaceDatafiles(KeyExtent extent, Set<String> datafilesToDelete, Set<String> scanFiles, String path, Long compactionId, - DataFileValue size, AuthInfo credentials, String address, TServerInstance lastLocation, ZooLock zooLock) { + DataFileValue size, InstanceTokenWrapper credentials, String address, TServerInstance lastLocation, ZooLock zooLock) { replaceDatafiles(extent, datafilesToDelete, scanFiles, path, compactionId, size, credentials, address, lastLocation, zooLock, true); } public static void replaceDatafiles(KeyExtent extent, Set<String> datafilesToDelete, Set<String> scanFiles, String path, Long compactionId, - DataFileValue size, AuthInfo credentials, String address, TServerInstance lastLocation, ZooLock zooLock, boolean insertDeleteFlags) { + DataFileValue size, InstanceTokenWrapper credentials, String address, TServerInstance lastLocation, ZooLock zooLock, boolean insertDeleteFlags) { if (insertDeleteFlags) { // add delete flags for those paths before the data file reference is removed @@ -476,7 +476,7 @@ public class MetadataTable extends org.a update(credentials, zooLock, m); } - public static void addDeleteEntries(KeyExtent extent, Set<String> datafilesToDelete, AuthInfo credentials) { + public static void addDeleteEntries(KeyExtent extent, Set<String> datafilesToDelete, InstanceTokenWrapper credentials) { String tableId = extent.getTableId().toString(); @@ -500,7 +500,7 @@ public class MetadataTable extends org.a return delFlag; } - public static void removeScanFiles(KeyExtent extent, Set<String> scanFiles, AuthInfo credentials, ZooLock zooLock) { + public static void removeScanFiles(KeyExtent extent, Set<String> scanFiles, InstanceTokenWrapper credentials, ZooLock zooLock) { Mutation m = new Mutation(extent.getMetadataEntry()); for (String pathToRemove : scanFiles) @@ -509,16 +509,16 @@ public class MetadataTable extends org.a update(credentials, zooLock, m); } - public static void getTabletAndPrevTabletKeyValues(SortedMap<Key,Value> tkv, KeyExtent ke, List<ColumnFQ> columns, AuthInfo credentials) { + public static void getTabletAndPrevTabletKeyValues(SortedMap<Key,Value> tkv, KeyExtent ke, List<ColumnFQ> columns, InstanceTokenWrapper credentials) { getTabletAndPrevTabletKeyValues(HdfsZooInstance.getInstance(), tkv, ke, columns, credentials); } - public static SortedMap<Text,SortedMap<ColumnFQ,Value>> getTabletEntries(KeyExtent ke, List<ColumnFQ> columns, AuthInfo credentials) { + public static SortedMap<Text,SortedMap<ColumnFQ,Value>> getTabletEntries(KeyExtent ke, List<ColumnFQ> columns, InstanceTokenWrapper credentials) { return getTabletEntries(HdfsZooInstance.getInstance(), ke, columns, credentials); } private static KeyExtent fixSplit(Text table, Text metadataEntry, Text metadataPrevEndRow, Value oper, double splitRatio, TServerInstance tserver, - AuthInfo credentials, String time, long initFlushID, long initCompactID, ZooLock lock) throws AccumuloException { + InstanceTokenWrapper credentials, String time, long initFlushID, long initCompactID, ZooLock lock) throws AccumuloException { if (metadataPrevEndRow == null) // something is wrong, this should not happen... if a tablet is split, it will always have a // prev end row.... @@ -614,7 +614,7 @@ public class MetadataTable extends org.a } } - public static KeyExtent fixSplit(Text metadataEntry, SortedMap<ColumnFQ,Value> columns, TServerInstance tserver, AuthInfo credentials, ZooLock lock) + public static KeyExtent fixSplit(Text metadataEntry, SortedMap<ColumnFQ,Value> columns, TServerInstance tserver, InstanceTokenWrapper credentials, ZooLock lock) throws AccumuloException { log.warn("Incomplete split " + metadataEntry + " attempting to fix"); @@ -658,7 +658,7 @@ public class MetadataTable extends org.a return fixSplit(table, metadataEntry, metadataPrevEndRow, oper, splitRatio, tserver, credentials, time.toString(), initFlushID, initCompactID, lock); } - public static void deleteTable(String tableId, boolean insertDeletes, AuthInfo credentials, ZooLock lock) throws AccumuloException { + public static void deleteTable(String tableId, boolean insertDeletes, InstanceTokenWrapper credentials, ZooLock lock) throws AccumuloException { Scanner ms = new ScannerImpl(HdfsZooInstance.getInstance(), credentials, Constants.METADATA_TABLE_ID, Constants.NO_AUTHS); Text tableIdText = new Text(tableId); BatchWriter bw = new BatchWriterImpl(HdfsZooInstance.getInstance(), credentials, Constants.METADATA_TABLE_ID, new BatchWriterConfig().setMaxMemory(1000000) @@ -770,7 +770,7 @@ public class MetadataTable extends org.a return ZooUtil.getRoot(HdfsZooInstance.getInstance()) + Constants.ZROOT_TABLET_WALOGS; } - public static void addLogEntry(AuthInfo credentials, LogEntry entry, ZooLock zooLock) { + public static void addLogEntry(InstanceTokenWrapper credentials, LogEntry entry, ZooLock zooLock) { if (entry.extent.isRootTablet()) { String root = getZookeeperLogLocation(); while (true) { @@ -809,7 +809,7 @@ public class MetadataTable extends org.a return e; } - public static Pair<List<LogEntry>,SortedMap<String,DataFileValue>> getFileAndLogEntries(AuthInfo credentials, KeyExtent extent) throws KeeperException, + public static Pair<List<LogEntry>,SortedMap<String,DataFileValue>> getFileAndLogEntries(InstanceTokenWrapper credentials, KeyExtent extent) throws KeeperException, InterruptedException, IOException { ArrayList<LogEntry> result = new ArrayList<LogEntry>(); TreeMap<String,DataFileValue> sizes = new TreeMap<String,DataFileValue>(); @@ -852,7 +852,7 @@ public class MetadataTable extends org.a return new Pair<List<LogEntry>,SortedMap<String,DataFileValue>>(result, sizes); } - public static List<LogEntry> getLogEntries(AuthInfo credentials, KeyExtent extent) throws IOException, KeeperException, InterruptedException { + public static List<LogEntry> getLogEntries(InstanceTokenWrapper credentials, KeyExtent extent) throws IOException, KeeperException, InterruptedException { log.info("Scanning logging entries for " + extent); ArrayList<LogEntry> result = new ArrayList<LogEntry>(); if (extent.equals(Constants.ROOT_TABLET_EXTENT)) { @@ -897,7 +897,7 @@ public class MetadataTable extends org.a } } - private static Scanner getTabletLogScanner(AuthInfo credentials, KeyExtent extent) { + private static Scanner getTabletLogScanner(InstanceTokenWrapper credentials, KeyExtent extent) { Scanner scanner = new ScannerImpl(HdfsZooInstance.getInstance(), credentials, Constants.METADATA_TABLE_ID, Constants.NO_AUTHS); scanner.fetchColumnFamily(Constants.METADATA_LOG_COLUMN_FAMILY); Text start = extent.getMetadataEntry(); @@ -912,11 +912,10 @@ public class MetadataTable extends org.a Iterator<LogEntry> rootTabletEntries = null; Iterator<Entry<Key,Value>> metadataEntries = null; - LogEntryIterator(AuthInfo creds) throws IOException, KeeperException, InterruptedException { + LogEntryIterator(InstanceTokenWrapper creds) throws IOException, KeeperException, InterruptedException { rootTabletEntries = getLogEntries(creds, Constants.ROOT_TABLET_EXTENT).iterator(); try { - Scanner scanner = HdfsZooInstance.getInstance().getConnector(creds.user, creds.password) - .createScanner(Constants.METADATA_TABLE_NAME, Constants.NO_AUTHS); + Scanner scanner = HdfsZooInstance.getInstance().getConnector(creds.getToken()).createScanner(Constants.METADATA_TABLE_NAME, Constants.NO_AUTHS); scanner.fetchColumnFamily(Constants.METADATA_LOG_COLUMN_FAMILY); metadataEntries = scanner.iterator(); } catch (Exception ex) { @@ -944,7 +943,7 @@ public class MetadataTable extends org.a } } - public static Iterator<LogEntry> getLogEntries(AuthInfo creds) throws IOException, KeeperException, InterruptedException { + public static Iterator<LogEntry> getLogEntries(InstanceTokenWrapper creds) throws IOException, KeeperException, InterruptedException { return new LogEntryIterator(creds); } @@ -1209,11 +1208,11 @@ public class MetadataTable extends org.a } } - public static Map<String,Long> getBulkFilesLoaded(AuthInfo credentials, KeyExtent extent) { + public static Map<String,Long> getBulkFilesLoaded(InstanceTokenWrapper credentials, KeyExtent extent) { return getBulkFilesLoaded(credentials, extent.getMetadataEntry()); } - public static Map<String,Long> getBulkFilesLoaded(AuthInfo credentials, Text metadataRow) { + public static Map<String,Long> getBulkFilesLoaded(InstanceTokenWrapper credentials, Text metadataRow) { Map<String,Long> ret = new HashMap<String,Long>();
Modified: accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/VerifyTabletAssignments.java URL: http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/VerifyTabletAssignments.java?rev=1438354&r1=1438353&r2=1438354&view=diff ============================================================================== --- accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/VerifyTabletAssignments.java (original) +++ accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/VerifyTabletAssignments.java Fri Jan 25 07:04:25 2013 @@ -16,7 +16,6 @@ */ package org.apache.accumulo.server.util; -import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -33,7 +32,6 @@ import java.util.concurrent.TimeUnit; import org.apache.accumulo.cloudtrace.instrument.Tracer; import org.apache.accumulo.cloudtrace.thrift.TInfo; import org.apache.accumulo.core.Constants; -import org.apache.accumulo.server.cli.ClientOpts; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.Connector; @@ -48,11 +46,13 @@ import org.apache.accumulo.core.data.thr import org.apache.accumulo.core.data.thrift.TColumn; import org.apache.accumulo.core.data.thrift.TKeyExtent; import org.apache.accumulo.core.data.thrift.TRange; -import org.apache.accumulo.core.security.thrift.AuthInfo; import org.apache.accumulo.core.security.thrift.ThriftSecurityException; +import org.apache.accumulo.core.security.tokens.AccumuloToken; +import org.apache.accumulo.core.security.tokens.InstanceTokenWrapper; import org.apache.accumulo.core.tabletserver.thrift.NoSuchScanIDException; import org.apache.accumulo.core.tabletserver.thrift.TabletClientService; import org.apache.accumulo.core.util.ThriftUtil; +import org.apache.accumulo.server.cli.ClientOpts; import org.apache.accumulo.server.client.HdfsZooInstance; import org.apache.accumulo.server.conf.ServerConfiguration; import org.apache.hadoop.io.Text; @@ -92,8 +92,7 @@ public class VerifyTabletAssignments { Connector conn = opts.getConnector(); Instance inst = conn.getInstance(); - MetadataTable.getEntries(conn.getInstance(), - new AuthInfo(opts.user, ByteBuffer.wrap(opts.getPassword()), inst.getInstanceID()), tableName, false, locations, tablets); + MetadataTable.getEntries(conn.getInstance(), new InstanceTokenWrapper(opts.getWrappedToken().toThrift()), tableName, false, locations, tablets); final HashSet<KeyExtent> failures = new HashSet<KeyExtent>(); @@ -124,7 +123,7 @@ public class VerifyTabletAssignments { @Override public void run() { try { - checkTabletServer(conf.getConfiguration(), opts.user, ByteBuffer.wrap(opts.getPassword()), entry, failures); + checkTabletServer(conf.getConfiguration(), opts.getAccumuloToken(), entry, failures); } catch (Exception e) { System.err.println("Failure on ts " + entry.getKey() + " " + e.getMessage()); e.printStackTrace(); @@ -153,12 +152,12 @@ public class VerifyTabletAssignments { } } - private static void checkTabletServer(AccumuloConfiguration conf, final String user, final ByteBuffer pass, Entry<String,List<KeyExtent>> entry, + private static void checkTabletServer(AccumuloConfiguration conf, final AccumuloToken<?,?> token, Entry<String,List<KeyExtent>> entry, HashSet<KeyExtent> failures) throws ThriftSecurityException, TException, NoSuchScanIDException { TabletClientService.Iface client = ThriftUtil.getTServerClient(entry.getKey(), conf); - AuthInfo st = new AuthInfo(user, pass, HdfsZooInstance.getInstance().getInstanceID()); + InstanceTokenWrapper st = new InstanceTokenWrapper(token, HdfsZooInstance.getInstance().getInstanceID()); Map<TKeyExtent,List<TRange>> batch = new TreeMap<TKeyExtent,List<TRange>>(); for (KeyExtent keyExtent : entry.getValue()) { @@ -191,7 +190,7 @@ public class VerifyTabletAssignments { Map<String,Map<String,String>> emptyMapSMapSS = Collections.emptyMap(); List<IterInfo> emptyListIterInfo = Collections.emptyList(); List<TColumn> emptyListColumn = Collections.emptyList(); - InitialMultiScan is = client.startMultiScan(tinfo, st, batch, emptyListColumn, emptyListIterInfo, emptyMapSMapSS, Constants.NO_AUTHS.getAuthorizationsBB(), + InitialMultiScan is = client.startMultiScan(tinfo, st.toThrift(), batch, emptyListColumn, emptyListIterInfo, emptyMapSMapSS, Constants.NO_AUTHS.getAuthorizationsBB(), false); if (is.result.more) { MultiScanResult result = client.continueMultiScan(tinfo, is.scanID); Modified: accumulo/trunk/server/src/test/java/org/apache/accumulo/server/gc/TestConfirmDeletes.java URL: http://svn.apache.org/viewvc/accumulo/trunk/server/src/test/java/org/apache/accumulo/server/gc/TestConfirmDeletes.java?rev=1438354&r1=1438353&r2=1438354&view=diff ============================================================================== --- accumulo/trunk/server/src/test/java/org/apache/accumulo/server/gc/TestConfirmDeletes.java (original) +++ accumulo/trunk/server/src/test/java/org/apache/accumulo/server/gc/TestConfirmDeletes.java Fri Jan 25 07:04:25 2013 @@ -22,8 +22,6 @@ import java.util.Map.Entry; import java.util.SortedSet; import java.util.TreeSet; -import org.junit.Assert; - import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.BatchWriter; import org.apache.accumulo.core.client.BatchWriterConfig; @@ -34,10 +32,13 @@ import org.apache.accumulo.core.client.m import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Mutation; import org.apache.accumulo.core.data.Value; -import org.apache.accumulo.core.security.thrift.AuthInfo; +import org.apache.accumulo.core.security.tokens.AccumuloToken; +import org.apache.accumulo.core.security.tokens.InstanceTokenWrapper; +import org.apache.accumulo.core.security.tokens.UserPassToken; import org.apache.accumulo.core.util.CachedConfiguration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.io.Text; +import org.junit.Assert; import org.junit.Test; @@ -46,7 +47,7 @@ import org.junit.Test; */ public class TestConfirmDeletes { - AuthInfo auth = new AuthInfo("root", ByteBuffer.wrap("".getBytes()), "instance"); + AccumuloToken<?,?> auth = new UserPassToken("root", ByteBuffer.wrap("".getBytes())); SortedSet<String> newSet(String... s) { SortedSet<String> result = new TreeSet<String>(Arrays.asList(s)); @@ -99,7 +100,7 @@ public class TestConfirmDeletes { load(instance, metadata, deletes); SimpleGarbageCollector gc = new SimpleGarbageCollector(); - gc.init(fs, instance, auth, false); + gc.init(fs, instance, new InstanceTokenWrapper(auth, instance.getInstanceID()), false); SortedSet<String> candidates = gc.getCandidates(); Assert.assertEquals(expectedInitial, candidates.size()); gc.confirmDeletes(candidates); Modified: accumulo/trunk/server/src/test/java/org/apache/accumulo/server/master/TestMergeState.java URL: http://svn.apache.org/viewvc/accumulo/trunk/server/src/test/java/org/apache/accumulo/server/master/TestMergeState.java?rev=1438354&r1=1438353&r2=1438354&view=diff ============================================================================== --- accumulo/trunk/server/src/test/java/org/apache/accumulo/server/master/TestMergeState.java (original) +++ accumulo/trunk/server/src/test/java/org/apache/accumulo/server/master/TestMergeState.java Fri Jan 25 07:04:25 2013 @@ -17,7 +17,6 @@ package org.apache.accumulo.server.master; import java.net.InetSocketAddress; -import java.nio.ByteBuffer; import java.util.Collection; import java.util.Collections; import java.util.Set; @@ -35,7 +34,8 @@ import org.apache.accumulo.core.data.Key import org.apache.accumulo.core.data.Mutation; import org.apache.accumulo.core.data.Range; import org.apache.accumulo.core.data.Value; -import org.apache.accumulo.core.security.thrift.AuthInfo; +import org.apache.accumulo.core.security.tokens.InstanceTokenWrapper; +import org.apache.accumulo.core.security.tokens.UserPassToken; import org.apache.accumulo.server.master.state.Assignment; import org.apache.accumulo.server.master.state.CurrentState; import org.apache.accumulo.server.master.state.MergeInfo; @@ -88,7 +88,7 @@ public class TestMergeState { @Test public void test() throws Exception { Instance instance = new MockInstance(); - Connector connector = instance.getConnector("root", ""); + Connector connector = instance.getConnector(new UserPassToken("root","")); BatchWriter bw = connector.createBatchWriter("!METADATA", new BatchWriterConfig()); // Create a fake METADATA table with these splits @@ -112,7 +112,7 @@ public class TestMergeState { // Read out the TabletLocationStates MockCurrentState state = new MockCurrentState(new MergeInfo(new KeyExtent(tableId, new Text("p"), new Text("e")), MergeInfo.Operation.MERGE)); - AuthInfo auths = new AuthInfo("root", ByteBuffer.wrap("".getBytes()), "instance"); + InstanceTokenWrapper auths = new InstanceTokenWrapper(new UserPassToken("root", ""), "instance"); // Verify the tablet state: hosted, and count MetaDataStateStore metaDataStateStore = new MetaDataStateStore(instance, auths, state); Propchange: accumulo/trunk/src/ ------------------------------------------------------------------------------ Merged /accumulo/branches/ACCUMULO-259/src:r1343822-1438343 Modified: accumulo/trunk/test/src/main/java/org/apache/accumulo/test/MiniAccumuloCluster.java URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/main/java/org/apache/accumulo/test/MiniAccumuloCluster.java?rev=1438354&r1=1438353&r2=1438354&view=diff ============================================================================== --- accumulo/trunk/test/src/main/java/org/apache/accumulo/test/MiniAccumuloCluster.java (original) +++ accumulo/trunk/test/src/main/java/org/apache/accumulo/test/MiniAccumuloCluster.java Fri Jan 25 07:04:25 2013 @@ -309,7 +309,7 @@ public class MiniAccumuloCluster { // sleep a little bit to let zookeeper come up before calling init, seems to work better UtilWaitThread.sleep(250); - Process initProcess = exec(Initialize.class, "--instance-name", INSTANCE_NAME, "--password", config.getRootPassword()); + Process initProcess = exec(Initialize.class, "--instance-name", INSTANCE_NAME, "--password", config.getRootPassword(), "--username", "root"); int ret = initProcess.waitFor(); if (ret != 0) { throw new RuntimeException("Initialize process returned " + ret); Modified: accumulo/trunk/test/src/test/java/org/apache/accumulo/test/MiniAccumuloClusterTest.java URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/test/java/org/apache/accumulo/test/MiniAccumuloClusterTest.java?rev=1438354&r1=1438353&r2=1438354&view=diff ============================================================================== --- accumulo/trunk/test/src/test/java/org/apache/accumulo/test/MiniAccumuloClusterTest.java (original) +++ accumulo/trunk/test/src/test/java/org/apache/accumulo/test/MiniAccumuloClusterTest.java Fri Jan 25 07:04:25 2013 @@ -36,6 +36,7 @@ import org.apache.accumulo.core.iterator import org.apache.accumulo.core.security.Authorizations; import org.apache.accumulo.core.security.ColumnVisibility; import org.apache.accumulo.core.security.TablePermission; +import org.apache.accumulo.core.security.tokens.UserPassToken; import org.apache.commons.io.FileUtils; import org.apache.log4j.Level; import org.apache.log4j.Logger; @@ -67,11 +68,12 @@ public class MiniAccumuloClusterTest { @Test(timeout = 30000) public void test() throws Exception { - Connector conn = new ZooKeeperInstance(accumulo.getInstanceName(), accumulo.getZookeepers()).getConnector("root", "superSecret"); + Connector conn = new ZooKeeperInstance(accumulo.getInstanceName(), accumulo.getZookeepers()).getConnector(new UserPassToken("root", "superSecret")); conn.tableOperations().create("table1"); - conn.securityOperations().createUser("user1", "pass1".getBytes()); + UserPassToken upt = new UserPassToken("user1", "pass1"); + conn.securityOperations().createUser(upt); conn.securityOperations().changeUserAuthorizations("user1", new Authorizations("A", "B")); conn.securityOperations().grantTablePermission("user1", "table1", TablePermission.WRITE); conn.securityOperations().grantTablePermission("user1", "table1", TablePermission.READ); @@ -82,7 +84,7 @@ public class MiniAccumuloClusterTest { conn.tableOperations().attachIterator("table1", is); - Connector uconn = new ZooKeeperInstance(accumulo.getInstanceName(), accumulo.getZookeepers()).getConnector("user1", "pass1"); + Connector uconn = new ZooKeeperInstance(accumulo.getInstanceName(), accumulo.getZookeepers()).getConnector(upt); BatchWriter bw = uconn.createBatchWriter("table1", new BatchWriterConfig()); @@ -138,7 +140,7 @@ public class MiniAccumuloClusterTest { @Test(timeout = 30000) public void testPerTableClasspath() throws Exception { - Connector conn = new ZooKeeperInstance(accumulo.getInstanceName(), accumulo.getZookeepers()).getConnector("root", "superSecret"); + Connector conn = new ZooKeeperInstance(accumulo.getInstanceName(), accumulo.getZookeepers()).getConnector(new UserPassToken("root", "superSecret")); conn.tableOperations().create("table2"); @@ -184,7 +186,7 @@ public class MiniAccumuloClusterTest { @AfterClass public static void tearDownMiniCluster() throws Exception { accumulo.stop(); - folder.delete(); +// folder.delete(); } } Modified: accumulo/trunk/test/system/auto/TestUtils.py URL: http://svn.apache.org/viewvc/accumulo/trunk/test/system/auto/TestUtils.py?rev=1438354&r1=1438353&r2=1438354&view=diff ============================================================================== --- accumulo/trunk/test/system/auto/TestUtils.py (original) +++ accumulo/trunk/test/system/auto/TestUtils.py Fri Jan 25 07:04:25 2013 @@ -274,7 +274,7 @@ class TestUtilsMixin: self.wait(self.runOn(host, ['hadoop', 'fs', '-rmr', ACCUMULO_DIR])) handle = self.runOn(host, [self.accumulo_sh(), 'init','--clear-instance-name'], stdin=PIPE) - out, err = handle.communicate(INSTANCE_NAME+"\n"+ROOT_PASSWORD + "\n" + ROOT_PASSWORD+"\n") + out, err = handle.communicate(INSTANCE_NAME+"\nroot\n"+ROOT_PASSWORD + "\n" + ROOT_PASSWORD+"\n") self.processResult(out, err, handle.returncode) def setup_logging(self): Modified: accumulo/trunk/test/system/randomwalk/conf/modules/Security.xml URL: http://svn.apache.org/viewvc/accumulo/trunk/test/system/randomwalk/conf/modules/Security.xml?rev=1438354&r1=1438353&r2=1438354&view=diff ============================================================================== --- accumulo/trunk/test/system/randomwalk/conf/modules/Security.xml (original) +++ accumulo/trunk/test/system/randomwalk/conf/modules/Security.xml Fri Jan 25 07:04:25 2013 @@ -1,232 +1,224 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> +<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor + license agreements. See the NOTICE file distributed with this work for additional + information regarding copyright ownership. The ASF licenses this file to + You under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of + the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required + by applicable law or agreed to in writing, software distributed under the + License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS + OF ANY KIND, either express or implied. See the License for the specific + language governing permissions and limitations under the License. --> <module> -<package prefix="security" value="org.apache.accumulo.server.test.randomwalk.security"/> + <package prefix="security" + value="org.apache.accumulo.server.test.randomwalk.security" /> -<fixture id="security.SecurityFixture"/> + <fixture id="security.SecurityFixture" /> -<init id="dummy.NoUserNoTable" maxHops="1000000"/> + <init id="dummy.NoUserNoTable" maxHops="1000000" /> -<node id="security.CreateUser"> - <edge id="alias.last" weight="1"/> -</node> - -<node id="CreateUserYesTable" src="security.CreateUser"> - <edge id="dummy.YesUserYesTable" weight="1"/> -</node> - -<node id="CreateUserNoTable" src="security.CreateUser"> - <edge id="dummy.YesUserNoTable" weight="1"/> -</node> - -<node id="security.DropUser"> - <edge id="alias.last" weight="1"/> -</node> - -<node id="DropUserNoTable" src="security.DropUser"> - <edge id="dummy.NoUserNoTable" weight="1"/> -</node> - -<node id="DropUserYesTable" src="security.DropUser"> - <edge id="dummy.NoUserYesTable" weight="1"/> -</node> - -<node id="security.CreateTable"> - <edge id="alias.last" weight="1"/> -</node> - -<node id="NoUserCreateTable" src="security.CreateTable"> - <edge id="dummy.NoUserYesTable" weight="1"/> -</node> - -<node id="YesUserCreateTable" src="security.CreateTable"> - <edge id="dummy.YesUserYesTable" weight="1"/> -</node> - -<node id="security.DropTable"> - <edge id="alias.last" weight="1"/> -</node> - -<node id="NoUserDropTable" src="security.DropTable"> - <edge id="dummy.NoUserNoTable" weight="1"/> -</node> - -<node id="YesUserDropTable" src="security.DropTable"> - <edge id="dummy.YesUserNoTable" weight="1"/> -</node> - -<node id="security.AlterTable"> - <edge id="alias.last" weight="1"/> -</node> - -<node id="RandomAuths" src="security.SetAuths"> - <property key="auths" value="_random"/> - <edge id="alias.last" weight="1"/> -</node> - -<node id="SystemChangeSystemPass" src="security.ChangePass"> - <property key="target" value="system"/> - <property key="source" value="system"/> - <edge id="alias.last" weight="1"/> -</node> - -<node id="SystemChangeTablePass" src="security.ChangePass"> - <property key="target" value="table"/> - <property key="source" value="system"/> - <edge id="alias.last" weight="1"/> -</node> - -<node id="TableChangeTablePass" src="security.ChangePass"> - <property key="target" value="table"/> - <property key="source" value="table"/> - <edge id="alias.last" weight="1"/> -</node> - -<node id="AuthenticateSystemRight" src="security.Authenticate"> - <property key="target" value="system"/> - <property key="valid" value="true"/> - <edge id="alias.last" weight="1"/> -</node> - -<node id="AuthenticateSystemWrong" src="security.Authenticate"> - <property key="target" value="system"/> - <property key="valid" value="false"/> - <edge id="alias.last" weight="1"/> -</node> - -<node id="AuthenticateTableRight" src="security.Authenticate"> - <property key="target" value="table"/> - <property key="valid" value="true"/> - <edge id="alias.last" weight="1"/> -</node> - -<node id="AuthenticateTableWrong" src="security.Authenticate"> - <property key="target" value="table"/> - <property key="valid" value="false"/> - <edge id="alias.last" weight="1"/> -</node> - -<node id="security.Validate"> - <edge id="alias.last" weight="1"/> -</node> - -<node id="security.AlterSystemPerm"> - <edge id="alias.last" weight="1"/> -</node> - -<node id="security.AlterTablePerm"> - <edge id="alias.last" weight="1"/> -</node> - -<node id="security.TableOp"> - <edge id="alias.last" weight="1"/> -</node> - -<node id="dummy.NoUserNoTable"> - <alias name="last"/> - <property key="print" value="DEBUG"/> - <edge id="CreateUserNoTable" weight="40"/> - <edge id="security.DropUser" weight="10"/> - <edge id="NoUserCreateTable" weight="40"/> - <edge id="security.DropTable" weight="10"/> - <edge id="security.AlterTable" weight="10"/> - <edge id="SystemChangeSystemPass" weight="60"/> - <edge id="SystemChangeTablePass" weight="10"/> - <edge id="TableChangeTablePass" weight="10"/> - <edge id="AuthenticateSystemRight" weight="50"/> - <edge id="AuthenticateSystemWrong" weight="50"/> - <edge id="AuthenticateTableRight" weight="10"/> - <edge id="AuthenticateTableWrong" weight="10"/> - <edge id="security.Validate" weight="20"/> - <edge id="RandomAuths" weight="10"/> - <edge id="security.AlterSystemPerm" weight="60"/> - <edge id="security.AlterTablePerm" weight="10"/> - <edge id="security.TableOp" weight="10"/> -</node> - -<node id="dummy.YesUserNoTable"> - <alias name="last"/> - <property key="print" value="DEBUG"/> - <edge id="security.CreateUser" weight="10"/> - <edge id="DropUserNoTable" weight="30"/> - <edge id="YesUserCreateTable" weight="40"/> - <edge id="security.DropTable" weight="10"/> - <edge id="security.AlterTable" weight="10"/> - <edge id="SystemChangeSystemPass" weight="60"/> - <edge id="SystemChangeTablePass" weight="60"/> - <edge id="TableChangeTablePass" weight="60"/> - <edge id="AuthenticateSystemRight" weight="50"/> - <edge id="AuthenticateSystemWrong" weight="50"/> - <edge id="AuthenticateTableRight" weight="50"/> - <edge id="AuthenticateTableWrong" weight="50"/> - <edge id="security.Validate" weight="20"/> - <edge id="RandomAuths" weight="60"/> - <edge id="security.AlterSystemPerm" weight="60"/> - <edge id="security.AlterTablePerm" weight="10"/> - <edge id="security.TableOp" weight="10"/> - -</node> - -<node id="dummy.NoUserYesTable"> - <alias name="last"/> - <property key="print" value="DEBUG"/> - <edge id="CreateUserYesTable" weight="40"/> - <edge id="security.DropUser" weight="10"/> - <edge id="security.CreateTable" weight="10"/> - <edge id="NoUserDropTable" weight="30"/> - <edge id="security.AlterTable" weight="60"/> - <edge id="SystemChangeSystemPass" weight="60"/> - <edge id="SystemChangeTablePass" weight="10"/> - <edge id="TableChangeTablePass" weight="10"/> - <edge id="AuthenticateSystemRight" weight="50"/> - <edge id="AuthenticateSystemWrong" weight="50"/> - <edge id="AuthenticateTableRight" weight="10"/> - <edge id="AuthenticateTableWrong" weight="10"/> - <edge id="security.Validate" weight="20"/> - <edge id="RandomAuths" weight="10"/> - <edge id="security.AlterSystemPerm" weight="60"/> - <edge id="security.AlterTablePerm" weight="10"/> - <edge id="security.TableOp" weight="10"/> - -</node> - -<node id="dummy.YesUserYesTable"> - <alias name="last"/> - <property key="print" value="DEBUG"/> - <edge id="security.CreateUser" weight="10"/> - <edge id="DropUserYesTable" weight="30"/> - <edge id="security.CreateTable" weight="10"/> - <edge id="YesUserDropTable" weight="30"/> - <edge id="security.AlterTable" weight="60"/> - <edge id="SystemChangeSystemPass" weight="60"/> - <edge id="SystemChangeTablePass" weight="60"/> - <edge id="TableChangeTablePass" weight="60"/> - <edge id="AuthenticateSystemRight" weight="50"/> - <edge id="AuthenticateSystemWrong" weight="50"/> - <edge id="AuthenticateTableRight" weight="50"/> - <edge id="AuthenticateTableWrong" weight="50"/> - <edge id="security.Validate" weight="20"/> - <edge id="RandomAuths" weight="60"/> - <edge id="security.AlterSystemPerm" weight="60"/> - <edge id="security.AlterTablePerm" weight="60"/> - <edge id="security.TableOp" weight="120"/> - -</node> + <node id="security.CreateUser"> + <edge id="alias.last" weight="1" /> + </node> + + <node id="CreateUserYesTable" src="security.CreateUser"> + <edge id="dummy.YesUserYesTable" weight="1" /> + </node> + + <node id="CreateUserNoTable" src="security.CreateUser"> + <edge id="dummy.YesUserNoTable" weight="1" /> + </node> + + <node id="security.DropUser"> + <edge id="alias.last" weight="1" /> + </node> + + <node id="DropUserNoTable" src="security.DropUser"> + <edge id="dummy.NoUserNoTable" weight="1" /> + </node> + + <node id="DropUserYesTable" src="security.DropUser"> + <edge id="dummy.NoUserYesTable" weight="1" /> + </node> + + <node id="security.CreateTable"> + <edge id="alias.last" weight="1" /> + </node> + + <node id="NoUserCreateTable" src="security.CreateTable"> + <edge id="dummy.NoUserYesTable" weight="1" /> + </node> + + <node id="YesUserCreateTable" src="security.CreateTable"> + <edge id="dummy.YesUserYesTable" weight="1" /> + </node> + + <node id="security.DropTable"> + <edge id="alias.last" weight="1" /> + </node> + + <node id="NoUserDropTable" src="security.DropTable"> + <edge id="dummy.NoUserNoTable" weight="1" /> + </node> + + <node id="YesUserDropTable" src="security.DropTable"> + <edge id="dummy.YesUserNoTable" weight="1" /> + </node> + + <node id="security.AlterTable"> + <edge id="alias.last" weight="1" /> + </node> + + <node id="RandomAuths" src="security.SetAuths"> + <property key="auths" value="_random" /> + <edge id="alias.last" weight="1" /> + </node> + + <node id="SystemChangeSystemPass" src="security.ChangePass"> + <property key="target" value="system" /> + <property key="source" value="system" /> + <edge id="alias.last" weight="1" /> + </node> + + <node id="SystemChangeTablePass" src="security.ChangePass"> + <property key="target" value="table" /> + <property key="source" value="system" /> + <edge id="alias.last" weight="1" /> + </node> + + <node id="TableChangeTablePass" src="security.ChangePass"> + <property key="target" value="table" /> + <property key="source" value="table" /> + <edge id="alias.last" weight="1" /> + </node> + + <node id="AuthenticateSystemRight" src="security.Authenticate"> + <property key="target" value="system" /> + <property key="valid" value="true" /> + <edge id="alias.last" weight="1" /> + </node> + + <node id="AuthenticateSystemWrong" src="security.Authenticate"> + <property key="target" value="system" /> + <property key="valid" value="false" /> + <edge id="alias.last" weight="1" /> + </node> + + <node id="AuthenticateTableRight" src="security.Authenticate"> + <property key="target" value="table" /> + <property key="valid" value="true" /> + <edge id="alias.last" weight="1" /> + </node> + + <node id="AuthenticateTableWrong" src="security.Authenticate"> + <property key="target" value="table" /> + <property key="valid" value="false" /> + <edge id="alias.last" weight="1" /> + </node> + + <node id="security.Validate"> + <edge id="alias.last" weight="1" /> + </node> + + <node id="security.AlterSystemPerm"> + <edge id="alias.last" weight="1" /> + </node> + + <node id="security.AlterTablePerm"> + <edge id="alias.last" weight="1" /> + </node> + + <node id="security.TableOp"> + <edge id="alias.last" weight="1" /> + </node> + + <node id="dummy.NoUserNoTable"> + <alias name="last" /> + <property key="print" value="DEBUG" /> + <edge id="CreateUserNoTable" weight="40" /> + <edge id="security.DropUser" weight="10" /> + <edge id="NoUserCreateTable" weight="40" /> + <edge id="security.DropTable" weight="10" /> + <edge id="security.AlterTable" weight="10" /> + <edge id="SystemChangeSystemPass" weight="60" /> + <edge id="SystemChangeTablePass" weight="10" /> + <edge id="AuthenticateSystemRight" weight="50" /> + <edge id="AuthenticateSystemWrong" weight="50" /> + <edge id="AuthenticateTableRight" weight="10" /> + <edge id="AuthenticateTableWrong" weight="10" /> + <edge id="security.Validate" weight="20" /> + <edge id="RandomAuths" weight="10" /> + <edge id="security.AlterSystemPerm" weight="60" /> + <edge id="security.AlterTablePerm" weight="10" /> + <edge id="END" weight="1" /> + </node> + + <node id="dummy.YesUserNoTable"> + <alias name="last" /> + <property key="print" value="DEBUG" /> + <edge id="security.CreateUser" weight="10" /> + <edge id="DropUserNoTable" weight="30" /> + <edge id="YesUserCreateTable" weight="40" /> + <edge id="security.DropTable" weight="10" /> + <edge id="security.AlterTable" weight="10" /> + <edge id="SystemChangeSystemPass" weight="60" /> + <edge id="SystemChangeTablePass" weight="60" /> + <edge id="TableChangeTablePass" weight="60" /> + <edge id="AuthenticateSystemRight" weight="50" /> + <edge id="AuthenticateSystemWrong" weight="50" /> + <edge id="AuthenticateTableRight" weight="50" /> + <edge id="AuthenticateTableWrong" weight="50" /> + <edge id="security.Validate" weight="20" /> + <edge id="RandomAuths" weight="60" /> + <edge id="security.AlterSystemPerm" weight="60" /> + <edge id="security.AlterTablePerm" weight="10" /> + <edge id="security.TableOp" weight="10" /> + <edge id="END" weight="1" /> + </node> + + <node id="dummy.NoUserYesTable"> + <alias name="last" /> + <property key="print" value="DEBUG" /> + <edge id="CreateUserYesTable" weight="40" /> + <edge id="security.DropUser" weight="10" /> + <edge id="security.CreateTable" weight="10" /> + <edge id="NoUserDropTable" weight="30" /> + <edge id="security.AlterTable" weight="60" /> + <edge id="SystemChangeSystemPass" weight="60" /> + <edge id="SystemChangeTablePass" weight="10" /> + <edge id="AuthenticateSystemRight" weight="50" /> + <edge id="AuthenticateSystemWrong" weight="50" /> + <edge id="AuthenticateTableRight" weight="10" /> + <edge id="AuthenticateTableWrong" weight="10" /> + <edge id="security.Validate" weight="20" /> + <edge id="RandomAuths" weight="10" /> + <edge id="security.AlterSystemPerm" weight="60" /> + <edge id="security.AlterTablePerm" weight="10" /> + <edge id="END" weight="1" /> + </node> + + <node id="dummy.YesUserYesTable"> + <alias name="last" /> + <property key="print" value="DEBUG" /> + <edge id="security.CreateUser" weight="10" /> + <edge id="DropUserYesTable" weight="30" /> + <edge id="security.CreateTable" weight="10" /> + <edge id="YesUserDropTable" weight="30" /> + <edge id="security.AlterTable" weight="60" /> + <edge id="SystemChangeSystemPass" weight="60" /> + <edge id="SystemChangeTablePass" weight="60" /> + <edge id="TableChangeTablePass" weight="60" /> + <edge id="AuthenticateSystemRight" weight="50" /> + <edge id="AuthenticateSystemWrong" weight="50" /> + <edge id="AuthenticateTableRight" weight="50" /> + <edge id="AuthenticateTableWrong" weight="50" /> + <edge id="security.Validate" weight="20" /> + <edge id="RandomAuths" weight="60" /> + <edge id="security.AlterSystemPerm" weight="60" /> + <edge id="security.AlterTablePerm" weight="60" /> + <edge id="security.TableOp" weight="120" /> + <edge id="END" weight="1" /> + </node> </module> Modified: accumulo/trunk/trace/src/main/java/org/apache/accumulo/cloudtrace/thrift/RemoteSpan.java URL: http://svn.apache.org/viewvc/accumulo/trunk/trace/src/main/java/org/apache/accumulo/cloudtrace/thrift/RemoteSpan.java?rev=1438354&r1=1438353&r2=1438354&view=diff ============================================================================== --- accumulo/trunk/trace/src/main/java/org/apache/accumulo/cloudtrace/thrift/RemoteSpan.java (original) +++ accumulo/trunk/trace/src/main/java/org/apache/accumulo/cloudtrace/thrift/RemoteSpan.java Fri Jan 25 07:04:25 2013 @@ -1029,7 +1029,7 @@ import org.slf4j.LoggerFactory; for (int _i1 = 0; _i1 < _map0.size; ++_i1) { String _key2; // required - String _val3; // required + String _val3; // optional _key2 = iprot.readString(); _val3 = iprot.readString(); struct.data.put(_key2, _val3); @@ -1224,7 +1224,7 @@ import org.slf4j.LoggerFactory; for (int _i7 = 0; _i7 < _map6.size; ++_i7) { String _key8; // required - String _val9; // required + String _val9; // optional _key8 = iprot.readString(); _val9 = iprot.readString(); struct.data.put(_key8, _val9);