Merge branch 'trunk' into HADOOP-12756
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8b68b11b Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8b68b11b Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8b68b11b Branch: refs/heads/HADOOP-12756 Commit: 8b68b11bd7a44116ae325b8b9cb57299578523e1 Parents: b2d0db8 07650bc Author: Kai Zheng <[email protected]> Authored: Wed Sep 7 16:43:44 2016 +0800 Committer: Kai Zheng <[email protected]> Committed: Wed Sep 7 16:43:44 2016 +0800 ---------------------------------------------------------------------- .gitignore | 5 + .../dev-support/jdiff-workaround.patch | 98 + .../jdiff/Apache_Hadoop_Common_2.7.2.xml | 46648 +++++++++++++++++ hadoop-common-project/hadoop-common/pom.xml | 7 + .../src/main/bin/hadoop-functions.sh | 4 +- .../org/apache/hadoop/conf/ConfigRedactor.java | 84 + .../org/apache/hadoop/conf/Configuration.java | 5 +- .../apache/hadoop/conf/ReconfigurableBase.java | 13 +- .../apache/hadoop/crypto/key/KeyProvider.java | 4 + .../apache/hadoop/fs/ChecksumFileSystem.java | 7 +- .../java/org/apache/hadoop/fs/ChecksumFs.java | 4 +- .../fs/CommonConfigurationKeysPublic.java | 40 + .../org/apache/hadoop/fs/ContentSummary.java | 127 +- .../java/org/apache/hadoop/fs/FileContext.java | 4 +- .../java/org/apache/hadoop/fs/FileSystem.java | 54 +- .../java/org/apache/hadoop/fs/FileUtil.java | 73 +- .../main/java/org/apache/hadoop/fs/Options.java | 3 +- .../java/org/apache/hadoop/fs/TrashPolicy.java | 26 - .../apache/hadoop/fs/TrashPolicyDefault.java | 21 +- .../org/apache/hadoop/fs/ftp/FTPFileSystem.java | 3 +- .../hadoop/fs/permission/FsPermission.java | 2 +- .../apache/hadoop/fs/permission/RawParser.java | 44 + .../apache/hadoop/fs/sftp/SFTPFileSystem.java | 4 +- .../java/org/apache/hadoop/fs/shell/Count.java | 20 +- .../org/apache/hadoop/fs/shell/FsUsage.java | 31 +- .../apache/hadoop/fs/viewfs/ViewFileSystem.java | 6 +- .../org/apache/hadoop/fs/viewfs/ViewFs.java | 12 +- .../org/apache/hadoop/http/HttpServer2.java | 76 +- .../apache/hadoop/io/ElasticByteBufferPool.java | 1 + .../org/apache/hadoop/io/SecureIOUtils.java | 3 +- .../rawcoder/NativeRSRawDecoder.java | 5 + .../rawcoder/NativeRSRawEncoder.java | 5 + .../rawcoder/RSRawDecoderLegacy.java | 56 +- .../hadoop/io/retry/RetryInvocationHandler.java | 8 +- .../apache/hadoop/io/retry/package-info.java | 22 + .../org/apache/hadoop/io/retry/package.html | 48 - .../org/apache/hadoop/ipc/CallerContext.java | 6 +- .../main/java/org/apache/hadoop/ipc/Client.java | 77 +- .../apache/hadoop/ipc/ProtobufRpcEngine.java | 267 +- .../org/apache/hadoop/ipc/ResponseBuffer.java | 12 +- .../java/org/apache/hadoop/ipc/RpcWritable.java | 20 +- .../main/java/org/apache/hadoop/ipc/Server.java | 336 +- .../org/apache/hadoop/ipc/package-info.java | 4 + .../java/org/apache/hadoop/ipc/package.html | 23 - .../org/apache/hadoop/jmx/JMXJsonServlet.java | 11 +- .../metrics2/sink/RollingFileSystemSink.java | 6 +- .../java/org/apache/hadoop/security/Groups.java | 57 +- .../hadoop/security/LdapGroupsMapping.java | 12 +- .../apache/hadoop/security/SaslRpcClient.java | 64 +- .../hadoop/security/UserGroupInformation.java | 28 +- .../alias/AbstractJavaKeyStoreProvider.java | 4 +- .../security/alias/CredentialProvider.java | 6 +- .../alias/CredentialProviderFactory.java | 6 +- .../security/authorize/AccessControlList.java | 2 +- .../security/ssl/ReloadingX509TrustManager.java | 14 +- .../ssl/SslSelectChannelConnectorSecure.java | 58 + .../security/ssl/SslSocketConnectorSecure.java | 58 - .../ZKDelegationTokenSecretManager.java | 44 + .../DelegationTokenAuthenticationFilter.java | 10 + .../hadoop/util/ApplicationClassLoader.java | 20 +- .../apache/hadoop/util/AutoCloseableLock.java | 122 + .../org/apache/hadoop/util/DataChecksum.java | 4 +- .../hadoop/util/GenericOptionsParser.java | 134 +- .../org/apache/hadoop/util/HostsFileReader.java | 111 +- .../util/InvalidChecksumSizeException.java | 32 + .../hadoop/util/NodeHealthScriptRunner.java | 3 +- .../java/org/apache/hadoop/util/RunJar.java | 6 +- .../main/java/org/apache/hadoop/util/Shell.java | 13 +- .../apache/hadoop/io/erasurecode/jni_common.c | 15 +- .../src/main/resources/core-default.xml | 127 +- .../src/site/markdown/Benchmarking.md | 106 + .../src/site/markdown/CredentialProviderAPI.md | 4 +- .../src/site/markdown/FileSystemShell.md | 11 +- .../src/site/markdown/GroupsMapping.md | 6 +- .../hadoop-common/src/site/markdown/Metrics.md | 1 + .../src/site/markdown/filesystem/filesystem.md | 8 +- .../apache/hadoop/conf/TestConfigRedactor.java | 72 + .../hadoop/crypto/key/TestKeyProvider.java | 28 +- .../fs/FileContextMainOperationsBaseTest.java | 8 +- .../apache/hadoop/fs/FileContextUtilBase.java | 4 +- .../hadoop/fs/FileSystemContractBaseTest.java | 46 +- .../java/org/apache/hadoop/fs/TestFileUtil.java | 59 +- .../fs/TestRawLocalFileSystemContract.java | 75 + .../java/org/apache/hadoop/fs/TestTrash.java | 4 - .../hadoop/fs/permission/TestFsPermission.java | 1061 +- .../org/apache/hadoop/fs/shell/TestCount.java | 5 +- .../rawcoder/RawErasureCoderBenchmark.java | 408 + .../rawcoder/TestRawErasureCoderBenchmark.java | 65 + .../apache/hadoop/jmx/TestJMXJsonServlet.java | 13 + .../metrics2/impl/TestGangliaMetrics.java | 48 +- .../hadoop/security/TestGroupsCaching.java | 91 +- .../hadoop/security/TestLdapGroupsMapping.java | 21 + .../security/TestUserGroupInformation.java | 6 +- .../ssl/TestReloadingX509TrustManager.java | 63 +- .../TestZKDelegationTokenSecretManager.java | 93 +- .../apache/hadoop/test/GenericTestUtils.java | 31 +- .../hadoop/test/TestGenericTestUtils.java | 44 + .../hadoop/util/TestAutoCloseableLock.java | 95 + .../hadoop/util/TestBasicDiskValidator.java | 8 +- .../org/apache/hadoop/util/TestDiskChecker.java | 35 +- .../hadoop/util/TestGenericOptionsParser.java | 74 +- .../apache/hadoop/util/TestHostsFileReader.java | 64 +- .../hadoop/util/TestNodeHealthScriptRunner.java | 7 + .../java/org/apache/hadoop/util/TestShell.java | 12 +- .../src/test/resources/testConf.xml | 16 +- .../hadoop-kms/src/main/conf/kms-site.xml | 10 + .../hadoop/crypto/key/kms/server/KMSACLs.java | 75 +- .../hadoop/crypto/key/kms/server/KMSAudit.java | 206 +- .../crypto/key/kms/server/KMSAuditLogger.java | 154 + .../crypto/key/kms/server/KMSConfiguration.java | 4 + .../hadoop/crypto/key/kms/server/KMSWebApp.java | 5 +- .../key/kms/server/SimpleKMSAuditLogger.java | 96 + .../hadoop-kms/src/site/markdown/index.md.vm | 66 +- .../hadoop/crypto/key/kms/server/MiniKMS.java | 9 +- .../crypto/key/kms/server/TestKMSACLs.java | 174 +- .../crypto/key/kms/server/TestKMSAudit.java | 92 +- .../test/resources/log4j-kmsaudit.properties | 5 +- .../org/apache/hadoop/mount/MountInterface.java | 47 +- .../org/apache/hadoop/mount/MountResponse.java | 26 +- .../org/apache/hadoop/mount/MountdBase.java | 4 +- .../java/org/apache/hadoop/nfs/NfsExports.java | 1 + .../java/org/apache/hadoop/nfs/NfsTime.java | 1 + .../org/apache/hadoop/nfs/nfs3/FileHandle.java | 1 + .../apache/hadoop/nfs/nfs3/Nfs3Constant.java | 6 +- .../apache/hadoop/nfs/nfs3/Nfs3Interface.java | 151 +- .../hadoop/nfs/nfs3/request/NFS3Request.java | 1 + .../hadoop/nfs/nfs3/response/NFS3Response.java | 4 + .../org/apache/hadoop/oncrpc/RpcCallCache.java | 24 +- .../org/apache/hadoop/oncrpc/RpcProgram.java | 6 + .../main/java/org/apache/hadoop/oncrpc/XDR.java | 20 +- .../hadoop/oncrpc/security/Credentials.java | 2 + .../hadoop/oncrpc/security/RpcAuthInfo.java | 9 +- .../hadoop/oncrpc/security/SecurityHandler.java | 34 +- .../apache/hadoop/oncrpc/security/Verifier.java | 10 +- .../java/org/apache/hadoop/hdfs/DFSClient.java | 2 +- .../org/apache/hadoop/hdfs/DFSInputStream.java | 235 +- .../org/apache/hadoop/hdfs/DFSOutputStream.java | 74 +- .../hadoop/hdfs/DFSStripedInputStream.java | 41 +- .../hadoop/hdfs/DFSStripedOutputStream.java | 42 +- .../org/apache/hadoop/hdfs/DFSUtilClient.java | 22 +- .../org/apache/hadoop/hdfs/DataStreamer.java | 16 +- .../org/apache/hadoop/hdfs/ReadStatistics.java | 106 + .../org/apache/hadoop/hdfs/ReaderStrategy.java | 215 + .../hadoop/hdfs/client/HdfsDataInputStream.java | 3 +- .../hdfs/protocol/ClientDatanodeProtocol.java | 7 +- .../hdfs/protocol/DatanodeAdminProperties.java | 19 + .../hadoop/hdfs/protocol/DatanodeInfo.java | 27 +- .../hadoop/hdfs/protocol/HdfsConstants.java | 2 +- .../ClientDatanodeProtocolTranslatorPB.java | 12 +- .../ClientNamenodeProtocolTranslatorPB.java | 7 +- .../hadoop/hdfs/protocolPB/PBHelperClient.java | 8 + .../server/datanode/DiskBalancerWorkItem.java | 11 +- .../server/datanode/DiskBalancerWorkStatus.java | 43 +- .../apache/hadoop/hdfs/util/IOUtilsClient.java | 16 + .../apache/hadoop/hdfs/web/JsonUtilClient.java | 21 + .../hadoop/hdfs/web/WebHdfsFileSystem.java | 55 + .../hadoop/hdfs/web/resources/GetOpParam.java | 3 +- .../hdfs/web/resources/StartAfterParam.java | 38 + .../src/main/proto/ClientDatanodeProtocol.proto | 10 +- .../src/main/proto/ClientNamenodeProtocol.proto | 1 + .../src/main/proto/hdfs.proto | 4 + .../org/apache/hadoop/test/TestJettyHelper.java | 6 +- .../jdiff/Apache_Hadoop_HDFS_2.7.2.xml | 21505 ++++++++ .../org/apache/hadoop/hdfs/DFSConfigKeys.java | 18 + .../java/org/apache/hadoop/hdfs/DFSUtil.java | 68 +- .../hadoop/hdfs/protocol/FSLimitException.java | 4 +- ...tDatanodeProtocolServerSideTranslatorPB.java | 2 + ...tNamenodeProtocolServerSideTranslatorPB.java | 14 +- .../qjournal/client/QuorumJournalManager.java | 9 +- .../hadoop/hdfs/server/balancer/Dispatcher.java | 2 +- .../AvailableSpaceBlockPlacementPolicy.java | 16 +- .../server/blockmanagement/BlockManager.java | 89 +- .../CombinedHostFileManager.java | 23 + .../server/blockmanagement/DatanodeManager.java | 33 +- .../server/blockmanagement/DatanodeStats.java | 10 +- .../blockmanagement/DecommissionManager.java | 101 +- .../blockmanagement/HeartbeatManager.java | 27 + .../blockmanagement/HostConfigManager.java | 7 + .../server/blockmanagement/HostFileManager.java | 6 + .../blockmanagement/InvalidateBlocks.java | 3 +- .../hdfs/server/datanode/BPServiceActor.java | 43 +- .../server/datanode/BlockPoolSliceStorage.java | 2 +- .../hdfs/server/datanode/BlockReceiver.java | 1 + .../hdfs/server/datanode/BlockSender.java | 15 +- .../hadoop/hdfs/server/datanode/DNConf.java | 7 + .../hadoop/hdfs/server/datanode/DataNode.java | 38 +- .../server/datanode/DataNodeFaultInjector.java | 3 + .../hdfs/server/datanode/DataXceiver.java | 6 + .../hdfs/server/datanode/DirectoryScanner.java | 3 +- .../hdfs/server/datanode/DiskBalancer.java | 45 +- .../hdfs/server/datanode/VolumeScanner.java | 5 +- .../StripedBlockChecksumReconstructor.java | 3 +- .../erasurecode/StripedBlockReader.java | 4 + .../erasurecode/StripedBlockReconstructor.java | 4 +- .../erasurecode/StripedBlockWriter.java | 22 +- .../datanode/erasurecode/StripedReader.java | 11 +- .../erasurecode/StripedReconstructor.java | 13 +- .../datanode/erasurecode/StripedWriter.java | 8 + .../server/datanode/fsdataset/FsDatasetSpi.java | 6 + .../datanode/fsdataset/impl/FsDatasetImpl.java | 948 +- .../datanode/fsdataset/impl/FsVolumeImpl.java | 9 +- .../diskbalancer/command/CancelCommand.java | 2 +- .../server/diskbalancer/command/Command.java | 81 +- .../diskbalancer/command/ExecuteCommand.java | 15 +- .../diskbalancer/command/PlanCommand.java | 34 - .../diskbalancer/command/QueryCommand.java | 6 +- .../diskbalancer/command/ReportCommand.java | 4 +- .../connectors/JsonNodeConnector.java | 8 +- .../datamodel/DiskBalancerCluster.java | 11 +- .../datamodel/DiskBalancerVolume.java | 11 +- .../diskbalancer/planner/GreedyPlanner.java | 45 +- .../apache/hadoop/hdfs/server/mover/Mover.java | 23 +- .../ContentSummaryComputationContext.java | 6 + .../hadoop/hdfs/server/namenode/FSDirAclOp.java | 35 +- .../hdfs/server/namenode/FSDirAppendOp.java | 10 +- .../hdfs/server/namenode/FSDirAttrOp.java | 35 +- .../hdfs/server/namenode/FSDirDeleteOp.java | 7 +- .../server/namenode/FSDirEncryptionZoneOp.java | 34 +- .../server/namenode/FSDirErasureCodingOp.java | 12 +- .../hdfs/server/namenode/FSDirMkdirOp.java | 98 +- .../hdfs/server/namenode/FSDirRenameOp.java | 73 +- .../server/namenode/FSDirStatAndListingOp.java | 140 +- .../hdfs/server/namenode/FSDirSymlinkOp.java | 20 +- .../hdfs/server/namenode/FSDirTruncateOp.java | 6 +- .../hdfs/server/namenode/FSDirWriteFileOp.java | 122 +- .../hdfs/server/namenode/FSDirXAttrOp.java | 34 +- .../hdfs/server/namenode/FSDirectory.java | 209 +- .../server/namenode/FSImageFormatPBINode.java | 10 +- .../server/namenode/FSImageFormatProtobuf.java | 6 +- .../hdfs/server/namenode/FSNamesystem.java | 139 +- .../server/namenode/FSPermissionChecker.java | 196 +- .../hdfs/server/namenode/HdfsAuditLogger.java | 23 +- .../hadoop/hdfs/server/namenode/INode.java | 23 +- .../server/namenode/INodeAttributeProvider.java | 10 + .../hdfs/server/namenode/INodeDirectory.java | 4 + .../hadoop/hdfs/server/namenode/INodeFile.java | 29 +- .../hdfs/server/namenode/INodesInPath.java | 83 +- .../namenode/metrics/FSNamesystemMBean.java | 15 + .../web/resources/NamenodeWebHdfsMethods.java | 27 +- .../apache/hadoop/hdfs/tools/DebugAdmin.java | 4 +- .../apache/hadoop/hdfs/tools/DiskBalancer.java | 29 +- .../offlineImageViewer/OfflineImageViewer.java | 2 + .../org/apache/hadoop/hdfs/web/JsonUtil.java | 45 +- .../src/main/resources/hdfs-default.xml | 58 + .../src/main/webapps/datanode/datanode.html | 2 + .../src/site/markdown/HDFSCommands.md | 4 +- .../src/site/markdown/HdfsSnapshots.md | 2 +- .../hadoop-hdfs/src/site/markdown/WebHDFS.md | 115 +- .../apache/hadoop/hdfs/AdminStatesBaseTest.java | 375 + .../TestClientProtocolForPipelineRecovery.java | 138 +- .../apache/hadoop/hdfs/TestDFSPermission.java | 90 +- .../org/apache/hadoop/hdfs/TestDFSShell.java | 235 +- .../hadoop/hdfs/TestDFSStripedInputStream.java | 8 + .../hadoop/hdfs/TestDFSStripedOutputStream.java | 8 + .../TestDFSStripedOutputStreamWithFailure.java | 11 +- .../org/apache/hadoop/hdfs/TestDFSUtil.java | 54 +- .../apache/hadoop/hdfs/TestDecommission.java | 592 +- .../hadoop/hdfs/TestDistributedFileSystem.java | 35 +- .../apache/hadoop/hdfs/TestEncryptionZones.java | 4 +- .../hadoop/hdfs/TestExternalBlockReader.java | 4 +- .../hadoop/hdfs/TestMaintenanceState.java | 310 + .../hadoop/hdfs/TestReconstructStripedFile.java | 11 +- .../hadoop/hdfs/TestReservedRawPaths.java | 21 + .../hdfs/TestSecureEncryptionZoneWithKMS.java | 305 + .../hdfs/qjournal/TestSecureNNWithQJM.java | 2 +- .../hdfs/qjournal/client/TestQJMWithFaults.java | 19 +- .../TestAvailableSpaceBlockPlacementPolicy.java | 18 + .../blockmanagement/TestBlockManager.java | 105 +- .../server/datanode/SimulatedFSDataset.java | 9 + .../hdfs/server/datanode/TestBlockRecovery.java | 3 +- .../TestDataNodeErasureCodingMetrics.java | 46 +- .../server/datanode/TestDataNodeMXBean.java | 52 + .../TestDataNodeVolumeFailureReporting.java | 20 + .../server/datanode/TestDirectoryScanner.java | 9 +- .../hdfs/server/datanode/TestDiskError.java | 55 + .../extdataset/ExternalDatasetImpl.java | 5 + .../fsdataset/impl/TestFsDatasetImpl.java | 49 +- .../server/diskbalancer/TestDiskBalancer.java | 10 +- .../diskbalancer/TestDiskBalancerRPC.java | 29 +- .../TestDiskBalancerWithMockMover.java | 15 +- .../command/TestDiskBalancerCommand.java | 70 + .../hadoop/hdfs/server/mover/TestMover.java | 212 +- .../server/namenode/NNThroughputBenchmark.java | 32 +- .../namenode/TestDecommissioningStatus.java | 2 +- .../hdfs/server/namenode/TestEditLog.java | 9 +- .../hdfs/server/namenode/TestFSNamesystem.java | 136 +- .../hdfs/server/namenode/TestFileTruncate.java | 3 + .../hadoop/hdfs/server/namenode/TestFsck.java | 4 +- .../hdfs/server/namenode/TestINodeFile.java | 53 +- .../hdfs/server/namenode/TestLeaseManager.java | 47 + .../hdfs/server/namenode/TestMetaSave.java | 1 + .../hdfs/server/namenode/TestSaveNamespace.java | 42 + .../server/namenode/TestSnapshotPathINodes.java | 5 + .../TestOfflineImageViewer.java | 19 + .../hadoop/hdfs/util/HostsFileWriter.java | 55 +- .../hdfs/util/TestCombinedHostsFileReader.java | 2 +- .../org/apache/hadoop/hdfs/web/TestWebHDFS.java | 55 +- .../apache/hadoop/hdfs/web/TestWebHdfsUrl.java | 25 + .../hadoop/hdfs/web/resources/TestParam.java | 7 + .../security/TestRefreshUserMappings.java | 20 +- .../src/test/resources/dfs.hosts.json | 2 + .../Apache_Hadoop_MapReduce_Common_2.6.0.xml | 281 + .../Apache_Hadoop_MapReduce_Common_2.7.2.xml | 836 + .../Apache_Hadoop_MapReduce_Core_2.6.0.xml | 30767 +++++++++++ .../Apache_Hadoop_MapReduce_Core_2.7.2.xml | 31129 +++++++++++ .../Apache_Hadoop_MapReduce_JobClient_2.6.0.xml | 975 + .../Apache_Hadoop_MapReduce_JobClient_2.7.2.xml | 990 + .../dev-support/jdiff/Null.java | 20 + .../jobhistory/JobHistoryEventHandler.java | 19 +- .../mapreduce/v2/app/webapp/dao/ConfInfo.java | 4 +- .../jobhistory/TestJobHistoryEventHandler.java | 71 + .../hadoop/mapreduce/v2/app/TestRecovery.java | 25 +- .../v2/app/launcher/TestContainerLauncher.java | 8 + .../app/launcher/TestContainerLauncherImpl.java | 8 + .../app/local/TestLocalContainerAllocator.java | 4 +- .../v2/app/rm/TestRMContainerAllocator.java | 10 +- .../mapreduce/v2/app/webapp/TestBlocks.java | 10 +- .../hadoop-mapreduce-client-common/pom.xml | 2 + .../hadoop-mapreduce-client-core/pom.xml | 2 + .../apache/hadoop/mapred/FileInputFormat.java | 7 + .../org/apache/hadoop/mapreduce/Cluster.java | 22 +- .../java/org/apache/hadoop/mapreduce/Job.java | 2 +- .../hadoop/mapreduce/JobResourceUploader.java | 214 +- .../apache/hadoop/mapreduce/MRJobConfig.java | 33 + .../ClientDistributedCacheManager.java | 15 +- .../lib/input/CombineFileInputFormat.java | 4 + .../mapreduce/lib/input/FileInputFormat.java | 7 + .../hadoop/mapreduce/task/reduce/Fetcher.java | 10 +- .../hadoop/mapreduce/util/MRJobConfUtil.java | 45 + .../src/main/resources/mapred-default.xml | 44 + .../apache/hadoop/mapreduce/TestCluster.java | 81 + .../org/apache/hadoop/mapreduce/TestJob.java | 36 + .../mapreduce/TestJobResourceUploader.java | 355 + .../v2/hs/server/TestHSAdminServer.java | 3 +- .../hadoop-mapreduce-client-jobclient/pom.xml | 2 + .../hadoop/mapred/ResourceMgrDelegate.java | 10 + .../java/org/apache/hadoop/fs/TestDFSIO.java | 53 +- .../org/apache/hadoop/fs/slive/AppendOp.java | 2 +- .../org/apache/hadoop/fs/slive/TruncateOp.java | 2 +- .../hadoop/mapred/TestMROpportunisticMaps.java | 2 + .../apache/hadoop/mapreduce/v2/TestMRJobs.java | 166 +- .../apache/hadoop/mapred/ShuffleHandler.java | 6 + .../hadoop-mapreduce-client/pom.xml | 127 + .../hadoop/examples/terasort/TeraGen.java | 2 +- hadoop-project-dist/pom.xml | 44 +- hadoop-project/pom.xml | 10 + hadoop-project/src/site/site.xml | 2 + hadoop-tools/hadoop-aws/pom.xml | 95 +- .../fs/s3a/AWSCredentialProviderList.java | 188 + .../fs/s3a/AnonymousAWSCredentialsProvider.java | 4 + .../fs/s3a/BasicAWSCredentialsProvider.java | 6 +- .../org/apache/hadoop/fs/s3a/Constants.java | 4 +- .../java/org/apache/hadoop/fs/s3a/Listing.java | 594 + .../org/apache/hadoop/fs/s3a/S3AFileSystem.java | 431 +- .../hadoop/fs/s3a/S3AInstrumentation.java | 1 + .../java/org/apache/hadoop/fs/s3a/S3AUtils.java | 151 +- .../fs/s3a/SimpleAWSCredentialsProvider.java | 86 + .../org/apache/hadoop/fs/s3a/Statistic.java | 2 + .../fs/s3a/TemporaryAWSCredentialsProvider.java | 32 +- .../hadoop/fs/s3native/NativeS3FileSystem.java | 3 +- .../src/site/markdown/tools/hadoop-aws/index.md | 673 +- .../fs/contract/s3a/ITestS3AContractCreate.java | 35 + .../fs/contract/s3a/ITestS3AContractDelete.java | 34 + .../fs/contract/s3a/ITestS3AContractDistCp.java | 46 + .../s3a/ITestS3AContractGetFileStatus.java | 51 + .../fs/contract/s3a/ITestS3AContractMkdir.java | 34 + .../fs/contract/s3a/ITestS3AContractOpen.java | 34 + .../fs/contract/s3a/ITestS3AContractRename.java | 62 + .../contract/s3a/ITestS3AContractRootDir.java | 72 + .../fs/contract/s3a/ITestS3AContractSeek.java | 34 + .../fs/contract/s3a/TestS3AContractCreate.java | 33 - .../fs/contract/s3a/TestS3AContractDelete.java | 31 - .../fs/contract/s3a/TestS3AContractDistCp.java | 46 - .../s3a/TestS3AContractGetFileStatus.java | 31 - .../fs/contract/s3a/TestS3AContractMkdir.java | 34 - .../fs/contract/s3a/TestS3AContractOpen.java | 31 - .../fs/contract/s3a/TestS3AContractRename.java | 61 - .../fs/contract/s3a/TestS3AContractRootDir.java | 72 - .../fs/contract/s3a/TestS3AContractSeek.java | 31 - .../fs/contract/s3n/ITestS3NContractCreate.java | 41 + .../fs/contract/s3n/ITestS3NContractDelete.java | 34 + .../fs/contract/s3n/ITestS3NContractMkdir.java | 34 + .../fs/contract/s3n/ITestS3NContractOpen.java | 34 + .../fs/contract/s3n/ITestS3NContractRename.java | 35 + .../contract/s3n/ITestS3NContractRootDir.java | 35 + .../fs/contract/s3n/ITestS3NContractSeek.java | 34 + .../fs/contract/s3n/TestS3NContractCreate.java | 38 - .../fs/contract/s3n/TestS3NContractDelete.java | 31 - .../fs/contract/s3n/TestS3NContractMkdir.java | 34 - .../fs/contract/s3n/TestS3NContractOpen.java | 31 - .../fs/contract/s3n/TestS3NContractRename.java | 32 - .../fs/contract/s3n/TestS3NContractRootDir.java | 35 - .../fs/contract/s3n/TestS3NContractSeek.java | 31 - .../ITestBlockingThreadPoolExecutorService.java | 182 + .../fs/s3a/ITestS3AAWSCredentialsProvider.java | 250 + .../fs/s3a/ITestS3ABlockingThreadPool.java | 80 + .../apache/hadoop/fs/s3a/ITestS3ABlocksize.java | 96 + .../hadoop/fs/s3a/ITestS3AConfiguration.java | 435 + .../hadoop/fs/s3a/ITestS3ACredentialsInURL.java | 155 + .../hadoop/fs/s3a/ITestS3AEncryption.java | 104 + .../ITestS3AEncryptionAlgorithmPropagation.java | 83 + .../s3a/ITestS3AEncryptionFastOutputStream.java | 35 + .../hadoop/fs/s3a/ITestS3AFailureHandling.java | 192 + .../hadoop/fs/s3a/ITestS3AFastOutputStream.java | 74 + .../fs/s3a/ITestS3AFileOperationCost.java | 191 + .../fs/s3a/ITestS3AFileSystemContract.java | 106 + .../fs/s3a/ITestS3ATemporaryCredentials.java | 148 + .../org/apache/hadoop/fs/s3a/S3ATestUtils.java | 23 +- .../TestBlockingThreadPoolExecutorService.java | 182 - .../fs/s3a/TestS3AAWSCredentialsProvider.java | 171 - .../fs/s3a/TestS3ABlockingThreadPool.java | 80 - .../apache/hadoop/fs/s3a/TestS3ABlocksize.java | 93 - .../hadoop/fs/s3a/TestS3AConfiguration.java | 429 - .../hadoop/fs/s3a/TestS3ACredentialsInURL.java | 155 - .../apache/hadoop/fs/s3a/TestS3AEncryption.java | 104 - .../TestS3AEncryptionAlgorithmPropagation.java | 82 - .../s3a/TestS3AEncryptionFastOutputStream.java | 35 - .../hadoop/fs/s3a/TestS3AFailureHandling.java | 194 - .../hadoop/fs/s3a/TestS3AFastOutputStream.java | 74 - .../hadoop/fs/s3a/TestS3AFileOperationCost.java | 191 - .../fs/s3a/TestS3AFileSystemContract.java | 104 - .../fs/s3a/TestS3ATemporaryCredentials.java | 148 - .../fs/s3a/fileContext/ITestS3AFileContext.java | 23 + .../ITestS3AFileContextCreateMkdir.java | 35 + .../ITestS3AFileContextMainOperations.java | 60 + .../ITestS3AFileContextStatistics.java | 61 + .../s3a/fileContext/ITestS3AFileContextURI.java | 44 + .../fileContext/ITestS3AFileContextUtil.java | 34 + .../fs/s3a/fileContext/TestS3AFileContext.java | 23 - .../TestS3AFileContextCreateMkdir.java | 35 - .../TestS3AFileContextMainOperations.java | 60 - .../TestS3AFileContextStatistics.java | 60 - .../s3a/fileContext/TestS3AFileContextURI.java | 43 - .../s3a/fileContext/TestS3AFileContextUtil.java | 34 - .../s3a/scale/ITestS3ADeleteFilesOneByOne.java | 44 + .../fs/s3a/scale/ITestS3ADeleteManyFiles.java | 135 + .../s3a/scale/ITestS3ADirectoryPerformance.java | 187 + .../scale/ITestS3AInputStreamPerformance.java | 534 + .../hadoop/fs/s3a/scale/S3AScaleTestBase.java | 15 +- .../fs/s3a/scale/TestS3ADeleteManyFiles.java | 135 - .../s3a/scale/TestS3ADirectoryPerformance.java | 189 - .../scale/TestS3AInputStreamPerformance.java | 532 - .../org/apache/hadoop/fs/s3a/yarn/ITestS3A.java | 88 + .../fs/s3a/yarn/ITestS3AMiniYarnCluster.java | 148 + .../org/apache/hadoop/fs/s3a/yarn/TestS3A.java | 83 - .../fs/s3a/yarn/TestS3AMiniYarnCluster.java | 144 - ...ITestInMemoryNativeS3FileSystemContract.java | 33 + .../ITestJets3tNativeFileSystemStore.java | 133 + .../ITestJets3tNativeS3FileSystemContract.java | 33 + .../TestInMemoryNativeS3FileSystemContract.java | 30 - .../TestJets3tNativeFileSystemStore.java | 129 - .../TestJets3tNativeS3FileSystemContract.java | 30 - .../AzureFileSystemThreadPoolExecutor.java | 346 + .../fs/azure/AzureFileSystemThreadTask.java | 29 + .../fs/azure/AzureNativeFileSystemStore.java | 58 +- .../hadoop/fs/azure/NativeAzureFileSystem.java | 235 +- .../hadoop-azure/src/site/markdown/index.md | 19 + .../hadoop/fs/azure/AbstractWasbTestBase.java | 2 +- ...TestFileSystemOperationExceptionMessage.java | 78 + .../TestFileSystemOperationsWithThreads.java | 720 + .../src/test/resources/log4j.properties | 4 +- .../hadoop/yarn/sls/nodemanager/NodeInfo.java | 5 + .../yarn/sls/scheduler/RMNodeWrapper.java | 5 + .../sls/scheduler/ResourceSchedulerWrapper.java | 6 +- .../sls/scheduler/SLSCapacityScheduler.java | 6 +- .../dev-support/findbugs-exclude.xml | 12 + .../hadoop/yarn/api/ApplicationConstants.java | 2 + .../yarn/api/ContainerManagementProtocol.java | 16 + .../api/protocolrecords/AllocateRequest.java | 58 +- .../api/protocolrecords/AllocateResponse.java | 77 +- .../FinishApplicationMasterResponse.java | 4 + .../protocolrecords/GetApplicationsRequest.java | 4 + .../protocolrecords/GetClusterNodesRequest.java | 2 + .../GetContainerStatusesResponse.java | 1 + .../GetDelegationTokenResponse.java | 2 +- .../IncreaseContainersResourceResponse.java | 1 + .../KillApplicationResponse.java | 2 + .../RegisterApplicationMasterResponse.java | 2 + .../protocolrecords/ReservationListRequest.java | 3 + .../ResourceLocalizationRequest.java | 84 + .../ResourceLocalizationResponse.java | 40 + .../StartContainersResponse.java | 1 + .../protocolrecords/StopContainersResponse.java | 1 + .../hadoop/yarn/api/records/Container.java | 24 +- .../records/ContainerResourceChangeRequest.java | 117 - .../yarn/api/records/ContainerStatus.java | 26 + .../yarn/api/records/ContainerUpdateType.java | 45 + .../yarn/api/records/DecommissionType.java | 12 +- .../hadoop/yarn/api/records/LocalResource.java | 3 + .../yarn/api/records/ReservationDefinition.java | 49 +- .../yarn/api/records/ResourceRequest.java | 19 +- .../yarn/api/records/UpdateContainerError.java | 119 + .../api/records/UpdateContainerRequest.java | 218 + .../yarn/api/records/UpdatedContainer.java | 118 + .../org/apache/hadoop/yarn/conf/HAUtil.java | 5 +- .../hadoop/yarn/conf/YarnConfiguration.java | 141 +- .../protocolrecords/RefreshNodesRequest.java | 26 +- .../proto/containermanagement_protocol.proto | 1 + ..._server_resourcemanager_service_protos.proto | 1 + .../src/main/proto/yarn_protos.proto | 10 +- .../src/main/proto/yarn_service_protos.proto | 38 +- .../distributedshell/ApplicationMaster.java | 4 +- .../hadoop/yarn/client/api/AMRMClient.java | 134 +- .../hadoop/yarn/client/api/YarnClient.java | 25 + .../yarn/client/api/async/AMRMClientAsync.java | 31 +- .../api/async/impl/AMRMClientAsyncImpl.java | 10 +- .../yarn/client/api/impl/AMRMClientImpl.java | 239 +- .../client/api/impl/RemoteRequestsTable.java | 11 +- .../yarn/client/api/impl/YarnClientImpl.java | 11 + .../hadoop/yarn/client/cli/ApplicationCLI.java | 51 +- .../apache/hadoop/yarn/client/cli/LogsCLI.java | 235 +- .../hadoop/yarn/client/cli/RMAdminCLI.java | 166 +- .../hadoop/yarn/client/ProtocolHATestBase.java | 4 +- .../api/async/impl/TestAMRMClientAsync.java | 55 +- .../yarn/client/api/impl/TestAMRMClient.java | 219 +- .../impl/TestAMRMClientContainerRequest.java | 7 +- .../api/impl/TestAMRMClientOnRMRestart.java | 14 +- .../api/impl/TestDistributedScheduling.java | 28 +- .../yarn/client/api/impl/TestNMClient.java | 6 +- .../yarn/client/api/impl/TestYarnClient.java | 215 +- .../hadoop/yarn/client/cli/TestLogsCLI.java | 277 +- .../hadoop/yarn/client/cli/TestRMAdminCLI.java | 24 +- .../hadoop/yarn/client/cli/TestYarnCLI.java | 280 +- ...ContainerManagementProtocolPBClientImpl.java | 38 +- ...ontainerManagementProtocolPBServiceImpl.java | 20 + .../impl/pb/AllocateRequestPBImpl.java | 151 +- .../impl/pb/AllocateResponsePBImpl.java | 192 +- .../pb/ResourceLocalizationRequestPBImpl.java | 216 + .../pb/ResourceLocalizationResponsePBImpl.java | 69 + .../api/records/impl/pb/ContainerPBImpl.java | 13 + .../ContainerResourceChangeRequestPBImpl.java | 141 - .../records/impl/pb/ContainerStatusPBImpl.java | 107 +- .../yarn/api/records/impl/pb/ProtoUtils.java | 69 +- .../impl/pb/ReservationDefinitionPBImpl.java | 21 +- .../impl/pb/UpdateContainerErrorPBImpl.java | 125 + .../impl/pb/UpdateContainerRequestPBImpl.java | 187 + .../records/impl/pb/UpdatedContainerPBImpl.java | 117 + .../hadoop/yarn/event/AsyncDispatcher.java | 6 +- .../logaggregation/ContainerLogsRequest.java | 10 +- .../yarn/logaggregation/LogCLIHelpers.java | 8 +- .../yarn/security/ContainerTokenIdentifier.java | 29 +- .../impl/pb/RefreshNodesRequestPBImpl.java | 17 +- .../src/main/proto/yarn_security_token.proto | 1 + .../src/main/resources/yarn-default.xml | 89 +- .../hadoop/yarn/TestContainerLaunchRPC.java | 8 + .../yarn/TestContainerResourceIncreaseRPC.java | 7 + .../hadoop/yarn/api/TestPBImplRecords.java | 32 +- .../hadoop/yarn/event/DrainDispatcher.java | 5 + .../logaggregation/TestAggregatedLogFormat.java | 3 +- .../yarn/security/TestYARNTokenIdentifier.java | 4 +- .../api/protocolrecords/NMContainerStatus.java | 15 +- .../impl/pb/NMContainerStatusPBImpl.java | 13 + .../OpportunisticContainerAllocator.java | 378 + .../OpportunisticContainerContext.java | 178 + .../yarn/server/scheduler/package-info.java | 22 + .../hadoop/yarn/server/utils/BuilderUtils.java | 28 +- .../yarn_server_common_service_protos.proto | 1 + .../java/org/apache/hadoop/yarn/TestRPC.java | 8 + .../protocolrecords/TestProtocolRecords.java | 21 +- .../TestRegisterNodeManagerRequest.java | 2 +- .../server/nodemanager/ContainerExecutor.java | 64 +- .../hadoop/yarn/server/nodemanager/Context.java | 2 +- .../server/nodemanager/DirectoryCollection.java | 22 +- .../nodemanager/DockerContainerExecutor.java | 4 +- .../nodemanager/LinuxContainerExecutor.java | 125 +- .../yarn/server/nodemanager/NodeManager.java | 9 +- .../amrmproxy/DefaultRequestInterceptor.java | 67 +- .../containermanager/ContainerManagerImpl.java | 26 +- .../containermanager/container/Container.java | 2 + .../container/ContainerImpl.java | 21 +- .../launcher/ContainerLaunch.java | 2 +- .../linux/privileged/PrivilegedOperation.java | 6 +- .../privileged/PrivilegedOperationExecutor.java | 10 +- .../runtime/DefaultLinuxContainerRuntime.java | 26 +- .../DelegatingLinuxContainerRuntime.java | 16 + .../runtime/DockerLinuxContainerRuntime.java | 189 +- .../linux/runtime/LinuxContainerRuntime.java | 10 +- .../runtime/docker/DockerInspectCommand.java | 10 + .../linux/runtime/docker/DockerRunCommand.java | 7 +- .../localizer/ContainerLocalizer.java | 13 +- .../localizer/ResourceLocalizationService.java | 19 +- .../monitor/ContainersMonitorImpl.java | 23 +- .../queuing/QueuingContainerManagerImpl.java | 3 +- .../runtime/ContainerRuntime.java | 46 +- .../recovery/NMLeveldbStateStoreService.java | 41 +- .../recovery/NMNullStateStoreService.java | 4 +- .../recovery/NMStateStoreService.java | 13 +- .../scheduler/DistributedScheduler.java | 264 +- .../OpportunisticContainerAllocator.java | 189 - .../impl/container-executor.c | 78 +- .../impl/container-executor.h | 20 +- .../main/native/container-executor/impl/main.c | 40 +- .../test/test-container-executor.c | 199 + .../nodemanager/DummyContainerManager.java | 8 + .../nodemanager/TestNodeManagerResync.java | 2 +- .../nodemanager/TestNodeStatusUpdater.java | 24 +- .../amrmproxy/BaseAMRMProxyTest.java | 2 +- .../amrmproxy/MockResourceManagerFacade.java | 4 +- .../BaseContainerManagerTest.java | 2 +- .../launcher/TestContainerLaunch.java | 12 +- .../runtime/TestDockerContainerRuntime.java | 20 +- .../docker/TestDockerInspectCommand.java | 9 + .../recovery/NMMemoryStateStoreService.java | 7 +- .../TestNMLeveldbStateStoreService.java | 7 +- .../scheduler/TestDistributedScheduler.java | 10 +- .../nodemanager/webapp/MockContainer.java | 8 +- .../nodemanager/webapp/TestNMWebServer.java | 6 +- .../server/resourcemanager/AdminService.java | 121 +- .../ApplicationMasterService.java | 54 +- .../server/resourcemanager/ClientRMService.java | 22 +- .../DecommissioningNodesWatcher.java | 439 + .../DistributedSchedulingAMService.java | 361 - .../resourcemanager/NodesListManager.java | 166 +- ...pportunisticContainerAllocatorAMService.java | 367 + .../server/resourcemanager/RMAppManager.java | 9 +- .../server/resourcemanager/RMAuditLogger.java | 40 +- .../server/resourcemanager/RMServerUtils.java | 340 +- .../server/resourcemanager/ResourceManager.java | 32 +- .../resourcemanager/ResourceTrackerService.java | 19 + .../resourcemanager/amlauncher/AMLauncher.java | 26 +- .../reservation/ReservationInputValidator.java | 14 + .../server/resourcemanager/rmapp/RMAppImpl.java | 42 +- .../rmapp/RMAppKillByClientEvent.java | 67 + .../rmapp/attempt/RMAppAttemptImpl.java | 47 +- .../server/resourcemanager/rmnode/RMNode.java | 6 + .../rmnode/RMNodeDecommissioningEvent.java | 41 + .../resourcemanager/rmnode/RMNodeImpl.java | 67 +- .../scheduler/AbstractYarnScheduler.java | 21 +- .../scheduler/SchedContainerChangeRequest.java | 2 +- .../scheduler/SchedulerApplicationAttempt.java | 12 +- .../scheduler/SchedulerRequestKey.java | 41 +- .../scheduler/YarnScheduler.java | 6 +- .../scheduler/activities/ActivitiesLogger.java | 275 + .../scheduler/activities/ActivitiesManager.java | 319 + .../activities/ActivityDiagnosticConstant.java | 77 + .../scheduler/activities/ActivityNode.java | 110 + .../scheduler/activities/ActivityState.java | 37 + .../activities/AllocationActivity.java | 74 + .../scheduler/activities/AllocationState.java | 35 + .../scheduler/activities/AppAllocation.java | 107 + .../scheduler/activities/NodeAllocation.java | 139 + .../scheduler/capacity/AbstractCSQueue.java | 6 +- .../scheduler/capacity/CapacityScheduler.java | 75 +- .../capacity/CapacitySchedulerContext.java | 3 + .../scheduler/capacity/LeafQueue.java | 275 +- .../scheduler/capacity/ParentQueue.java | 91 +- .../allocator/AbstractContainerAllocator.java | 51 +- .../capacity/allocator/ContainerAllocator.java | 10 +- .../allocator/RegularContainerAllocator.java | 110 +- .../scheduler/common/fica/FiCaSchedulerApp.java | 47 +- .../scheduler/fair/AllocationConfiguration.java | 126 +- .../fair/AllocationFileLoaderService.java | 92 +- .../scheduler/fair/FSAppAttempt.java | 11 +- .../scheduler/fair/FSLeafQueue.java | 17 +- .../scheduler/fair/FSParentQueue.java | 8 +- .../resourcemanager/scheduler/fair/FSQueue.java | 71 +- .../scheduler/fair/FairScheduler.java | 38 +- .../fair/FairSchedulerConfiguration.java | 4 +- .../scheduler/fair/MaxRunningAppsEnforcer.java | 11 +- .../scheduler/fair/QueueManager.java | 187 +- .../scheduler/fifo/FifoScheduler.java | 13 +- .../security/RMContainerTokenSecretManager.java | 64 +- .../resourcemanager/webapp/RMWebServices.java | 123 + .../webapp/dao/ActivitiesInfo.java | 80 + .../webapp/dao/ActivityNodeInfo.java | 67 + .../webapp/dao/AppActivitiesInfo.java | 79 + .../webapp/dao/AppAllocationInfo.java | 72 + .../webapp/dao/ClusterMetricsInfo.java | 2 +- .../webapp/dao/FairSchedulerQueueInfo.java | 2 +- .../webapp/dao/NodeAllocationInfo.java | 51 + .../dao/PartitionQueueCapacitiesInfo.java | 4 +- .../webapp/dao/QueueCapacitiesInfo.java | 4 +- .../yarn/server/resourcemanager/MockAM.java | 32 +- .../yarn/server/resourcemanager/MockNodes.java | 5 + .../yarn/server/resourcemanager/MockRM.java | 18 +- .../server/resourcemanager/NodeManager.java | 8 + .../resourcemanager/TestAMAuthorization.java | 8 + .../server/resourcemanager/TestAppManager.java | 43 + .../resourcemanager/TestApplicationCleanup.java | 9 +- .../TestApplicationMasterLauncher.java | 8 + .../TestApplicationMasterService.java | 86 +- .../TestDecommissioningNodesWatcher.java | 131 + .../TestDistributedSchedulingAMService.java | 269 - .../TestNodeBlacklistingOnAMFailures.java | 16 + ...pportunisticContainerAllocatorAMService.java | 271 + .../resourcemanager/TestRMAuditLogger.java | 63 +- .../resourcemanager/TestRMNodeTransitions.java | 40 +- .../server/resourcemanager/TestRMRestart.java | 2 +- .../TestResourceTrackerService.java | 209 +- .../TestSubmitApplicationWithRMHA.java | 4 +- .../TestReservationInputValidator.java | 61 + .../resourcetracker/TestNMReconnect.java | 2 - .../rmapp/TestRMAppTransitions.java | 90 +- .../scheduler/TestAppSchedulingInfo.java | 37 +- .../TestSchedulingWithAllocationRequestId.java | 274 + .../capacity/TestCapacityScheduler.java | 51 +- .../TestCapacitySchedulerNodeLabelUpdate.java | 116 +- .../capacity/TestContainerAllocation.java | 13 +- .../capacity/TestContainerResizing.java | 134 +- .../capacity/TestIncreaseAllocationExpirer.java | 76 +- .../scheduler/capacity/TestLeafQueue.java | 285 +- .../TestNodeLabelContainerAllocation.java | 9 + .../scheduler/capacity/TestUtils.java | 32 +- .../scheduler/fair/FairSchedulerTestBase.java | 4 +- .../fair/TestAllocationFileLoaderService.java | 43 +- .../scheduler/fair/TestAppRunnability.java | 6 +- .../fair/TestContinuousScheduling.java | 4 +- .../scheduler/fair/TestFSLeafQueue.java | 10 +- .../scheduler/fair/TestFairScheduler.java | 269 +- .../fair/TestFairSchedulerPreemption.java | 2 +- .../fair/TestMaxRunningAppsEnforcer.java | 20 +- .../scheduler/fair/TestQueueManager.java | 165 +- .../webapp/TestRMWebServicesCapacitySched.java | 6 +- .../TestRMWebServicesSchedulerActivities.java | 777 + .../server/TestContainerManagerSecurity.java | 18 +- .../TestMiniYarnClusterNodeUtilization.java | 2 - .../src/test/proto/test_token.proto | 1 + .../src/site/markdown/FairScheduler.md | 3 + .../src/site/markdown/YarnCommands.md | 2 +- 719 files changed, 165618 insertions(+), 12402 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/8b68b11b/.gitignore ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/8b68b11b/hadoop-project/pom.xml ---------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
