Explorar o código

HDFS-757. Enable Unit test for HDFS Raid. (dhruba)


git-svn-id: https://svn.apache.org/repos/asf/hadoop/hdfs/trunk@834288 13f79535-47bb-0310-9956-ffa450edef68
Dhruba Borthakur %!s(int64=15) %!d(string=hai) anos
pai
achega
020d9ad688

+ 2 - 0
CHANGES.txt

@@ -44,6 +44,8 @@ Trunk (unreleased changes)
     HDFS-712. Move libhdfs from mapreduce subproject to hdfs subproject.
     HDFS-712. Move libhdfs from mapreduce subproject to hdfs subproject.
     (Eli Collins via dhruba)
     (Eli Collins via dhruba)
 
 
+    HDFS-757. Enable Unit test for HDFS Raid. (dhruba)
+
 Release 0.21.0 - Unreleased
 Release 0.21.0 - Unreleased
 
 
   INCOMPATIBLE CHANGES
   INCOMPATIBLE CHANGES

+ 65 - 227
src/contrib/raid/ivy.xml

@@ -1,3 +1,4 @@
+<?xml version="1.0" ?>
 <!--
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    contributor license agreements.  See the NOTICE file distributed with
@@ -16,63 +17,21 @@
 -->
 -->
 
 
 <ivy-module version="1.0">
 <ivy-module version="1.0">
-  <info organisation="org.apache.hadoop" module="${ant.project.name}" revision="${version}">
+  <info organisation="org.apache.hadoop" module="${ant.project.name}">
     <license name="Apache 2.0"/>
     <license name="Apache 2.0"/>
     <ivyauthor name="Apache Hadoop Team" url="http://hadoop.apache.org"/>
     <ivyauthor name="Apache Hadoop Team" url="http://hadoop.apache.org"/>
     <description>
     <description>
-        Hadoop HDFS Raid Contrib
+        Apache Hadoop contrib
     </description>
     </description>
   </info>
   </info>
   <configurations defaultconfmapping="default">
   <configurations defaultconfmapping="default">
     <!--these match the Maven configurations-->
     <!--these match the Maven configurations-->
     <conf name="default" extends="master,runtime"/>
     <conf name="default" extends="master,runtime"/>
     <conf name="master" description="contains the artifact but no dependencies"/>
     <conf name="master" description="contains the artifact but no dependencies"/>
-    <conf name="runtime" description="runtime but not the artifact"
-      extends="client,server,s3-server,kfs"/>
-
-    <conf name="mandatory" description="contains the critical  dependencies"
-      extends="commons-logging,log4j"/>
-
-    <!--
-    These public configurations contain the core dependencies for running hadoop client or server.
-    The server is effectively a superset of the client.
-    -->
-    <conf name="client" description="client-side dependencies"
-      extends="mandatory,httpclient"/>
-    <conf name="server" description="server-side dependencies"
-      extends="client"/>
-    <conf name="s3-client" description="dependencies for working with S3/EC2 infrastructure"
-      extends="client"/>
-    <conf name="s3-server" description="dependencies for running on S3/EC2 infrastructure"
-      extends="s3-client,server"/>
-    <conf name="kfs" description="dependencies for KFS file system support"/>
-    <conf name="ftp" description="dependencies for workign with FTP filesytems"
-              extends="mandatory"/>
-   <conf name="jetty" description="Jetty provides the in-VM HTTP daemon" extends="commons-logging"/>
-
-    <!--Private configurations. -->
-
-    <conf name="common" visibility="private" extends="runtime,mandatory,httpclient,ftp,jetty"
-		      description="common artifacts"/>
-    <conf name="javadoc" visibility="private" description="artiracts required while performing doc generation"
-      extends="common,mandatory,jetty,lucene"/>
-    <!--Testing pulls in everything-->
-    <conf name="test" extends="common,s3-server,kfs" visibility="private"
-      description="the classpath needed to run tests"/>
-
-    <conf name="test-hdfswithmr" extends="test" visibility="private"
-      description="the classpath needed to run tests"/>
-
-    <conf name="releaseaudit" visibility="private"
-	description="Artifacts required for releaseaudit target"/>
-     
-    <conf name="commons-logging" visibility="private"/>
-    <conf name="httpclient" visibility="private" extends="commons-logging"/>
-    <conf name="log4j" visibility="private"/>
-    <conf name="lucene" visibility="private"/>
-    <conf name="jdiff" visibility="private" extends="log4j,s3-client,jetty,server"/>
-    <conf name="checkstyle" visibility="private"/>
+    <conf name="runtime" description="runtime but not the artifact" />
 
 
+    <conf name="common" visibility="private" 
+      description="artifacts needed to compile/test the application"/>
   </configurations>
   </configurations>
 
 
   <publications>
   <publications>
