[20/20] git commit: ACCUMULO-2061 A few more minor fixes from reviewboard.
ACCUMULO-2061 A few more minor fixes from reviewboard. Fixed a PrintInfo comment. Expand the VolumeImpl.isValidPath javadoc and implementation to be more encompassing. Suppress warnings in VolumeIT. Remove implementation of isValidPath from NonConfiguredVolume as it could be misleading. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/8b8d565b Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/8b8d565b Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/8b8d565b Branch: refs/heads/ACCUMULO-2061 Commit: 8b8d565b79a83ad6789356a18027cc2c0417b7f0 Parents: 45aec91 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 11:22:38 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 11:22:38 2014 -0400 -- .../accumulo/core/file/rfile/PrintInfo.java | 7 +++-- .../core/volume/NonConfiguredVolume.java| 30 ++-- .../org/apache/accumulo/core/volume/Volume.java | 4 +-- .../apache/accumulo/core/volume/VolumeImpl.java | 16 ++- .../accumulo/server/fs/VolumeManagerImpl.java | 8 +++--- .../java/org/apache/accumulo/test/VolumeIT.java | 1 + 6 files changed, 36 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/8b8d565b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java index 7ed8f34..dc54b49 100644 --- a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java +++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java @@ -52,8 +52,11 @@ public class PrintInfo { @SuppressWarnings(deprecation) AccumuloConfiguration aconf = AccumuloConfiguration.getSiteConfiguration(); -// TODO ACCUMULO-2462 This will only work for RFiles in HDFS when the filesystem is defined in the core-site.xml -// on the classpath if a path, and not a URI, is given +// TODO ACCUMULO-2462 This will only work for RFiles (path only, not URI) in HDFS when the correct filesystem for the given file +// is on Property.INSTANCE_DFS_DIR or, when INSTANCE_DFS_DIR is not defined, is on the default filesystem +// defined in the Hadoop's core-site.xml +// +// A workaround is to always provide a URI to this class FileSystem hadoopFs = VolumeConfiguration.getDefaultVolume(conf, aconf).getFileSystem(); FileSystem localFs = FileSystem.getLocal(conf); Opts opts = new Opts(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/8b8d565b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java index 7dcbd88..3cfd1c2 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java @@ -16,25 +16,18 @@ */ package org.apache.accumulo.core.volume; -import java.io.IOException; - import org.apache.accumulo.core.conf.Property; -import org.apache.accumulo.core.util.CachedConfiguration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.apache.log4j.Logger; /** - * Volume implementation which represents a Volume for which we have a FileSystem - * but no base path because it is not configured via {@link Property#INSTANCE_VOLUMES} + * Volume implementation which represents a Volume for which we have a FileSystem but no base path because it is not configured via + * {@link Property#INSTANCE_VOLUMES} * - * This is useful to handle volumes that have been removed from accumulo-site.xml but references - * to these volumes have not been updated. This Volume should never be used to create new files, - * only to read existing files. + * This is useful to handle volumes that have been removed from accumulo-site.xml but references to these volumes have not been updated. This Volume should + * never be used to create new files, only to read existing files. */ public class NonConfiguredVolume implements Volume { - private static final Logger log = Logger.getLogger(NonConfiguredVolume.class); - private FileSystem fs; public NonConfiguredVolume(FileSystem fs) { @@ -48,27 +41,22 @@ public class NonConfiguredVolume implements Volume { @Override public String getBasePath() { -throw new UnsupportedOperationException(No base path known because this volume isn't configured in accumulo-site.xml); +
[19/20] git commit: Merge branch '1.6.0-SNAPSHOT' into ACCUMULO-2061
Merge branch '1.6.0-SNAPSHOT' into ACCUMULO-2061 Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/45aec91e Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/45aec91e Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/45aec91e Branch: refs/heads/ACCUMULO-2061 Commit: 45aec91e12744adf0299aee902184a562f111b5b Parents: 2c1af65 84cc955 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 11:02:46 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 11:02:46 2014 -0400 -- .../core/client/admin/TableOperations.java | 17 + .../core/util/shell/commands/ConfigCommand.java | 2 +- .../core/data/ArrayByteSequenceTest.java| 1 - .../accumulo/core/data/KeyExtentTest.java | 2 + .../randomwalk/concurrent/CheckBalance.java | 18 +- .../org/apache/accumulo/test/NamespacesIT.java | 2 + .../org/apache/accumulo/test/ShellConfigIT.java | 49 + .../org/apache/accumulo/test/ShellServerIT.java | 943 ++- 8 files changed, 562 insertions(+), 472 deletions(-) --
[14/20] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT
Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/1f4cb4d5 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/1f4cb4d5 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/1f4cb4d5 Branch: refs/heads/ACCUMULO-2061 Commit: 1f4cb4d5bb9b8dc19df0cd1a6b6a95a44a9abeea Parents: 205f0dc a417424 Author: Bill Havanki bhava...@cloudera.com Authored: Tue Mar 18 16:23:18 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Tue Mar 18 16:23:18 2014 -0400 -- .../test/randomwalk/concurrent/CheckBalance.java | 18 +++--- 1 file changed, 15 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/1f4cb4d5/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckBalance.java -- diff --cc test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckBalance.java index 698b0c0,000..a0dd37c mode 100644,00..100644 --- a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckBalance.java +++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckBalance.java @@@ -1,98 -1,0 +1,110 @@@ +/* + * 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. + */ +package org.apache.accumulo.test.randomwalk.concurrent; + ++import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; + +import org.apache.accumulo.core.Constants; +import org.apache.accumulo.core.client.Scanner; +import org.apache.accumulo.core.data.Key; +import org.apache.accumulo.core.data.Value; +import org.apache.accumulo.test.randomwalk.State; +import org.apache.accumulo.test.randomwalk.Test; + +/** + * + */ +public class CheckBalance extends Test { + + static final String LAST_UNBALANCED_TIME = lastUnbalancedTime; + static final String UNBALANCED_COUNT = unbalancedCount; + + /* (non-Javadoc) + * @see org.apache.accumulo.test.randomwalk.Node#visit(org.apache.accumulo.test.randomwalk.State, java.util.Properties) + */ + @Override + public void visit(State state, Properties props) throws Exception { +log.debug(checking balance); +MapString,Long counts = new HashMapString,Long(); +Scanner scanner = state.getConnector().createScanner(Constants.METADATA_TABLE_NAME, Constants.NO_AUTHS); + scanner.fetchColumnFamily(Constants.METADATA_CURRENT_LOCATION_COLUMN_FAMILY); +for (EntryKey,Value entry : scanner) { + String location = entry.getKey().getColumnQualifier().toString(); + Long count = counts.get(location); + if (count == null) +count = Long.valueOf(0); + counts.put(location, count + 1); +} +double total = 0.; +for (Long count : counts.values()) { + total += count.longValue(); +} +final double average = total / counts.size(); - - // Check for even # of tablets on each node - double maxDifference = Math.max(1, average / 5); ++final double sd = stddev(counts.values(), average); ++log.debug(average + average + , standard deviation + sd); ++ ++// Check for balanced # of tablets on each node ++double maxDifference = 2.0 * sd; +String unbalancedLocation = null; +long lastCount = 0L; +boolean balanced = true; +for (EntryString,Long entry : counts.entrySet()) { + long thisCount = entry.getValue().longValue(); + if (Math.abs(thisCount - average) maxDifference) { +balanced = false; +log.debug(unbalanced: + entry.getKey() + has + entry.getValue() + tablets and the average is + average); +unbalancedLocation = entry.getKey(); +lastCount = thisCount; + } +} + +// It is expected that the number of tablets will be uneven for short +// periods of time. Don't complain unless we've seen it only unbalanced +// over a 15 minute period and it's been
[04/20] git commit: Merge remote-tracking branch 'origin/1.6.0-SNAPSHOT' into ACCUMULO-2061
Merge remote-tracking branch 'origin/1.6.0-SNAPSHOT' into ACCUMULO-2061 Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/6414ff1d Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/6414ff1d Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/6414ff1d Branch: refs/heads/ACCUMULO-2061 Commit: 6414ff1dc46b951f4ba130e05435be6c6c5d0c8a Parents: de5c29b 8f98331 Author: Josh Elser els...@apache.org Authored: Sat Mar 15 21:55:42 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Sat Mar 15 21:55:42 2014 -0400 -- --
[03/20] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Conflicts: proxy/src/test/java/org/apache/accumulo/proxy/SimpleProxyIT.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/8f98331c Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/8f98331c Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/8f98331c Branch: refs/heads/ACCUMULO-2061 Commit: 8f98331c5ea3e3a3c0068b03bfdd37fb08dc4631 Parents: 7c2a552 082adbf Author: Eric Newton eric.new...@gmail.com Authored: Fri Mar 14 14:18:56 2014 -0400 Committer: Eric Newton eric.new...@gmail.com Committed: Fri Mar 14 14:18:56 2014 -0400 -- --
[10/20] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/4d873512 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/4d873512 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/4d873512 Branch: refs/heads/ACCUMULO-2061 Commit: 4d873512633be0313ab54cc06364937a00946d73 Parents: 7d32c52 205f0dc Author: Sean Busbey bus...@cloudera.com Authored: Tue Mar 18 12:45:08 2014 -0500 Committer: Sean Busbey bus...@cloudera.com Committed: Tue Mar 18 12:45:08 2014 -0500 -- .../core/client/admin/TableOperations.java | 17 + 1 file changed, 17 insertions(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/4d873512/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java -- diff --cc core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java index 689c04c,2521c96..6166673 --- a/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java +++ b/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java @@@ -132,9 -132,26 +132,26 @@@ public interface TableOperations * @throws AccumuloSecurityException * @since 1.5.0 */ - public void exportTable(String tableName, String exportDir) throws TableNotFoundException, AccumuloException, AccumuloSecurityException; + void exportTable(String tableName, String exportDir) throws TableNotFoundException, AccumuloException, AccumuloSecurityException; /** +* Ensures that tablets are split along a set of keys. +* p +* Note that while the documentation for Text specifies that its bytestream should be UTF-8, the encoding is not enforced by operations that work with byte arrays. +* p +* For example, you can create 256 evenly-sliced splits via the following code sample even though the given byte sequences are not valid UTF-8. +* pre +* {@code +* TableOperations tableOps = connector.tableOperations(); +* TreeSetText splits = new TreeSetText(); +* for (int i = 0; i 256; i++) { +*byte[] bytes = { (byte) i }; +*splits.add(new Text(bytes)); +* } +* tableOps.addSplits(TABLE_NAME, splits); +* } +* /pre +* * @param tableName * the name of the table * @param partitionKeys
[15/20] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/99b6e252 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/99b6e252 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/99b6e252 Branch: refs/heads/ACCUMULO-2061 Commit: 99b6e252d4b68179927ae101f95ab1d72bbb6fe1 Parents: 70d4726 1f4cb4d Author: Bill Havanki bhava...@cloudera.com Authored: Tue Mar 18 16:23:54 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Tue Mar 18 16:23:54 2014 -0400 -- .../test/randomwalk/concurrent/CheckBalance.java | 18 +++--- 1 file changed, 15 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/99b6e252/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckBalance.java --
[07/20] git commit: ACCUMULO-2468 Remove recently introduced warnings
ACCUMULO-2468 Remove recently introduced warnings Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/c3837f42 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/c3837f42 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/c3837f42 Branch: refs/heads/ACCUMULO-2061 Commit: c3837f424c1fd011ba0cdf8dfd0162a1ad283121 Parents: 34c8b7a Author: Christopher Tubbs ctubb...@apache.org Authored: Tue Mar 18 00:34:52 2014 -0400 Committer: Christopher Tubbs ctubb...@apache.org Committed: Tue Mar 18 00:34:52 2014 -0400 -- .../java/org/apache/accumulo/core/data/ArrayByteSequenceTest.java | 1 - .../src/test/java/org/apache/accumulo/core/data/KeyExtentTest.java | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/c3837f42/core/src/test/java/org/apache/accumulo/core/data/ArrayByteSequenceTest.java -- diff --git a/core/src/test/java/org/apache/accumulo/core/data/ArrayByteSequenceTest.java b/core/src/test/java/org/apache/accumulo/core/data/ArrayByteSequenceTest.java index 70c40ed..4d61db5 100644 --- a/core/src/test/java/org/apache/accumulo/core/data/ArrayByteSequenceTest.java +++ b/core/src/test/java/org/apache/accumulo/core/data/ArrayByteSequenceTest.java @@ -20,7 +20,6 @@ import static org.junit.Assert.assertEquals; import java.nio.ByteBuffer; -import org.apache.accumulo.core.Constants; import org.junit.Before; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/accumulo/blob/c3837f42/core/src/test/java/org/apache/accumulo/core/data/KeyExtentTest.java -- diff --git a/core/src/test/java/org/apache/accumulo/core/data/KeyExtentTest.java b/core/src/test/java/org/apache/accumulo/core/data/KeyExtentTest.java index ce4ad98..b32dd26 100644 --- a/core/src/test/java/org/apache/accumulo/core/data/KeyExtentTest.java +++ b/core/src/test/java/org/apache/accumulo/core/data/KeyExtentTest.java @@ -291,6 +291,7 @@ public class KeyExtentTest { return out; } + @SuppressWarnings(deprecation) @Test public void testKeyExtentsForSimpleRange() { CollectionKeyExtent results; @@ -307,6 +308,7 @@ public class KeyExtentTest { assertEquals(t, results.iterator().next()); } + @SuppressWarnings(deprecation) @Test public void testKeyExtentsForRange() { KeyExtent b = nke(t, b, null);
[16/20] git commit: ACCUMULO-2491 Correct table user state upon termination of Security randomwalk
ACCUMULO-2491 Correct table user state upon termination of Security randomwalk A partial backport of ACCUMULO-1162 to 1.4 - commit e93a11a only. As the Security randomwalk ends and drops the table user, it now also sets the user's existence flag to false. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/4a27da54 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/4a27da54 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/4a27da54 Branch: refs/heads/ACCUMULO-2061 Commit: 4a27da54696ed97b197ce0abd5bef0a2ccfc2b80 Parents: a417424 Author: Bill Havanki bhava...@cloudera.com Authored: Tue Mar 18 10:11:20 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Tue Mar 18 16:43:54 2014 -0400 -- .../accumulo/server/test/randomwalk/security/SecurityHelper.java| 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/4a27da54/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/SecurityHelper.java -- diff --git a/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/SecurityHelper.java b/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/SecurityHelper.java index a4f715d..ec3154f 100644 --- a/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/SecurityHelper.java +++ b/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/SecurityHelper.java @@ -73,6 +73,7 @@ public class SecurityHelper { public static void setTabUserName(State state, String tabUserName) { state.set(tUserName, tabUserName); +setTabUserExists(state, false); } public static byte[] getSysUserPass(State state) {
[12/20] git commit: ACCUMULO-2460 removed empty javadoc
ACCUMULO-2460 removed empty javadoc Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/70d47266 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/70d47266 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/70d47266 Branch: refs/heads/ACCUMULO-2061 Commit: 70d472662d5c21c4f571c9501457172745e59a4c Parents: 3ef67cb Author: Keith Turner ktur...@apache.org Authored: Tue Mar 18 14:29:16 2014 -0400 Committer: Keith Turner ktur...@apache.org Committed: Tue Mar 18 14:29:16 2014 -0400 -- test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java | 3 --- 1 file changed, 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/70d47266/test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java b/test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java index 3188c8e..b6c7553 100644 --- a/test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java +++ b/test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java @@ -26,9 +26,6 @@ import org.apache.accumulo.test.functional.ConfigurableMacIT; import org.apache.hadoop.conf.Configuration; import org.junit.Test; -/** - * - */ public class ShellConfigIT extends ConfigurableMacIT { public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) { cfg.setProperty(Property.CRYPTO_BLOCK_STREAM_SIZE, 7K);
[18/20] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/84cc955d Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/84cc955d Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/84cc955d Branch: refs/heads/ACCUMULO-2061 Commit: 84cc955db63e39dbcfc2d11ebb40cab22b885f5f Parents: 99b6e25 53f2e34 Author: Bill Havanki bhava...@cloudera.com Authored: Tue Mar 18 16:55:15 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Tue Mar 18 16:55:15 2014 -0400 -- --
[08/20] git commit: ACCUMULO-2437 Add javadoc for addSplits that documents the workaround using Text's byte[] constructor.
ACCUMULO-2437 Add javadoc for addSplits that documents the workaround using Text's byte[] constructor. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/205f0dca Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/205f0dca Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/205f0dca Branch: refs/heads/ACCUMULO-2061 Commit: 205f0dca8cc86d2c8ecab710719cfb7682920ed1 Parents: 082adbf Author: Sean Busbey bus...@cloudera.com Authored: Tue Mar 18 03:16:27 2014 -0500 Committer: Sean Busbey bus...@cloudera.com Committed: Tue Mar 18 03:23:55 2014 -0500 -- .../core/client/admin/TableOperations.java | 17 + 1 file changed, 17 insertions(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/205f0dca/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java b/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java index c47d6a5..2521c96 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java +++ b/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java @@ -135,6 +135,23 @@ public interface TableOperations { public void exportTable(String tableName, String exportDir) throws TableNotFoundException, AccumuloException, AccumuloSecurityException; /** + * Ensures that tablets are split along a set of keys. + * p + * Note that while the documentation for Text specifies that its bytestream should be UTF-8, the encoding is not enforced by operations that work with byte arrays. + * p + * For example, you can create 256 evenly-sliced splits via the following code sample even though the given byte sequences are not valid UTF-8. + * pre + * {@code + * TableOperations tableOps = connector.tableOperations(); + * TreeSetText splits = new TreeSetText(); + * for (int i = 0; i 256; i++) { + *byte[] bytes = { (byte) i }; + *splits.add(new Text(bytes)); + * } + * tableOps.addSplits(TABLE_NAME, splits); + * } + * /pre + * * @param tableName * the name of the table * @param partitionKeys
[06/20] git commit: Merge branch '1.6.0-SNAPSHOT' into ACCUMULO-2061
Merge branch '1.6.0-SNAPSHOT' into ACCUMULO-2061 Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/2c1af655 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/2c1af655 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/2c1af655 Branch: refs/heads/ACCUMULO-2061 Commit: 2c1af655c9a32a3a49417c049a1dd2fd7b658566 Parents: 6414ff1 34c8b7a Author: Josh Elser els...@apache.org Authored: Sat Mar 15 23:36:13 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Sat Mar 15 23:36:13 2014 -0400 -- .../java/org/apache/accumulo/test/functional/BulkIT.java| 9 + .../java/org/apache/accumulo/test/functional/SslIT.java | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) --
[05/20] git commit: ACCUMULO-2484 Allow the invoker of runTest to pass in a unique suffix
ACCUMULO-2484 Allow the invoker of runTest to pass in a unique suffix Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/34c8b7af Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/34c8b7af Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/34c8b7af Branch: refs/heads/ACCUMULO-2061 Commit: 34c8b7af8c0bdb70a99fae3328a9c8a758f9aa3a Parents: 8f98331 Author: Josh Elser els...@apache.org Authored: Sat Mar 15 23:16:03 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Sat Mar 15 23:23:59 2014 -0400 -- .../java/org/apache/accumulo/test/functional/BulkIT.java| 9 + .../java/org/apache/accumulo/test/functional/SslIT.java | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/34c8b7af/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java b/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java index 2fc0477..b0fa8e1 100644 --- a/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java +++ b/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java @@ -39,16 +39,17 @@ public class BulkIT extends SimpleMacIT { @Test(timeout = 4 * 60 * 1000) public void test() throws Exception { -runTest(getConnector(), getTableNames(1)[0], this.getClass().getName()); +runTest(getConnector(), getTableNames(1)[0], this.getClass().getName(), testName.getMethodName()); } - static void runTest(Connector c, String tableName, String filePrefix) throws AccumuloException, AccumuloSecurityException, TableExistsException, IOException, TableNotFoundException, + static void runTest(Connector c, String tableName, String filePrefix, String dirSuffix) throws AccumuloException, AccumuloSecurityException, TableExistsException, IOException, TableNotFoundException, MutationsRejectedException { c.tableOperations().create(tableName); FileSystem fs = FileSystem.get(CachedConfiguration.getInstance()); String base = target/accumulo-maven-plugin; +String bulkFailures = base + /testBulkFail_ + dirSuffix; fs.delete(new Path(base + /testrf), true); -fs.mkdirs(new Path(base + /testBulkFail)); +fs.mkdirs(new Path(bulkFailures)); Opts opts = new Opts(); opts.timestamp = 1; @@ -68,7 +69,7 @@ public class BulkIT extends SimpleMacIT { opts.rows = 1; // create an rfile with one entry, there was a bug with this: TestIngest.ingest(c, opts, BWOPTS); -c.tableOperations().importDirectory(tableName, base + /testrf, base + /testBulkFail, false); +c.tableOperations().importDirectory(tableName, base + /testrf, bulkFailures, false); VerifyIngest.Opts vopts = new VerifyIngest.Opts(); vopts.tableName = tableName; vopts.random = 56; http://git-wip-us.apache.org/repos/asf/accumulo/blob/34c8b7af/test/src/test/java/org/apache/accumulo/test/functional/SslIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/functional/SslIT.java b/test/src/test/java/org/apache/accumulo/test/functional/SslIT.java index 1f0c811..2464546 100644 --- a/test/src/test/java/org/apache/accumulo/test/functional/SslIT.java +++ b/test/src/test/java/org/apache/accumulo/test/functional/SslIT.java @@ -52,7 +52,7 @@ public class SslIT extends ConfigurableMacIT { @Test(timeout = 5 * 60 * 1000) public void bulk() throws Exception { -BulkIT.runTest(getConnector(), getTableNames(1)[0], this.getClass().getName()); +BulkIT.runTest(getConnector(), getTableNames(1)[0], this.getClass().getName(), testName.getMethodName()); } @Test(timeout = 60 * 1000)
[17/20] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT (-sours)
Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT (-sours) Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/53f2e345 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/53f2e345 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/53f2e345 Branch: refs/heads/ACCUMULO-2061 Commit: 53f2e3457f7ab83ae3953bb9c7551ec357ed5410 Parents: 1f4cb4d 4a27da5 Author: Bill Havanki bhava...@cloudera.com Authored: Tue Mar 18 16:54:53 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Tue Mar 18 16:54:53 2014 -0400 -- --
git commit: ACCUMULO-2061 Co-locate volumes with the MAC dir
Repository: accumulo Updated Branches: refs/heads/ACCUMULO-2061 8b8d565b7 - 3487f8a80 ACCUMULO-2061 Co-locate volumes with the MAC dir Losing the volumes on test failure sucks because you can't validate if we misplaced a file on the wrong volume in the first place. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/3487f8a8 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/3487f8a8 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/3487f8a8 Branch: refs/heads/ACCUMULO-2061 Commit: 3487f8a80810a73fb742382a6ecab609cb518b0b Parents: 8b8d565 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 12:18:42 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 12:18:42 2014 -0400 -- .../java/org/apache/accumulo/test/VolumeIT.java | 26 ++-- 1 file changed, 7 insertions(+), 19 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/3487f8a8/test/src/test/java/org/apache/accumulo/test/VolumeIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/VolumeIT.java b/test/src/test/java/org/apache/accumulo/test/VolumeIT.java index 0a7ef3f..c0e41c1 100644 --- a/test/src/test/java/org/apache/accumulo/test/VolumeIT.java +++ b/test/src/test/java/org/apache/accumulo/test/VolumeIT.java @@ -22,7 +22,6 @@ import static org.junit.Assert.assertTrue; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; -import java.io.IOException; import java.net.URI; import java.util.ArrayList; import java.util.Arrays; @@ -65,7 +64,6 @@ import org.apache.accumulo.server.ServerConstants; import org.apache.accumulo.server.init.Initialize; import org.apache.accumulo.server.util.Admin; import org.apache.accumulo.test.functional.ConfigurableMacIT; -import org.apache.commons.io.FileUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; @@ -73,38 +71,28 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.RawLocalFileSystem; import org.apache.hadoop.io.Text; import org.apache.zookeeper.ZooKeeper; -import org.junit.After; import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; public class VolumeIT extends ConfigurableMacIT { private static final Text EMPTY = new Text(); private static final Value EMPTY_VALUE = new Value(new byte[] {}); - public static File volDirBase; - public static Path v1; - public static Path v2; + private File volDirBase; + private Path v1, v2; - @BeforeClass - public static void createVolumeDirs() throws IOException { -volDirBase = createSharedTestDir(VolumeIT.class.getName() + -volumes); + @SuppressWarnings(deprecation) + @Override + public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) { +File baseDir = cfg.getDir(); +volDirBase = new File(baseDir, volumes); File v1f = new File(volDirBase, v1); File v2f = new File(volDirBase, v2); v1f.mkdir(); v2f.mkdir(); v1 = new Path(file:// + v1f.getAbsolutePath()); v2 = new Path(file:// + v2f.getAbsolutePath()); - } - @After - public void clearDirs() throws IOException { -FileUtils.deleteQuietly(new File(v1.getParent().toUri())); - } - - @SuppressWarnings(deprecation) - @Override - public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) { // Run MAC on two locations in the local file system URI v1Uri = v1.toUri(); cfg.setProperty(Property.INSTANCE_DFS_DIR, v1Uri.getPath());
[5/8] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/ef0eaaa0 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/ef0eaaa0 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/ef0eaaa0 Branch: refs/heads/master Commit: ef0eaaa0976ced9f940d4ec856046dd6596ca43d Parents: 84cc955 d22bf18 Author: Sean Busbey bus...@cloudera.com Authored: Wed Mar 19 23:15:24 2014 -0500 Committer: Sean Busbey bus...@cloudera.com Committed: Wed Mar 19 23:15:24 2014 -0500 -- test/system/continuous/datanode-agitator.pl | 9 +++-- test/system/continuous/master-agitator.pl | 8 +++- test/system/continuous/start-agitator.sh| 20 ++-- test/system/continuous/tserver-agitator.pl | 9 +++-- 4 files changed, 31 insertions(+), 15 deletions(-) --
[7/8] git commit: ACCUMULO-2382 make continuous ingest test mapreduce jobs work with non-default CONTINUOUS_CONF_DIR
ACCUMULO-2382 make continuous ingest test mapreduce jobs work with non-default CONTINUOUS_CONF_DIR Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/0fb0369a Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/0fb0369a Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/0fb0369a Branch: refs/heads/1.6.0-SNAPSHOT Commit: 0fb0369af97c5d1a299b2ec9119374ab982bdf89 Parents: ef0eaaa Author: Sean Busbey bus...@cloudera.com Authored: Thu Mar 20 01:00:33 2014 -0500 Committer: Sean Busbey bus...@cloudera.com Committed: Thu Mar 20 01:00:33 2014 -0500 -- test/system/continuous/run-moru.sh | 3 +-- test/system/continuous/run-verify.sh | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/0fb0369a/test/system/continuous/run-moru.sh -- diff --git a/test/system/continuous/run-moru.sh b/test/system/continuous/run-moru.sh index 18f98e1..3133b05 100755 --- a/test/system/continuous/run-moru.sh +++ b/test/system/continuous/run-moru.sh @@ -27,8 +27,7 @@ bin=$( cd -P $( dirname ${SOURCE} ) pwd ) script=$( basename ${SOURCE} ) # Stop: Resolve Script Directory -CONTINUOUS_CONF_DIR=${CONTINUOUS_CONF_DIR:-${bin}} -. ${CONTINUOUS_CONF_DIR}/mapred-setup.sh +. ${bin}/mapred-setup.sh $ACCUMULO_HOME/bin/tool.sh $SERVER_LIBJAR org.apache.accumulo.test.continuous.ContinuousMoru -libjars $SERVER_LIBJAR -i $INSTANCE_NAME -z $ZOO_KEEPERS -u $USER -p $PASS --table $TABLE --min $MIN --max $MAX --maxColF $MAX_CF --maxColQ $MAX_CQ --batchMemory $MAX_MEM --batchLatency $MAX_LATENCY --batchThreads $NUM_THREADS --maxMappers $VERIFY_MAX_MAPS http://git-wip-us.apache.org/repos/asf/accumulo/blob/0fb0369a/test/system/continuous/run-verify.sh -- diff --git a/test/system/continuous/run-verify.sh b/test/system/continuous/run-verify.sh index e6a87b3..72ecc14 100755 --- a/test/system/continuous/run-verify.sh +++ b/test/system/continuous/run-verify.sh @@ -27,8 +27,7 @@ bin=$( cd -P $( dirname ${SOURCE} ) pwd ) script=$( basename ${SOURCE} ) # Stop: Resolve Script Directory -CONTINUOUS_CONF_DIR=${CONTINUOUS_CONF_DIR:-${bin}} -. ${CONTINUOUS_CONF_DIR}/mapred-setup.sh +. ${bin}/mapred-setup.sh AUTH_OPT=;
[6/8] git commit: ACCUMULO-2382 make continuous ingest test mapreduce jobs work with non-default CONTINUOUS_CONF_DIR
ACCUMULO-2382 make continuous ingest test mapreduce jobs work with non-default CONTINUOUS_CONF_DIR Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/0fb0369a Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/0fb0369a Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/0fb0369a Branch: refs/heads/master Commit: 0fb0369af97c5d1a299b2ec9119374ab982bdf89 Parents: ef0eaaa Author: Sean Busbey bus...@cloudera.com Authored: Thu Mar 20 01:00:33 2014 -0500 Committer: Sean Busbey bus...@cloudera.com Committed: Thu Mar 20 01:00:33 2014 -0500 -- test/system/continuous/run-moru.sh | 3 +-- test/system/continuous/run-verify.sh | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/0fb0369a/test/system/continuous/run-moru.sh -- diff --git a/test/system/continuous/run-moru.sh b/test/system/continuous/run-moru.sh index 18f98e1..3133b05 100755 --- a/test/system/continuous/run-moru.sh +++ b/test/system/continuous/run-moru.sh @@ -27,8 +27,7 @@ bin=$( cd -P $( dirname ${SOURCE} ) pwd ) script=$( basename ${SOURCE} ) # Stop: Resolve Script Directory -CONTINUOUS_CONF_DIR=${CONTINUOUS_CONF_DIR:-${bin}} -. ${CONTINUOUS_CONF_DIR}/mapred-setup.sh +. ${bin}/mapred-setup.sh $ACCUMULO_HOME/bin/tool.sh $SERVER_LIBJAR org.apache.accumulo.test.continuous.ContinuousMoru -libjars $SERVER_LIBJAR -i $INSTANCE_NAME -z $ZOO_KEEPERS -u $USER -p $PASS --table $TABLE --min $MIN --max $MAX --maxColF $MAX_CF --maxColQ $MAX_CQ --batchMemory $MAX_MEM --batchLatency $MAX_LATENCY --batchThreads $NUM_THREADS --maxMappers $VERIFY_MAX_MAPS http://git-wip-us.apache.org/repos/asf/accumulo/blob/0fb0369a/test/system/continuous/run-verify.sh -- diff --git a/test/system/continuous/run-verify.sh b/test/system/continuous/run-verify.sh index e6a87b3..72ecc14 100755 --- a/test/system/continuous/run-verify.sh +++ b/test/system/continuous/run-verify.sh @@ -27,8 +27,7 @@ bin=$( cd -P $( dirname ${SOURCE} ) pwd ) script=$( basename ${SOURCE} ) # Stop: Resolve Script Directory -CONTINUOUS_CONF_DIR=${CONTINUOUS_CONF_DIR:-${bin}} -. ${CONTINUOUS_CONF_DIR}/mapred-setup.sh +. ${bin}/mapred-setup.sh AUTH_OPT=;
[8/8] git commit: Merge branch '1.6.0-SNAPSHOT'
Merge branch '1.6.0-SNAPSHOT' Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/fbb18d6e Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/fbb18d6e Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/fbb18d6e Branch: refs/heads/master Commit: fbb18d6eb1cf8c5449548653684db613b0123e92 Parents: 23980d3 0fb0369 Author: Sean Busbey bus...@cloudera.com Authored: Thu Mar 20 11:24:09 2014 -0500 Committer: Sean Busbey bus...@cloudera.com Committed: Thu Mar 20 11:24:09 2014 -0500 -- test/system/continuous/datanode-agitator.pl | 9 +++-- test/system/continuous/master-agitator.pl | 8 +++- test/system/continuous/run-moru.sh | 3 +-- test/system/continuous/run-verify.sh| 3 +-- test/system/continuous/start-agitator.sh| 20 ++-- test/system/continuous/tserver-agitator.pl | 9 +++-- 6 files changed, 33 insertions(+), 19 deletions(-) --
[1/8] git commit: ACCUMULO-2382 make agitation work with a non-default CONTINUOUS_CONF_DIR.
Repository: accumulo Updated Branches: refs/heads/1.5.2-SNAPSHOT 53f2e3457 - d22bf18f4 refs/heads/1.6.0-SNAPSHOT 84cc955db - 0fb0369af refs/heads/master 23980d36c - fbb18d6eb ACCUMULO-2382 make agitation work with a non-default CONTINUOUS_CONF_DIR. * Change start-agitator to use inferred installation directory instead of passed in conf dir. * Ensure tserver and master agitator default ot ACCUMULO_HOME if present, so that starting all as root works. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/d22bf18f Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/d22bf18f Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/d22bf18f Branch: refs/heads/1.5.2-SNAPSHOT Commit: d22bf18f4ccb56e7fe263f6e5e1aaffe6d41d2b2 Parents: 53f2e34 Author: Sean Busbey bus...@cloudera.com Authored: Mon Mar 17 16:30:30 2014 -0500 Committer: Sean Busbey bus...@cloudera.com Committed: Wed Mar 19 23:13:34 2014 -0500 -- test/system/continuous/datanode-agitator.pl | 9 +++-- test/system/continuous/master-agitator.pl | 8 +++- test/system/continuous/start-agitator.sh| 20 ++-- test/system/continuous/tserver-agitator.pl | 9 +++-- 4 files changed, 31 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/d22bf18f/test/system/continuous/datanode-agitator.pl -- diff --git a/test/system/continuous/datanode-agitator.pl b/test/system/continuous/datanode-agitator.pl index f823593..acb5843 100755 --- a/test/system/continuous/datanode-agitator.pl +++ b/test/system/continuous/datanode-agitator.pl @@ -24,8 +24,13 @@ if(scalar(@ARGV) != 5 scalar(@ARGV) != 3){ exit(1); } -$cwd=Cwd::cwd(); -$ACCUMULO_HOME=$cwd . '/../../..'; +my $ACCUMULO_HOME; +if( defined $ENV{'ACCUMULO_HOME'} ){ + $ACCUMULO_HOME = $ENV{'ACCUMULO_HOME'}; +} else { + $cwd=Cwd::cwd(); + $ACCUMULO_HOME=$cwd . '/../../..'; +} $HADOOP_PREFIX=$ARGV[2]; print ACCUMULO_HOME=$ACCUMULO_HOME\n; http://git-wip-us.apache.org/repos/asf/accumulo/blob/d22bf18f/test/system/continuous/master-agitator.pl -- diff --git a/test/system/continuous/master-agitator.pl b/test/system/continuous/master-agitator.pl index a40bfb2..0b7ff0d 100755 --- a/test/system/continuous/master-agitator.pl +++ b/test/system/continuous/master-agitator.pl @@ -23,7 +23,13 @@ if(scalar(@ARGV) != 2){ exit(1); } -$ACCUMULO_HOME=../../..; +my $ACCUMULO_HOME; +if( defined $ENV{'ACCUMULO_HOME'} ){ + $ACCUMULO_HOME = $ENV{'ACCUMULO_HOME'}; +} else { + $cwd=Cwd::cwd(); + $ACCUMULO_HOME=$cwd . '/../../..'; +} if(defined $ENV{'ACCUMULO_CONF_DIR'}){ $ACCUMULO_CONF_DIR = $ENV{'ACCUMULO_CONF_DIR'}; http://git-wip-us.apache.org/repos/asf/accumulo/blob/d22bf18f/test/system/continuous/start-agitator.sh -- diff --git a/test/system/continuous/start-agitator.sh b/test/system/continuous/start-agitator.sh index 979899f..70d5c53 100755 --- a/test/system/continuous/start-agitator.sh +++ b/test/system/continuous/start-agitator.sh @@ -38,34 +38,34 @@ if [[ `whoami` == root ]]; then echo Running master-agitator and tserver-agitator as $ACCUMULO_USER using su. Running datanode-agitator as $HDFS_USER using su. # Change to the correct user if started as root - su -c nohup $CONTINUOUS_CONF_DIR/master-agitator.pl $MASTER_KILL_SLEEP_TIME $MASTER_RESTART_SLEEP_TIME ${LOG_BASE}_master-agitator.out 2${LOG_BASE}_master-agitator.err -m - $ACCUMULO_USER + su -c nohup ${bin}/master-agitator.pl $MASTER_KILL_SLEEP_TIME $MASTER_RESTART_SLEEP_TIME ${LOG_BASE}_master-agitator.out 2${LOG_BASE}_master-agitator.err -m - $ACCUMULO_USER - su -c nohup $CONTINUOUS_CONF_DIR/tserver-agitator.pl $KILL_SLEEP_TIME $TUP_SLEEP_TIME $MIN_KILL $MAX_KILL ${LOG_BASE}_tserver-agitator.out 2${LOG_BASE}_tserver-agitator.err -m - $ACCUMULO_USER + su -c nohup ${bin}/tserver-agitator.pl $KILL_SLEEP_TIME $TUP_SLEEP_TIME $MIN_KILL $MAX_KILL ${LOG_BASE}_tserver-agitator.out 2${LOG_BASE}_tserver-agitator.err -m - $ACCUMULO_USER - su -c nohup $CONTINUOUS_CONF_DIR/datanode-agitator.pl $KILL_SLEEP_TIME $TUP_SLEEP_TIME $HADOOP_PREFIX $MIN_KILL $MAX_KILL ${LOG_BASE}_datanode-agitator.out 2${LOG_BASE}_datanode-agitator.err -m - $HDFS_USER + su -c nohup ${bin}/datanode-agitator.pl $KILL_SLEEP_TIME $TUP_SLEEP_TIME $HADOOP_PREFIX $MIN_KILL $MAX_KILL ${LOG_BASE}_datanode-agitator.out 2${LOG_BASE}_datanode-agitator.err -m - $HDFS_USER elif [[ `whoami` == $ACCUMULO_USER ]]; then echo Running master-agitator and tserver-agitator as `whoami`. Running datanode-agitator as $HDFS_USER using sudo. # Just run the
[4/8] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/ef0eaaa0 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/ef0eaaa0 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/ef0eaaa0 Branch: refs/heads/1.6.0-SNAPSHOT Commit: ef0eaaa0976ced9f940d4ec856046dd6596ca43d Parents: 84cc955 d22bf18 Author: Sean Busbey bus...@cloudera.com Authored: Wed Mar 19 23:15:24 2014 -0500 Committer: Sean Busbey bus...@cloudera.com Committed: Wed Mar 19 23:15:24 2014 -0500 -- test/system/continuous/datanode-agitator.pl | 9 +++-- test/system/continuous/master-agitator.pl | 8 +++- test/system/continuous/start-agitator.sh| 20 ++-- test/system/continuous/tserver-agitator.pl | 9 +++-- 4 files changed, 31 insertions(+), 15 deletions(-) --
[3/8] git commit: ACCUMULO-2382 make agitation work with a non-default CONTINUOUS_CONF_DIR.
ACCUMULO-2382 make agitation work with a non-default CONTINUOUS_CONF_DIR. * Change start-agitator to use inferred installation directory instead of passed in conf dir. * Ensure tserver and master agitator default ot ACCUMULO_HOME if present, so that starting all as root works. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/d22bf18f Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/d22bf18f Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/d22bf18f Branch: refs/heads/master Commit: d22bf18f4ccb56e7fe263f6e5e1aaffe6d41d2b2 Parents: 53f2e34 Author: Sean Busbey bus...@cloudera.com Authored: Mon Mar 17 16:30:30 2014 -0500 Committer: Sean Busbey bus...@cloudera.com Committed: Wed Mar 19 23:13:34 2014 -0500 -- test/system/continuous/datanode-agitator.pl | 9 +++-- test/system/continuous/master-agitator.pl | 8 +++- test/system/continuous/start-agitator.sh| 20 ++-- test/system/continuous/tserver-agitator.pl | 9 +++-- 4 files changed, 31 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/d22bf18f/test/system/continuous/datanode-agitator.pl -- diff --git a/test/system/continuous/datanode-agitator.pl b/test/system/continuous/datanode-agitator.pl index f823593..acb5843 100755 --- a/test/system/continuous/datanode-agitator.pl +++ b/test/system/continuous/datanode-agitator.pl @@ -24,8 +24,13 @@ if(scalar(@ARGV) != 5 scalar(@ARGV) != 3){ exit(1); } -$cwd=Cwd::cwd(); -$ACCUMULO_HOME=$cwd . '/../../..'; +my $ACCUMULO_HOME; +if( defined $ENV{'ACCUMULO_HOME'} ){ + $ACCUMULO_HOME = $ENV{'ACCUMULO_HOME'}; +} else { + $cwd=Cwd::cwd(); + $ACCUMULO_HOME=$cwd . '/../../..'; +} $HADOOP_PREFIX=$ARGV[2]; print ACCUMULO_HOME=$ACCUMULO_HOME\n; http://git-wip-us.apache.org/repos/asf/accumulo/blob/d22bf18f/test/system/continuous/master-agitator.pl -- diff --git a/test/system/continuous/master-agitator.pl b/test/system/continuous/master-agitator.pl index a40bfb2..0b7ff0d 100755 --- a/test/system/continuous/master-agitator.pl +++ b/test/system/continuous/master-agitator.pl @@ -23,7 +23,13 @@ if(scalar(@ARGV) != 2){ exit(1); } -$ACCUMULO_HOME=../../..; +my $ACCUMULO_HOME; +if( defined $ENV{'ACCUMULO_HOME'} ){ + $ACCUMULO_HOME = $ENV{'ACCUMULO_HOME'}; +} else { + $cwd=Cwd::cwd(); + $ACCUMULO_HOME=$cwd . '/../../..'; +} if(defined $ENV{'ACCUMULO_CONF_DIR'}){ $ACCUMULO_CONF_DIR = $ENV{'ACCUMULO_CONF_DIR'}; http://git-wip-us.apache.org/repos/asf/accumulo/blob/d22bf18f/test/system/continuous/start-agitator.sh -- diff --git a/test/system/continuous/start-agitator.sh b/test/system/continuous/start-agitator.sh index 979899f..70d5c53 100755 --- a/test/system/continuous/start-agitator.sh +++ b/test/system/continuous/start-agitator.sh @@ -38,34 +38,34 @@ if [[ `whoami` == root ]]; then echo Running master-agitator and tserver-agitator as $ACCUMULO_USER using su. Running datanode-agitator as $HDFS_USER using su. # Change to the correct user if started as root - su -c nohup $CONTINUOUS_CONF_DIR/master-agitator.pl $MASTER_KILL_SLEEP_TIME $MASTER_RESTART_SLEEP_TIME ${LOG_BASE}_master-agitator.out 2${LOG_BASE}_master-agitator.err -m - $ACCUMULO_USER + su -c nohup ${bin}/master-agitator.pl $MASTER_KILL_SLEEP_TIME $MASTER_RESTART_SLEEP_TIME ${LOG_BASE}_master-agitator.out 2${LOG_BASE}_master-agitator.err -m - $ACCUMULO_USER - su -c nohup $CONTINUOUS_CONF_DIR/tserver-agitator.pl $KILL_SLEEP_TIME $TUP_SLEEP_TIME $MIN_KILL $MAX_KILL ${LOG_BASE}_tserver-agitator.out 2${LOG_BASE}_tserver-agitator.err -m - $ACCUMULO_USER + su -c nohup ${bin}/tserver-agitator.pl $KILL_SLEEP_TIME $TUP_SLEEP_TIME $MIN_KILL $MAX_KILL ${LOG_BASE}_tserver-agitator.out 2${LOG_BASE}_tserver-agitator.err -m - $ACCUMULO_USER - su -c nohup $CONTINUOUS_CONF_DIR/datanode-agitator.pl $KILL_SLEEP_TIME $TUP_SLEEP_TIME $HADOOP_PREFIX $MIN_KILL $MAX_KILL ${LOG_BASE}_datanode-agitator.out 2${LOG_BASE}_datanode-agitator.err -m - $HDFS_USER + su -c nohup ${bin}/datanode-agitator.pl $KILL_SLEEP_TIME $TUP_SLEEP_TIME $HADOOP_PREFIX $MIN_KILL $MAX_KILL ${LOG_BASE}_datanode-agitator.out 2${LOG_BASE}_datanode-agitator.err -m - $HDFS_USER elif [[ `whoami` == $ACCUMULO_USER ]]; then echo Running master-agitator and tserver-agitator as `whoami`. Running datanode-agitator as $HDFS_USER using sudo. # Just run the master-agitator if we're the accumulo user - nohup $CONTINUOUS_CONF_DIR/master-agitator.pl $MASTER_KILL_SLEEP_TIME $MASTER_RESTART_SLEEP_TIME ${LOG_BASE}_master-agitator.out
svn commit: r1579698 - /accumulo/site/trunk/content/bylaws.mdtext
Author: bhavanki Date: Thu Mar 20 18:07:00 2014 New Revision: 1579698 URL: http://svn.apache.org/r1579698 Log: Remove reinstatement voting actions Modified: accumulo/site/trunk/content/bylaws.mdtext Modified: accumulo/site/trunk/content/bylaws.mdtext URL: http://svn.apache.org/viewvc/accumulo/site/trunk/content/bylaws.mdtext?rev=1579698r1=1579697r2=1579698view=diff == --- accumulo/site/trunk/content/bylaws.mdtext (original) +++ accumulo/site/trunk/content/bylaws.mdtext Thu Mar 20 18:07:00 2014 @@ -182,12 +182,12 @@ This section describes the various actio tdConsensus approval/td tdActive PMC members/td td7/td -trtdNew Committer or Reinstatement/td +trtdNew Committer/td tdWhen a new committer is proposed for the project./td tdConsensus approval/td tdActive PMC members/td td3/td -trtdNew PMC Member or Reinstatement/td +trtdNew PMC Member/td tdWhen a committer is proposed for the PMC./td tdConsensus approval/td tdActive PMC members/td
svn commit: r902568 - in /websites/production/accumulo/content: ./ 1.4/apidocs/ 1.5/apidocs/
Author: bhavanki Date: Thu Mar 20 18:07:35 2014 New Revision: 902568 Log: Publishing svnmucc operation to accumulo site by bhavanki Added: websites/production/accumulo/content/ - copied from r902567, websites/staging/accumulo/trunk/content/ websites/production/accumulo/content/1.4/apidocs/ - copied from r902567, websites/production/accumulo/content/1.4/apidocs/ websites/production/accumulo/content/1.5/apidocs/ - copied from r902567, websites/production/accumulo/content/1.5/apidocs/
[1/3] git commit: ACCUMULO-2507 add debugging information, and timeout for reader thread to pull in all the output of the tserver
Repository: accumulo Updated Branches: refs/heads/1.6.0-SNAPSHOT 0fb0369af - acce1d53f refs/heads/master fbb18d6eb - 7988f8f6c ACCUMULO-2507 add debugging information, and timeout for reader thread to pull in all the output of the tserver Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/acce1d53 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/acce1d53 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/acce1d53 Branch: refs/heads/1.6.0-SNAPSHOT Commit: acce1d53f54dbb88804caf4b35f8eaac01252f5e Parents: 0fb0369 Author: Eric C. Newton eric.new...@gmail.com Authored: Thu Mar 20 14:25:34 2014 -0400 Committer: Eric C. Newton eric.new...@gmail.com Committed: Thu Mar 20 14:26:06 2014 -0400 -- .../accumulo/test/functional/HalfDeadTServerIT.java| 13 + 1 file changed, 9 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/acce1d53/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java b/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java index d08b822..0346f2f 100644 --- a/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java +++ b/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java @@ -16,8 +16,7 @@ */ package org.apache.accumulo.test.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import java.io.BufferedReader; import java.io.File; @@ -94,8 +93,13 @@ public class HalfDeadTServerIT extends ConfigurableMacIT { @Test(timeout = 4 * 60 * 1000) public void testTimeout() throws Exception { String results = test(40); -if (results != null) - assertTrue(results.contains(Session expired)); +if (results != null) { + if (!results.contains(Session expired)) { + System.out.println(Failed to find Session expired in); + System.out.println(results); + fail(zookeeper session failed to expire); + } +} } public String test(int seconds) throws Exception { @@ -169,6 +173,7 @@ public class HalfDeadTServerIT extends ConfigurableMacIT { tserver.destroy(); tserver.waitFor(); t.join(); + UtilWaitThread.sleep(1000); } }
[2/3] git commit: ACCUMULO-2507 add debugging information, and timeout for reader thread to pull in all the output of the tserver
ACCUMULO-2507 add debugging information, and timeout for reader thread to pull in all the output of the tserver Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/acce1d53 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/acce1d53 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/acce1d53 Branch: refs/heads/master Commit: acce1d53f54dbb88804caf4b35f8eaac01252f5e Parents: 0fb0369 Author: Eric C. Newton eric.new...@gmail.com Authored: Thu Mar 20 14:25:34 2014 -0400 Committer: Eric C. Newton eric.new...@gmail.com Committed: Thu Mar 20 14:26:06 2014 -0400 -- .../accumulo/test/functional/HalfDeadTServerIT.java| 13 + 1 file changed, 9 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/acce1d53/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java b/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java index d08b822..0346f2f 100644 --- a/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java +++ b/test/src/test/java/org/apache/accumulo/test/functional/HalfDeadTServerIT.java @@ -16,8 +16,7 @@ */ package org.apache.accumulo.test.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import java.io.BufferedReader; import java.io.File; @@ -94,8 +93,13 @@ public class HalfDeadTServerIT extends ConfigurableMacIT { @Test(timeout = 4 * 60 * 1000) public void testTimeout() throws Exception { String results = test(40); -if (results != null) - assertTrue(results.contains(Session expired)); +if (results != null) { + if (!results.contains(Session expired)) { + System.out.println(Failed to find Session expired in); + System.out.println(results); + fail(zookeeper session failed to expire); + } +} } public String test(int seconds) throws Exception { @@ -169,6 +173,7 @@ public class HalfDeadTServerIT extends ConfigurableMacIT { tserver.destroy(); tserver.waitFor(); t.join(); + UtilWaitThread.sleep(1000); } }
[3/3] git commit: Merge branch '1.6.0-SNAPSHOT'
Merge branch '1.6.0-SNAPSHOT' Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/7988f8f6 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/7988f8f6 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/7988f8f6 Branch: refs/heads/master Commit: 7988f8f6c5bd023e584382b9e92ed6d5cb112d54 Parents: fbb18d6 acce1d5 Author: Eric C. Newton eric.new...@gmail.com Authored: Thu Mar 20 14:41:11 2014 -0400 Committer: Eric C. Newton eric.new...@gmail.com Committed: Thu Mar 20 14:41:11 2014 -0400 -- .../accumulo/test/functional/HalfDeadTServerIT.java| 13 + 1 file changed, 9 insertions(+), 4 deletions(-) --
[09/10] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/aefa52e2 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/aefa52e2 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/aefa52e2 Branch: refs/heads/master Commit: aefa52e2af722ef3dc8ea6ebf342b61a40611397 Parents: acce1d5 4b7a011 Author: Bill Havanki bhava...@cloudera.com Authored: Thu Mar 20 15:01:47 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Thu Mar 20 15:01:47 2014 -0400 -- .../java/org/apache/accumulo/test/randomwalk/security/DropUser.java | 1 + 1 file changed, 1 insertion(+) --
[07/10] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT
Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT Conflicts: test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/4b7a011c Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/4b7a011c Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/4b7a011c Branch: refs/heads/master Commit: 4b7a011ca59cd0f731192169d3999c630e14c0e1 Parents: d22bf18 bbd6aeb Author: Bill Havanki bhava...@cloudera.com Authored: Thu Mar 20 15:01:37 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Thu Mar 20 15:01:37 2014 -0400 -- .../java/org/apache/accumulo/test/randomwalk/security/DropUser.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/4b7a011c/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java -- diff --cc test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java index ddf39aa,000..d48a2cd mode 100644,00..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 @@@ -1,66 -1,0 +1,67 @@@ +/* + * 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. + */ +package org.apache.accumulo.test.randomwalk.security; + +import java.util.Properties; + +import org.apache.accumulo.core.client.AccumuloException; +import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.Connector; +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, Properties props) throws Exception { +Connector conn = state.getInstance().getConnector(WalkingSecurity.get(state).getSysUserName(), WalkingSecurity.get(state).getSysToken()); + +String tableUserName = WalkingSecurity.get(state).getTabUserName(); + +boolean exists = WalkingSecurity.get(state).userExists(tableUserName); +boolean hasPermission = WalkingSecurity.get(state).canDropUser(WalkingSecurity.get(state).getSysCredentials(), tableUserName); + +try { + conn.securityOperations().dropLocalUser(tableUserName); +} catch (AccumuloSecurityException ae) { + switch (ae.getSecurityErrorCode()) { +case PERMISSION_DENIED: + if (hasPermission) +throw new AccumuloException(Got a security exception when I should have had permission., ae); + else { +if (exists) { + state.getConnector().securityOperations().dropLocalUser(tableUserName); + WalkingSecurity.get(state).dropUser(tableUserName); +} +return; + } + +case USER_DOESNT_EXIST: + if (exists) +throw new AccumuloException(Got user DNE exception when user should exists., ae); + else +return; +default: + throw new AccumuloException(Got unexpected exception, ae); + } +} +WalkingSecurity.get(state).dropUser(tableUserName); ++Thread.sleep(1000); +if (!hasPermission) + throw new AccumuloException(Didn't get Security Exception when we should have); + } +}
[04/10] git commit: ACCUMULO-2508 Add delay after dropping user in security randomwalk
ACCUMULO-2508 Add delay after dropping user in security randomwalk Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/bbd6aeb3 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/bbd6aeb3 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/bbd6aeb3 Branch: refs/heads/master Commit: bbd6aeb3303ddd230f7f609b1cf7d3137cbc180d Parents: 4a27da5 Author: Bill Havanki bhava...@cloudera.com Authored: Thu Mar 20 14:57:25 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Thu Mar 20 14:57:25 2014 -0400 -- .../apache/accumulo/server/test/randomwalk/security/DropUser.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/bbd6aeb3/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java -- diff --git a/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java b/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java index 8957e6a..1fa3789 100644 --- a/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java +++ b/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java @@ -71,6 +71,7 @@ public class DropUser extends Test { SecurityHelper.setTabPerm(state, tableUserName, tp, false); for (SystemPermission sp : SystemPermission.values()) SecurityHelper.setSysPerm(state, tableUserName, sp, false); +Thread.sleep(1000); if (!hasPermission) throw new AccumuloException(Didn't get Security Exception when we should have); }
[06/10] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT
Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT Conflicts: test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/4b7a011c Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/4b7a011c Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/4b7a011c Branch: refs/heads/1.5.2-SNAPSHOT Commit: 4b7a011ca59cd0f731192169d3999c630e14c0e1 Parents: d22bf18 bbd6aeb Author: Bill Havanki bhava...@cloudera.com Authored: Thu Mar 20 15:01:37 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Thu Mar 20 15:01:37 2014 -0400 -- .../java/org/apache/accumulo/test/randomwalk/security/DropUser.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/4b7a011c/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java -- diff --cc test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java index ddf39aa,000..d48a2cd mode 100644,00..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 @@@ -1,66 -1,0 +1,67 @@@ +/* + * 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. + */ +package org.apache.accumulo.test.randomwalk.security; + +import java.util.Properties; + +import org.apache.accumulo.core.client.AccumuloException; +import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.Connector; +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, Properties props) throws Exception { +Connector conn = state.getInstance().getConnector(WalkingSecurity.get(state).getSysUserName(), WalkingSecurity.get(state).getSysToken()); + +String tableUserName = WalkingSecurity.get(state).getTabUserName(); + +boolean exists = WalkingSecurity.get(state).userExists(tableUserName); +boolean hasPermission = WalkingSecurity.get(state).canDropUser(WalkingSecurity.get(state).getSysCredentials(), tableUserName); + +try { + conn.securityOperations().dropLocalUser(tableUserName); +} catch (AccumuloSecurityException ae) { + switch (ae.getSecurityErrorCode()) { +case PERMISSION_DENIED: + if (hasPermission) +throw new AccumuloException(Got a security exception when I should have had permission., ae); + else { +if (exists) { + state.getConnector().securityOperations().dropLocalUser(tableUserName); + WalkingSecurity.get(state).dropUser(tableUserName); +} +return; + } + +case USER_DOESNT_EXIST: + if (exists) +throw new AccumuloException(Got user DNE exception when user should exists., ae); + else +return; +default: + throw new AccumuloException(Got unexpected exception, ae); + } +} +WalkingSecurity.get(state).dropUser(tableUserName); ++Thread.sleep(1000); +if (!hasPermission) + throw new AccumuloException(Didn't get Security Exception when we should have); + } +}
[10/10] git commit: Merge branch '1.6.0-SNAPSHOT'
Merge branch '1.6.0-SNAPSHOT' Conflicts: test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/b644edad Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/b644edad Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/b644edad Branch: refs/heads/master Commit: b644edade2041f05cd837542cadce3fa5a7e2923 Parents: 7988f8f aefa52e Author: Bill Havanki bhava...@cloudera.com Authored: Thu Mar 20 15:02:19 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Thu Mar 20 15:02:19 2014 -0400 -- .../java/org/apache/accumulo/test/randomwalk/security/DropUser.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/b644edad/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java -- diff --cc test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java index f310116,d48a2cd..40bde3b --- 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 @@@ -60,7 -59,8 +60,8 @@@ public class DropUser extends Test throw new AccumuloException(Got unexpected exception, ae); } } -WalkingSecurity.get(state).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); }
[03/10] git commit: ACCUMULO-2508 Add delay after dropping user in security randomwalk
ACCUMULO-2508 Add delay after dropping user in security randomwalk Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/bbd6aeb3 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/bbd6aeb3 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/bbd6aeb3 Branch: refs/heads/1.6.0-SNAPSHOT Commit: bbd6aeb3303ddd230f7f609b1cf7d3137cbc180d Parents: 4a27da5 Author: Bill Havanki bhava...@cloudera.com Authored: Thu Mar 20 14:57:25 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Thu Mar 20 14:57:25 2014 -0400 -- .../apache/accumulo/server/test/randomwalk/security/DropUser.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/bbd6aeb3/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java -- diff --git a/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java b/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java index 8957e6a..1fa3789 100644 --- a/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java +++ b/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java @@ -71,6 +71,7 @@ public class DropUser extends Test { SecurityHelper.setTabPerm(state, tableUserName, tp, false); for (SystemPermission sp : SystemPermission.values()) SecurityHelper.setSysPerm(state, tableUserName, sp, false); +Thread.sleep(1000); if (!hasPermission) throw new AccumuloException(Didn't get Security Exception when we should have); }
[02/10] git commit: ACCUMULO-2508 Add delay after dropping user in security randomwalk
ACCUMULO-2508 Add delay after dropping user in security randomwalk Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/bbd6aeb3 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/bbd6aeb3 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/bbd6aeb3 Branch: refs/heads/1.5.2-SNAPSHOT Commit: bbd6aeb3303ddd230f7f609b1cf7d3137cbc180d Parents: 4a27da5 Author: Bill Havanki bhava...@cloudera.com Authored: Thu Mar 20 14:57:25 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Thu Mar 20 14:57:25 2014 -0400 -- .../apache/accumulo/server/test/randomwalk/security/DropUser.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/bbd6aeb3/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java -- diff --git a/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java b/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java index 8957e6a..1fa3789 100644 --- a/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java +++ b/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java @@ -71,6 +71,7 @@ public class DropUser extends Test { SecurityHelper.setTabPerm(state, tableUserName, tp, false); for (SystemPermission sp : SystemPermission.values()) SecurityHelper.setSysPerm(state, tableUserName, sp, false); +Thread.sleep(1000); if (!hasPermission) throw new AccumuloException(Didn't get Security Exception when we should have); }
[01/10] git commit: ACCUMULO-2508 Add delay after dropping user in security randomwalk
Repository: accumulo Updated Branches: refs/heads/1.4.5-SNAPSHOT 4a27da546 - bbd6aeb33 refs/heads/1.5.2-SNAPSHOT d22bf18f4 - 4b7a011ca refs/heads/1.6.0-SNAPSHOT acce1d53f - aefa52e2a refs/heads/master 7988f8f6c - b644edade ACCUMULO-2508 Add delay after dropping user in security randomwalk Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/bbd6aeb3 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/bbd6aeb3 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/bbd6aeb3 Branch: refs/heads/1.4.5-SNAPSHOT Commit: bbd6aeb3303ddd230f7f609b1cf7d3137cbc180d Parents: 4a27da5 Author: Bill Havanki bhava...@cloudera.com Authored: Thu Mar 20 14:57:25 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Thu Mar 20 14:57:25 2014 -0400 -- .../apache/accumulo/server/test/randomwalk/security/DropUser.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/bbd6aeb3/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java -- diff --git a/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java b/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java index 8957e6a..1fa3789 100644 --- a/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java +++ b/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/DropUser.java @@ -71,6 +71,7 @@ public class DropUser extends Test { SecurityHelper.setTabPerm(state, tableUserName, tp, false); for (SystemPermission sp : SystemPermission.values()) SecurityHelper.setSysPerm(state, tableUserName, sp, false); +Thread.sleep(1000); if (!hasPermission) throw new AccumuloException(Didn't get Security Exception when we should have); }
[08/10] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/aefa52e2 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/aefa52e2 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/aefa52e2 Branch: refs/heads/1.6.0-SNAPSHOT Commit: aefa52e2af722ef3dc8ea6ebf342b61a40611397 Parents: acce1d5 4b7a011 Author: Bill Havanki bhava...@cloudera.com Authored: Thu Mar 20 15:01:47 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Thu Mar 20 15:01:47 2014 -0400 -- .../java/org/apache/accumulo/test/randomwalk/security/DropUser.java | 1 + 1 file changed, 1 insertion(+) --
[05/10] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT
Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT Conflicts: test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/4b7a011c Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/4b7a011c Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/4b7a011c Branch: refs/heads/1.6.0-SNAPSHOT Commit: 4b7a011ca59cd0f731192169d3999c630e14c0e1 Parents: d22bf18 bbd6aeb Author: Bill Havanki bhava...@cloudera.com Authored: Thu Mar 20 15:01:37 2014 -0400 Committer: Bill Havanki bhava...@cloudera.com Committed: Thu Mar 20 15:01:37 2014 -0400 -- .../java/org/apache/accumulo/test/randomwalk/security/DropUser.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/4b7a011c/test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java -- diff --cc test/src/main/java/org/apache/accumulo/test/randomwalk/security/DropUser.java index ddf39aa,000..d48a2cd mode 100644,00..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 @@@ -1,66 -1,0 +1,67 @@@ +/* + * 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. + */ +package org.apache.accumulo.test.randomwalk.security; + +import java.util.Properties; + +import org.apache.accumulo.core.client.AccumuloException; +import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.Connector; +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, Properties props) throws Exception { +Connector conn = state.getInstance().getConnector(WalkingSecurity.get(state).getSysUserName(), WalkingSecurity.get(state).getSysToken()); + +String tableUserName = WalkingSecurity.get(state).getTabUserName(); + +boolean exists = WalkingSecurity.get(state).userExists(tableUserName); +boolean hasPermission = WalkingSecurity.get(state).canDropUser(WalkingSecurity.get(state).getSysCredentials(), tableUserName); + +try { + conn.securityOperations().dropLocalUser(tableUserName); +} catch (AccumuloSecurityException ae) { + switch (ae.getSecurityErrorCode()) { +case PERMISSION_DENIED: + if (hasPermission) +throw new AccumuloException(Got a security exception when I should have had permission., ae); + else { +if (exists) { + state.getConnector().securityOperations().dropLocalUser(tableUserName); + WalkingSecurity.get(state).dropUser(tableUserName); +} +return; + } + +case USER_DOESNT_EXIST: + if (exists) +throw new AccumuloException(Got user DNE exception when user should exists., ae); + else +return; +default: + throw new AccumuloException(Got unexpected exception, ae); + } +} +WalkingSecurity.get(state).dropUser(tableUserName); ++Thread.sleep(1000); +if (!hasPermission) + throw new AccumuloException(Didn't get Security Exception when we should have); + } +}
svn commit: r1579718 - /accumulo/site/branches/redesign14/
Author: bhavanki Date: Thu Mar 20 19:20:20 2014 New Revision: 1579718 URL: http://svn.apache.org/r1579718 Log: Branch for early 2014 redesign with Bootstrap etc. Added: accumulo/site/branches/redesign14/ (props changed) - copied from r1579717, accumulo/site/trunk/ Propchange: accumulo/site/branches/redesign14/ -- --- svn:ignore (added) +++ svn:ignore Thu Mar 20 19:20:20 2014 @@ -0,0 +1 @@ +.project Propchange: accumulo/site/branches/redesign14/ -- svn:mergeinfo = /accumulo/site/branches/git:1490088-1504703
svn commit: r902575 - /websites/staging/accumulo/trunk/content/
Author: buildbot Date: Thu Mar 20 19:20:27 2014 New Revision: 902575 Log: Staging update by buildbot for accumulo Modified: websites/staging/accumulo/trunk/content/ (props changed) Propchange: websites/staging/accumulo/trunk/content/ -- --- cms:source-revision (original) +++ cms:source-revision Thu Mar 20 19:20:27 2014 @@ -1 +1 @@ -1579698 +1579718
svn commit: r902577 - /websites/staging/accumulo/trunk/content/
Author: buildbot Date: Thu Mar 20 19:25:56 2014 New Revision: 902577 Log: Staging update by buildbot for accumulo Modified: websites/staging/accumulo/trunk/content/ (props changed) Propchange: websites/staging/accumulo/trunk/content/ -- --- cms:source-revision (original) +++ cms:source-revision Thu Mar 20 19:25:56 2014 @@ -1 +1 @@ -1579718 +1579720
svn commit: r902579 - in /websites/staging/accumulo/trunk/content: ./ bylaws.html
Author: buildbot Date: Thu Mar 20 19:40:11 2014 New Revision: 902579 Log: Staging update by buildbot for accumulo Modified: websites/staging/accumulo/trunk/content/ (props changed) websites/staging/accumulo/trunk/content/bylaws.html Propchange: websites/staging/accumulo/trunk/content/ -- --- cms:source-revision (original) +++ cms:source-revision Thu Mar 20 19:40:11 2014 @@ -1 +1 @@ -1579720 +1579722 Modified: websites/staging/accumulo/trunk/content/bylaws.html == --- websites/staging/accumulo/trunk/content/bylaws.html (original) +++ websites/staging/accumulo/trunk/content/bylaws.html Thu Mar 20 19:40:11 2014 @@ -104,8 +104,8 @@ h2 id=contributorsContributors/h2 pAll of the volunteers who are contributing time, code, documentation, or resources to the Accumulo project are considered contributors. A contributor that makes sustained, welcome contributions to the project may be invited to become a committer, though the exact timing of such invitations depends on many factors./p h2 id=committersCommitters/h2 -pThe project's committers are responsible for the project's technical management. Committers have write access to the project's code repositories and may cast binding votes on any technical discussion regarding Accumulo. Committer access is by invitation only and must be approved by consensus approval of the active PMC members. Upon acceptance of the invitation to become a committer, it is the accepting member’s responsibility to update his/her status on the Accumulo web page accordingly./p -pA committer is considered emeritus, meaning inactive, by his or her own declaration or by not reviewing patches or committing patches to the project for over six months. Emeritus members will be recognized by the PMC on the Accumulo web page, in honor of their past contributions. Emeritus members retain all voting and commit rights associated with their former designation and can move themselves out of emeritus status by sending an announcement of their return to the developer mailing list. It will be the returning member's responsibility to update his/her status on the web page accordingly./p +pThe project's committers are responsible for the project's technical management. Committers have write access to the project's code repositories and may cast binding votes on any technical discussion regarding Accumulo. Committer access is by invitation only and must be approved by consensus approval of the active PMC members. Upon acceptance of the invitation to become a committer, it is the accepting member’s responsibility to update their status on the Accumulo web page accordingly./p +pA committer is considered emeritus, meaning inactive, by their own declaration or by not reviewing patches or committing patches to the project for over six months. Emeritus members will be recognized by the PMC on the Accumulo web page, in honor of their past contributions. Emeritus members retain all voting and commit rights associated with their former designation and can move themselves out of emeritus status by sending an announcement of their return to the developer mailing list. It will be the returning member's responsibility to update their status on the web page accordingly./p pAn emeritus committer’s commit access may be disabled as part of routine security. Access shall not be removed without notifying the committer, and access shall be maintained if the committer wishes to leave it active. A committer’s commit access shall be reactivated upon the committer’s request to the PMC./p pAll Apache committers are required to have a signed a href=http://www.apache.org/licenses/icla.txt;Contributor License Agreement/a (CLA) on file with the Apache Software Foundation. Under the terms of the CLA that all committers must sign, a committer's primary responsibility is to ensure that all code committed to Apache Accumulo is licensed appropriately and meets those criteria set forth in the CLA (including both original works and patches committed on behalf of other contributors). There is a a href=http://www.apache.org/dev/committers.html;Committer FAQ/a which provides more details on the requirements for committers. /p pIt is the custom of the Accumulo project to also invite each committer to become a member of the Accumulo PMC./p @@ -131,8 +131,8 @@ stability, and robustness of both code a liMaintaining these bylaws and other guidelines of the project./li /ul pIn particular, PMC members must understand both our project's criteria and ASF criteria for voting on a a href=http://www.apache.org/dev/release.html#management;release/a./p -pMembership of the PMC is by invitation only and must be approved by a consensus approval of active PMC members. Upon acceptance of the invitation to become a PMC member, it is the
svn commit: r902580 - in /websites/production/accumulo/content: ./ 1.4/apidocs/ 1.5/apidocs/
Author: ctubbsii Date: Thu Mar 20 19:41:12 2014 New Revision: 902580 Log: Use generic pronouns instead of gender-specific ones Added: websites/production/accumulo/content/ - copied from r902579, websites/staging/accumulo/trunk/content/ websites/production/accumulo/content/1.4/apidocs/ - copied from r902579, websites/production/accumulo/content/1.4/apidocs/ websites/production/accumulo/content/1.5/apidocs/ - copied from r902579, websites/production/accumulo/content/1.5/apidocs/
[1/2] git commit: ACCUMULO-2061 Fixing whitespace nits
Repository: accumulo Updated Branches: refs/heads/ACCUMULO-2061 3487f8a80 - e796ffc7a ACCUMULO-2061 Fixing whitespace nits Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/f5ba4d5b Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/f5ba4d5b Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/f5ba4d5b Branch: refs/heads/ACCUMULO-2061 Commit: f5ba4d5ba51697597077d9851a7bde09532758f6 Parents: 3487f8a Author: Josh Elser els...@apache.org Authored: Thu Mar 20 13:23:04 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 13:23:04 2014 -0400 -- .../org/apache/accumulo/core/volume/NonConfiguredVolume.java | 2 +- .../org/apache/accumulo/core/volume/VolumeConfiguration.java | 4 ++-- .../main/java/org/apache/accumulo/core/volume/VolumeImpl.java| 2 +- .../org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java | 3 --- 4 files changed, 4 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/f5ba4d5b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java index 3cfd1c2..3d56fa9 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java @@ -23,7 +23,7 @@ import org.apache.hadoop.fs.Path; /** * Volume implementation which represents a Volume for which we have a FileSystem but no base path because it is not configured via * {@link Property#INSTANCE_VOLUMES} - * + * * This is useful to handle volumes that have been removed from accumulo-site.xml but references to these volumes have not been updated. This Volume should * never be used to create new files, only to read existing files. */ http://git-wip-us.apache.org/repos/asf/accumulo/blob/f5ba4d5b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java index 71ad611..e7a51d7 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java @@ -85,7 +85,7 @@ public class VolumeConfiguration { /** * Compute the URIs to be used by Accumulo - * + * * @param conf * @return */ @@ -134,7 +134,7 @@ public class VolumeConfiguration { /** * Create a Volume with the given FileSystem that writes to the default path - * + * * @param fs * A FileSystem to write to * @return A Volume instance writing to the given FileSystem in the default path http://git-wip-us.apache.org/repos/asf/accumulo/blob/f5ba4d5b/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java b/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java index f902c35..43ab96b 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java @@ -29,7 +29,7 @@ import org.apache.hadoop.fs.Path; import org.apache.log4j.Logger; /** - * Basic Volume implementation that contains a FileSystem and a base path + * Basic Volume implementation that contains a FileSystem and a base path * that should be used within that filesystem. */ public class VolumeImpl implements Volume { http://git-wip-us.apache.org/repos/asf/accumulo/blob/f5ba4d5b/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java -- diff --git a/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java b/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java index 937baf8..8d4a800 100644 --- a/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java +++ b/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java @@ -25,9 +25,6 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; -/** - * - */ public class NonConfiguredVolumeTest { private NonConfiguredVolume volume;
[2/2] git commit: ACCUMULO-2061 Make sure we sleep to allow the processes to die before fs rename
ACCUMULO-2061 Make sure we sleep to allow the processes to die before fs rename If we don't wait a little bit, it's possible that the MAC processes will recreate a file in the directory we just renamed which will cause the test to fail despite Accumulo doing the right things. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/e796ffc7 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/e796ffc7 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/e796ffc7 Branch: refs/heads/ACCUMULO-2061 Commit: e796ffc7ae2195ba8feb877bded675f4c4346f30 Parents: f5ba4d5 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 16:16:30 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 16:16:30 2014 -0400 -- .../test/java/org/apache/accumulo/test/VolumeIT.java | 13 + 1 file changed, 13 insertions(+) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/e796ffc7/test/src/test/java/org/apache/accumulo/test/VolumeIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/VolumeIT.java b/test/src/test/java/org/apache/accumulo/test/VolumeIT.java index c0e41c1..d014e0e 100644 --- a/test/src/test/java/org/apache/accumulo/test/VolumeIT.java +++ b/test/src/test/java/org/apache/accumulo/test/VolumeIT.java @@ -488,6 +488,19 @@ public class VolumeIT extends ConfigurableMacIT { cluster.stop(); +// If we don't wait, we have no certainty that the processes will actually be +// dead by the time we attempt the rename. If the processes haven't died, it's +// possible that an open file will recreate the old volume directories which +// will cause this test to fail. +// For reference, OpenJDK6 will send SIGTERM to each process in cluster.stop() +try { + Thread.sleep(5000); +} catch (InterruptedException e) { + Thread.currentThread().interrupt(); + log.error(Test thread interrupted, e); + Assert.fail(Test thread interrupted); +} + File v1f = new File(v1.toUri()); File v8f = new File(new File(v1.getParent().toUri()), v8); Assert.assertTrue(Failed to rename + v1f + to + v8f, v1f.renameTo(v8f));
svn commit: r1579730 - in /accumulo/site/branches/redesign14: content/css/accumulo.css templates/nav.html templates/skeleton.html
Author: bhavanki Date: Thu Mar 20 20:29:21 2014 New Revision: 1579730 URL: http://svn.apache.org/r1579730 Log: Integrate Bootstrap, reworking nav menu and skeleton. Added: accumulo/site/branches/redesign14/templates/nav.html Modified: accumulo/site/branches/redesign14/content/css/accumulo.css accumulo/site/branches/redesign14/templates/skeleton.html Modified: accumulo/site/branches/redesign14/content/css/accumulo.css URL: http://svn.apache.org/viewvc/accumulo/site/branches/redesign14/content/css/accumulo.css?rev=1579730r1=1579729r2=1579730view=diff == --- accumulo/site/branches/redesign14/content/css/accumulo.css (original) +++ accumulo/site/branches/redesign14/content/css/accumulo.css Thu Mar 20 20:29:21 2014 @@ -14,21 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -body { -color: white; -font-family: Verdana,Geneva,sans-serif; -font-size: 10pt; -margin: 0; -} -#banner { -margin-top: 0; -min-width: 850px; -padding: 10px; -} -#logo { -margin-left: 20px; -text-align: left; -} #bannertext { margin-top: 10px; text-align: left; @@ -36,125 +21,23 @@ body { .clear { clear: both; } -a { -color: #107EC0; -} -a:visited { -color: #107EC0; -} -a:hover { -background-color: #E6EBED; -color: #107EC0; -} -a img { -border: medium none; -} -h1, h2, h3, h4, h5, h6 { -border-bottom: 2px dashed #66; -color: black; -text-transform: uppercase; -} #content { -color: #33; -margin: 0 150px 20px 220px; padding: 0 8px 40px; } -#content h1 { -font-size: 1.4em; -padding-top: 15px; -padding-bottom: 15px; -} -#content h2 { -border-bottom: 1px dashed #66; -font-size: 1.2em; -margin-top: 2em; -} -#content h3 { -border-bottom: medium none; -font-size: 1.1em; -margin-bottom: 0; -} -#content h4, h5, h6 { -border-bottom: medium none; -font-size: 1em; -margin-bottom: 0; -} #content img { vertical-align: middle; } -.codehilite { -background-color: #FF; -border-radius: 10px 10px 10px 10px; -padding: 0.01em 1em; -} -#navigation { --moz-border-bottom-colors: none; --moz-border-image: none; --moz-border-left-colors: none; --moz-border-right-colors: none; --moz-border-top-colors: none; -background: none repeat scroll 0 0 #F5F8FA; -border-color: #C0C0C0 #C0C0C0 #C0C0C0 -moz-use-text-color; -border-radius: 0 10px 10px 0; -border-style: solid solid solid none; -border-width: 1px 1px 1px medium; -color: #33; -float: left; -font-size: 0.9em; -margin: 0 0 20px; -padding: 15px 15px 5px 25px; -width: 170px; -} -#navigation img { -display: block; -margin-left: auto; -margin-right: auto; -} -#navigation h1 { -border-bottom: 2px dashed #66; -color: #00; -font-size: 1em; -margin-bottom: 0; -margin-top: 0.8em; -padding: 0; -} -#navigation ul { -list-style: none outside none; -margin: 0; -padding: 0; -} -#navigation li { -border-bottom: 1px solid #CC; -margin: 0.2em 0; -padding: 0; -} -#navigation li a { -margin: 0; -text-decoration: none; -} -#navigation li a:hover { -background: none repeat scroll 0 0 transparent; -color: #193240; -} #footer { border-top: 1px solid #CC; color: #66; font-size: 0.8em; -margin: 20px 150px 20px 250px; -padding: 0 8px; +padding: 8px 8px; text-align: center; } -.copyright { -float: left; -} #asf-logo { float: left; padding-top: 15px; } -dd { -} -dl { -} dt { display: inline; float: left; @@ -170,4 +53,4 @@ dt { #release_notes_testing tbody tr th, #release_notes_testing tbody tr td { padding: 5px; -} \ No newline at end of file +} Added: accumulo/site/branches/redesign14/templates/nav.html URL: http://svn.apache.org/viewvc/accumulo/site/branches/redesign14/templates/nav.html?rev=1579730view=auto == --- accumulo/site/branches/redesign14/templates/nav.html (added) +++ accumulo/site/branches/redesign14/templates/nav.html Thu Mar 20 20:29:21 2014 @@ -0,0 +1,90 @@ +nav class=navbar navbar-default navbar-static-top role=navigation +div class=container-fluid + div class=navbar-header +a class=navbar-brand href=index.htmlAccumulo/a + /div + ul class=nav navbar-nav +li class=dropdown + a class=dropdown-toggle data-toggle=dropdown href=# +Project span class=caret/span + /a +ul class=dropdown-menu +li class=activea href=/index.htmlHome/a/li +lia href=/downloadsDownloads/a/li +lia href=/notable_features.htmlFeatures/a/li +lia href=/licenses/LICENSE-2.0License/a/li +/ul +/li + +li class=dropdown + a class=dropdown-toggle data-toggle=dropdown href=# +
svn commit: r902586 - /websites/staging/accumulo/trunk/content/
Author: buildbot Date: Thu Mar 20 20:29:26 2014 New Revision: 902586 Log: Staging update by buildbot for accumulo Modified: websites/staging/accumulo/trunk/content/ (props changed) Propchange: websites/staging/accumulo/trunk/content/ -- --- cms:source-revision (original) +++ cms:source-revision Thu Mar 20 20:29:26 2014 @@ -1 +1 @@ -1579722 +1579730
svn commit: r902587 - /websites/staging/accumulo/trunk/content/
Author: buildbot Date: Thu Mar 20 20:34:15 2014 New Revision: 902587 Log: Staging update by buildbot for accumulo Modified: websites/staging/accumulo/trunk/content/ (props changed) Propchange: websites/staging/accumulo/trunk/content/ -- --- cms:source-revision (original) +++ cms:source-revision Thu Mar 20 20:34:15 2014 @@ -1 +1 @@ -1579730 +1579731
svn commit: r1579731 - in /accumulo/site/branches/redesign14/templates: nav.html skeleton.html
Author: bhavanki Date: Thu Mar 20 20:34:10 2014 New Revision: 1579731 URL: http://svn.apache.org/r1579731 Log: Fixed template links. Modified: accumulo/site/branches/redesign14/templates/nav.html accumulo/site/branches/redesign14/templates/skeleton.html Modified: accumulo/site/branches/redesign14/templates/nav.html URL: http://svn.apache.org/viewvc/accumulo/site/branches/redesign14/templates/nav.html?rev=1579731r1=1579730r2=1579731view=diff == --- accumulo/site/branches/redesign14/templates/nav.html (original) +++ accumulo/site/branches/redesign14/templates/nav.html Thu Mar 20 20:34:10 2014 @@ -12,7 +12,7 @@ li class=activea href=/index.htmlHome/a/li lia href=/downloadsDownloads/a/li lia href=/notable_features.htmlFeatures/a/li -lia href=/licenses/LICENSE-2.0License/a/li +lia href=http://www.apache.org/licenses/LICENSE-2.0;License/a/li /ul /li Modified: accumulo/site/branches/redesign14/templates/skeleton.html URL: http://svn.apache.org/viewvc/accumulo/site/branches/redesign14/templates/skeleton.html?rev=1579731r1=1579730r2=1579731view=diff == --- accumulo/site/branches/redesign14/templates/skeleton.html (original) +++ accumulo/site/branches/redesign14/templates/skeleton.html Thu Mar 20 20:34:10 2014 @@ -20,16 +20,16 @@ meta charset=utf-8 meta http-equiv=X-UA-Compatible content=IE=edge meta name=viewport content=width=device-width, initial-scale=1 - link href=css/bootstrap.min.css rel=stylesheet - link href=css/bootstrap-theme.min.css rel=stylesheet + link href=/css/bootstrap.min.css rel=stylesheet + link href=/css/bootstrap-theme.min.css rel=stylesheet !-- WARNING: Respond.js doesn't work if you view the page via file:// -- !--[if lt IE 9] script src=https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js;/script script src=https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js;/script ![endif]-- script src=https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js;/script - script src=js/bootstrap.min.js/script - link href=css/accumulo.css rel=stylesheet type=text/css + script src=/js/bootstrap.min.js/script + link href=/css/accumulo.css rel=stylesheet type=text/css title{% block title %}{{ headers.title }}{% endblock %}/title script type=text/javascript @@ -73,7 +73,7 @@ div id=footer a alt=Apache Software Foundation href=http://www.apache.org; - img id=asf-logo alt=Apache Software Foundation src=images/feather-small.gif width=100 + img id=asf-logo alt=Apache Software Foundation src=/images/feather-small.gif width=100 /a div class=copyright p
git commit: ACCUMULO-2061 Add a utility method to pull a Path with the instance_id
Repository: accumulo Updated Branches: refs/heads/ACCUMULO-2061 e796ffc7a - 05553e8fa ACCUMULO-2061 Add a utility method to pull a Path with the instance_id Consolidates a little bit of code in one place. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/05553e8f Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/05553e8f Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/05553e8f Branch: refs/heads/ACCUMULO-2061 Commit: 05553e8fa5e0ab047cd4c8e1d442c1efbaa4bf8b Parents: e796ffc Author: Josh Elser els...@apache.org Authored: Thu Mar 20 17:39:13 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 17:40:14 2014 -0400 -- .../main/java/org/apache/accumulo/server/Accumulo.java| 7 +++ .../java/org/apache/accumulo/server/ServerConstants.java | 2 +- .../apache/accumulo/server/client/HdfsZooInstance.java| 10 +- .../org/apache/accumulo/server/conf/ZooConfiguration.java | 10 -- 4 files changed, 17 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/05553e8f/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java b/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java index f7f2298..925c0d0 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java +++ b/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java @@ -32,6 +32,7 @@ import org.apache.accumulo.core.util.AddressUtil; import org.apache.accumulo.core.util.UtilWaitThread; import org.apache.accumulo.core.util.Version; import org.apache.accumulo.core.volume.Volume; +import org.apache.accumulo.core.zookeeper.ZooUtil; import org.apache.accumulo.server.client.HdfsZooInstance; import org.apache.accumulo.server.conf.ServerConfiguration; import org.apache.accumulo.server.fs.VolumeManager; @@ -91,6 +92,12 @@ public class Accumulo { return getAccumuloPersistentVersion(v.getFileSystem(), path); } + public static synchronized Path getAccumuloInstanceIdPath(VolumeManager fs) { +// It doesn't matter which Volume is used as they should all have the instance ID stored +Volume v = fs.getVolumes().iterator().next(); +return ServerConstants.getInstanceIdLocation(v); + } + public static void enableTracing(String address, String application) { try { DistributedTrace.enable(HdfsZooInstance.getInstance(), ZooReaderWriter.getInstance(), application, address); http://git-wip-us.apache.org/repos/asf/accumulo/blob/05553e8f/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java b/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java index 7dd0a08..b577abb 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java +++ b/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java @@ -76,7 +76,7 @@ public class ServerConstants { String currentIid; Integer currentVersion; try { -currentIid = ZooUtil.getInstanceIDFromHdfs(new Path(baseDir, INSTANCE_ID_DIR), ServerConfiguration.getSiteConfiguration()); +currentIid = ZooUtil.getInstanceIDFromHdfs(path, ServerConfiguration.getSiteConfiguration()); Path vpath = new Path(baseDir, VERSION_DIR); currentVersion = Accumulo.getAccumuloPersistentVersion(vpath.getFileSystem(CachedConfiguration.getInstance()), vpath); } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/05553e8f/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java b/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java index ee928f3..620188c 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java +++ b/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java @@ -39,14 +39,14 @@ import org.apache.accumulo.core.util.ByteBufferUtil; import org.apache.accumulo.core.util.OpTimer; import org.apache.accumulo.core.util.StringUtil; import org.apache.accumulo.core.util.TextUtil; -import org.apache.accumulo.core.volume.Volume; import org.apache.accumulo.core.zookeeper.ZooUtil; import org.apache.accumulo.fate.zookeeper.ZooCache; -import org.apache.accumulo.server.ServerConstants; +import
[01/10] git commit: ACCUMULO-2512 Wait for each MAC process to exit before returning from MAC.stop()
Repository: accumulo Updated Branches: refs/heads/1.4.5-SNAPSHOT bbd6aeb33 - 0753a754b refs/heads/1.5.2-SNAPSHOT 4b7a011ca - 63d5e55a0 refs/heads/1.6.0-SNAPSHOT aefa52e2a - 44b13c12e refs/heads/master b644edade - 394fe061f ACCUMULO-2512 Wait for each MAC process to exit before returning from MAC.stop() Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/0753a754 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/0753a754 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/0753a754 Branch: refs/heads/1.4.5-SNAPSHOT Commit: 0753a754b0a1751ab7f2bb4ddd922aa9dd492252 Parents: bbd6aeb Author: Josh Elser els...@apache.org Authored: Thu Mar 20 16:35:04 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 16:35:04 2014 -0400 -- .../accumulo/minicluster/MiniAccumuloCluster.java | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/0753a754/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java -- diff --git a/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java b/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java index cbed375..848e14f 100644 --- a/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java +++ b/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java @@ -362,22 +362,31 @@ public class MiniAccumuloCluster { */ public void stop() throws IOException, InterruptedException { -if (zooKeeperProcess != null) +if (zooKeeperProcess != null) { zooKeeperProcess.destroy(); -if (loggerProcess != null) + zooKeeperProcess.waitFor(); +} +if (loggerProcess != null) { loggerProcess.destroy(); -if (masterProcess != null) + loggerProcess.waitFor(); +} +if (masterProcess != null) { masterProcess.destroy(); + masterProcess.waitFor(); +} if (tabletServerProcesses != null) { for (Process tserver : tabletServerProcesses) { tserver.destroy(); +tserver.waitFor(); } } for (LogWriter lw : logWriters) lw.flush(); -if (gcProcess != null) +if (gcProcess != null) { gcProcess.destroy(); + gcProcess.waitFor(); +} } }
[02/10] git commit: ACCUMULO-2512 Wait for each MAC process to exit before returning from MAC.stop()
ACCUMULO-2512 Wait for each MAC process to exit before returning from MAC.stop() Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/0753a754 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/0753a754 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/0753a754 Branch: refs/heads/1.5.2-SNAPSHOT Commit: 0753a754b0a1751ab7f2bb4ddd922aa9dd492252 Parents: bbd6aeb Author: Josh Elser els...@apache.org Authored: Thu Mar 20 16:35:04 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 16:35:04 2014 -0400 -- .../accumulo/minicluster/MiniAccumuloCluster.java | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/0753a754/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java -- diff --git a/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java b/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java index cbed375..848e14f 100644 --- a/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java +++ b/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java @@ -362,22 +362,31 @@ public class MiniAccumuloCluster { */ public void stop() throws IOException, InterruptedException { -if (zooKeeperProcess != null) +if (zooKeeperProcess != null) { zooKeeperProcess.destroy(); -if (loggerProcess != null) + zooKeeperProcess.waitFor(); +} +if (loggerProcess != null) { loggerProcess.destroy(); -if (masterProcess != null) + loggerProcess.waitFor(); +} +if (masterProcess != null) { masterProcess.destroy(); + masterProcess.waitFor(); +} if (tabletServerProcesses != null) { for (Process tserver : tabletServerProcesses) { tserver.destroy(); +tserver.waitFor(); } } for (LogWriter lw : logWriters) lw.flush(); -if (gcProcess != null) +if (gcProcess != null) { gcProcess.destroy(); + gcProcess.waitFor(); +} } }
[05/10] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT
Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT Conflicts: minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/63d5e55a Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/63d5e55a Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/63d5e55a Branch: refs/heads/1.6.0-SNAPSHOT Commit: 63d5e55a0b03910246b9b21efecfde5ac5e709f0 Parents: 4b7a011 0753a75 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 16:50:59 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 16:50:59 2014 -0400 -- .../accumulo/minicluster/MiniAccumuloCluster.java | 13 ++--- 1 file changed, 10 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/63d5e55a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java -- diff --cc minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java index 4018a33,000..a366c16 mode 100644,00..100644 --- a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java +++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java @@@ -1,385 -1,0 +1,392 @@@ +/* + * 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. + */ +package org.apache.accumulo.minicluster; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; + +import org.apache.accumulo.core.Constants; +import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.util.UtilWaitThread; +import org.apache.accumulo.server.gc.SimpleGarbageCollector; +import org.apache.accumulo.server.master.Master; +import org.apache.accumulo.server.tabletserver.TabletServer; +import org.apache.accumulo.server.util.Initialize; +import org.apache.accumulo.server.util.PortUtils; +import org.apache.accumulo.server.util.time.SimpleTimer; +import org.apache.accumulo.start.Main; +import org.apache.zookeeper.server.ZooKeeperServerMain; + +/** + * A utility class that will create Zookeeper and Accumulo processes that write all of their data to a single local directory. This class makes it easy to test + * code against a real Accumulo instance. Its much more accurate for testing than MockAccumulo, but much slower than MockAccumulo. + * + * @since 1.5.0 + */ +public class MiniAccumuloCluster { + + private static final String INSTANCE_SECRET = DONTTELL; + private static final String INSTANCE_NAME = miniInstance; + + private static class LogWriter extends Thread { +private BufferedReader in; +private BufferedWriter out; + +/** + * @throws IOException + */ +public LogWriter(InputStream stream, File logFile) throws IOException { + this.setDaemon(true); + this.in = new BufferedReader(new InputStreamReader(stream, Constants.UTF8)); + out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(logFile), Constants.UTF8)); + + SimpleTimer.getInstance().schedule(new Runnable() { +@Override +public void run() { + try { +flush(); + } catch (IOException e) { +e.printStackTrace(); + } +} + }, 1000, 1000); +} + +public synchronized void flush() throws IOException { + if (out != null) +out.flush(); +} + +@Override +public void run() { + String line; + + try { +while ((line =
[04/10] git commit: ACCUMULO-2512 Wait for each MAC process to exit before returning from MAC.stop()
ACCUMULO-2512 Wait for each MAC process to exit before returning from MAC.stop() Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/0753a754 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/0753a754 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/0753a754 Branch: refs/heads/master Commit: 0753a754b0a1751ab7f2bb4ddd922aa9dd492252 Parents: bbd6aeb Author: Josh Elser els...@apache.org Authored: Thu Mar 20 16:35:04 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 16:35:04 2014 -0400 -- .../accumulo/minicluster/MiniAccumuloCluster.java | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/0753a754/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java -- diff --git a/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java b/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java index cbed375..848e14f 100644 --- a/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java +++ b/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java @@ -362,22 +362,31 @@ public class MiniAccumuloCluster { */ public void stop() throws IOException, InterruptedException { -if (zooKeeperProcess != null) +if (zooKeeperProcess != null) { zooKeeperProcess.destroy(); -if (loggerProcess != null) + zooKeeperProcess.waitFor(); +} +if (loggerProcess != null) { loggerProcess.destroy(); -if (masterProcess != null) + loggerProcess.waitFor(); +} +if (masterProcess != null) { masterProcess.destroy(); + masterProcess.waitFor(); +} if (tabletServerProcesses != null) { for (Process tserver : tabletServerProcesses) { tserver.destroy(); +tserver.waitFor(); } } for (LogWriter lw : logWriters) lw.flush(); -if (gcProcess != null) +if (gcProcess != null) { gcProcess.destroy(); + gcProcess.waitFor(); +} } }
[03/10] git commit: ACCUMULO-2512 Wait for each MAC process to exit before returning from MAC.stop()
ACCUMULO-2512 Wait for each MAC process to exit before returning from MAC.stop() Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/0753a754 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/0753a754 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/0753a754 Branch: refs/heads/1.6.0-SNAPSHOT Commit: 0753a754b0a1751ab7f2bb4ddd922aa9dd492252 Parents: bbd6aeb Author: Josh Elser els...@apache.org Authored: Thu Mar 20 16:35:04 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 16:35:04 2014 -0400 -- .../accumulo/minicluster/MiniAccumuloCluster.java | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/0753a754/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java -- diff --git a/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java b/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java index cbed375..848e14f 100644 --- a/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java +++ b/src/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java @@ -362,22 +362,31 @@ public class MiniAccumuloCluster { */ public void stop() throws IOException, InterruptedException { -if (zooKeeperProcess != null) +if (zooKeeperProcess != null) { zooKeeperProcess.destroy(); -if (loggerProcess != null) + zooKeeperProcess.waitFor(); +} +if (loggerProcess != null) { loggerProcess.destroy(); -if (masterProcess != null) + loggerProcess.waitFor(); +} +if (masterProcess != null) { masterProcess.destroy(); + masterProcess.waitFor(); +} if (tabletServerProcesses != null) { for (Process tserver : tabletServerProcesses) { tserver.destroy(); +tserver.waitFor(); } } for (LogWriter lw : logWriters) lw.flush(); -if (gcProcess != null) +if (gcProcess != null) { gcProcess.destroy(); + gcProcess.waitFor(); +} } }
[10/10] git commit: Merge branch '1.6.0-SNAPSHOT'
Merge branch '1.6.0-SNAPSHOT' Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/394fe061 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/394fe061 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/394fe061 Branch: refs/heads/master Commit: 394fe061fb896e740b0932a9736c0fcc16caee95 Parents: b644eda 44b13c1 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 17:48:57 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 17:48:57 2014 -0400 -- .../minicluster/impl/MiniAccumuloClusterImpl.java | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/394fe061/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java --
[07/10] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT
Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT Conflicts: minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/63d5e55a Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/63d5e55a Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/63d5e55a Branch: refs/heads/master Commit: 63d5e55a0b03910246b9b21efecfde5ac5e709f0 Parents: 4b7a011 0753a75 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 16:50:59 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 16:50:59 2014 -0400 -- .../accumulo/minicluster/MiniAccumuloCluster.java | 13 ++--- 1 file changed, 10 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/63d5e55a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java -- diff --cc minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java index 4018a33,000..a366c16 mode 100644,00..100644 --- a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java +++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java @@@ -1,385 -1,0 +1,392 @@@ +/* + * 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. + */ +package org.apache.accumulo.minicluster; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; + +import org.apache.accumulo.core.Constants; +import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.util.UtilWaitThread; +import org.apache.accumulo.server.gc.SimpleGarbageCollector; +import org.apache.accumulo.server.master.Master; +import org.apache.accumulo.server.tabletserver.TabletServer; +import org.apache.accumulo.server.util.Initialize; +import org.apache.accumulo.server.util.PortUtils; +import org.apache.accumulo.server.util.time.SimpleTimer; +import org.apache.accumulo.start.Main; +import org.apache.zookeeper.server.ZooKeeperServerMain; + +/** + * A utility class that will create Zookeeper and Accumulo processes that write all of their data to a single local directory. This class makes it easy to test + * code against a real Accumulo instance. Its much more accurate for testing than MockAccumulo, but much slower than MockAccumulo. + * + * @since 1.5.0 + */ +public class MiniAccumuloCluster { + + private static final String INSTANCE_SECRET = DONTTELL; + private static final String INSTANCE_NAME = miniInstance; + + private static class LogWriter extends Thread { +private BufferedReader in; +private BufferedWriter out; + +/** + * @throws IOException + */ +public LogWriter(InputStream stream, File logFile) throws IOException { + this.setDaemon(true); + this.in = new BufferedReader(new InputStreamReader(stream, Constants.UTF8)); + out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(logFile), Constants.UTF8)); + + SimpleTimer.getInstance().schedule(new Runnable() { +@Override +public void run() { + try { +flush(); + } catch (IOException e) { +e.printStackTrace(); + } +} + }, 1000, 1000); +} + +public synchronized void flush() throws IOException { + if (out != null) +out.flush(); +} + +@Override +public void run() { + String line; + + try { +while ((line =
[09/10] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Conflicts: minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/44b13c12 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/44b13c12 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/44b13c12 Branch: refs/heads/master Commit: 44b13c12eb9da6165affe038f825a6b17fa2 Parents: aefa52e 63d5e55 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 17:48:51 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 17:48:51 2014 -0400 -- .../minicluster/impl/MiniAccumuloClusterImpl.java | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/44b13c12/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java -- diff --cc minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java index 8a9736d,000..009988e mode 100644,00..100644 --- a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java +++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java @@@ -1,649 -1,0 +1,659 @@@ +/* + * 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. + */ +package org.apache.accumulo.minicluster.impl; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileFilter; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; +import java.util.Set; + +import org.apache.accumulo.core.client.AccumuloException; +import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.ClientConfiguration; +import org.apache.accumulo.core.client.Connector; +import org.apache.accumulo.core.client.Instance; +import org.apache.accumulo.core.client.ZooKeeperInstance; +import org.apache.accumulo.core.client.security.tokens.PasswordToken; +import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.master.thrift.MasterGoalState; +import org.apache.accumulo.core.util.Daemon; +import org.apache.accumulo.core.util.Pair; +import org.apache.accumulo.core.util.StringUtil; +import org.apache.accumulo.core.util.UtilWaitThread; +import org.apache.accumulo.gc.SimpleGarbageCollector; +import org.apache.accumulo.master.Master; +import org.apache.accumulo.master.state.SetGoalState; +import org.apache.accumulo.minicluster.ServerType; +import org.apache.accumulo.server.init.Initialize; +import org.apache.accumulo.server.util.PortUtils; +import org.apache.accumulo.server.util.time.SimpleTimer; +import org.apache.accumulo.start.Main; +import org.apache.accumulo.start.classloader.vfs.MiniDFSUtil; +import org.apache.accumulo.tserver.TabletServer; +import org.apache.commons.configuration.MapConfiguration; +import org.apache.commons.vfs2.FileObject; +import org.apache.commons.vfs2.impl.VFSClassLoader; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.hdfs.DFSConfigKeys; +import org.apache.hadoop.hdfs.MiniDFSCluster; +import org.apache.zookeeper.server.ZooKeeperServerMain; + +import com.google.common.base.Predicate; +import com.google.common.collect.Maps; + +/** + * A utility class that will create Zookeeper
[06/10] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT
Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT Conflicts: minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/63d5e55a Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/63d5e55a Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/63d5e55a Branch: refs/heads/1.5.2-SNAPSHOT Commit: 63d5e55a0b03910246b9b21efecfde5ac5e709f0 Parents: 4b7a011 0753a75 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 16:50:59 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 16:50:59 2014 -0400 -- .../accumulo/minicluster/MiniAccumuloCluster.java | 13 ++--- 1 file changed, 10 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/63d5e55a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java -- diff --cc minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java index 4018a33,000..a366c16 mode 100644,00..100644 --- a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java +++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java @@@ -1,385 -1,0 +1,392 @@@ +/* + * 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. + */ +package org.apache.accumulo.minicluster; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; + +import org.apache.accumulo.core.Constants; +import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.util.UtilWaitThread; +import org.apache.accumulo.server.gc.SimpleGarbageCollector; +import org.apache.accumulo.server.master.Master; +import org.apache.accumulo.server.tabletserver.TabletServer; +import org.apache.accumulo.server.util.Initialize; +import org.apache.accumulo.server.util.PortUtils; +import org.apache.accumulo.server.util.time.SimpleTimer; +import org.apache.accumulo.start.Main; +import org.apache.zookeeper.server.ZooKeeperServerMain; + +/** + * A utility class that will create Zookeeper and Accumulo processes that write all of their data to a single local directory. This class makes it easy to test + * code against a real Accumulo instance. Its much more accurate for testing than MockAccumulo, but much slower than MockAccumulo. + * + * @since 1.5.0 + */ +public class MiniAccumuloCluster { + + private static final String INSTANCE_SECRET = DONTTELL; + private static final String INSTANCE_NAME = miniInstance; + + private static class LogWriter extends Thread { +private BufferedReader in; +private BufferedWriter out; + +/** + * @throws IOException + */ +public LogWriter(InputStream stream, File logFile) throws IOException { + this.setDaemon(true); + this.in = new BufferedReader(new InputStreamReader(stream, Constants.UTF8)); + out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(logFile), Constants.UTF8)); + + SimpleTimer.getInstance().schedule(new Runnable() { +@Override +public void run() { + try { +flush(); + } catch (IOException e) { +e.printStackTrace(); + } +} + }, 1000, 1000); +} + +public synchronized void flush() throws IOException { + if (out != null) +out.flush(); +} + +@Override +public void run() { + String line; + + try { +while ((line =
[08/10] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Conflicts: minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/44b13c12 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/44b13c12 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/44b13c12 Branch: refs/heads/1.6.0-SNAPSHOT Commit: 44b13c12eb9da6165affe038f825a6b17fa2 Parents: aefa52e 63d5e55 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 17:48:51 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 17:48:51 2014 -0400 -- .../minicluster/impl/MiniAccumuloClusterImpl.java | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/44b13c12/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java -- diff --cc minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java index 8a9736d,000..009988e mode 100644,00..100644 --- a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java +++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java @@@ -1,649 -1,0 +1,659 @@@ +/* + * 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. + */ +package org.apache.accumulo.minicluster.impl; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileFilter; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; +import java.util.Set; + +import org.apache.accumulo.core.client.AccumuloException; +import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.ClientConfiguration; +import org.apache.accumulo.core.client.Connector; +import org.apache.accumulo.core.client.Instance; +import org.apache.accumulo.core.client.ZooKeeperInstance; +import org.apache.accumulo.core.client.security.tokens.PasswordToken; +import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.master.thrift.MasterGoalState; +import org.apache.accumulo.core.util.Daemon; +import org.apache.accumulo.core.util.Pair; +import org.apache.accumulo.core.util.StringUtil; +import org.apache.accumulo.core.util.UtilWaitThread; +import org.apache.accumulo.gc.SimpleGarbageCollector; +import org.apache.accumulo.master.Master; +import org.apache.accumulo.master.state.SetGoalState; +import org.apache.accumulo.minicluster.ServerType; +import org.apache.accumulo.server.init.Initialize; +import org.apache.accumulo.server.util.PortUtils; +import org.apache.accumulo.server.util.time.SimpleTimer; +import org.apache.accumulo.start.Main; +import org.apache.accumulo.start.classloader.vfs.MiniDFSUtil; +import org.apache.accumulo.tserver.TabletServer; +import org.apache.commons.configuration.MapConfiguration; +import org.apache.commons.vfs2.FileObject; +import org.apache.commons.vfs2.impl.VFSClassLoader; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.hdfs.DFSConfigKeys; +import org.apache.hadoop.hdfs.MiniDFSCluster; +import org.apache.zookeeper.server.ZooKeeperServerMain; + +import com.google.common.base.Predicate; +import com.google.common.collect.Maps; + +/** + * A utility class that will create
[2/6] git commit: ACCUMULO-2489 Fixes race condition in TableConfiguration where NPE may occur.
ACCUMULO-2489 Fixes race condition in TableConfiguration where NPE may occur. Make invalidateCache much more efficient by calling clear on ZooCache instead of creating a new one. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/1d608a81 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/1d608a81 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/1d608a81 Branch: refs/heads/1.6.0-SNAPSHOT Commit: 1d608a81f488c2bf371fc81f83e0022bd2943a36 Parents: 63d5e55 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 18:08:55 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:08:55 2014 -0400 -- .../server/conf/ServerConfiguration.java| 1 + .../server/conf/TableConfiguration.java | 80 ++ .../test/TableConfigurationUpdateTest.java | 152 +++ 3 files changed, 200 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/1d608a81/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java -- diff --git a/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java b/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java index b2acd1a..8653274 100644 --- a/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java +++ b/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java @@ -27,6 +27,7 @@ import org.apache.accumulo.core.conf.ConfigSanityCheck; import org.apache.accumulo.core.conf.DefaultConfiguration; import org.apache.accumulo.core.conf.SiteConfiguration; import org.apache.accumulo.core.data.KeyExtent; +import org.apache.accumulo.server.client.HdfsZooInstance; public class ServerConfiguration { http://git-wip-us.apache.org/repos/asf/accumulo/blob/1d608a81/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java -- diff --git a/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java b/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java index 59ff1f7..7a3d6e4 100644 --- a/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java +++ b/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java @@ -37,37 +37,46 @@ import org.apache.log4j.Logger; public class TableConfiguration extends AccumuloConfiguration { private static final Logger log = Logger.getLogger(TableConfiguration.class); - + // Need volatile keyword to ensure double-checked locking works as intended private static volatile ZooCache tablePropCache = null; + private static final Object initLock = new Object(); + private final String instanceId; + private final Instance instance; private final AccumuloConfiguration parent; - + private String table = null; private SetConfigurationObserver observers; - + public TableConfiguration(String instanceId, String table, AccumuloConfiguration parent) { +this(instanceId, HdfsZooInstance.getInstance(), table, parent); + } + + public TableConfiguration(String instanceId, Instance instance, String table, AccumuloConfiguration parent) { this.instanceId = instanceId; +this.instance = instance; this.table = table; this.parent = parent; - + this.observers = Collections.synchronizedSet(new HashSetConfigurationObserver()); } - - /** - * @deprecated not for client use - */ - @Deprecated - private static ZooCache getTablePropCache() { -Instance inst = HdfsZooInstance.getInstance(); -if (tablePropCache == null) - synchronized (TableConfiguration.class) { -if (tablePropCache == null) - tablePropCache = new ZooCache(inst.getZooKeepers(), inst.getZooKeepersSessionTimeOut(), new TableConfWatcher(inst)); + + private void initializeZooCache() { +synchronized (initLock) { + if (null == tablePropCache) { +tablePropCache = new ZooCache(instance.getZooKeepers(), instance.getZooKeepersSessionTimeOut(), new TableConfWatcher(instance)); } +} + } + + private ZooCache getTablePropCache() { +if (null == tablePropCache) { + initializeZooCache(); +} return tablePropCache; } - + public void addObserver(ConfigurationObserver co) { if (table == null) { String err = Attempt to add observer for non-table configuration; @@ -77,7 +86,7 @@ public class TableConfiguration extends AccumuloConfiguration { iterator(); observers.add(co); } - + public void removeObserver(ConfigurationObserver configObserver) { if (table == null) { String err = Attempt to remove
[4/6] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Conflicts: server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/ef5dc4a1 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/ef5dc4a1 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/ef5dc4a1 Branch: refs/heads/master Commit: ef5dc4a1f6d67f643f80dd821280140fd20ee947 Parents: 44b13c1 1d608a8 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 18:43:55 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:43:55 2014 -0400 -- .../server/conf/NamespaceConfiguration.java | 10 ++ .../server/conf/TableConfiguration.java | 39 +++-- .../test/TableConfigurationUpdateIT.java| 154 +++ 3 files changed, 193 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/ef5dc4a1/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java -- diff --cc server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java index c0ac0b8,000..d08d45f mode 100644,00..100644 --- a/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java +++ b/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java @@@ -1,172 -1,0 +1,182 @@@ +/* + * 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. + */ +package org.apache.accumulo.server.conf; + +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.accumulo.core.Constants; +import org.apache.accumulo.core.client.Instance; +import org.apache.accumulo.core.client.impl.Namespaces; +import org.apache.accumulo.core.conf.AccumuloConfiguration; +import org.apache.accumulo.core.conf.ConfigurationObserver; +import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.zookeeper.ZooUtil; +import org.apache.accumulo.fate.zookeeper.ZooCache; +import org.apache.accumulo.server.client.HdfsZooInstance; +import org.apache.log4j.Logger; + +public class NamespaceConfiguration extends AccumuloConfiguration { + private static final Logger log = Logger.getLogger(NamespaceConfiguration.class); + + private final AccumuloConfiguration parent; + private static ZooCache propCache = null; + protected String namespaceId = null; + protected Instance inst = null; + private SetConfigurationObserver observers; + + public NamespaceConfiguration(String namespaceId, AccumuloConfiguration parent) { +inst = HdfsZooInstance.getInstance(); +this.parent = parent; +this.namespaceId = namespaceId; +this.observers = Collections.synchronizedSet(new HashSetConfigurationObserver()); + } + + @Override + public String get(Property property) { +String key = property.getKey(); +String value = get(getPropCache(), key); + +if (value == null || !property.getType().isValidFormat(value)) { + if (value != null) +log.error(Using default value for + key + due to improperly formatted + property.getType() + : + value); + if (!(namespaceId.equals(Namespaces.ACCUMULO_NAMESPACE_ID) isIteratorOrConstraint(property.getKey( { +// ignore iterators from parent if system namespace +value = parent.get(property); + } +} +return value; + } + + private String get(ZooCache zc, String key) { +String zPath = ZooUtil.getRoot(inst.getInstanceID()) + Constants.ZNAMESPACES + / + getNamespaceId() + Constants.ZNAMESPACE_CONF + / + key; +byte[] v = zc.get(zPath); +String value = null; +if (v != null) + value = new String(v, Constants.UTF8); +return value; + } + + private synchronized static ZooCache getPropCache() { +Instance inst =
[6/6] git commit: Merge branch '1.6.0-SNAPSHOT'
Merge branch '1.6.0-SNAPSHOT' Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/866422d2 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/866422d2 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/866422d2 Branch: refs/heads/master Commit: 866422d277ce80f29119af80ea65b23cff08fc3a Parents: 394fe06 ef5dc4a Author: Josh Elser els...@apache.org Authored: Thu Mar 20 18:44:06 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:44:06 2014 -0400 -- .../server/conf/NamespaceConfiguration.java | 10 ++ .../server/conf/TableConfiguration.java | 39 +++-- .../test/TableConfigurationUpdateIT.java| 154 +++ 3 files changed, 193 insertions(+), 10 deletions(-) --
[5/6] git commit: Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT
Merge branch '1.5.2-SNAPSHOT' into 1.6.0-SNAPSHOT Conflicts: server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/ef5dc4a1 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/ef5dc4a1 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/ef5dc4a1 Branch: refs/heads/1.6.0-SNAPSHOT Commit: ef5dc4a1f6d67f643f80dd821280140fd20ee947 Parents: 44b13c1 1d608a8 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 18:43:55 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:43:55 2014 -0400 -- .../server/conf/NamespaceConfiguration.java | 10 ++ .../server/conf/TableConfiguration.java | 39 +++-- .../test/TableConfigurationUpdateIT.java| 154 +++ 3 files changed, 193 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/ef5dc4a1/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java -- diff --cc server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java index c0ac0b8,000..d08d45f mode 100644,00..100644 --- a/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java +++ b/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java @@@ -1,172 -1,0 +1,182 @@@ +/* + * 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. + */ +package org.apache.accumulo.server.conf; + +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.accumulo.core.Constants; +import org.apache.accumulo.core.client.Instance; +import org.apache.accumulo.core.client.impl.Namespaces; +import org.apache.accumulo.core.conf.AccumuloConfiguration; +import org.apache.accumulo.core.conf.ConfigurationObserver; +import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.zookeeper.ZooUtil; +import org.apache.accumulo.fate.zookeeper.ZooCache; +import org.apache.accumulo.server.client.HdfsZooInstance; +import org.apache.log4j.Logger; + +public class NamespaceConfiguration extends AccumuloConfiguration { + private static final Logger log = Logger.getLogger(NamespaceConfiguration.class); + + private final AccumuloConfiguration parent; + private static ZooCache propCache = null; + protected String namespaceId = null; + protected Instance inst = null; + private SetConfigurationObserver observers; + + public NamespaceConfiguration(String namespaceId, AccumuloConfiguration parent) { +inst = HdfsZooInstance.getInstance(); +this.parent = parent; +this.namespaceId = namespaceId; +this.observers = Collections.synchronizedSet(new HashSetConfigurationObserver()); + } + + @Override + public String get(Property property) { +String key = property.getKey(); +String value = get(getPropCache(), key); + +if (value == null || !property.getType().isValidFormat(value)) { + if (value != null) +log.error(Using default value for + key + due to improperly formatted + property.getType() + : + value); + if (!(namespaceId.equals(Namespaces.ACCUMULO_NAMESPACE_ID) isIteratorOrConstraint(property.getKey( { +// ignore iterators from parent if system namespace +value = parent.get(property); + } +} +return value; + } + + private String get(ZooCache zc, String key) { +String zPath = ZooUtil.getRoot(inst.getInstanceID()) + Constants.ZNAMESPACES + / + getNamespaceId() + Constants.ZNAMESPACE_CONF + / + key; +byte[] v = zc.get(zPath); +String value = null; +if (v != null) + value = new String(v, Constants.UTF8); +return value; + } + + private synchronized static ZooCache getPropCache() { +Instance inst =
[3/6] git commit: ACCUMULO-2489 Fixes race condition in TableConfiguration where NPE may occur.
ACCUMULO-2489 Fixes race condition in TableConfiguration where NPE may occur. Make invalidateCache much more efficient by calling clear on ZooCache instead of creating a new one. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/1d608a81 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/1d608a81 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/1d608a81 Branch: refs/heads/master Commit: 1d608a81f488c2bf371fc81f83e0022bd2943a36 Parents: 63d5e55 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 18:08:55 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:08:55 2014 -0400 -- .../server/conf/ServerConfiguration.java| 1 + .../server/conf/TableConfiguration.java | 80 ++ .../test/TableConfigurationUpdateTest.java | 152 +++ 3 files changed, 200 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/1d608a81/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java -- diff --git a/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java b/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java index b2acd1a..8653274 100644 --- a/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java +++ b/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java @@ -27,6 +27,7 @@ import org.apache.accumulo.core.conf.ConfigSanityCheck; import org.apache.accumulo.core.conf.DefaultConfiguration; import org.apache.accumulo.core.conf.SiteConfiguration; import org.apache.accumulo.core.data.KeyExtent; +import org.apache.accumulo.server.client.HdfsZooInstance; public class ServerConfiguration { http://git-wip-us.apache.org/repos/asf/accumulo/blob/1d608a81/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java -- diff --git a/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java b/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java index 59ff1f7..7a3d6e4 100644 --- a/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java +++ b/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java @@ -37,37 +37,46 @@ import org.apache.log4j.Logger; public class TableConfiguration extends AccumuloConfiguration { private static final Logger log = Logger.getLogger(TableConfiguration.class); - + // Need volatile keyword to ensure double-checked locking works as intended private static volatile ZooCache tablePropCache = null; + private static final Object initLock = new Object(); + private final String instanceId; + private final Instance instance; private final AccumuloConfiguration parent; - + private String table = null; private SetConfigurationObserver observers; - + public TableConfiguration(String instanceId, String table, AccumuloConfiguration parent) { +this(instanceId, HdfsZooInstance.getInstance(), table, parent); + } + + public TableConfiguration(String instanceId, Instance instance, String table, AccumuloConfiguration parent) { this.instanceId = instanceId; +this.instance = instance; this.table = table; this.parent = parent; - + this.observers = Collections.synchronizedSet(new HashSetConfigurationObserver()); } - - /** - * @deprecated not for client use - */ - @Deprecated - private static ZooCache getTablePropCache() { -Instance inst = HdfsZooInstance.getInstance(); -if (tablePropCache == null) - synchronized (TableConfiguration.class) { -if (tablePropCache == null) - tablePropCache = new ZooCache(inst.getZooKeepers(), inst.getZooKeepersSessionTimeOut(), new TableConfWatcher(inst)); + + private void initializeZooCache() { +synchronized (initLock) { + if (null == tablePropCache) { +tablePropCache = new ZooCache(instance.getZooKeepers(), instance.getZooKeepersSessionTimeOut(), new TableConfWatcher(instance)); } +} + } + + private ZooCache getTablePropCache() { +if (null == tablePropCache) { + initializeZooCache(); +} return tablePropCache; } - + public void addObserver(ConfigurationObserver co) { if (table == null) { String err = Attempt to add observer for non-table configuration; @@ -77,7 +86,7 @@ public class TableConfiguration extends AccumuloConfiguration { iterator(); observers.add(co); } - + public void removeObserver(ConfigurationObserver configObserver) { if (table == null) { String err = Attempt to remove observer
[1/6] git commit: ACCUMULO-2489 Fixes race condition in TableConfiguration where NPE may occur.
Repository: accumulo Updated Branches: refs/heads/1.5.2-SNAPSHOT 63d5e55a0 - 1d608a81f refs/heads/1.6.0-SNAPSHOT 44b13c12e - ef5dc4a1f refs/heads/master 394fe061f - 866422d27 ACCUMULO-2489 Fixes race condition in TableConfiguration where NPE may occur. Make invalidateCache much more efficient by calling clear on ZooCache instead of creating a new one. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/1d608a81 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/1d608a81 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/1d608a81 Branch: refs/heads/1.5.2-SNAPSHOT Commit: 1d608a81f488c2bf371fc81f83e0022bd2943a36 Parents: 63d5e55 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 18:08:55 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:08:55 2014 -0400 -- .../server/conf/ServerConfiguration.java| 1 + .../server/conf/TableConfiguration.java | 80 ++ .../test/TableConfigurationUpdateTest.java | 152 +++ 3 files changed, 200 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/1d608a81/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java -- diff --git a/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java b/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java index b2acd1a..8653274 100644 --- a/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java +++ b/server/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java @@ -27,6 +27,7 @@ import org.apache.accumulo.core.conf.ConfigSanityCheck; import org.apache.accumulo.core.conf.DefaultConfiguration; import org.apache.accumulo.core.conf.SiteConfiguration; import org.apache.accumulo.core.data.KeyExtent; +import org.apache.accumulo.server.client.HdfsZooInstance; public class ServerConfiguration { http://git-wip-us.apache.org/repos/asf/accumulo/blob/1d608a81/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java -- diff --git a/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java b/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java index 59ff1f7..7a3d6e4 100644 --- a/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java +++ b/server/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java @@ -37,37 +37,46 @@ import org.apache.log4j.Logger; public class TableConfiguration extends AccumuloConfiguration { private static final Logger log = Logger.getLogger(TableConfiguration.class); - + // Need volatile keyword to ensure double-checked locking works as intended private static volatile ZooCache tablePropCache = null; + private static final Object initLock = new Object(); + private final String instanceId; + private final Instance instance; private final AccumuloConfiguration parent; - + private String table = null; private SetConfigurationObserver observers; - + public TableConfiguration(String instanceId, String table, AccumuloConfiguration parent) { +this(instanceId, HdfsZooInstance.getInstance(), table, parent); + } + + public TableConfiguration(String instanceId, Instance instance, String table, AccumuloConfiguration parent) { this.instanceId = instanceId; +this.instance = instance; this.table = table; this.parent = parent; - + this.observers = Collections.synchronizedSet(new HashSetConfigurationObserver()); } - - /** - * @deprecated not for client use - */ - @Deprecated - private static ZooCache getTablePropCache() { -Instance inst = HdfsZooInstance.getInstance(); -if (tablePropCache == null) - synchronized (TableConfiguration.class) { -if (tablePropCache == null) - tablePropCache = new ZooCache(inst.getZooKeepers(), inst.getZooKeepersSessionTimeOut(), new TableConfWatcher(inst)); + + private void initializeZooCache() { +synchronized (initLock) { + if (null == tablePropCache) { +tablePropCache = new ZooCache(instance.getZooKeepers(), instance.getZooKeepersSessionTimeOut(), new TableConfWatcher(instance)); } +} + } + + private ZooCache getTablePropCache() { +if (null == tablePropCache) { + initializeZooCache(); +} return tablePropCache; } - + public void addObserver(ConfigurationObserver co) { if (table == null) { String err = Attempt to add observer for non-table configuration; @@ -77,7 +86,7 @@ public class TableConfiguration extends AccumuloConfiguration {
[05/25] git commit: ACCUMULO-2451 Update the data version on all volumes instead of just one
ACCUMULO-2451 Update the data version on all volumes instead of just one Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/d45b723f Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/d45b723f Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/d45b723f Branch: refs/heads/1.6.0-SNAPSHOT Commit: d45b723f0df73fa3f24d9911da44481615c7298b Parents: 7c94c08 Author: Josh Elser els...@apache.org Authored: Wed Mar 12 12:10:44 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:58:41 2014 -0400 -- .../org/apache/accumulo/server/Accumulo.java| 22 +--- 1 file changed, 14 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/d45b723f/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java b/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java index 48534f0..f7f2298 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java +++ b/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java @@ -51,15 +51,21 @@ public class Accumulo { private static final Logger log = Logger.getLogger(Accumulo.class); public static synchronized void updateAccumuloVersion(VolumeManager fs) { -// TODO ACCUMULO-2451 Should update all volumes, not one -Volume volume = fs.getVolumes().iterator().next(); -try { - if (getAccumuloPersistentVersion(fs) == ServerConstants.PREV_DATA_VERSION) { -fs.create(new Path(ServerConstants.getDataVersionLocation(volume), Integer.toString(ServerConstants.DATA_VERSION))); -fs.delete(new Path(ServerConstants.getDataVersionLocation(volume), Integer.toString(ServerConstants.PREV_DATA_VERSION))); +for (Volume volume : fs.getVolumes()) { + try { +if (getAccumuloPersistentVersion(fs) == ServerConstants.PREV_DATA_VERSION) { + log.debug(Attempting to upgrade + volume); + Path dataVersionLocation = ServerConstants.getDataVersionLocation(volume); + fs.create(new Path(dataVersionLocation, Integer.toString(ServerConstants.DATA_VERSION))).close(); + + Path prevDataVersionLoc = new Path(dataVersionLocation, Integer.toString(ServerConstants.PREV_DATA_VERSION)); + if (!fs.delete(prevDataVersionLoc)) { +throw new RuntimeException(Could not delete previous data version location ( + prevDataVersionLoc + ) for + volume); + } +} + } catch (IOException e) { +throw new RuntimeException(Unable to set accumulo version: an error occurred., e); } -} catch (IOException e) { - throw new RuntimeException(Unable to set accumulo version: an error occurred., e); } }
[18/25] git commit: ACCUMULO-2061 Co-locate volumes with the MAC dir
ACCUMULO-2061 Co-locate volumes with the MAC dir Losing the volumes on test failure sucks because you can't validate if we misplaced a file on the wrong volume in the first place. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/53b9f25d Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/53b9f25d Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/53b9f25d Branch: refs/heads/1.6.0-SNAPSHOT Commit: 53b9f25db94d812f78fd468e88e05da33fdd5190 Parents: 9172f52 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 12:18:42 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:30 2014 -0400 -- .../java/org/apache/accumulo/test/VolumeIT.java | 26 ++-- 1 file changed, 7 insertions(+), 19 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/53b9f25d/test/src/test/java/org/apache/accumulo/test/VolumeIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/VolumeIT.java b/test/src/test/java/org/apache/accumulo/test/VolumeIT.java index 0a7ef3f..c0e41c1 100644 --- a/test/src/test/java/org/apache/accumulo/test/VolumeIT.java +++ b/test/src/test/java/org/apache/accumulo/test/VolumeIT.java @@ -22,7 +22,6 @@ import static org.junit.Assert.assertTrue; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; -import java.io.IOException; import java.net.URI; import java.util.ArrayList; import java.util.Arrays; @@ -65,7 +64,6 @@ import org.apache.accumulo.server.ServerConstants; import org.apache.accumulo.server.init.Initialize; import org.apache.accumulo.server.util.Admin; import org.apache.accumulo.test.functional.ConfigurableMacIT; -import org.apache.commons.io.FileUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; @@ -73,38 +71,28 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.RawLocalFileSystem; import org.apache.hadoop.io.Text; import org.apache.zookeeper.ZooKeeper; -import org.junit.After; import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; public class VolumeIT extends ConfigurableMacIT { private static final Text EMPTY = new Text(); private static final Value EMPTY_VALUE = new Value(new byte[] {}); - public static File volDirBase; - public static Path v1; - public static Path v2; + private File volDirBase; + private Path v1, v2; - @BeforeClass - public static void createVolumeDirs() throws IOException { -volDirBase = createSharedTestDir(VolumeIT.class.getName() + -volumes); + @SuppressWarnings(deprecation) + @Override + public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) { +File baseDir = cfg.getDir(); +volDirBase = new File(baseDir, volumes); File v1f = new File(volDirBase, v1); File v2f = new File(volDirBase, v2); v1f.mkdir(); v2f.mkdir(); v1 = new Path(file:// + v1f.getAbsolutePath()); v2 = new Path(file:// + v2f.getAbsolutePath()); - } - @After - public void clearDirs() throws IOException { -FileUtils.deleteQuietly(new File(v1.getParent().toUri())); - } - - @SuppressWarnings(deprecation) - @Override - public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) { // Run MAC on two locations in the local file system URI v1Uri = v1.toUri(); cfg.setProperty(Property.INSTANCE_DFS_DIR, v1Uri.getPath());
[14/25] git commit: ACCUMULO-2061 Fixing whitespace nits
ACCUMULO-2061 Fixing whitespace nits Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/03baf916 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/03baf916 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/03baf916 Branch: refs/heads/1.6.0-SNAPSHOT Commit: 03baf91611120dfdd36eaa5a824b99144b9eb36a Parents: 53b9f25 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 13:23:04 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:30 2014 -0400 -- .../org/apache/accumulo/core/volume/NonConfiguredVolume.java | 2 +- .../org/apache/accumulo/core/volume/VolumeConfiguration.java | 4 ++-- .../main/java/org/apache/accumulo/core/volume/VolumeImpl.java| 2 +- .../org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java | 3 --- 4 files changed, 4 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/03baf916/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java index 3cfd1c2..3d56fa9 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java @@ -23,7 +23,7 @@ import org.apache.hadoop.fs.Path; /** * Volume implementation which represents a Volume for which we have a FileSystem but no base path because it is not configured via * {@link Property#INSTANCE_VOLUMES} - * + * * This is useful to handle volumes that have been removed from accumulo-site.xml but references to these volumes have not been updated. This Volume should * never be used to create new files, only to read existing files. */ http://git-wip-us.apache.org/repos/asf/accumulo/blob/03baf916/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java index 71ad611..e7a51d7 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java @@ -85,7 +85,7 @@ public class VolumeConfiguration { /** * Compute the URIs to be used by Accumulo - * + * * @param conf * @return */ @@ -134,7 +134,7 @@ public class VolumeConfiguration { /** * Create a Volume with the given FileSystem that writes to the default path - * + * * @param fs * A FileSystem to write to * @return A Volume instance writing to the given FileSystem in the default path http://git-wip-us.apache.org/repos/asf/accumulo/blob/03baf916/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java b/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java index f902c35..43ab96b 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java @@ -29,7 +29,7 @@ import org.apache.hadoop.fs.Path; import org.apache.log4j.Logger; /** - * Basic Volume implementation that contains a FileSystem and a base path + * Basic Volume implementation that contains a FileSystem and a base path * that should be used within that filesystem. */ public class VolumeImpl implements Volume { http://git-wip-us.apache.org/repos/asf/accumulo/blob/03baf916/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java -- diff --git a/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java b/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java index 937baf8..8d4a800 100644 --- a/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java +++ b/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java @@ -25,9 +25,6 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; -/** - * - */ public class NonConfiguredVolumeTest { private NonConfiguredVolume volume;
[16/25] git commit: ACCUMULO-2061 Use URI instead of FileSystem as the key to find correct Volumes and ensure that absolute URIs are still valid even after they are not configured.
ACCUMULO-2061 Use URI instead of FileSystem as the key to find correct Volumes and ensure that absolute URIs are still valid even after they are not configured. This will help ensure that FileSystem implementations' hashCode and equals don't have the potential to collide but still provide unique access back to the Volumes contained in the FileSystem. Added tests for the NonConfiguredVolume and also for the no-longer-configured volumes. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/42f6b58e Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/42f6b58e Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/42f6b58e Branch: refs/heads/1.6.0-SNAPSHOT Commit: 42f6b58e58a8fb1a8f05c371844f86c536fe143a Parents: 492768d Author: Josh Elser els...@apache.org Authored: Fri Mar 14 17:06:32 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:30 2014 -0400 -- .../core/volume/NonConfiguredVolume.java| 92 .../core/volume/NonConfiguredVolumeTest.java| 71 +++ .../accumulo/server/fs/VolumeManagerImpl.java | 25 +++--- .../java/org/apache/accumulo/test/VolumeIT.java | 55 +++- 4 files changed, 231 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/42f6b58e/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java new file mode 100644 index 000..7dcbd88 --- /dev/null +++ b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java @@ -0,0 +1,92 @@ +/* + * 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. + */ +package org.apache.accumulo.core.volume; + +import java.io.IOException; + +import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.util.CachedConfiguration; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.log4j.Logger; + +/** + * Volume implementation which represents a Volume for which we have a FileSystem + * but no base path because it is not configured via {@link Property#INSTANCE_VOLUMES} + * + * This is useful to handle volumes that have been removed from accumulo-site.xml but references + * to these volumes have not been updated. This Volume should never be used to create new files, + * only to read existing files. + */ +public class NonConfiguredVolume implements Volume { + private static final Logger log = Logger.getLogger(NonConfiguredVolume.class); + + private FileSystem fs; + + public NonConfiguredVolume(FileSystem fs) { +this.fs = fs; + } + + @Override + public FileSystem getFileSystem() { +return fs; + } + + @Override + public String getBasePath() { +throw new UnsupportedOperationException(No base path known because this volume isn't configured in accumulo-site.xml); + } + + @Override + public Path prefixChild(Path p) { +throw new UnsupportedOperationException(Cannot prefix path because this volume isn't configured in accumulo-site.xml); + } + + @Override + public Path prefixChild(String p) { +throw new UnsupportedOperationException(Cannot prefix path because this volume isn't configured in accumulo-site.xml); + } + + @Override + public boolean isValidPath(Path p) { +try { + return fs.equals(p.getFileSystem(CachedConfiguration.getInstance())); +} catch (IOException e) { + log.debug(Cannot determine FileSystem from path: + p, e); +} +return false; + } + + @Override + public boolean equals(Object o) { +if (o instanceof NonConfiguredVolume) { + NonConfiguredVolume other = (NonConfiguredVolume) o; + return this.fs.equals(other.getFileSystem()); +} +return false; + } + + @Override + public String toString() { +return NonConfiguredVolume: + this.fs.toString(); + } + + @Override
[22/25] git commit: ACCUMULO-2061 A few more minor fixes from reviewboard.
ACCUMULO-2061 A few more minor fixes from reviewboard. Fixed a PrintInfo comment. Expand the VolumeImpl.isValidPath javadoc and implementation to be more encompassing. Suppress warnings in VolumeIT. Remove implementation of isValidPath from NonConfiguredVolume as it could be misleading. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/9172f52b Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/9172f52b Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/9172f52b Branch: refs/heads/master Commit: 9172f52bc74de2590603c5282c19264447e33da6 Parents: 42f6b58 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 11:22:38 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:30 2014 -0400 -- .../accumulo/core/file/rfile/PrintInfo.java | 7 +++-- .../core/volume/NonConfiguredVolume.java| 30 ++-- .../org/apache/accumulo/core/volume/Volume.java | 4 +-- .../apache/accumulo/core/volume/VolumeImpl.java | 16 ++- .../accumulo/server/fs/VolumeManagerImpl.java | 8 +++--- .../java/org/apache/accumulo/test/VolumeIT.java | 1 + 6 files changed, 36 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/9172f52b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java index 7ed8f34..dc54b49 100644 --- a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java +++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java @@ -52,8 +52,11 @@ public class PrintInfo { @SuppressWarnings(deprecation) AccumuloConfiguration aconf = AccumuloConfiguration.getSiteConfiguration(); -// TODO ACCUMULO-2462 This will only work for RFiles in HDFS when the filesystem is defined in the core-site.xml -// on the classpath if a path, and not a URI, is given +// TODO ACCUMULO-2462 This will only work for RFiles (path only, not URI) in HDFS when the correct filesystem for the given file +// is on Property.INSTANCE_DFS_DIR or, when INSTANCE_DFS_DIR is not defined, is on the default filesystem +// defined in the Hadoop's core-site.xml +// +// A workaround is to always provide a URI to this class FileSystem hadoopFs = VolumeConfiguration.getDefaultVolume(conf, aconf).getFileSystem(); FileSystem localFs = FileSystem.getLocal(conf); Opts opts = new Opts(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/9172f52b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java index 7dcbd88..3cfd1c2 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java @@ -16,25 +16,18 @@ */ package org.apache.accumulo.core.volume; -import java.io.IOException; - import org.apache.accumulo.core.conf.Property; -import org.apache.accumulo.core.util.CachedConfiguration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.apache.log4j.Logger; /** - * Volume implementation which represents a Volume for which we have a FileSystem - * but no base path because it is not configured via {@link Property#INSTANCE_VOLUMES} + * Volume implementation which represents a Volume for which we have a FileSystem but no base path because it is not configured via + * {@link Property#INSTANCE_VOLUMES} * - * This is useful to handle volumes that have been removed from accumulo-site.xml but references - * to these volumes have not been updated. This Volume should never be used to create new files, - * only to read existing files. + * This is useful to handle volumes that have been removed from accumulo-site.xml but references to these volumes have not been updated. This Volume should + * never be used to create new files, only to read existing files. */ public class NonConfiguredVolume implements Volume { - private static final Logger log = Logger.getLogger(NonConfiguredVolume.class); - private FileSystem fs; public NonConfiguredVolume(FileSystem fs) { @@ -48,27 +41,22 @@ public class NonConfiguredVolume implements Volume { @Override public String getBasePath() { -throw new UnsupportedOperationException(No base path known because this volume isn't configured in accumulo-site.xml); +throw new
[19/25] git commit: ACCUMULO-2061 A few more minor fixes from reviewboard.
ACCUMULO-2061 A few more minor fixes from reviewboard. Fixed a PrintInfo comment. Expand the VolumeImpl.isValidPath javadoc and implementation to be more encompassing. Suppress warnings in VolumeIT. Remove implementation of isValidPath from NonConfiguredVolume as it could be misleading. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/9172f52b Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/9172f52b Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/9172f52b Branch: refs/heads/1.6.0-SNAPSHOT Commit: 9172f52bc74de2590603c5282c19264447e33da6 Parents: 42f6b58 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 11:22:38 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:30 2014 -0400 -- .../accumulo/core/file/rfile/PrintInfo.java | 7 +++-- .../core/volume/NonConfiguredVolume.java| 30 ++-- .../org/apache/accumulo/core/volume/Volume.java | 4 +-- .../apache/accumulo/core/volume/VolumeImpl.java | 16 ++- .../accumulo/server/fs/VolumeManagerImpl.java | 8 +++--- .../java/org/apache/accumulo/test/VolumeIT.java | 1 + 6 files changed, 36 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/9172f52b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java index 7ed8f34..dc54b49 100644 --- a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java +++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java @@ -52,8 +52,11 @@ public class PrintInfo { @SuppressWarnings(deprecation) AccumuloConfiguration aconf = AccumuloConfiguration.getSiteConfiguration(); -// TODO ACCUMULO-2462 This will only work for RFiles in HDFS when the filesystem is defined in the core-site.xml -// on the classpath if a path, and not a URI, is given +// TODO ACCUMULO-2462 This will only work for RFiles (path only, not URI) in HDFS when the correct filesystem for the given file +// is on Property.INSTANCE_DFS_DIR or, when INSTANCE_DFS_DIR is not defined, is on the default filesystem +// defined in the Hadoop's core-site.xml +// +// A workaround is to always provide a URI to this class FileSystem hadoopFs = VolumeConfiguration.getDefaultVolume(conf, aconf).getFileSystem(); FileSystem localFs = FileSystem.getLocal(conf); Opts opts = new Opts(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/9172f52b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java index 7dcbd88..3cfd1c2 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java @@ -16,25 +16,18 @@ */ package org.apache.accumulo.core.volume; -import java.io.IOException; - import org.apache.accumulo.core.conf.Property; -import org.apache.accumulo.core.util.CachedConfiguration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.apache.log4j.Logger; /** - * Volume implementation which represents a Volume for which we have a FileSystem - * but no base path because it is not configured via {@link Property#INSTANCE_VOLUMES} + * Volume implementation which represents a Volume for which we have a FileSystem but no base path because it is not configured via + * {@link Property#INSTANCE_VOLUMES} * - * This is useful to handle volumes that have been removed from accumulo-site.xml but references - * to these volumes have not been updated. This Volume should never be used to create new files, - * only to read existing files. + * This is useful to handle volumes that have been removed from accumulo-site.xml but references to these volumes have not been updated. This Volume should + * never be used to create new files, only to read existing files. */ public class NonConfiguredVolume implements Volume { - private static final Logger log = Logger.getLogger(NonConfiguredVolume.class); - private FileSystem fs; public NonConfiguredVolume(FileSystem fs) { @@ -48,27 +41,22 @@ public class NonConfiguredVolume implements Volume { @Override public String getBasePath() { -throw new UnsupportedOperationException(No base path known because this volume isn't configured in accumulo-site.xml); +
[24/25] git commit: ACCUMULO-2515 ACCUMULO-2489 Apply same fixes from TableConfiguration to NamespaceConfiguration
ACCUMULO-2515 ACCUMULO-2489 Apply same fixes from TableConfiguration to NamespaceConfiguration Also switch over TableConfigurationUpdateIT to use SimpleMacIT instead of doing it itself. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/cb2f4b58 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/cb2f4b58 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/cb2f4b58 Branch: refs/heads/1.6.0-SNAPSHOT Commit: cb2f4b58041a4176d907e77a0853e2c3316df4ec Parents: c25a41f Author: Josh Elser els...@apache.org Authored: Thu Mar 20 21:14:35 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 21:14:35 2014 -0400 -- .../server/conf/NamespaceConfiguration.java | 24 ++ .../test/TableConfigurationUpdateIT.java| 34 2 files changed, 24 insertions(+), 34 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/cb2f4b58/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java b/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java index d08d45f..99532ca 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java +++ b/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java @@ -38,13 +38,18 @@ public class NamespaceConfiguration extends AccumuloConfiguration { private static final Logger log = Logger.getLogger(NamespaceConfiguration.class); private final AccumuloConfiguration parent; - private static ZooCache propCache = null; + private static volatile ZooCache propCache = null; + private static final Object lock = new Object(); protected String namespaceId = null; protected Instance inst = null; private SetConfigurationObserver observers; public NamespaceConfiguration(String namespaceId, AccumuloConfiguration parent) { -inst = HdfsZooInstance.getInstance(); +this(namespaceId, HdfsZooInstance.getInstance(), parent); + } + + public NamespaceConfiguration(String namespaceId, Instance inst, AccumuloConfiguration parent) { +this.inst = inst; this.parent = parent; this.namespaceId = namespaceId; this.observers = Collections.synchronizedSet(new HashSetConfigurationObserver()); @@ -75,10 +80,17 @@ public class NamespaceConfiguration extends AccumuloConfiguration { return value; } - private synchronized static ZooCache getPropCache() { -Instance inst = HdfsZooInstance.getInstance(); -if (propCache == null) - propCache = new ZooCache(inst.getZooKeepers(), inst.getZooKeepersSessionTimeOut(), new NamespaceConfWatcher(inst)); + private void initializePropCache() { +synchronized (lock) { + if (propCache == null) +propCache = new ZooCache(inst.getZooKeepers(), inst.getZooKeepersSessionTimeOut(), new NamespaceConfWatcher(inst)); +} + } + + private ZooCache getPropCache() { +if (null == propCache) { + initializePropCache(); +} return propCache; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/cb2f4b58/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java b/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java index c3e3342..5e2b2c9 100644 --- a/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java +++ b/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java @@ -27,50 +27,28 @@ import java.util.concurrent.TimeUnit; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; -import org.apache.accumulo.core.client.ZooKeeperInstance; -import org.apache.accumulo.core.client.security.tokens.PasswordToken; +import org.apache.accumulo.core.client.impl.Namespaces; import org.apache.accumulo.core.conf.AccumuloConfiguration; import org.apache.accumulo.core.conf.Property; -import org.apache.accumulo.minicluster.MiniAccumuloCluster; import org.apache.accumulo.server.conf.NamespaceConfiguration; import org.apache.accumulo.server.conf.TableConfiguration; -import org.apache.accumulo.server.conf.TableParentConfiguration; +import org.apache.accumulo.test.functional.SimpleMacIT; import org.apache.log4j.Logger; -import org.junit.After; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; -import org.junit.rules.TemporaryFolder; -public class TableConfigurationUpdateIT { +public class
[17/25] git commit: ACCUMULO-2061 Fixing whitespace nits
ACCUMULO-2061 Fixing whitespace nits Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/03baf916 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/03baf916 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/03baf916 Branch: refs/heads/master Commit: 03baf91611120dfdd36eaa5a824b99144b9eb36a Parents: 53b9f25 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 13:23:04 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:30 2014 -0400 -- .../org/apache/accumulo/core/volume/NonConfiguredVolume.java | 2 +- .../org/apache/accumulo/core/volume/VolumeConfiguration.java | 4 ++-- .../main/java/org/apache/accumulo/core/volume/VolumeImpl.java| 2 +- .../org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java | 3 --- 4 files changed, 4 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/03baf916/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java index 3cfd1c2..3d56fa9 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java @@ -23,7 +23,7 @@ import org.apache.hadoop.fs.Path; /** * Volume implementation which represents a Volume for which we have a FileSystem but no base path because it is not configured via * {@link Property#INSTANCE_VOLUMES} - * + * * This is useful to handle volumes that have been removed from accumulo-site.xml but references to these volumes have not been updated. This Volume should * never be used to create new files, only to read existing files. */ http://git-wip-us.apache.org/repos/asf/accumulo/blob/03baf916/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java index 71ad611..e7a51d7 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java @@ -85,7 +85,7 @@ public class VolumeConfiguration { /** * Compute the URIs to be used by Accumulo - * + * * @param conf * @return */ @@ -134,7 +134,7 @@ public class VolumeConfiguration { /** * Create a Volume with the given FileSystem that writes to the default path - * + * * @param fs * A FileSystem to write to * @return A Volume instance writing to the given FileSystem in the default path http://git-wip-us.apache.org/repos/asf/accumulo/blob/03baf916/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java b/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java index f902c35..43ab96b 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/VolumeImpl.java @@ -29,7 +29,7 @@ import org.apache.hadoop.fs.Path; import org.apache.log4j.Logger; /** - * Basic Volume implementation that contains a FileSystem and a base path + * Basic Volume implementation that contains a FileSystem and a base path * that should be used within that filesystem. */ public class VolumeImpl implements Volume { http://git-wip-us.apache.org/repos/asf/accumulo/blob/03baf916/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java -- diff --git a/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java b/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java index 937baf8..8d4a800 100644 --- a/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java +++ b/core/src/test/java/org/apache/accumulo/core/volume/NonConfiguredVolumeTest.java @@ -25,9 +25,6 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; -/** - * - */ public class NonConfiguredVolumeTest { private NonConfiguredVolume volume;
[08/25] git commit: ACCUMULO-2061 Add comments, javadoc and other cleanup
ACCUMULO-2061 Add comments, javadoc and other cleanup Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/550e5e61 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/550e5e61 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/550e5e61 Branch: refs/heads/master Commit: 550e5e61affc490f0931a8991d40f283b0282115 Parents: d45b723 Author: Josh Elser els...@apache.org Authored: Wed Mar 12 12:11:48 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:58:53 2014 -0400 -- .../accumulo/core/file/rfile/PrintInfo.java | 9 +- .../org/apache/accumulo/core/volume/Volume.java | 15 -- .../core/volume/VolumeConfiguration.java| 30 .../apache/accumulo/core/volume/VolumeImpl.java | 22 +++--- .../accumulo/server/fs/VolumeManager.java | 2 -- .../accumulo/server/fs/VolumeManagerImpl.java | 19 +++-- .../apache/accumulo/server/fs/VolumeUtil.java | 2 +- .../accumulo/server/util/ChangeSecret.java | 7 +++-- .../accumulo/server/fs/VolumeUtilTest.java | 2 +- 9 files changed, 59 insertions(+), 49 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/550e5e61/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java index 4e39fc7..7c0f067 100644 --- a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java +++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java @@ -31,10 +31,12 @@ import org.apache.accumulo.core.volume.VolumeConfiguration; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.log4j.Logger; import com.beust.jcommander.Parameter; public class PrintInfo { + private static final Logger log = Logger.getLogger(PrintInfo.class); static class Opts extends Help { @Parameter(names = {-d, --dump}, description = dump the key/value pairs) @@ -50,6 +52,8 @@ public class PrintInfo { @SuppressWarnings(deprecation) AccumuloConfiguration aconf = AccumuloConfiguration.getSiteConfiguration(); +// TODO This will only work for RFiles in HDFS when the filesystem is defined in the core-site.xml +// on the classpath if a path, and not a URI, is given FileSystem hadoopFs = VolumeConfiguration.getDefaultVolume(conf, aconf).getFileSystem(); FileSystem localFs = FileSystem.getLocal(conf); Opts opts = new Opts(); @@ -68,8 +72,11 @@ public class PrintInfo { FileSystem fs; if (arg.contains(:)) fs = path.getFileSystem(conf); - else + else { +// Recommend a URI is given for the above todo reason +log.warn(Attempting to find file across filesystems. Consider providing URI instead of path); fs = hadoopFs.exists(path) ? hadoopFs : localFs; // fall back to local + } CachableBlockFile.Reader _rdr = new CachableBlockFile.Reader(fs, path, conf, null, null, aconf); Reader iter = new RFile.Reader(_rdr); http://git-wip-us.apache.org/repos/asf/accumulo/blob/550e5e61/core/src/main/java/org/apache/accumulo/core/volume/Volume.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/Volume.java b/core/src/main/java/org/apache/accumulo/core/volume/Volume.java index 08f61d4..17b2bf3 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/Volume.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/Volume.java @@ -21,39 +21,36 @@ import org.apache.hadoop.fs.Path; /** * Encapsulates a {@link FileSystem} and a base {@link Path} within that filesystem. This - * also avoid the necessity to pass around a Configuration. + * also avoid the necessity to pass around a Configuration. */ public interface Volume { /** * A {@link FileSystem} that Accumulo will use - * @return */ public FileSystem getFileSystem(); /** * The base path which Accumulo will use within the given {@link FileSystem} - * @return */ public String getBasePath(); - + /** * Convert the given Path into a Path that is relative to the base path for this Volume - * @param p - * @return + * @param p The suffix to use + * @return A Path for this Volume with the provided suffix */ public Path prefixChild(Path p); /** * Convert the given child path into a Path that is relative to the base path for this Volume - * @param p - * @return + * @param p The suffix to use + * @return A Path
[13/25] git commit: ACCUMULO-2061 Add a utility method to pull a Path with the instance_id
ACCUMULO-2061 Add a utility method to pull a Path with the instance_id Consolidates a little bit of code in one place. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/c25a41fe Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/c25a41fe Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/c25a41fe Branch: refs/heads/1.6.0-SNAPSHOT Commit: c25a41fe905cda4aa914f232db5cc26b3254f4a0 Parents: 03baf91 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 17:39:13 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:30 2014 -0400 -- .../main/java/org/apache/accumulo/server/Accumulo.java| 7 +++ .../java/org/apache/accumulo/server/ServerConstants.java | 2 +- .../apache/accumulo/server/client/HdfsZooInstance.java| 10 +- .../org/apache/accumulo/server/conf/ZooConfiguration.java | 10 -- 4 files changed, 17 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/c25a41fe/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java b/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java index f7f2298..925c0d0 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java +++ b/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java @@ -32,6 +32,7 @@ import org.apache.accumulo.core.util.AddressUtil; import org.apache.accumulo.core.util.UtilWaitThread; import org.apache.accumulo.core.util.Version; import org.apache.accumulo.core.volume.Volume; +import org.apache.accumulo.core.zookeeper.ZooUtil; import org.apache.accumulo.server.client.HdfsZooInstance; import org.apache.accumulo.server.conf.ServerConfiguration; import org.apache.accumulo.server.fs.VolumeManager; @@ -91,6 +92,12 @@ public class Accumulo { return getAccumuloPersistentVersion(v.getFileSystem(), path); } + public static synchronized Path getAccumuloInstanceIdPath(VolumeManager fs) { +// It doesn't matter which Volume is used as they should all have the instance ID stored +Volume v = fs.getVolumes().iterator().next(); +return ServerConstants.getInstanceIdLocation(v); + } + public static void enableTracing(String address, String application) { try { DistributedTrace.enable(HdfsZooInstance.getInstance(), ZooReaderWriter.getInstance(), application, address); http://git-wip-us.apache.org/repos/asf/accumulo/blob/c25a41fe/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java b/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java index 7dd0a08..b577abb 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java +++ b/server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java @@ -76,7 +76,7 @@ public class ServerConstants { String currentIid; Integer currentVersion; try { -currentIid = ZooUtil.getInstanceIDFromHdfs(new Path(baseDir, INSTANCE_ID_DIR), ServerConfiguration.getSiteConfiguration()); +currentIid = ZooUtil.getInstanceIDFromHdfs(path, ServerConfiguration.getSiteConfiguration()); Path vpath = new Path(baseDir, VERSION_DIR); currentVersion = Accumulo.getAccumuloPersistentVersion(vpath.getFileSystem(CachedConfiguration.getInstance()), vpath); } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/c25a41fe/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java b/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java index ee928f3..620188c 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java +++ b/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java @@ -39,14 +39,14 @@ import org.apache.accumulo.core.util.ByteBufferUtil; import org.apache.accumulo.core.util.OpTimer; import org.apache.accumulo.core.util.StringUtil; import org.apache.accumulo.core.util.TextUtil; -import org.apache.accumulo.core.volume.Volume; import org.apache.accumulo.core.zookeeper.ZooUtil; import org.apache.accumulo.fate.zookeeper.ZooCache; -import org.apache.accumulo.server.ServerConstants; +import org.apache.accumulo.server.Accumulo; import org.apache.accumulo.server.conf.ServerConfiguration; import
[01/25] ACCUMULO-2061 Initial implementation to remove instance.dfs.dir from usage of instance.volumes
Repository: accumulo Updated Branches: refs/heads/1.6.0-SNAPSHOT ef5dc4a1f - cb2f4b580 refs/heads/master 866422d27 - 2dbc14fa9 http://git-wip-us.apache.org/repos/asf/accumulo/blob/7c94c086/server/base/src/test/java/org/apache/accumulo/server/fs/FileTypeTest.java -- diff --git a/server/base/src/test/java/org/apache/accumulo/server/fs/FileTypeTest.java b/server/base/src/test/java/org/apache/accumulo/server/fs/FileTypeTest.java index 205a793..ad29c19 100644 --- a/server/base/src/test/java/org/apache/accumulo/server/fs/FileTypeTest.java +++ b/server/base/src/test/java/org/apache/accumulo/server/fs/FileTypeTest.java @@ -27,28 +27,50 @@ import org.junit.Test; public class FileTypeTest { @Test public void testVolumeExtraction() { -Assert.assertEquals(new Path(file:/a), FileType.TABLE.getVolume(new Path(file:/a/accumulo/tables/2b/t-001/C00.rf))); -Assert.assertEquals(new Path(file:///a), FileType.TABLE.getVolume(new Path(file:/a/accumulo/tables/2b/t-001/C00.rf))); -Assert.assertEquals(new Path(file:///a), FileType.TABLE.getVolume(new Path(file:///a/accumulo/tables/2b/t-001/C00.rf))); -Assert.assertEquals(new Path(file:/a), FileType.TABLE.getVolume(new Path(file:///a/accumulo/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(file:/a/accumulo), FileType.TABLE.getVolume(new Path(file:/a/accumulo/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(file:///a/accumulo), FileType.TABLE.getVolume(new Path(file:/a/accumulo/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(file:///a/accumulo), FileType.TABLE.getVolume(new Path(file:///a/accumulo/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(file:/a/accumulo), FileType.TABLE.getVolume(new Path(file:///a/accumulo/tables/2b/t-001/C00.rf))); -Assert.assertEquals(new Path(accumulo/tables/2b/t-001/C00.rf), FileType.TABLE.removeVolume(new Path(file:/a/accumulo/tables/2b/t-001/C00.rf))); -Assert.assertEquals(new Path(accumulo/tables/2b/t-001/C00.rf), FileType.TABLE.removeVolume(new Path(file:///a/accumulo/tables/2b/t-001/C00.rf))); +// Having an 'accumulo' directory is not a requirement +Assert.assertEquals(new Path(file:/a), FileType.TABLE.getVolume(new Path(file:/a/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(file:///a), FileType.TABLE.getVolume(new Path(file:/a/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(file:///a), FileType.TABLE.getVolume(new Path(file:///a/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(file:/a), FileType.TABLE.getVolume(new Path(file:///a/tables/2b/t-001/C00.rf))); -Assert.assertEquals(new Path(file:/), FileType.TABLE.getVolume(new Path(file:/accumulo/tables/2b/t-001/C00.rf))); -Assert.assertEquals(new Path(file:/), FileType.TABLE.getVolume(new Path(file:///accumulo/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(tables/2b/t-001/C00.rf), FileType.TABLE.removeVolume(new Path(file:/a/accumulo/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(tables/2b/t-001/C00.rf), FileType.TABLE.removeVolume(new Path(file:///a/accumulo/tables/2b/t-001/C00.rf))); -Assert.assertEquals(new Path(file:/a), FileType.WAL.getVolume(new Path(file:/a/accumulo/wal/1.2.3.4/aaa-bbb-ccc-ddd))); +// Having an 'accumulo' directory is not a requirement +Assert.assertEquals(new Path(tables/2b/t-001/C00.rf), FileType.TABLE.removeVolume(new Path(file:/a/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(tables/2b/t-001/C00.rf), FileType.TABLE.removeVolume(new Path(file:///a/tables/2b/t-001/C00.rf))); + +Assert.assertEquals(new Path(file:/accumulo), FileType.TABLE.getVolume(new Path(file:/accumulo/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(file:/accumulo), FileType.TABLE.getVolume(new Path(file:///accumulo/tables/2b/t-001/C00.rf))); + +// Having an 'accumulo' directory is not a requirement +Assert.assertEquals(new Path(file:/), FileType.TABLE.getVolume(new Path(file:/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(file:/), FileType.TABLE.getVolume(new Path(file:///tables/2b/t-001/C00.rf))); + +Assert.assertEquals(new Path(file:/a), FileType.WAL.getVolume(new Path(file:/a/wal/1.2.3.4/aaa-bbb-ccc-ddd))); Assert.assertNull(FileType.WAL.getVolume(new Path(1.2.3.4/aaa-bbb-ccc-ddd))); Assert.assertNull(FileType.TABLE.getVolume(new Path(../2b/t-001/C00.rf))); Assert.assertNull(FileType.TABLE.getVolume(new Path(/t-001/C00.rf))); -Assert.assertEquals(new Path(hdfs://nn1/), FileType.TABLE.getVolume(new Path(hdfs://nn1/accumulo/tables/2b/t-001/C00.rf))); -Assert.assertEquals(new Path(hdfs://nn1/a/), FileType.TABLE.getVolume(new Path(hdfs://nn1/a/accumulo/tables/2b/t-001/C00.rf))); +Assert.assertEquals(new Path(hdfs://nn1/accumulo), FileType.TABLE.getVolume(new Path(hdfs://nn1/accumulo/tables/2b/t-001/C00.rf))); +
[11/25] git commit: ACCUMULO-2061 Propagate errors on delete or mkdirs failure.
ACCUMULO-2061 Propagate errors on delete or mkdirs failure. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/7d48b1ad Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/7d48b1ad Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/7d48b1ad Branch: refs/heads/1.6.0-SNAPSHOT Commit: 7d48b1adec6b124054f64ca0c87913ba5a4b6b7e Parents: 550e5e6 Author: Josh Elser els...@apache.org Authored: Wed Mar 12 16:19:19 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:19 2014 -0400 -- .../org/apache/accumulo/server/util/ChangeSecret.java | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/7d48b1ad/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java b/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java index f0dcd14..2926a3f 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java +++ b/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java @@ -147,8 +147,14 @@ public class ChangeSecret { // Need to recreate the instanceId on all of them to keep consistency for (Volume v : fs.getVolumes()) { final Path instanceId = ServerConstants.getInstanceIdLocation(v); - v.getFileSystem().delete(instanceId, true); - v.getFileSystem().mkdirs(instanceId); + if (!v.getFileSystem().delete(instanceId, true)) { +throw new IOException(Could not recursively delete + instanceId); + } + + if (!v.getFileSystem().mkdirs(instanceId)) { +throw new IOException(Could not create directory + instanceId); + } + v.getFileSystem().create(new Path(instanceId, newInstanceId)).close(); } }
[12/25] git commit: ACCUMULO-2061 Only append a trailing slash when one doesn't exist on the base dir
ACCUMULO-2061 Only append a trailing slash when one doesn't exist on the base dir Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/492768d3 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/492768d3 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/492768d3 Branch: refs/heads/master Commit: 492768d38221af64b71ba37bb8979d7bb841e738 Parents: 7d48b1a Author: Josh Elser els...@apache.org Authored: Wed Mar 12 16:25:19 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:19 2014 -0400 -- .../java/org/apache/accumulo/core/file/rfile/PrintInfo.java| 2 +- .../org/apache/accumulo/core/volume/VolumeConfiguration.java | 6 +- 2 files changed, 6 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/492768d3/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java index 7c0f067..7ed8f34 100644 --- a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java +++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java @@ -52,7 +52,7 @@ public class PrintInfo { @SuppressWarnings(deprecation) AccumuloConfiguration aconf = AccumuloConfiguration.getSiteConfiguration(); -// TODO This will only work for RFiles in HDFS when the filesystem is defined in the core-site.xml +// TODO ACCUMULO-2462 This will only work for RFiles in HDFS when the filesystem is defined in the core-site.xml // on the classpath if a path, and not a URI, is given FileSystem hadoopFs = VolumeConfiguration.getDefaultVolume(conf, aconf).getFileSystem(); FileSystem localFs = FileSystem.getLocal(conf); http://git-wip-us.apache.org/repos/asf/accumulo/blob/492768d3/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java index 5db5bb2..71ad611 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java @@ -123,7 +123,11 @@ public class VolumeConfiguration { suffix = suffix.substring(1); String result[] = new String[bases.length]; for (int i = 0; i bases.length; i++) { - result[i] = bases[i] + / + suffix; + if (bases[i].endsWith(/)) { +result[i] = bases[i] + suffix; + } else { +result[i] = bases[i] + / + suffix; + } } return result; }
[06/25] git commit: ACCUMULO-2451 Update the data version on all volumes instead of just one
ACCUMULO-2451 Update the data version on all volumes instead of just one Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/d45b723f Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/d45b723f Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/d45b723f Branch: refs/heads/master Commit: d45b723f0df73fa3f24d9911da44481615c7298b Parents: 7c94c08 Author: Josh Elser els...@apache.org Authored: Wed Mar 12 12:10:44 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:58:41 2014 -0400 -- .../org/apache/accumulo/server/Accumulo.java| 22 +--- 1 file changed, 14 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/d45b723f/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java b/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java index 48534f0..f7f2298 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java +++ b/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java @@ -51,15 +51,21 @@ public class Accumulo { private static final Logger log = Logger.getLogger(Accumulo.class); public static synchronized void updateAccumuloVersion(VolumeManager fs) { -// TODO ACCUMULO-2451 Should update all volumes, not one -Volume volume = fs.getVolumes().iterator().next(); -try { - if (getAccumuloPersistentVersion(fs) == ServerConstants.PREV_DATA_VERSION) { -fs.create(new Path(ServerConstants.getDataVersionLocation(volume), Integer.toString(ServerConstants.DATA_VERSION))); -fs.delete(new Path(ServerConstants.getDataVersionLocation(volume), Integer.toString(ServerConstants.PREV_DATA_VERSION))); +for (Volume volume : fs.getVolumes()) { + try { +if (getAccumuloPersistentVersion(fs) == ServerConstants.PREV_DATA_VERSION) { + log.debug(Attempting to upgrade + volume); + Path dataVersionLocation = ServerConstants.getDataVersionLocation(volume); + fs.create(new Path(dataVersionLocation, Integer.toString(ServerConstants.DATA_VERSION))).close(); + + Path prevDataVersionLoc = new Path(dataVersionLocation, Integer.toString(ServerConstants.PREV_DATA_VERSION)); + if (!fs.delete(prevDataVersionLoc)) { +throw new RuntimeException(Could not delete previous data version location ( + prevDataVersionLoc + ) for + volume); + } +} + } catch (IOException e) { +throw new RuntimeException(Unable to set accumulo version: an error occurred., e); } -} catch (IOException e) { - throw new RuntimeException(Unable to set accumulo version: an error occurred., e); } }
[21/25] git commit: ACCUMULO-2061 Co-locate volumes with the MAC dir
ACCUMULO-2061 Co-locate volumes with the MAC dir Losing the volumes on test failure sucks because you can't validate if we misplaced a file on the wrong volume in the first place. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/53b9f25d Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/53b9f25d Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/53b9f25d Branch: refs/heads/master Commit: 53b9f25db94d812f78fd468e88e05da33fdd5190 Parents: 9172f52 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 12:18:42 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:30 2014 -0400 -- .../java/org/apache/accumulo/test/VolumeIT.java | 26 ++-- 1 file changed, 7 insertions(+), 19 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/53b9f25d/test/src/test/java/org/apache/accumulo/test/VolumeIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/VolumeIT.java b/test/src/test/java/org/apache/accumulo/test/VolumeIT.java index 0a7ef3f..c0e41c1 100644 --- a/test/src/test/java/org/apache/accumulo/test/VolumeIT.java +++ b/test/src/test/java/org/apache/accumulo/test/VolumeIT.java @@ -22,7 +22,6 @@ import static org.junit.Assert.assertTrue; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; -import java.io.IOException; import java.net.URI; import java.util.ArrayList; import java.util.Arrays; @@ -65,7 +64,6 @@ import org.apache.accumulo.server.ServerConstants; import org.apache.accumulo.server.init.Initialize; import org.apache.accumulo.server.util.Admin; import org.apache.accumulo.test.functional.ConfigurableMacIT; -import org.apache.commons.io.FileUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; @@ -73,38 +71,28 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.RawLocalFileSystem; import org.apache.hadoop.io.Text; import org.apache.zookeeper.ZooKeeper; -import org.junit.After; import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; public class VolumeIT extends ConfigurableMacIT { private static final Text EMPTY = new Text(); private static final Value EMPTY_VALUE = new Value(new byte[] {}); - public static File volDirBase; - public static Path v1; - public static Path v2; + private File volDirBase; + private Path v1, v2; - @BeforeClass - public static void createVolumeDirs() throws IOException { -volDirBase = createSharedTestDir(VolumeIT.class.getName() + -volumes); + @SuppressWarnings(deprecation) + @Override + public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) { +File baseDir = cfg.getDir(); +volDirBase = new File(baseDir, volumes); File v1f = new File(volDirBase, v1); File v2f = new File(volDirBase, v2); v1f.mkdir(); v2f.mkdir(); v1 = new Path(file:// + v1f.getAbsolutePath()); v2 = new Path(file:// + v2f.getAbsolutePath()); - } - @After - public void clearDirs() throws IOException { -FileUtils.deleteQuietly(new File(v1.getParent().toUri())); - } - - @SuppressWarnings(deprecation) - @Override - public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) { // Run MAC on two locations in the local file system URI v1Uri = v1.toUri(); cfg.setProperty(Property.INSTANCE_DFS_DIR, v1Uri.getPath());
[23/25] git commit: ACCUMULO-2515 ACCUMULO-2489 Apply same fixes from TableConfiguration to NamespaceConfiguration
ACCUMULO-2515 ACCUMULO-2489 Apply same fixes from TableConfiguration to NamespaceConfiguration Also switch over TableConfigurationUpdateIT to use SimpleMacIT instead of doing it itself. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/cb2f4b58 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/cb2f4b58 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/cb2f4b58 Branch: refs/heads/master Commit: cb2f4b58041a4176d907e77a0853e2c3316df4ec Parents: c25a41f Author: Josh Elser els...@apache.org Authored: Thu Mar 20 21:14:35 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 21:14:35 2014 -0400 -- .../server/conf/NamespaceConfiguration.java | 24 ++ .../test/TableConfigurationUpdateIT.java| 34 2 files changed, 24 insertions(+), 34 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/cb2f4b58/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java b/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java index d08d45f..99532ca 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java +++ b/server/base/src/main/java/org/apache/accumulo/server/conf/NamespaceConfiguration.java @@ -38,13 +38,18 @@ public class NamespaceConfiguration extends AccumuloConfiguration { private static final Logger log = Logger.getLogger(NamespaceConfiguration.class); private final AccumuloConfiguration parent; - private static ZooCache propCache = null; + private static volatile ZooCache propCache = null; + private static final Object lock = new Object(); protected String namespaceId = null; protected Instance inst = null; private SetConfigurationObserver observers; public NamespaceConfiguration(String namespaceId, AccumuloConfiguration parent) { -inst = HdfsZooInstance.getInstance(); +this(namespaceId, HdfsZooInstance.getInstance(), parent); + } + + public NamespaceConfiguration(String namespaceId, Instance inst, AccumuloConfiguration parent) { +this.inst = inst; this.parent = parent; this.namespaceId = namespaceId; this.observers = Collections.synchronizedSet(new HashSetConfigurationObserver()); @@ -75,10 +80,17 @@ public class NamespaceConfiguration extends AccumuloConfiguration { return value; } - private synchronized static ZooCache getPropCache() { -Instance inst = HdfsZooInstance.getInstance(); -if (propCache == null) - propCache = new ZooCache(inst.getZooKeepers(), inst.getZooKeepersSessionTimeOut(), new NamespaceConfWatcher(inst)); + private void initializePropCache() { +synchronized (lock) { + if (propCache == null) +propCache = new ZooCache(inst.getZooKeepers(), inst.getZooKeepersSessionTimeOut(), new NamespaceConfWatcher(inst)); +} + } + + private ZooCache getPropCache() { +if (null == propCache) { + initializePropCache(); +} return propCache; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/cb2f4b58/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java -- diff --git a/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java b/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java index c3e3342..5e2b2c9 100644 --- a/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java +++ b/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java @@ -27,50 +27,28 @@ import java.util.concurrent.TimeUnit; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; -import org.apache.accumulo.core.client.ZooKeeperInstance; -import org.apache.accumulo.core.client.security.tokens.PasswordToken; +import org.apache.accumulo.core.client.impl.Namespaces; import org.apache.accumulo.core.conf.AccumuloConfiguration; import org.apache.accumulo.core.conf.Property; -import org.apache.accumulo.minicluster.MiniAccumuloCluster; import org.apache.accumulo.server.conf.NamespaceConfiguration; import org.apache.accumulo.server.conf.TableConfiguration; -import org.apache.accumulo.server.conf.TableParentConfiguration; +import org.apache.accumulo.test.functional.SimpleMacIT; import org.apache.log4j.Logger; -import org.junit.After; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; -import org.junit.rules.TemporaryFolder; -public class TableConfigurationUpdateIT { +public class
[09/25] git commit: ACCUMULO-2061 Only append a trailing slash when one doesn't exist on the base dir
ACCUMULO-2061 Only append a trailing slash when one doesn't exist on the base dir Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/492768d3 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/492768d3 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/492768d3 Branch: refs/heads/1.6.0-SNAPSHOT Commit: 492768d38221af64b71ba37bb8979d7bb841e738 Parents: 7d48b1a Author: Josh Elser els...@apache.org Authored: Wed Mar 12 16:25:19 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:19 2014 -0400 -- .../java/org/apache/accumulo/core/file/rfile/PrintInfo.java| 2 +- .../org/apache/accumulo/core/volume/VolumeConfiguration.java | 6 +- 2 files changed, 6 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/492768d3/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java index 7c0f067..7ed8f34 100644 --- a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java +++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java @@ -52,7 +52,7 @@ public class PrintInfo { @SuppressWarnings(deprecation) AccumuloConfiguration aconf = AccumuloConfiguration.getSiteConfiguration(); -// TODO This will only work for RFiles in HDFS when the filesystem is defined in the core-site.xml +// TODO ACCUMULO-2462 This will only work for RFiles in HDFS when the filesystem is defined in the core-site.xml // on the classpath if a path, and not a URI, is given FileSystem hadoopFs = VolumeConfiguration.getDefaultVolume(conf, aconf).getFileSystem(); FileSystem localFs = FileSystem.getLocal(conf); http://git-wip-us.apache.org/repos/asf/accumulo/blob/492768d3/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java index 5db5bb2..71ad611 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java @@ -123,7 +123,11 @@ public class VolumeConfiguration { suffix = suffix.substring(1); String result[] = new String[bases.length]; for (int i = 0; i bases.length; i++) { - result[i] = bases[i] + / + suffix; + if (bases[i].endsWith(/)) { +result[i] = bases[i] + suffix; + } else { +result[i] = bases[i] + / + suffix; + } } return result; }
[20/25] git commit: ACCUMULO-2061 Use URI instead of FileSystem as the key to find correct Volumes and ensure that absolute URIs are still valid even after they are not configured.
ACCUMULO-2061 Use URI instead of FileSystem as the key to find correct Volumes and ensure that absolute URIs are still valid even after they are not configured. This will help ensure that FileSystem implementations' hashCode and equals don't have the potential to collide but still provide unique access back to the Volumes contained in the FileSystem. Added tests for the NonConfiguredVolume and also for the no-longer-configured volumes. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/42f6b58e Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/42f6b58e Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/42f6b58e Branch: refs/heads/master Commit: 42f6b58e58a8fb1a8f05c371844f86c536fe143a Parents: 492768d Author: Josh Elser els...@apache.org Authored: Fri Mar 14 17:06:32 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:59:30 2014 -0400 -- .../core/volume/NonConfiguredVolume.java| 92 .../core/volume/NonConfiguredVolumeTest.java| 71 +++ .../accumulo/server/fs/VolumeManagerImpl.java | 25 +++--- .../java/org/apache/accumulo/test/VolumeIT.java | 55 +++- 4 files changed, 231 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/42f6b58e/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java new file mode 100644 index 000..7dcbd88 --- /dev/null +++ b/core/src/main/java/org/apache/accumulo/core/volume/NonConfiguredVolume.java @@ -0,0 +1,92 @@ +/* + * 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. + */ +package org.apache.accumulo.core.volume; + +import java.io.IOException; + +import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.util.CachedConfiguration; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.log4j.Logger; + +/** + * Volume implementation which represents a Volume for which we have a FileSystem + * but no base path because it is not configured via {@link Property#INSTANCE_VOLUMES} + * + * This is useful to handle volumes that have been removed from accumulo-site.xml but references + * to these volumes have not been updated. This Volume should never be used to create new files, + * only to read existing files. + */ +public class NonConfiguredVolume implements Volume { + private static final Logger log = Logger.getLogger(NonConfiguredVolume.class); + + private FileSystem fs; + + public NonConfiguredVolume(FileSystem fs) { +this.fs = fs; + } + + @Override + public FileSystem getFileSystem() { +return fs; + } + + @Override + public String getBasePath() { +throw new UnsupportedOperationException(No base path known because this volume isn't configured in accumulo-site.xml); + } + + @Override + public Path prefixChild(Path p) { +throw new UnsupportedOperationException(Cannot prefix path because this volume isn't configured in accumulo-site.xml); + } + + @Override + public Path prefixChild(String p) { +throw new UnsupportedOperationException(Cannot prefix path because this volume isn't configured in accumulo-site.xml); + } + + @Override + public boolean isValidPath(Path p) { +try { + return fs.equals(p.getFileSystem(CachedConfiguration.getInstance())); +} catch (IOException e) { + log.debug(Cannot determine FileSystem from path: + p, e); +} +return false; + } + + @Override + public boolean equals(Object o) { +if (o instanceof NonConfiguredVolume) { + NonConfiguredVolume other = (NonConfiguredVolume) o; + return this.fs.equals(other.getFileSystem()); +} +return false; + } + + @Override + public String toString() { +return NonConfiguredVolume: + this.fs.toString(); + } + + @Override +
[07/25] git commit: ACCUMULO-2061 Add comments, javadoc and other cleanup
ACCUMULO-2061 Add comments, javadoc and other cleanup Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/550e5e61 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/550e5e61 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/550e5e61 Branch: refs/heads/1.6.0-SNAPSHOT Commit: 550e5e61affc490f0931a8991d40f283b0282115 Parents: d45b723 Author: Josh Elser els...@apache.org Authored: Wed Mar 12 12:11:48 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 18:58:53 2014 -0400 -- .../accumulo/core/file/rfile/PrintInfo.java | 9 +- .../org/apache/accumulo/core/volume/Volume.java | 15 -- .../core/volume/VolumeConfiguration.java| 30 .../apache/accumulo/core/volume/VolumeImpl.java | 22 +++--- .../accumulo/server/fs/VolumeManager.java | 2 -- .../accumulo/server/fs/VolumeManagerImpl.java | 19 +++-- .../apache/accumulo/server/fs/VolumeUtil.java | 2 +- .../accumulo/server/util/ChangeSecret.java | 7 +++-- .../accumulo/server/fs/VolumeUtilTest.java | 2 +- 9 files changed, 59 insertions(+), 49 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/550e5e61/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java index 4e39fc7..7c0f067 100644 --- a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java +++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java @@ -31,10 +31,12 @@ import org.apache.accumulo.core.volume.VolumeConfiguration; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.log4j.Logger; import com.beust.jcommander.Parameter; public class PrintInfo { + private static final Logger log = Logger.getLogger(PrintInfo.class); static class Opts extends Help { @Parameter(names = {-d, --dump}, description = dump the key/value pairs) @@ -50,6 +52,8 @@ public class PrintInfo { @SuppressWarnings(deprecation) AccumuloConfiguration aconf = AccumuloConfiguration.getSiteConfiguration(); +// TODO This will only work for RFiles in HDFS when the filesystem is defined in the core-site.xml +// on the classpath if a path, and not a URI, is given FileSystem hadoopFs = VolumeConfiguration.getDefaultVolume(conf, aconf).getFileSystem(); FileSystem localFs = FileSystem.getLocal(conf); Opts opts = new Opts(); @@ -68,8 +72,11 @@ public class PrintInfo { FileSystem fs; if (arg.contains(:)) fs = path.getFileSystem(conf); - else + else { +// Recommend a URI is given for the above todo reason +log.warn(Attempting to find file across filesystems. Consider providing URI instead of path); fs = hadoopFs.exists(path) ? hadoopFs : localFs; // fall back to local + } CachableBlockFile.Reader _rdr = new CachableBlockFile.Reader(fs, path, conf, null, null, aconf); Reader iter = new RFile.Reader(_rdr); http://git-wip-us.apache.org/repos/asf/accumulo/blob/550e5e61/core/src/main/java/org/apache/accumulo/core/volume/Volume.java -- diff --git a/core/src/main/java/org/apache/accumulo/core/volume/Volume.java b/core/src/main/java/org/apache/accumulo/core/volume/Volume.java index 08f61d4..17b2bf3 100644 --- a/core/src/main/java/org/apache/accumulo/core/volume/Volume.java +++ b/core/src/main/java/org/apache/accumulo/core/volume/Volume.java @@ -21,39 +21,36 @@ import org.apache.hadoop.fs.Path; /** * Encapsulates a {@link FileSystem} and a base {@link Path} within that filesystem. This - * also avoid the necessity to pass around a Configuration. + * also avoid the necessity to pass around a Configuration. */ public interface Volume { /** * A {@link FileSystem} that Accumulo will use - * @return */ public FileSystem getFileSystem(); /** * The base path which Accumulo will use within the given {@link FileSystem} - * @return */ public String getBasePath(); - + /** * Convert the given Path into a Path that is relative to the base path for this Volume - * @param p - * @return + * @param p The suffix to use + * @return A Path for this Volume with the provided suffix */ public Path prefixChild(Path p); /** * Convert the given child path into a Path that is relative to the base path for this Volume - * @param p - * @return + * @param p The suffix to use + *
[25/25] git commit: Merge branch '1.6.0-SNAPSHOT'
Merge branch '1.6.0-SNAPSHOT' Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/2dbc14fa Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/2dbc14fa Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/2dbc14fa Branch: refs/heads/master Commit: 2dbc14fa9c2da05e97e270af9dfa1b3eaf3a6a50 Parents: 866422d cb2f4b5 Author: Josh Elser els...@apache.org Authored: Thu Mar 20 22:12:39 2014 -0400 Committer: Josh Elser els...@apache.org Committed: Thu Mar 20 22:12:39 2014 -0400 -- .../core/client/admin/TableOperationsImpl.java | 4 +- .../core/client/impl/OfflineScanner.java| 4 +- .../org/apache/accumulo/core/conf/Property.java | 2 + .../accumulo/core/file/VolumeConfiguration.java | 112 .../accumulo/core/file/rfile/PrintInfo.java | 16 +- .../core/file/rfile/bcfile/PrintInfo.java | 4 +- .../apache/accumulo/core/util/shell/Shell.java | 4 +- .../core/volume/NonConfiguredVolume.java| 80 + .../org/apache/accumulo/core/volume/Volume.java | 57 ++ .../core/volume/VolumeConfiguration.java| 161 + .../apache/accumulo/core/volume/VolumeImpl.java | 107 .../apache/accumulo/core/zookeeper/ZooUtil.java | 4 +- .../core/volume/NonConfiguredVolumeTest.java| 68 .../org/apache/accumulo/server/Accumulo.java| 34 +++- .../apache/accumulo/server/ServerConstants.java | 50 +++--- .../accumulo/server/client/BulkImporter.java| 4 +- .../accumulo/server/client/HdfsZooInstance.java | 18 +- .../server/conf/NamespaceConfiguration.java | 24 ++- .../accumulo/server/conf/ZooConfiguration.java | 16 +- .../accumulo/server/fs/VolumeManager.java | 19 +- .../accumulo/server/fs/VolumeManagerImpl.java | 173 +-- .../apache/accumulo/server/fs/VolumeUtil.java | 25 ++- .../apache/accumulo/server/init/Initialize.java | 18 +- .../server/master/recovery/HadoopLogCloser.java | 2 +- .../server/master/recovery/MapRLogCloser.java | 2 +- .../accumulo/server/util/ChangeSecret.java | 25 ++- .../apache/accumulo/server/util/FileUtil.java | 12 +- .../accumulo/server/util/LocalityCheck.java | 2 +- .../accumulo/server/util/TabletOperations.java | 4 +- .../accumulo/server/util/ZooKeeperMain.java | 2 +- .../accumulo/server/ServerConstantsTest.java| 12 +- .../apache/accumulo/server/fs/FileTypeTest.java | 48 +++-- .../accumulo/server/fs/VolumeUtilTest.java | 89 +- .../accumulo/gc/GarbageCollectionTest.java | 65 +++ .../accumulo/master/tableOps/ExportTable.java | 2 +- .../accumulo/master/tableOps/ImportTable.java | 2 +- .../monitor/servlets/DefaultServlet.java| 6 +- .../tserver/BulkFailedCopyProcessor.java| 27 +-- .../org/apache/accumulo/tserver/Compactor.java | 4 +- .../apache/accumulo/tserver/FileManager.java| 2 +- .../org/apache/accumulo/tserver/Tablet.java | 4 +- .../apache/accumulo/tserver/TabletServer.java | 2 +- .../compaction/MajorCompactionRequest.java | 2 +- .../apache/accumulo/tserver/log/LogSorter.java | 2 +- .../accumulo/tserver/log/MultiReader.java | 2 +- .../apache/accumulo/tserver/RootFilesTest.java | 1 + .../tserver/TabletServerSyncCheckTest.java | 14 +- .../accumulo/tserver/log/MultiReaderTest.java | 8 +- .../tserver/log/SortedLogRecoveryTest.java | 9 +- .../tserver/log/TestUpgradePathForWALogs.java | 6 +- .../performance/scan/CollectTabletStats.java| 6 +- .../test/TableConfigurationUpdateIT.java| 34 +--- .../java/org/apache/accumulo/test/VolumeIT.java | 105 +++ .../accumulo/test/functional/BulkFileIT.java| 4 +- 54 files changed, 1113 insertions(+), 396 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/2dbc14fa/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/2dbc14fa/core/src/main/java/org/apache/accumulo/core/client/impl/OfflineScanner.java -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/2dbc14fa/core/src/main/java/org/apache/accumulo/core/conf/Property.java -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/2dbc14fa/server/base/src/main/java/org/apache/accumulo/server/Accumulo.java -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/2dbc14fa/server/base/src/main/java/org/apache/accumulo/server/client/HdfsZooInstance.java
svn commit: r1579871 - /accumulo/site/trunk/content/git.mdtext
Author: busbey Date: Fri Mar 21 02:42:04 2014 New Revision: 1579871 URL: http://svn.apache.org/r1579871 Log: CMS commit to accumulo by busbey Modified: accumulo/site/trunk/content/git.mdtext Modified: accumulo/site/trunk/content/git.mdtext URL: http://svn.apache.org/viewvc/accumulo/site/trunk/content/git.mdtext?rev=1579871r1=1579870r2=1579871view=diff == --- accumulo/site/trunk/content/git.mdtext (original) +++ accumulo/site/trunk/content/git.mdtext Fri Mar 21 02:42:04 2014 @@ -134,9 +134,9 @@ Jira issue ACCUMULO-12345 that affects 1 `git fetch git fetch --tags` 4. For the given issue you intend to work on, choose the 'lowest' fixVersion - and create a branch for yourself to work in. + and create a branch for yourself to work in. This example is against fixVersion 1.5.2. -`git checkout -b ACCUMULO-12345-my-work origin/1.5.1-SNAPSHOT` +`git checkout -b ACCUMULO-12345-my-work origin/1.5.2-SNAPSHOT` 5. Make commits as you see fit as you fix the issue, referencing the issue name in the commit message: @@ -145,14 +145,14 @@ Jira issue ACCUMULO-12345 that affects 1 6. Assuming others are developing against the version you also are, as you work, or before you create your patch, rebase your branch against the remote - to lift your changes to the top of your branch. + to lift your changes to the top of your branch. The branch specified here should be the same one you used in step 4. -`git pull --rebase origin 1.5.1-SNAPSHOT` +`git pull --rebase origin 1.5.2-SNAPSHOT` 7. At this point, you can create a patch file from the upstream branch to - attach to the ACCUMULO-12345 Jira issue. + attach to the ACCUMULO-12345 Jira issue. The branch specified here should be teh same one you used in step 4. -`git format-patch 1.5.1-SNAPSHOT --stdout ACCUMULO-12345.patch` +`git format-patch --stdout origin/1.5.2-SNAPSHOT ACCUMULO-12345.patch` An alternative to creating a patch is submitting a request to pull your changes from some repository, e.g. Github. Please include the repository and branch
svn commit: r902642 - in /websites/staging/accumulo/trunk/content: ./ git.html
Author: buildbot Date: Fri Mar 21 02:42:17 2014 New Revision: 902642 Log: Staging update by buildbot for accumulo Modified: websites/staging/accumulo/trunk/content/ (props changed) websites/staging/accumulo/trunk/content/git.html Propchange: websites/staging/accumulo/trunk/content/ -- --- cms:source-revision (original) +++ cms:source-revision Fri Mar 21 02:42:17 2014 @@ -1 +1 @@ -1579731 +1579871 Modified: websites/staging/accumulo/trunk/content/git.html == --- websites/staging/accumulo/trunk/content/git.html (original) +++ websites/staging/accumulo/trunk/content/git.html Fri Mar 21 02:42:17 2014 @@ -200,8 +200,8 @@ Jira issue ACCUMULO-12345 that affects 1 /li li pFor the given issue you intend to work on, choose the 'lowest' fixVersion - and create a branch for yourself to work in./p -pcodegit checkout -b ACCUMULO-12345-my-work origin/1.5.1-SNAPSHOT/code/p + and create a branch for yourself to work in. This example is against fixVersion 1.5.2./p +pcodegit checkout -b ACCUMULO-12345-my-work origin/1.5.2-SNAPSHOT/code/p /li li pMake commits as you see fit as you fix the issue, referencing the issue name @@ -211,13 +211,13 @@ Jira issue ACCUMULO-12345 that affects 1 li pAssuming others are developing against the version you also are, as you work, or before you create your patch, rebase your branch against the remote - to lift your changes to the top of your branch./p -pcodegit pull --rebase origin 1.5.1-SNAPSHOT/code/p + to lift your changes to the top of your branch. The branch specified here should be the same one you used in step 4./p +pcodegit pull --rebase origin 1.5.2-SNAPSHOT/code/p /li li pAt this point, you can create a patch file from the upstream branch to - attach to the ACCUMULO-12345 Jira issue./p -pcodegit format-patch 1.5.1-SNAPSHOT --stdout gt; ACCUMULO-12345.patch/code/p + attach to the ACCUMULO-12345 Jira issue. The branch specified here should be teh same one you used in step 4./p +pcodegit format-patch --stdout origin/1.5.2-SNAPSHOT gt; ACCUMULO-12345.patch/code/p /li /ol pAn alternative to creating a patch is submitting a request to pull your changes
svn commit: r902643 - in /websites/production/accumulo/content: ./ 1.4/apidocs/ 1.5/apidocs/
Author: busbey Date: Fri Mar 21 02:43:19 2014 New Revision: 902643 Log: updating format-patch command in contributor section due to multiple contributors running into not having a local branch of a SNAPSHOT version. Added: websites/production/accumulo/content/ - copied from r902642, websites/staging/accumulo/trunk/content/ websites/production/accumulo/content/1.4/apidocs/ - copied from r902642, websites/production/accumulo/content/1.4/apidocs/ websites/production/accumulo/content/1.5/apidocs/ - copied from r902642, websites/production/accumulo/content/1.5/apidocs/
[3/3] git commit: Merge branch '1.6.0-SNAPSHOT'
Merge branch '1.6.0-SNAPSHOT' Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/ac2ddc53 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/ac2ddc53 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/ac2ddc53 Branch: refs/heads/master Commit: ac2ddc53ba0aaa25e39422b8856d85739e3df5aa Parents: 2dbc14f 11d2dcf Author: Sean Busbey bus...@cloudera.com Authored: Thu Mar 20 23:54:43 2014 -0500 Committer: Sean Busbey bus...@cloudera.com Committed: Thu Mar 20 23:54:43 2014 -0500 -- .../accumulo/server/util/MetadataTableUtil.java | 24 ++-- 1 file changed, 12 insertions(+), 12 deletions(-) --
[1/3] git commit: ACCUMULO-2513 - Inconsistent use of getBytes in MetadataTableUtil
Repository: accumulo Updated Branches: refs/heads/1.6.0-SNAPSHOT cb2f4b580 - 11d2dcf1a refs/heads/master 2dbc14fa9 - ac2ddc53b ACCUMULO-2513 - Inconsistent use of getBytes in MetadataTableUtil Signed-off-by: Sean Busbey bus...@cloudera.com Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/11d2dcf1 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/11d2dcf1 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/11d2dcf1 Branch: refs/heads/1.6.0-SNAPSHOT Commit: 11d2dcf1ab0038660bcfc46e3ceb023420e23776 Parents: cb2f4b5 Author: Al Krinker al.krin...@gmail.com Authored: Thu Mar 20 21:32:04 2014 -0400 Committer: Sean Busbey bus...@cloudera.com Committed: Thu Mar 20 21:50:56 2014 -0500 -- .../accumulo/server/util/MetadataTableUtil.java | 24 ++-- 1 file changed, 12 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/11d2dcf1/server/base/src/main/java/org/apache/accumulo/server/util/MetadataTableUtil.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/util/MetadataTableUtil.java b/server/base/src/main/java/org/apache/accumulo/server/util/MetadataTableUtil.java index d49f9bc..760d57f 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/util/MetadataTableUtil.java +++ b/server/base/src/main/java/org/apache/accumulo/server/util/MetadataTableUtil.java @@ -120,7 +120,7 @@ public class MetadataTableUtil { private static void putLockID(ZooLock zooLock, Mutation m) { TabletsSection.ServerColumnFamily.LOCK_COLUMN.put(m, new Value(zooLock.getLockID().serialize(ZooUtil.getRoot(HdfsZooInstance.getInstance()) + /) -.getBytes())); +.getBytes(Constants.UTF8))); } private static void update(Credentials credentials, Mutation m, KeyExtent extent) { @@ -152,7 +152,7 @@ public class MetadataTableUtil { public static void updateTabletFlushID(KeyExtent extent, long flushID, Credentials credentials, ZooLock zooLock) { if (!extent.isRootTablet()) { Mutation m = new Mutation(extent.getMetadataEntry()); - TabletsSection.ServerColumnFamily.FLUSH_COLUMN.put(m, new Value((flushID + ).getBytes())); + TabletsSection.ServerColumnFamily.FLUSH_COLUMN.put(m, new Value((flushID + ).getBytes(Constants.UTF8))); update(credentials, zooLock, m, extent); } } @@ -160,21 +160,21 @@ public class MetadataTableUtil { public static void updateTabletCompactID(KeyExtent extent, long compactID, Credentials credentials, ZooLock zooLock) { if (!extent.isRootTablet()) { Mutation m = new Mutation(extent.getMetadataEntry()); - TabletsSection.ServerColumnFamily.COMPACT_COLUMN.put(m, new Value((compactID + ).getBytes())); + TabletsSection.ServerColumnFamily.COMPACT_COLUMN.put(m, new Value((compactID + ).getBytes(Constants.UTF8))); update(credentials, zooLock, m, extent); } } public static void updateTabletDataFile(long tid, KeyExtent extent, MapFileRef,DataFileValue estSizes, String time, Credentials credentials, ZooLock zooLock) { Mutation m = new Mutation(extent.getMetadataEntry()); -byte[] tidBytes = Long.toString(tid).getBytes(); +byte[] tidBytes = Long.toString(tid).getBytes(Constants.UTF8); for (EntryFileRef,DataFileValue entry : estSizes.entrySet()) { Text file = entry.getKey().meta(); m.put(DataFileColumnFamily.NAME, file, new Value(entry.getValue().encode())); m.put(TabletsSection.BulkFileColumnFamily.NAME, file, new Value(tidBytes)); } -TabletsSection.ServerColumnFamily.TIME_COLUMN.put(m, new Value(time.getBytes())); +TabletsSection.ServerColumnFamily.TIME_COLUMN.put(m, new Value(time.getBytes(Constants.UTF8))); update(credentials, zooLock, m, extent); } @@ -187,8 +187,8 @@ public class MetadataTableUtil { public static void addTablet(KeyExtent extent, String path, Credentials credentials, char timeType, ZooLock lock) { Mutation m = extent.getPrevRowUpdateMutation(); -TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.put(m, new Value(path.getBytes())); -TabletsSection.ServerColumnFamily.TIME_COLUMN.put(m, new Value((timeType + 0).getBytes())); +TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.put(m, new Value(path.getBytes(Constants.UTF8))); +TabletsSection.ServerColumnFamily.TIME_COLUMN.put(m, new Value((timeType + 0).getBytes(Constants.UTF8))); update(credentials, lock, m, extent); } @@ -269,7 +269,7 @@ public class MetadataTableUtil { public static void splitTablet(KeyExtent extent, Text oldPrevEndRow, double splitRatio, Credentials credentials, ZooLock zooLock) { Mutation m = extent.getPrevRowUpdateMutation(); // -
[2/3] git commit: ACCUMULO-2513 - Inconsistent use of getBytes in MetadataTableUtil
ACCUMULO-2513 - Inconsistent use of getBytes in MetadataTableUtil Signed-off-by: Sean Busbey bus...@cloudera.com Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/11d2dcf1 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/11d2dcf1 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/11d2dcf1 Branch: refs/heads/master Commit: 11d2dcf1ab0038660bcfc46e3ceb023420e23776 Parents: cb2f4b5 Author: Al Krinker al.krin...@gmail.com Authored: Thu Mar 20 21:32:04 2014 -0400 Committer: Sean Busbey bus...@cloudera.com Committed: Thu Mar 20 21:50:56 2014 -0500 -- .../accumulo/server/util/MetadataTableUtil.java | 24 ++-- 1 file changed, 12 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/accumulo/blob/11d2dcf1/server/base/src/main/java/org/apache/accumulo/server/util/MetadataTableUtil.java -- diff --git a/server/base/src/main/java/org/apache/accumulo/server/util/MetadataTableUtil.java b/server/base/src/main/java/org/apache/accumulo/server/util/MetadataTableUtil.java index d49f9bc..760d57f 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/util/MetadataTableUtil.java +++ b/server/base/src/main/java/org/apache/accumulo/server/util/MetadataTableUtil.java @@ -120,7 +120,7 @@ public class MetadataTableUtil { private static void putLockID(ZooLock zooLock, Mutation m) { TabletsSection.ServerColumnFamily.LOCK_COLUMN.put(m, new Value(zooLock.getLockID().serialize(ZooUtil.getRoot(HdfsZooInstance.getInstance()) + /) -.getBytes())); +.getBytes(Constants.UTF8))); } private static void update(Credentials credentials, Mutation m, KeyExtent extent) { @@ -152,7 +152,7 @@ public class MetadataTableUtil { public static void updateTabletFlushID(KeyExtent extent, long flushID, Credentials credentials, ZooLock zooLock) { if (!extent.isRootTablet()) { Mutation m = new Mutation(extent.getMetadataEntry()); - TabletsSection.ServerColumnFamily.FLUSH_COLUMN.put(m, new Value((flushID + ).getBytes())); + TabletsSection.ServerColumnFamily.FLUSH_COLUMN.put(m, new Value((flushID + ).getBytes(Constants.UTF8))); update(credentials, zooLock, m, extent); } } @@ -160,21 +160,21 @@ public class MetadataTableUtil { public static void updateTabletCompactID(KeyExtent extent, long compactID, Credentials credentials, ZooLock zooLock) { if (!extent.isRootTablet()) { Mutation m = new Mutation(extent.getMetadataEntry()); - TabletsSection.ServerColumnFamily.COMPACT_COLUMN.put(m, new Value((compactID + ).getBytes())); + TabletsSection.ServerColumnFamily.COMPACT_COLUMN.put(m, new Value((compactID + ).getBytes(Constants.UTF8))); update(credentials, zooLock, m, extent); } } public static void updateTabletDataFile(long tid, KeyExtent extent, MapFileRef,DataFileValue estSizes, String time, Credentials credentials, ZooLock zooLock) { Mutation m = new Mutation(extent.getMetadataEntry()); -byte[] tidBytes = Long.toString(tid).getBytes(); +byte[] tidBytes = Long.toString(tid).getBytes(Constants.UTF8); for (EntryFileRef,DataFileValue entry : estSizes.entrySet()) { Text file = entry.getKey().meta(); m.put(DataFileColumnFamily.NAME, file, new Value(entry.getValue().encode())); m.put(TabletsSection.BulkFileColumnFamily.NAME, file, new Value(tidBytes)); } -TabletsSection.ServerColumnFamily.TIME_COLUMN.put(m, new Value(time.getBytes())); +TabletsSection.ServerColumnFamily.TIME_COLUMN.put(m, new Value(time.getBytes(Constants.UTF8))); update(credentials, zooLock, m, extent); } @@ -187,8 +187,8 @@ public class MetadataTableUtil { public static void addTablet(KeyExtent extent, String path, Credentials credentials, char timeType, ZooLock lock) { Mutation m = extent.getPrevRowUpdateMutation(); -TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.put(m, new Value(path.getBytes())); -TabletsSection.ServerColumnFamily.TIME_COLUMN.put(m, new Value((timeType + 0).getBytes())); +TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN.put(m, new Value(path.getBytes(Constants.UTF8))); +TabletsSection.ServerColumnFamily.TIME_COLUMN.put(m, new Value((timeType + 0).getBytes(Constants.UTF8))); update(credentials, lock, m, extent); } @@ -269,7 +269,7 @@ public class MetadataTableUtil { public static void splitTablet(KeyExtent extent, Text oldPrevEndRow, double splitRatio, Credentials credentials, ZooLock zooLock) { Mutation m = extent.getPrevRowUpdateMutation(); // -TabletsSection.TabletColumnFamily.SPLIT_RATIO_COLUMN.put(m, new Value(Double.toString(splitRatio).getBytes())); +
svn commit: r902652 - in /websites/staging/accumulo/trunk/content: ./ people.html
Author: buildbot Date: Fri Mar 21 05:03:26 2014 New Revision: 902652 Log: Staging update by buildbot for accumulo Modified: websites/staging/accumulo/trunk/content/ (props changed) websites/staging/accumulo/trunk/content/people.html Propchange: websites/staging/accumulo/trunk/content/ -- --- cms:source-revision (original) +++ cms:source-revision Fri Mar 21 05:03:26 2014 @@ -1 +1 @@ -1579871 +1579887 Modified: websites/staging/accumulo/trunk/content/people.html == --- websites/staging/accumulo/trunk/content/people.html (original) +++ websites/staging/accumulo/trunk/content/people.html Fri Mar 21 05:03:26 2014 @@ -146,6 +146,7 @@ tr:nth-child(2n+1) { table trthusername/ththname/ththorganization/ththtimezone/th/tr trtd/tdtdAaron Glahe/tdtda href=http://www.data-tactics.com/Data Tatics/a/tdtdET (a href=http://www.timeanddate.com/library/abbreviations/timezones/na/est.html-5/a / a href=http://www.timeanddate.com/library/abbreviations/timezones/na/edt.html-4/a)/td/tr + trtd/tdtdAl Krinker/tdtd/tdtdET (a href=http://www.timeanddate.com/library/abbreviations/timezones/na/est.html-5/a / a href=http://www.timeanddate.com/library/abbreviations/timezones/na/edt.html-4/a)/td/tr trtd/tdtdAlex Moundalexis/tdtda href=http://www.cloudera.com;Cloudera/a/tdtdET (a href=http://www.timeanddate.com/library/abbreviations/timezones/na/est.html-5/a / a href=http://www.timeanddate.com/library/abbreviations/timezones/na/edt.html-4/a)/td/tr trtd/tdtdArshak Navruzyan/tdtda href=http://www.argyledata.com/;Argyle Data/a/tdtd/td/tr trtd/tdtdChris Bennight/tdtd/tdtd/td/tr