Repository: incubator-hawq Updated Branches: refs/heads/master bacfb0f1c -> 999a749bb
HAWQ-1374. Use variable service name for RPS (this closes #1160) Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/999a749b Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/999a749b Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/999a749b Branch: refs/heads/master Commit: 999a749bbceabdd177271605c0ed45f90b9854a7 Parents: bacfb0f Author: Alexander Denissov <[email protected]> Authored: Fri Mar 3 14:56:31 2017 -0800 Committer: Alexander Denissov <[email protected]> Committed: Mon Mar 6 14:07:27 2017 -0800 ---------------------------------------------------------------------- ranger-plugin/conf/ranger-hawq-security.xml | 2 +- .../authorization/RangerHawqAuthorizer.java | 10 ++--- .../apache/hawq/ranger/authorization/Utils.java | 19 +++++----- .../RangerHawqAuthorizerAppIdTest.java | 39 -------------------- .../RangerHawqAuthorizerServiceNameTest.java | 36 ++++++++++++++++++ .../hawq/ranger/authorization/UtilsTest.java | 16 ++++---- .../src/test/resources/ranger-hawq-security.xml | 2 +- 7 files changed, 61 insertions(+), 63 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/999a749b/ranger-plugin/conf/ranger-hawq-security.xml ---------------------------------------------------------------------- diff --git a/ranger-plugin/conf/ranger-hawq-security.xml b/ranger-plugin/conf/ranger-hawq-security.xml index 0cdc160..9bcf1b0 100644 --- a/ranger-plugin/conf/ranger-hawq-security.xml +++ b/ranger-plugin/conf/ranger-hawq-security.xml @@ -21,7 +21,7 @@ <configuration xmlns:xi="http://www.w3.org/2001/XInclude"> <property> <name>ranger.plugin.hawq.service.name</name> - <value>hawq</value> + <value>${ranger.hawq.instance}</value> <description> Name of the Ranger service containing policies for this HAWQ instance </description> http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/999a749b/ranger-plugin/service/src/main/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizer.java ---------------------------------------------------------------------- diff --git a/ranger-plugin/service/src/main/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizer.java b/ranger-plugin/service/src/main/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizer.java index 0458bae..6fa67ab 100644 --- a/ranger-plugin/service/src/main/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizer.java +++ b/ranger-plugin/service/src/main/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizer.java @@ -30,7 +30,6 @@ import org.apache.hawq.ranger.authorization.model.HawqPrivilege; import org.apache.hawq.ranger.authorization.model.HawqResource; import org.apache.hawq.ranger.authorization.model.ResourceAccess; import org.apache.ranger.plugin.audit.RangerDefaultAuditHandler; -import org.apache.ranger.plugin.policyengine.RangerAccessRequest; import org.apache.ranger.plugin.policyengine.RangerAccessRequestImpl; import org.apache.ranger.plugin.policyengine.RangerAccessResource; import org.apache.ranger.plugin.policyengine.RangerAccessResourceImpl; @@ -39,6 +38,7 @@ import org.apache.ranger.plugin.service.RangerBasePlugin; import java.util.*; +import static org.apache.hawq.ranger.authorization.Utils.APPID; import static org.apache.hawq.ranger.authorization.Utils.HAWQ; /** @@ -67,13 +67,13 @@ public class RangerHawqAuthorizer implements HawqAuthorizer { LOG.info("********** Initializing RangerHawqAuthorizer **********"); - String appId = Utils.getAppId(); + String instance = Utils.getInstanceName(); - LOG.info(String.format("Initializing RangerBasePlugin for service %s:%s", HAWQ, appId)); - rangerPlugin = new RangerBasePlugin(HAWQ, appId); + LOG.info(String.format("Initializing RangerBasePlugin for service %s:%s:%s", HAWQ, instance, APPID)); + rangerPlugin = new RangerBasePlugin(HAWQ, APPID); rangerPlugin.setResultProcessor(new RangerDefaultAuditHandler()); rangerPlugin.init(); - LOG.info(String.format("********** Initialized RangerBasePlugin for service %s:%s **********", HAWQ, appId)); + LOG.info(String.format("********** Initialized RangerBasePlugin for service %s:%s:%s **********", HAWQ, instance, APPID)); } @Override http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/999a749b/ranger-plugin/service/src/main/java/org/apache/hawq/ranger/authorization/Utils.java ---------------------------------------------------------------------- diff --git a/ranger-plugin/service/src/main/java/org/apache/hawq/ranger/authorization/Utils.java b/ranger-plugin/service/src/main/java/org/apache/hawq/ranger/authorization/Utils.java index 5f99b9d..a3579a9 100644 --- a/ranger-plugin/service/src/main/java/org/apache/hawq/ranger/authorization/Utils.java +++ b/ranger-plugin/service/src/main/java/org/apache/hawq/ranger/authorization/Utils.java @@ -32,26 +32,27 @@ import java.util.Properties; public abstract class Utils { public static final String HAWQ = "hawq"; + public static final String APPID = "rps"; public static final String UNKNOWN = "unknown"; - public static final String APP_ID_PROPERTY_ENV = "ranger.hawq.instance"; - public static final String APP_ID_PROPERTY_FILE = "RANGER_HAWQ_INSTANCE"; - public static final String VERSION_PROPERTY_ENV = "version"; - public static final String VERSION_PROPERTY_FILE = "RPS_VERSION"; + public static final String INSTANCE_PROPERTY_KEY_ENV = "ranger.hawq.instance"; + public static final String INSTANCE_PROPERTY_KEY_FILE = "RANGER_HAWQ_INSTANCE"; + public static final String VERSION_PROPERTY_KEY_ENV = "version"; + public static final String VERSION_PROPERTY_KEY_FILE = "RPS_VERSION"; public static final String RANGER_SERVICE_PROPERTY_FILE = "rps.properties"; private static final Log LOG = LogFactory.getLog(Utils.class); private static final Properties properties = readPropertiesFromFile(); /** - * Retrieves the app id from the environment variable with the key ranger.hawq.instance + * Retrieves the instance name from the environment variable with the key ranger.hawq.instance * or from the rps.properties file with the key RANGER_HAWQ_INSTANCE * * If none exist, hawq is used as the default * - * @return String id of the app + * @return instance name */ - public static String getAppId() { - return System.getProperty(APP_ID_PROPERTY_ENV, properties.getProperty(APP_ID_PROPERTY_FILE, HAWQ)); + public static String getInstanceName() { + return System.getProperty(INSTANCE_PROPERTY_KEY_ENV, properties.getProperty(INSTANCE_PROPERTY_KEY_FILE, HAWQ)); } /** @@ -63,7 +64,7 @@ public abstract class Utils { * @return version of the service */ public static String getVersion() { - return System.getProperty(VERSION_PROPERTY_ENV, properties.getProperty(VERSION_PROPERTY_FILE, UNKNOWN)); + return System.getProperty(VERSION_PROPERTY_KEY_ENV, properties.getProperty(VERSION_PROPERTY_KEY_FILE, UNKNOWN)); } /** http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/999a749b/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizerAppIdTest.java ---------------------------------------------------------------------- diff --git a/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizerAppIdTest.java b/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizerAppIdTest.java deleted file mode 100644 index 461864e..0000000 --- a/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizerAppIdTest.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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.hawq.ranger.authorization; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.when; - -@RunWith(PowerMockRunner.class) -@PrepareForTest(Utils.class) -public class RangerHawqAuthorizerAppIdTest { - - @Test - public void testAppIdIsSet() { - PowerMockito.mockStatic(Utils.class); - when(Utils.getAppId()).thenReturn("foo"); - assertEquals("foo", RangerHawqAuthorizer.getInstance().getRangerPlugin().getAppId()); - } -} http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/999a749b/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizerServiceNameTest.java ---------------------------------------------------------------------- diff --git a/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizerServiceNameTest.java b/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizerServiceNameTest.java new file mode 100644 index 0000000..4aa5a7a --- /dev/null +++ b/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/RangerHawqAuthorizerServiceNameTest.java @@ -0,0 +1,36 @@ +/* + * 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.hawq.ranger.authorization; + +import org.apache.ranger.plugin.service.RangerBasePlugin; +import org.junit.Test; + +import static org.apache.hawq.ranger.authorization.Utils.INSTANCE_PROPERTY_KEY_ENV; +import static org.junit.Assert.assertEquals; +public class RangerHawqAuthorizerServiceNameTest { + + @Test + public void testServiceNameIsSet() { + System.setProperty(INSTANCE_PROPERTY_KEY_ENV, "instance"); + assertEquals("instance", Utils.getInstanceName()); + RangerBasePlugin plugin = RangerHawqAuthorizer.getInstance().getRangerPlugin(); + assertEquals("instance", plugin.getServiceName()); + assertEquals("hawq", plugin.getServiceType()); + assertEquals("rps", plugin.getAppId()); + } +} http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/999a749b/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/UtilsTest.java ---------------------------------------------------------------------- diff --git a/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/UtilsTest.java b/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/UtilsTest.java index 5b94df0..3c99719 100644 --- a/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/UtilsTest.java +++ b/ranger-plugin/service/src/test/java/org/apache/hawq/ranger/authorization/UtilsTest.java @@ -21,8 +21,8 @@ package org.apache.hawq.ranger.authorization; import org.junit.Test; -import static org.apache.hawq.ranger.authorization.Utils.APP_ID_PROPERTY_ENV; -import static org.apache.hawq.ranger.authorization.Utils.VERSION_PROPERTY_ENV; +import static org.apache.hawq.ranger.authorization.Utils.INSTANCE_PROPERTY_KEY_ENV; +import static org.apache.hawq.ranger.authorization.Utils.VERSION_PROPERTY_KEY_ENV; import static org.junit.Assert.assertEquals; /** @@ -32,21 +32,21 @@ public class UtilsTest { @Test public void testAppId_SystemEnv() throws Exception { - System.setProperty(APP_ID_PROPERTY_ENV, "app-id"); - assertEquals("app-id", Utils.getAppId()); - System.clearProperty(APP_ID_PROPERTY_ENV); + System.setProperty(INSTANCE_PROPERTY_KEY_ENV, "instance"); + assertEquals("instance", Utils.getInstanceName()); + System.clearProperty(INSTANCE_PROPERTY_KEY_ENV); } @Test public void testAppId_PropertyFile() throws Exception { - assertEquals("instance-test", Utils.getAppId()); + assertEquals("instance-test", Utils.getInstanceName()); } @Test public void testGetVersion_SystemEnv() throws Exception { - System.setProperty(VERSION_PROPERTY_ENV, "1.2.3"); + System.setProperty(VERSION_PROPERTY_KEY_ENV, "1.2.3"); assertEquals("1.2.3", Utils.getVersion()); - System.clearProperty(VERSION_PROPERTY_ENV); + System.clearProperty(VERSION_PROPERTY_KEY_ENV); } @Test http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/999a749b/ranger-plugin/service/src/test/resources/ranger-hawq-security.xml ---------------------------------------------------------------------- diff --git a/ranger-plugin/service/src/test/resources/ranger-hawq-security.xml b/ranger-plugin/service/src/test/resources/ranger-hawq-security.xml index 6141df7..110647c 100644 --- a/ranger-plugin/service/src/test/resources/ranger-hawq-security.xml +++ b/ranger-plugin/service/src/test/resources/ranger-hawq-security.xml @@ -21,7 +21,7 @@ <configuration xmlns:xi="http://www.w3.org/2001/XInclude"> <property> <name>ranger.plugin.hawq.service.name</name> - <value>hawq</value> + <value>${ranger.hawq.instance}</value> <description> Name of the Ranger service containing policies for this HAWQ instance </description>