@@ -80,210 +39,89 @@
     <artifact conf="master"/>
     <artifact conf="master"/>
   </publications>
   </publications>
   <dependencies>
   <dependencies>
-
- <!--used client side-->
-    
     <dependency org="org.apache.hadoop"
     <dependency org="org.apache.hadoop"
       name="hadoop-core"
       name="hadoop-core"
       rev="${hadoop-core.version}"
       rev="${hadoop-core.version}"
-      conf="client->default"/>
+      conf="common->default"/>
+    <dependency org="org.apache.hadoop"
+      name="hadoop-core-test"
+      rev="${hadoop-core.version}"
+      conf="common->default"/>
     <dependency org="commons-cli"
     <dependency org="commons-cli"
       name="commons-cli"
       name="commons-cli"
       rev="${commons-cli.version}"
       rev="${commons-cli.version}"
-      conf="client->default"/>
-    <dependency org="checkstyle"
-      name="checkstyle"
-      rev="${checkstyle.version}"
-      conf="checkstyle->default"/>
-    <dependency org="jdiff"
-      name="jdiff"
-      rev="${jdiff.version}"
-      conf="jdiff->default"/>
-    <dependency org="xerces"
-      name="xerces"
-      rev="${xerces.version}"
-      conf="jdiff->default">
-    </dependency>
-
+      conf="common->default"/>
+    <dependency org="log4j"
+      name="log4j"
+      rev="${log4j.version}"
+      conf="common->master"/>
+    <dependency org="commons-logging"
+      name="commons-logging"
+      rev="${commons-logging.version}"
+      conf="common->master"/>
+    <dependency org="commons-logging"
+      name="commons-logging-api"
+      rev="${commons-logging-api.version}"
+      conf="common->master"/>
+    <dependency org="junit"
+      name="junit"
+      rev="${junit.version}"
+      conf="common->master"/>
+    <dependency org="org.slf4j"
+      name="slf4j-api"
+      rev="${slf4j-api.version}"
+      conf="common->master"/>
+    <dependency org="org.slf4j"
+      name="slf4j-log4j12"
+      rev="${slf4j-log4j12.version}"
+      conf="common->master"/>
     <dependency org="xmlenc"
     <dependency org="xmlenc"
       name="xmlenc"
       name="xmlenc"
       rev="${xmlenc.version}"
       rev="${xmlenc.version}"
-      conf="server->default"/>
-
-    <!--Configuration: httpclient-->
-
-    <!--
-    commons-httpclient asks for too many files.
-    All it needs is commons-codec and commons-logging JARs
-    -->
-    <dependency org="commons-httpclient"
-      name="commons-httpclient"
-      rev="${commons-httpclient.version}"
-      conf="httpclient->master">
-    </dependency>
-
-    <dependency org="commons-codec"
-      name="commons-codec"
-      rev="${commons-codec.version}"
-      conf="httpclient->default"/>
-
-    <dependency org="commons-net"
-      name="commons-net"
-      rev="${commons-net.version}"
-      conf="ftp->default"/>
-
-    <!--Configuration: Jetty -->
-
-<!-- <dependency org="javax.servlet"
-      name="servlet-api"
-      rev="${servlet-api.version}"
-      conf="jetty->master"/>   -->
+      conf="common->master"/>
     <dependency org="org.mortbay.jetty"
     <dependency org="org.mortbay.jetty"
       name="jetty"
       name="jetty"
       rev="${jetty.version}"
       rev="${jetty.version}"
-      conf="jetty->master"/>
-    <dependency org="org.mortbay.jetty"
-      name="jetty-util"
-      rev="${jetty-util.version}"
-      conf="jetty->master"/>
-
-    <dependency org="tomcat"
-      name="jasper-runtime"
-      rev="${jasper.version}"
-      conf="jetty->master"/>
-    <dependency org="tomcat"
-      name="jasper-compiler"
-      rev="${jasper.version}"
-      conf="jetty->master"/>
+      conf="common->master"/>
     <dependency org="org.mortbay.jetty"
     <dependency org="org.mortbay.jetty"
       name="jsp-api-2.1"
       name="jsp-api-2.1"
       rev="${jetty.version}"
       rev="${jetty.version}"
