svn commit: r1444337 [10/10] - in /accumulo/trunk: core/src/main/java/org/apache/accumulo/core/cli/ core/src/main/java/org/apache/accumulo/core/client/ core/src/main/java/org/apache/accumulo/core/clie
Modified: accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateUser.java URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateUser.java?rev=1444337&r1=1444336&r2=1444337&view=diff == --- accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateUser.java (original) +++ accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateUser.java Sat Feb 9 07:57:36 2013 @@ -22,6 +22,7 @@ import java.util.Random; import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.Connector; +import org.apache.accumulo.core.security.thrift.tokens.PasswordToken; import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; @@ -39,7 +40,7 @@ public class CreateUser extends Test { try { log.debug("Creating user " + userName); - conn.securityOperations().createUser(userName, (userName + "pass").getBytes()); + conn.securityOperations().createUser(userName, new PasswordToken().setPassword((userName + "pass").getBytes())); } catch (AccumuloSecurityException ex) { log.debug("Create user failed " + ex.getCause()); } Modified: accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/CopyTool.java URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/CopyTool.java?rev=1444337&r1=1444336&r2=1444337&view=diff == --- accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/CopyTool.java (original) +++ accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/multitable/CopyTool.java Sat Feb 9 07:57:36 2013 @@ -25,6 +25,7 @@ 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.tokens.PasswordToken; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; @@ -55,7 +56,7 @@ public class CopyTool extends Configured } job.setInputFormatClass(AccumuloInputFormat.class); -AccumuloInputFormat.setConnectorInfo(job, args[0], args[1].getBytes(Charset.forName("UTF-8"))); +AccumuloInputFormat.setConnectorInfo(job, args[0], new PasswordToken().setPassword(args[1].getBytes(Charset.forName("UTF-8"; AccumuloInputFormat.setInputTableName(job, args[2]); AccumuloInputFormat.setScanAuthorizations(job, Constants.NO_AUTHS); AccumuloInputFormat.setZooKeeperInstance(job, args[3], args[4]); @@ -67,7 +68,7 @@ public class CopyTool extends Configured job.setNumReduceTasks(0); job.setOutputFormatClass(AccumuloOutputFormat.class); -AccumuloOutputFormat.setConnectorInfo(job, args[0], args[1].getBytes(Charset.forName("UTF-8"))); +AccumuloOutputFormat.setConnectorInfo(job, args[0], new PasswordToken().setPassword(args[1].getBytes(Charset.forName("UTF-8"; AccumuloOutputFormat.setCreateTables(job, true); AccumuloOutputFormat.setDefaultTableName(job, args[5]); AccumuloOutputFormat.setZooKeeperInstance(job, args[3], args[4]); Modified: accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTablePerm.java URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTablePerm.java?rev=1444337&r1=1444336&r2=1444337&view=diff == --- accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTablePerm.java (original) +++ accumulo/trunk/test/src/main/java/org/apache/accumulo/test/randomwalk/security/AlterTablePerm.java Sat Feb 9 07:57:36 2013 @@ -24,7 +24,7 @@ import org.apache.accumulo.core.client.A import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.security.SystemPermission; import org.apache.accumulo.core.security.TablePermission; -import org.apache.accumulo.core.security.thrift.Credentials; +import org.apache.accumulo.core.security.thrift.Credential; import org.apache.accumulo.test.randomwalk.State; import org.apache.accumulo.test.randomwalk.Test; @@ -61,7 +61,7 @@ public class AlterTablePerm extends Test String tableName = WalkingSecurity.get(state).getTableName(); boolean hasPerm = WalkingSecurity.get(state).hasTablePermission(target, tableName, tabPerm); boolean canGive; -Credentials source; +Credential source; if ("system".equals(sourceUser)) { source = WalkingSecurity.get(state).getSysCredentials(); } else if ("t
svn commit: r1444337 [3/10] - in /accumulo/trunk: core/src/main/java/org/apache/accumulo/core/cli/ core/src/main/java/org/apache/accumulo/core/client/ core/src/main/java/org/apache/accumulo/core/clien
Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java URL: http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java?rev=1444337&r1=1444336&r2=1444337&view=diff == --- accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java (original) +++ accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java Sat Feb 9 07:57:36 2013 @@ -39,7 +39,9 @@ import org.apache.accumulo.core.data.Col import org.apache.accumulo.core.data.KeyExtent; import org.apache.accumulo.core.data.Mutation; import org.apache.accumulo.core.security.ColumnVisibility; +import org.apache.accumulo.core.security.CredentialHelper; import org.apache.accumulo.core.security.thrift.SecurityErrorCode; +import org.apache.accumulo.core.security.thrift.tokens.SecurityToken; import org.apache.hadoop.filecache.DistributedCache; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; @@ -79,14 +81,15 @@ public class AccumuloOutputFormat implem * * @param job * the Hadoop job instance to be configured - * @param user + * @param principal * a valid Accumulo user name (user must have Table.CREATE permission if {@link #setCreateTables(JobConf, boolean)} is set to true) - * @param passwd + * @param token * the user's password + * @throws AccumuloSecurityException * @since 1.5.0 */ - public static void setConnectorInfo(JobConf job, String user, byte[] passwd) { -OutputConfigurator.setConnectorInfo(CLASS, job, user, passwd); + public static void setConnectorInfo(JobConf job, String principal, SecurityToken token) throws AccumuloSecurityException { +OutputConfigurator.setConnectorInfo(CLASS, job, principal, token); } /** @@ -120,20 +123,34 @@ public class AccumuloOutputFormat implem } /** - * Gets the user name from the configuration. + * Gets the principal from the configuration. * * @param job * the Hadoop context for the configured job * @return the user name * @since 1.5.0 - * @see #setConnectorInfo(JobConf, String, byte[]) + * @see #setConnectorInfo(JobConf, String, SecurityToken) * @see #setConnectorInfo(JobConf, Path) */ - protected static String getUsername(JobConf job) { + protected static String getPrincipal(JobConf job) { return OutputConfigurator.getPrincipal(CLASS, job); } /** + * Gets the serialized token class from the configuration. + * + * @param job + * the Hadoop context for the configured job + * @return the user name + * @since 1.5.0 + * @see #setConnectorInfo(JobConf, String, SecurityToken) + * @see #setConnectorInfo(JobConf, Path) + */ + protected static String getTokenClass(JobConf job) { +return OutputConfigurator.getTokenClass(CLASS, job); + } + + /** * Gets the password from the configuration. WARNING: The password is stored in the Configuration and shared with all MapReduce tasks; It is BASE64 encoded to * provide a charset safe conversion to a string, and is not intended to be secure. * @@ -143,7 +160,7 @@ public class AccumuloOutputFormat implem * @since 1.5.0 * @see #setConnectorInfo(JobConf, String, byte[]) */ - protected static byte[] getPassword(JobConf job) { + protected static byte[] getToken(JobConf job) { return OutputConfigurator.getToken(CLASS, job); } @@ -359,7 +376,7 @@ public class AccumuloOutputFormat implem this.defaultTableName = (tname == null) ? null : new Text(tname); if (!simulate) { -this.conn = getInstance(job).getConnector(getUsername(job), getPassword(job)); +this.conn = getInstance(job).getConnector(getPrincipal(job), CredentialHelper.extractToken(getTokenClass(job), getToken(job))); mtbw = conn.createMultiTableBatchWriter(getBatchWriterOptions(job)); } } @@ -493,8 +510,8 @@ public class AccumuloOutputFormat implem throw new IOException("Connector info has not been set."); try { // if the instance isn't configured, it will complain here - Connector c = getInstance(job).getConnector(getUsername(job), getPassword(job)); - if (!c.securityOperations().authenticateUser(getUsername(job), getPassword(job))) + Connector c = getInstance(job).getConnector(getPrincipal(job), CredentialHelper.extractToken(getTokenClass(job), getToken(job))); + if (!c.securityOperations().authenticateUser(getPrincipal(job), CredentialHelper.extractToken(getTokenClass(job), getToken(job throw new IOException("Unable to authenticate user"); } catch (AccumuloException e) { throw new IOException(e); Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/clie
svn commit: r1444337 [5/10] - in /accumulo/trunk: core/src/main/java/org/apache/accumulo/core/cli/ core/src/main/java/org/apache/accumulo/core/client/ core/src/main/java/org/apache/accumulo/core/clien
Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/security/thrift/SecurityErrorCode.java URL: http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/security/thrift/SecurityErrorCode.java?rev=1444337&r1=1444336&r2=1444337&view=diff == --- accumulo/trunk/core/src/main/java/org/apache/accumulo/core/security/thrift/SecurityErrorCode.java (original) +++ accumulo/trunk/core/src/main/java/org/apache/accumulo/core/security/thrift/SecurityErrorCode.java Sat Feb 9 07:57:36 2013 @@ -43,7 +43,9 @@ import org.apache.thrift.TEnum; AUTHENTICATOR_FAILED(12), AUTHORIZOR_FAILED(13), PERMISSIONHANDLER_FAILED(14), - TOKEN_EXPIRED(15); + TOKEN_EXPIRED(15), + SERIALIZATION_ERROR(16), + INSUFFICIENT_PROPERTIES(17); private final int value; @@ -96,6 +98,10 @@ import org.apache.thrift.TEnum; return PERMISSIONHANDLER_FAILED; case 15: return TOKEN_EXPIRED; + case 16: +return SERIALIZATION_ERROR; + case 17: +return INSUFFICIENT_PROPERTIES; default: return null; }
svn commit: r1444313 - in /accumulo/trunk: core/src/main/java/org/apache/accumulo/core/Constants.java server/src/main/java/org/apache/accumulo/server/master/Master.java test/system/upgrade_test.sh
Author: kturner Date: Sat Feb 9 02:10:15 2013 New Revision: 1444313 URL: http://svn.apache.org/r1444313 Log: ACCUMULO-635 ACCUMULO-1010 got basic upgrade and upgrade test script working... Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/Constants.java accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/Master.java accumulo/trunk/test/system/upgrade_test.sh Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/Constants.java URL: http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/Constants.java?rev=1444313&r1=1444312&r2=1444313&view=diff == --- accumulo/trunk/core/src/main/java/org/apache/accumulo/core/Constants.java (original) +++ accumulo/trunk/core/src/main/java/org/apache/accumulo/core/Constants.java Sat Feb 9 02:10:15 2013 @@ -35,8 +35,8 @@ public class Constants { // versions should never be negative public static final Integer WIRE_VERSION = 2; - public static final int DATA_VERSION = 4; - public static final int PREV_DATA_VERSION = 3; + public static final int DATA_VERSION = 5; + public static final int PREV_DATA_VERSION = 4; // Zookeeper locations public static final String ZROOT = "/accumulo"; Modified: accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/Master.java URL: http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/Master.java?rev=1444313&r1=1444312&r2=1444313&view=diff == --- accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/Master.java (original) +++ accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/Master.java Sat Feb 9 02:10:15 2013 @@ -98,7 +98,6 @@ import org.apache.accumulo.fate.zookeepe import org.apache.accumulo.server.Accumulo; import org.apache.accumulo.server.client.HdfsZooInstance; import org.apache.accumulo.server.conf.ServerConfiguration; -import org.apache.accumulo.server.iterators.MetadataBulkLoadFilter; import org.apache.accumulo.server.master.LiveTServerSet.TServerConnection; import org.apache.accumulo.server.master.balancer.DefaultLoadBalancer; import org.apache.accumulo.server.master.balancer.TabletBalancer; @@ -157,7 +156,6 @@ import org.apache.accumulo.server.zookee import org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader; import org.apache.accumulo.trace.instrument.thrift.TraceWrap; import org.apache.accumulo.trace.thrift.TInfo; -import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.DataInputBuffer; @@ -171,8 +169,6 @@ import org.apache.zookeeper.KeeperExcept import org.apache.zookeeper.KeeperException.NoNodeException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; -import org.apache.zookeeper.ZooDefs; -import org.apache.zookeeper.data.ACL; import org.apache.zookeeper.data.Stat; /** @@ -279,53 +275,21 @@ public class Master implements LiveTServ log.info("Upgrading zookeeper"); IZooReaderWriter zoo = ZooReaderWriter.getInstance(); - -TablePropUtil.setTableProperty(Constants.METADATA_TABLE_ID, Property.TABLE_ITERATOR_PREFIX.getKey() + "majc.bulkLoadFilter", "20," -+ MetadataBulkLoadFilter.class.getName()); - -zoo.putPersistentData(ZooUtil.getRoot(instance) + Constants.ZTABLE_LOCKS, new byte[0], NodeExistsPolicy.SKIP); -zoo.putPersistentData(ZooUtil.getRoot(instance) + Constants.ZHDFS_RESERVATIONS, new byte[0], NodeExistsPolicy.SKIP); -zoo.putPersistentData(ZooUtil.getRoot(instance) + Constants.ZNEXT_FILE, new byte[] {'0'}, NodeExistsPolicy.SKIP); - -String[] tablePropsToDelete = new String[] {"table.scan.cache.size", "table.scan.cache.enable"}; - + +zoo.putPersistentData(ZooUtil.getRoot(instance) + Constants.ZRECOVERY, new byte[] {'0'}, NodeExistsPolicy.SKIP); + for (String id : Tables.getIdToNameMap(instance).keySet()) { - zoo.putPersistentData(ZooUtil.getRoot(instance) + Constants.ZTABLES + "/" + id + Constants.ZTABLE_FLUSH_ID, "0".getBytes(), NodeExistsPolicy.SKIP); - zoo.putPersistentData(ZooUtil.getRoot(instance) + Constants.ZTABLES + "/" + id + Constants.ZTABLE_COMPACT_ID, "0".getBytes(), NodeExistsPolicy.SKIP); + zoo.putPersistentData(ZooUtil.getRoot(instance) + Constants.ZTABLES + "/" + id + Constants.ZTABLE_COMPACT_CANCEL_ID, "0".getBytes(), NodeExistsPolicy.SKIP); - - for (String prop : tablePropsToDelete) { -String propPath = ZooUtil.getRoot(instance) + Constants.ZTABLES + "/" + id + Constants.ZTABLE_CONF + "/" + prop; -if (zoo.exists(propPath)) - zoo.delete(propPath, -1); -
svn commit: r1444259 - /accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java
Author: kturner Date: Fri Feb 8 22:11:22 2013 New Revision: 1444259 URL: http://svn.apache.org/r1444259 Log: ACCUMULO-1049 modified master to stop locking tserver nodes and just monitor tserver nodes in zookeeper Modified: accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java Modified: accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java URL: http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java?rev=1444259&r1=1444258&r2=1444259&view=diff == --- accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java (original) +++ accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java Fri Feb 8 22:11:22 2013 @@ -22,13 +22,9 @@ import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; -import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; -import org.apache.accumulo.trace.instrument.Tracer; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.conf.AccumuloConfiguration; @@ -49,6 +45,7 @@ import org.apache.accumulo.server.util.t import org.apache.accumulo.server.zookeeper.ZooCache; import org.apache.accumulo.server.zookeeper.ZooLock; import org.apache.accumulo.server.zookeeper.ZooReaderWriter; +import org.apache.accumulo.trace.instrument.Tracer; import org.apache.hadoop.io.Text; import org.apache.log4j.Logger; import org.apache.thrift.TException; @@ -57,7 +54,6 @@ import org.apache.zookeeper.KeeperExcept import org.apache.zookeeper.KeeperException.NotEmptyException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; -import org.apache.zookeeper.Watcher.Event.EventType; import org.apache.zookeeper.data.Stat; public class LiveTServerSet implements Watcher { @@ -189,26 +185,17 @@ public class LiveTServerSet implements W } static class TServerInfo { -ZooLock lock; TServerConnection connection; TServerInstance instance; -TServerLockWatcher watcher; -TServerInfo(ZooLock lock, TServerInstance instance, TServerConnection connection, TServerLockWatcher watcher) { - this.lock = lock; +TServerInfo(TServerInstance instance, TServerConnection connection) { this.connection = connection; this.instance = instance; - this.watcher = watcher; -} - -void cleanup() throws InterruptedException, KeeperException { - lock.tryToCancelAsyncLockOrUnlock(); } }; // Map from tserver master service to server information private Map current = new HashMap(); - private HashMap serversToDelete = new HashMap(); public LiveTServerSet(Instance instance, AccumuloConfiguration conf, Listener cback) { this.cback = cback; @@ -230,7 +217,7 @@ public class LiveTServerSet implements W public void run() { scanServers(); } -}, 0, 1000); +}, 0, 5000); } public synchronized void scanServers() { @@ -240,21 +227,11 @@ public class LiveTServerSet implements W final String path = ZooUtil.getRoot(instance) + Constants.ZTSERVERS; - Iterator> serversToDelIter = serversToDelete.entrySet().iterator(); - while (serversToDelIter.hasNext()) { -Entry entry = serversToDelIter.next(); -if (System.currentTimeMillis() - entry.getValue() > 1) { - String serverNode = path + "/" + entry.getKey(); - serversToDelIter.remove(); - deleteServerNode(serverNode); -} - } - - for (String server : getZooCache().getChildren(path)) { -if (serversToDelete.containsKey(server)) - continue; - -checkServer(updates, doomed, path, server, 2); + HashSet all = new HashSet(current.keySet()); + all.addAll(getZooCache().getChildren(path)); + + for (String server : all) { +checkServer(updates, doomed, path, server); } // log.debug("Current: " + current.keySet()); @@ -275,94 +252,71 @@ public class LiveTServerSet implements W } } - private synchronized void checkServer(final Set updates, final Set doomed, final String path, final String server, - int recurse) - throws TException, - InterruptedException, KeeperException { - -if (recurse == 0) - return; + private synchronized void checkServer(final Set updates, final Set doomed, final String path, final String server) + throws TException, InterruptedException, KeeperException { -// See if we have an async lock in place? TServerInfo info = current.get(server); -TServerLockWatcher watcher; -ZooLock lock; + final String lockPath = path + "
svn commit: r1444244 - in /accumulo/trunk/core/src: main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java test/java/org/apache/accumulo/core/iterators/user/TransformingIteratorTe
Author: ctubbsii Date: Fri Feb 8 21:18:11 2013 New Revision: 1444244 URL: http://svn.apache.org/r1444244 Log: ACCUMULO-1001 Fix typo on setAuthorizations method name. Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java accumulo/trunk/core/src/test/java/org/apache/accumulo/core/iterators/user/TransformingIteratorTest.java Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java URL: http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java?rev=1444244&r1=1444243&r2=1444244&view=diff == --- accumulo/trunk/core/src/main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java (original) +++ accumulo/trunk/core/src/main/java/org/apache/accumulo/core/iterators/user/TransformingIterator.java Fri Feb 8 21:18:11 2013 @@ -1,4 +1,4 @@ -/** +/* * 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. @@ -79,7 +79,7 @@ abstract public class TransformingIterat public static final String AUTH_OPT = "authorizations"; public static final String MAX_BUFFER_SIZE_OPT = "maxBufferSize"; private static final long DEFAULT_MAX_BUFFER_SIZE = 1000; - + protected Logger log = Logger.getLogger(getClass()); protected ArrayList> keys = new ArrayList>(); @@ -120,7 +120,7 @@ abstract public class TransformingIterat } else { maxBufferSize = DEFAULT_MAX_BUFFER_SIZE; } - + parsedVisibilitiesCache = new LRUMap(100); } @@ -129,9 +129,9 @@ abstract public class TransformingIterat String desc = "This iterator allows ranges of key to be transformed (with the exception of row transformations)."; String authDesc = "Comma-separated list of user's scan authorizations. " + "If excluded or empty, then no visibility check is performed on transformed keys."; -String bufferDesc = "Maximum buffer size (in accumulo memory spec) to use for buffering keys before throwing a BufferOverflowException. " + - "Users should keep this limit in mind when deciding what to transform. That is, if transforming the column family for example, then all " + - "keys sharing the same row and column family must fit within this limit (along with their associated values)"; +String bufferDesc = "Maximum buffer size (in accumulo memory spec) to use for buffering keys before throwing a BufferOverflowException. " ++ "Users should keep this limit in mind when deciding what to transform. That is, if transforming the column family for example, then all " ++ "keys sharing the same row and column family must fit within this limit (along with their associated values)"; HashMap namedOptions = new HashMap(); namedOptions.put(AUTH_OPT, authDesc); namedOptions.put(MAX_BUFFER_SIZE_OPT, bufferDesc); @@ -231,7 +231,7 @@ abstract public class TransformingIterat transformKeys(); } } - + private static class RangeIterator implements SortedKeyValueIterator { private SortedKeyValueIterator source; @@ -244,7 +244,7 @@ abstract public class TransformingIterat this.prefixKey = prefixKey; this.keyPrefix = keyPrefix; } - + @Override public void init(SortedKeyValueIterator source, Map options, IteratorEnvironment env) throws IOException { throw new UnsupportedOperationException(); @@ -286,7 +286,7 @@ abstract public class TransformingIterat } } - + /** * Reads all keys matching the first key's prefix from the source iterator, transforms them, and sorts the resulting keys. Transformed keys that fall outside * of our seek range or can't be seen by the user are excluded. @@ -299,7 +299,7 @@ abstract public class TransformingIterat transformRange(new RangeIterator(getSource(), prefixKey, getKeyPrefix()), new KVBuffer() { long appened = 0; - + @Override public void append(Key key, Value val) { // ensure the key provided by the user has the correct prefix @@ -314,7 +314,7 @@ abstract public class TransformingIterat // try to defend against a scan or compaction using all memory in a tablet server if (appened > maxBufferSize) throw new BufferOverflowException("Exceeded buffer size of " + maxBufferSize + ", prefixKey: " + prefixKey); - + if (getSource().hasTop() && key == getSource().getTopKey()) key = new Key(key); keys.add(new Pair(key, new Value(val))); @@ -322,7 +322,7 @@ abstract public class TransformingIterat } } }); - + // consume any key in range th
svn commit: r1444119 - in /accumulo/trunk: core/src/main/java/org/apache/accumulo/core/util/ core/src/test/java/org/apache/accumulo/core/util/shell/ server/src/main/java/org/apache/accumulo/server/mas
Author: ecn Date: Fri Feb 8 16:43:04 2013 New Revision: 1444119 URL: http://svn.apache.org/r1444119 Log: ACCUMULO-1054 refactor FastFormat from server to core Added: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java (contents, props changed) - copied, changed from r1442938, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/FastFormat.java Removed: accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/FastFormat.java Modified: accumulo/trunk/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/tableOps/ImportTable.java accumulo/trunk/server/src/main/java/org/apache/accumulo/server/tabletserver/UniqueNameAllocator.java accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/MetadataTable.java accumulo/trunk/test/src/main/java/org/apache/accumulo/test/NativeMapConcurrencyTest.java accumulo/trunk/test/src/main/java/org/apache/accumulo/test/NativeMapPerformanceTest.java accumulo/trunk/test/src/main/java/org/apache/accumulo/test/TestIngest.java accumulo/trunk/test/src/main/java/org/apache/accumulo/test/continuous/ContinuousIngest.java Copied: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java (from r1442938, accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/FastFormat.java) URL: http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java?p2=accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java&p1=accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/FastFormat.java&r1=1442938&r2=1444119&rev=1444119&view=diff == --- accumulo/trunk/server/src/main/java/org/apache/accumulo/server/util/FastFormat.java (original) +++ accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java Fri Feb 8 16:43:04 2013 @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.accumulo.server.util; +package org.apache.accumulo.core.util; public class FastFormat { // this 7 to 8 times faster than String.format("%s%06d",prefix, num) Propchange: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/FastFormat.java -- svn:eol-style = native Modified: accumulo/trunk/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java URL: http://svn.apache.org/viewvc/accumulo/trunk/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java?rev=1444119&r1=1444118&r2=1444119&view=diff == --- accumulo/trunk/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java (original) +++ accumulo/trunk/core/src/test/java/org/apache/accumulo/core/util/shell/ShellTest.java Fri Feb 8 16:43:04 2013 @@ -143,4 +143,25 @@ public class ShellTest { exec("scan", true, "\\x90 \\xA0:\\xB0 []\\xC0", false); exec("deletetable test -f", true, "Table: [test] has been deleted"); } + + @Test + public void authsTest() throws Exception { +Shell.log.debug("Starting auths test --"); +exec("setauths x,y,z", false, "Missing required option"); +exec("setauths -s x,y,z -u notauser", false, "user does not exist"); +exec("setauths -s x,y,z", true); +exec("getauths -u notauser", false,"user does not exist"); +exec("getauths", true,"y,z,x"); +exec("addauths -u notauser", false,"Missing required option"); +exec("addauths -u notauser -s foo", false,"user does not exist"); +exec("addauths -s a", true); +exec("getauths", true, "y,z,a,x"); +exec("setauths -c", true); + } + + @Test + public void userTest() throws Exception { +Shell.log.debug("Starting user test --"); +//exec("createuser root", false, "user exists"); + } } Modified: accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/tableOps/ImportTable.java URL: http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/tableOps/ImportTable.java?rev=1444119&r1=1444118&r2=1444119&view=diff == --- accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/tableOps/ImportTable.java (original) +++ accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/tableOps/ImportTable.java Fri Feb 8 16:43:04 2013 @@ -47,6 +47,7 @@ import org.apache.accumulo.core.file.Fil import org.apache.accumulo.core.master.state.tables.TableState; import org.apache.accumulo.core.security.TablePermission; import org.apache.accum
svn commit: r1444079 - in /accumulo/branches/1.4: ./ src/ src/core/ src/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java src/server/ src/server/src/
Author: ecn Date: Fri Feb 8 15:37:35 2013 New Revision: 1444079 URL: http://svn.apache.org/r1444079 Log: ACCUMULO-114 hide the tracer password if it is not set to the default Modified: accumulo/branches/1.4/ (props changed) accumulo/branches/1.4/src/ (props changed) accumulo/branches/1.4/src/core/ (props changed) accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java accumulo/branches/1.4/src/server/ (props changed) accumulo/branches/1.4/src/server/src/ (props changed) Propchange: accumulo/branches/1.4/ -- Merged /accumulo/trunk:r1444075 Propchange: accumulo/branches/1.4/src/ -- Merged /accumulo/trunk/src:r1444075 Merged /accumulo/trunk:r1444075 Propchange: accumulo/branches/1.4/src/core/ -- Merged /accumulo/trunk/src/core:r1444075 Merged /accumulo/trunk/core:r1444075 Modified: accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java URL: http://svn.apache.org/viewvc/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java?rev=1444079&r1=1444078&r2=1444079&view=diff == --- accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java (original) +++ accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java Fri Feb 8 15:37:35 2013 @@ -162,7 +162,7 @@ public class ConfigCommand extends Comma boolean printed = false; if (dfault != null && key.toLowerCase().contains("password")) { - dfault = curVal = curVal.replaceAll(".", "*"); + siteVal = sysVal = dfault = curVal = curVal.replaceAll(".", "*"); } if (sysVal != null) { if (defaults.containsKey(key)) { Propchange: accumulo/branches/1.4/src/server/ -- Merged /accumulo/trunk/src/server:r1444075 Merged /accumulo/trunk/server:r1444075 Propchange: accumulo/branches/1.4/src/server/src/ -- Merged /accumulo/trunk/server/src:r1444075 Merged /accumulo/trunk/src/server/src:r1444075
svn commit: r1444075 - /accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java
Author: ecn Date: Fri Feb 8 15:34:21 2013 New Revision: 1444075 URL: http://svn.apache.org/r1444075 Log: ACCUMULO-114 hide the tracer password if it is not set to the default Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java URL: http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java?rev=1444075&r1=1444074&r2=1444075&view=diff == --- accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java (original) +++ accumulo/trunk/core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java Fri Feb 8 15:34:21 2013 @@ -165,14 +165,14 @@ public class ConfigCommand extends Comma if (tableName != null && !Property.isValidTablePropertyKey(key)) { continue; } -final String siteVal = siteConfig.get(key); -final String sysVal = systemConfig.get(key); +String siteVal = siteConfig.get(key); +String sysVal = systemConfig.get(key); String curVal = propEntry.getValue(); String dfault = defaults.get(key); boolean printed = false; if (dfault != null && key.toLowerCase().contains("password")) { - dfault = curVal = curVal.replaceAll(".", "*"); + siteVal = sysVal = dfault = curVal = curVal.replaceAll(".", "*"); } if (sysVal != null) { if (defaults.containsKey(key)) {