Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 3385D200B2F for ; Sun, 19 Jun 2016 02:32:54 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 3211B160A50; Sun, 19 Jun 2016 00:32:54 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 55459160A65 for ; Sun, 19 Jun 2016 02:32:53 +0200 (CEST) Received: (qmail 61013 invoked by uid 500); 19 Jun 2016 00:32:43 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 58030 invoked by uid 99); 19 Jun 2016 00:32:41 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 19 Jun 2016 00:32:41 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 20EA8ED31C; Sun, 19 Jun 2016 00:32:41 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: aengineer@apache.org To: common-commits@hadoop.apache.org Date: Sun, 19 Jun 2016 00:33:17 -0000 Message-Id: <12c145c1cbfd4c71b6b873f3e31c1dde@git.apache.org> In-Reply-To: <2f5613f211364455865b26f7436a298c@git.apache.org> References: <2f5613f211364455865b26f7436a298c@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [38/39] hadoop git commit: HDFS-10437. ReconfigurationProtocol not covered by HDFSPolicyProvider. (Arpit Agarwal) archived-at: Sun, 19 Jun 2016 00:32:54 -0000 HDFS-10437. ReconfigurationProtocol not covered by HDFSPolicyProvider. (Arpit Agarwal) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0319d73c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0319d73c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0319d73c Branch: refs/heads/HDFS-1312 Commit: 0319d73c3b14c09da0f28371dc857b2cc5f6ec7a Parents: 5f6bc65 Author: Arpit Agarwal Authored: Sat Jun 18 16:16:54 2016 -0700 Committer: Arpit Agarwal Committed: Sat Jun 18 16:16:54 2016 -0700 ---------------------------------------------------------------------- .../hadoop/fs/CommonConfigurationKeys.java | 3 ++ .../apache/hadoop/hdfs/HDFSPolicyProvider.java | 6 +++- .../hadoop/hdfs/TestHDFSPolicyProvider.java | 31 +++++++++----------- 3 files changed, 22 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/0319d73c/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeys.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeys.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeys.java index 06614db..e455201 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeys.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeys.java @@ -207,6 +207,9 @@ public class CommonConfigurationKeys extends CommonConfigurationKeysPublic { public static final String HADOOP_SECURITY_SERVICE_AUTHORIZATION_DATANODE_LIFELINE = "security.datanode.lifeline.protocol.acl"; + public static final String + HADOOP_SECURITY_SERVICE_AUTHORIZATION_RECONFIGURATION = + "security.reconfiguration.protocol.acl"; public static final String SECURITY_HA_SERVICE_PROTOCOL_ACL = "security.ha.service.protocol.acl"; public static final String http://git-wip-us.apache.org/repos/asf/hadoop/blob/0319d73c/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HDFSPolicyProvider.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HDFSPolicyProvider.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HDFSPolicyProvider.java index 8c20553..edc72c5 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HDFSPolicyProvider.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HDFSPolicyProvider.java @@ -23,6 +23,7 @@ import org.apache.hadoop.ha.HAServiceProtocol; import org.apache.hadoop.ha.ZKFCProtocol; import org.apache.hadoop.hdfs.protocol.ClientDatanodeProtocol; import org.apache.hadoop.hdfs.protocol.ClientProtocol; +import org.apache.hadoop.hdfs.protocol.ReconfigurationProtocol; import org.apache.hadoop.hdfs.qjournal.protocol.QJournalProtocol; import org.apache.hadoop.hdfs.server.protocol.DatanodeLifelineProtocol; import org.apache.hadoop.hdfs.server.protocol.DatanodeProtocol; @@ -80,7 +81,10 @@ public class HDFSPolicyProvider extends PolicyProvider { TraceAdminProtocol.class), new Service( CommonConfigurationKeys.HADOOP_SECURITY_SERVICE_AUTHORIZATION_DATANODE_LIFELINE, - DatanodeLifelineProtocol.class) + DatanodeLifelineProtocol.class), + new Service( + CommonConfigurationKeys.HADOOP_SECURITY_SERVICE_AUTHORIZATION_RECONFIGURATION, + ReconfigurationProtocol.class) }; @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/0319d73c/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestHDFSPolicyProvider.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestHDFSPolicyProvider.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestHDFSPolicyProvider.java index 95aa89f..e242690 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestHDFSPolicyProvider.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestHDFSPolicyProvider.java @@ -23,10 +23,12 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import com.google.common.collect.Sets; import org.apache.commons.lang.ClassUtils; -import org.apache.hadoop.hdfs.protocol.ReconfigurationProtocol; import org.apache.hadoop.hdfs.qjournal.server.JournalNodeRpcServer; import org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer; import org.apache.hadoop.hdfs.server.datanode.DataNode; @@ -57,7 +59,7 @@ public class TestHDFSPolicyProvider { private static final Logger LOG = LoggerFactory.getLogger(TestHDFSPolicyProvider.class); - private static List> policyProviderProtocols; + private static Set> policyProviderProtocols; private static final Comparator> CLASS_NAME_COMPARATOR = new Comparator>() { @@ -75,11 +77,10 @@ public class TestHDFSPolicyProvider { @BeforeClass public static void initialize() { Service[] services = new HDFSPolicyProvider().getServices(); - policyProviderProtocols = new ArrayList<>(services.length); + policyProviderProtocols = new HashSet<>(services.length); for (Service service : services) { policyProviderProtocols.add(service.getProtocol()); } - Collections.sort(policyProviderProtocols, CLASS_NAME_COMPARATOR); } public TestHDFSPolicyProvider(Class rpcServerClass) { @@ -98,29 +99,25 @@ public class TestHDFSPolicyProvider { @Test public void testPolicyProviderForServer() { List ifaces = ClassUtils.getAllInterfaces(rpcServerClass); - List> serverProtocols = new ArrayList<>(ifaces.size()); + Set> serverProtocols = new HashSet<>(ifaces.size()); for (Object obj : ifaces) { Class iface = (Class)obj; - // ReconfigurationProtocol is not covered in HDFSPolicyProvider - // currently, so we have a special case to skip it. This needs follow-up - // investigation. - if (iface.getSimpleName().endsWith("Protocol") && - iface != ReconfigurationProtocol.class) { + if (iface.getSimpleName().endsWith("Protocol")) { serverProtocols.add(iface); } } - Collections.sort(serverProtocols, CLASS_NAME_COMPARATOR); LOG.info("Running test {} for RPC server {}. Found server protocols {} " + "and policy provider protocols {}.", testName.getMethodName(), rpcServerClass.getName(), serverProtocols, policyProviderProtocols); assertFalse("Expected to find at least one protocol in server.", serverProtocols.isEmpty()); + final Set> differenceSet = + Sets.difference(serverProtocols, policyProviderProtocols); assertTrue( - String.format("Expected all protocols for server %s to be defined in " - + "%s. Server contains protocols %s. Policy provider contains " - + "protocols %s.", rpcServerClass.getName(), - HDFSPolicyProvider.class.getName(), serverProtocols, - policyProviderProtocols), - policyProviderProtocols.containsAll(serverProtocols)); + String.format("Following protocols for server %s are not defined in " + + "%s: %s", + rpcServerClass.getName(), HDFSPolicyProvider.class.getName(), + Arrays.toString(differenceSet.toArray())), + differenceSet.isEmpty()); } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org For additional commands, e-mail: common-commits-help@hadoop.apache.org