-      conf="jetty->master"/>
+      conf="common->master"/>
     <dependency org="org.mortbay.jetty"
     <dependency org="org.mortbay.jetty"
       name="jsp-2.1"
       name="jsp-2.1"
       rev="${jetty.version}"
       rev="${jetty.version}"
-      conf="jetty->master"/>
-    <dependency org="commons-el"
-      name="commons-el"
-      rev="${commons-el.version}"
-      conf="jetty->master"/>
-
-
-    <!--Configuration: commons-logging -->
-
-    <!--it is essential that only the master JAR of commons logging
-    is pulled in, as its dependencies are usually a mess, including things
-    like out of date servlet APIs, bits of Avalon, etc.
-    -->
-    <dependency org="commons-logging"
-      name="commons-logging"
-      rev="${commons-logging.version}"
-      conf="commons-logging->master"/>
-
-
-    <!--Configuration: commons-logging -->
-
-    <!--log4J is not optional until commons-logging.properties is stripped out of the JAR -->
-    <dependency org="log4j"
-      name="log4j"
-      rev="${log4j.version}"
-      conf="log4j->master"/>
-
-    <!--Configuration: s3-client -->
-    <!--there are two jets3t projects in the repository; this one goes up to 0.6 and
-    is assumed to be the live one-->
-    <dependency org="net.java.dev.jets3t"
-      name="jets3t"
-      rev="${jets3t.version}"
-      conf="s3-client->master"/>
-    <dependency org="commons-net"
-      name="commons-net"
-      rev="${commons-net.version}"
-      conf="s3-client->master"/> 
+      conf="common->master"/>
+    <dependency org="org.mortbay.jetty"
+      name="jetty-util"
+      rev="${jetty-util.version}"
+      conf="common->master"/>
     <dependency org="org.mortbay.jetty"
     <dependency org="org.mortbay.jetty"
       name="servlet-api-2.5"
       name="servlet-api-2.5"
       rev="${servlet-api-2.5.version}"
       rev="${servlet-api-2.5.version}"
-      conf="s3-client->master"/>
-    <dependency org="net.sf.kosmosfs"
-      name="kfs"
-      rev="${kfs.version}"
-      conf="kfs->default"/>
-
-    <!--Configuration: test -->
-    <!--artifacts needed for testing -->
-
-    <dependency org="org.apache.ftpserver"
-      name="ftplet-api"
-      rev="${ftplet-api.version}"
-      conf="test->default"/>
-    <dependency org="org.apache.mina"
-      name="mina-core"
-      rev="${mina-core.version}"
-      conf="test->default"/>
-    <dependency org="org.apache.ftpserver"
-      name="ftpserver-core"
-      rev="${ftpserver-core.version}"
-      conf="test->default"/>
-
-    <dependency org="junit"
-      name="junit"
-      rev="${junit.version}"
-      conf="common->default"/>
-    <dependency org="org.apache.rat"
-      name="apache-rat-tasks"
-      rev="${rats-lib.version}"
-      conf="releaseaudit->default"/>
-    <dependency org="commons-lang"
-      name="commons-lang"
-      rev="${commons-lang.version}"
-      conf="releaseaudit->default"/>
-    <dependency org="commons-collections"
-      name="commons-collections"
-      rev="${commons-collections.version}"
-      conf="releaseaudit->default"/>
-    <dependency org="hsqldb"
-      name="hsqldb"
-      rev="${hsqldb.version}"
-      conf="common->default"/>
-    <dependency org="org.apache.lucene"
-      name="lucene-core"
-      rev="${lucene-core.version}"
-      conf="javadoc->default"/> 
-    <dependency org="commons-logging"
-      name="commons-logging-api"
-      rev="${commons-logging-api.version}"
-      conf="common->default"/>
-    <dependency org="org.slf4j"
-      name="slf4j-api"
-      rev="${slf4j-api.version}"
       conf="common->master"/>
       conf="common->master"/>
-    <dependency org="org.apache.hadoop"
-      name="avro"
-      rev="1.0.0"
-      conf="common->default"/>
     <dependency org="org.eclipse.jdt"
     <dependency org="org.eclipse.jdt"
       name="core"
       name="core"
       rev="${core.version}"
       rev="${core.version}"
       conf="common->master"/>
       conf="common->master"/>
-    <dependency org="oro"
-      name="oro"
-      rev="${oro.version}"
-      conf="common->default"/>
-    <dependency org="org.slf4j"
-      name="slf4j-log4j12"
-      rev="${slf4j-log4j12.version}"
-      conf="common->master">
-    </dependency>
-    <dependency org="org.aspectj"
-      name="aspectjrt"
-      rev="${aspectj.version}"
-      conf="common->default">
-    </dependency>
-    <dependency org="org.aspectj"
-      name="aspectjtools"
-      rev="${aspectj.version}"
-      conf="common->default">
-    </dependency>
-    </dependencies>
-  
+    <dependency org="org.apache.cactus" name="cactus.core.framework.uberjar.javaEE.14" rev="${cactus.version}" conf="common->master"/>
+		<dependency org="org.apache.cactus" name="cactus.integration.ant" rev="${cactus.version}" conf="common->master"/>
+		<dependency org="org.apache.cactus" name="cactus.integration.shared.api" rev="${cactus.version}" conf="common->master"/>
+				
+		<dependency org="commons-httpclient" name="commons-httpclient" rev="3.1" conf="common->master"/>
+		<dependency org="commons-io" name="commons-io" rev="1.4" conf="common->master"/>
+		<dependency org="commons-lang" name="commons-lang" rev="2.3" conf="common->master"/>
+		<dependency org="commons-codec" name="commons-codec" rev="1.3" conf="common->master"/>
+		
+		<dependency org="aspectj" name="aspectjrt" rev="1.5.3" conf="common->master"/>
+		
+		<dependency org="org.codehaus.cargo" name="cargo-core-uberjar" rev="0.9" conf="common->master"/>
+		<dependency org="org.codehaus.cargo" name="cargo-ant" rev="0.9" conf="common->master"/>
+
+		<dependency org="javax.servlet" name="jsp-api" rev="2.0" conf="common->master"/>
+		<dependency org="javax.servlet" name="servlet-api" rev="2.5" conf="common->master"/>
+		<dependency org="javax.servlet" name="jstl" rev="1.1.2" conf="common->master"/>
+		<dependency org="taglibs" name="standard" rev="1.1.2" conf="common->master"/>
+	  
+		<dependency org="junitperf" name="junitperf" rev="1.8" conf="common->master"/>
+  </dependencies>
 </ivy-module>
 </ivy-module>

+ 18 - 0
src/contrib/raid/ivy/libraries.properties

@@ -0,0 +1,18 @@
+#This properties file lists the versions of the various artifacts used by hadoop.
+#It drives ivy and the generation of a maven POM
+#These are the versions of our dependencies (in alphabetical order)
+ivy.version=2.0.0-rc2
+
+log4j.version=1.2.15
+slf4j-api.version=1.4.3
+slf4j-log4j12.version=1.4.3
+jetty.version=6.1.14
+jetty-util.version=6.1.14
+servlet-api-2.5.version=6.1.14
+cactus.version=1.8.0
+commons-logging.version=1.1
+commons-logging-api.version=1.0.4
+junit.version=3.8.2
+jsp.version=2.1
+core.version=3.1.1
+xmlenc.version=0.52

+ 1 - 0
src/contrib/raid/src/test/org/apache/hadoop/raid/TestRaidNode.java

@@ -77,6 +77,7 @@ public class TestRaidNode extends TestCase {
     conf.set("raid.config.file", CONFIG_FILE);
     conf.set("raid.config.file", CONFIG_FILE);
     conf.setBoolean("raid.config.reload", true);
     conf.setBoolean("raid.config.reload", true);
     conf.setLong("raid.config.reload.interval", RELOAD_INTERVAL);
     conf.setLong("raid.config.reload.interval", RELOAD_INTERVAL);
+    conf.setBoolean("dfs.permissions.enabled", true);
 
 
     // scan all policies once every 5 second
     // scan all policies once every 5 second
     conf.setLong("raid.policy.rescan.interval", 5000);
     conf.setLong("raid.policy.rescan.interval", 5000);