You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ds...@apache.org on 2015/08/21 16:41:20 UTC
ambari git commit: AMBARI-12808 Ambari should not reset UIDs for
existing users in a cluster (dsen)
Repository: ambari
Updated Branches:
refs/heads/trunk c30cca0b9 -> 485bd8af0
AMBARI-12808 Ambari should not reset UIDs for existing users in a cluster (dsen)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/485bd8af
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/485bd8af
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/485bd8af
Branch: refs/heads/trunk
Commit: 485bd8af0dbbe206b130f1736110bee6827b60f1
Parents: c30cca0
Author: Dmytro Sen <ds...@apache.org>
Authored: Fri Aug 21 17:41:12 2015 +0300
Committer: Dmytro Sen <ds...@apache.org>
Committed: Fri Aug 21 17:41:12 2015 +0300
----------------------------------------------------------------------
.../server/upgrade/UpgradeCatalog212.java | 30 +++++++++++
.../0.96.0.2.0/configuration/hbase-env.xml | 6 ---
.../HDP/2.0.6/configuration/cluster-env.xml | 8 +++
.../2.0.6/hooks/before-ANY/scripts/params.py | 2 +-
.../before-ANY/scripts/shared_initialization.py | 9 ++--
.../server/upgrade/UpgradeCatalog212Test.java | 52 ++++++++++++++++++++
.../python/stacks/2.0.6/configs/default.json | 6 +--
ambari-web/app/data/HDP2/site_properties.js | 4 +-
ambari-web/app/utils/config.js | 4 +-
9 files changed, 104 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/485bd8af/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog212.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog212.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog212.java
index 6f20423..51ea8f7 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog212.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog212.java
@@ -121,6 +121,36 @@ public class UpgradeCatalog212 extends AbstractUpgradeCatalog {
protected void addMissingConfigs() throws AmbariException {
updateHiveConfigs();
+ updateHbaseAndClusterConfigurations();
+ }
+
+ protected void updateHbaseAndClusterConfigurations() throws AmbariException {
+ AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class);
+ Clusters clusters = ambariManagementController.getClusters();
+
+ if (clusters != null) {
+ Map<String, Cluster> clusterMap = clusters.getClusters();
+
+ if ((clusterMap != null) && !clusterMap.isEmpty()) {
+ // Iterate through the clusters and perform any configuration updates
+ for (final Cluster cluster : clusterMap.values()) {
+ Config config = cluster.getDesiredConfigByType("hbase-env");
+
+ if (config != null) {
+ // Remove override_hbase_uid from hbase-env and add override_uid to cluster-env
+ String value = config.getProperties().get("override_hbase_uid");
+ if (value != null) {
+ Map<String, String> updates = new HashMap<String, String>();
+ Set<String> removes = new HashSet<String>();
+ updates.put("override_uid", value);
+ removes.add("override_hbase_uid");
+ updateConfigurationPropertiesForCluster(cluster, "hbase-env", new HashMap<String, String>(), removes, false, true);
+ updateConfigurationPropertiesForCluster(cluster, "cluster-env", updates, true, false);
+ }
+ }
+ }
+ }
+ }
}
protected void updateHiveConfigs() throws AmbariException {
http://git-wip-us.apache.org/repos/asf/ambari/blob/485bd8af/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/configuration/hbase-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/configuration/hbase-env.xml b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/configuration/hbase-env.xml
index 403df33..03db5df 100644
--- a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/configuration/hbase-env.xml
+++ b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/configuration/hbase-env.xml
@@ -152,11 +152,5 @@ export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xmn{{regionserver_xmn_
</value>
</property>
- <property>
- <name>override_hbase_uid</name>
- <value>true</value>
- <property-type>ADDITIONAL_USER_PROPERTY</property-type>
- <description>Have Ambari manage UIDs</description>
- </property>
</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/485bd8af/ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml b/ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml
index 41140ab..47dffec 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml
@@ -70,4 +70,12 @@ gpgcheck=0</value>
<value>{{package_type}} {{base_url}} {{components}}</value>
<description>Template of repositories for ubuntu.</description>
</property>
+
+ <property>
+ <name>override_uid</name>
+ <value>true</value>
+ <property-type>ADDITIONAL_USER_PROPERTY</property-type>
+ <description>Have Ambari manage UIDs</description>
+ </property>
+
</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/485bd8af/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py
index 2667e3b..8abd72b 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py
@@ -215,4 +215,4 @@ group_list = json.loads(config['hostLevelParams']['group_list'])
host_sys_prepped = default("/hostLevelParams/host_sys_prepped", False)
tez_am_view_acls = config['configurations']['tez-site']["tez.am.view-acls"]
-override_hbase_uid = config['configurations']['hbase-env']["override_hbase_uid"]
+override_uid = str(default("/configurations/cluster-env/override_uid", "true")).lower()
http://git-wip-us.apache.org/repos/asf/ambari/blob/485bd8af/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py
index 6c90aa4..9c4352a 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py
@@ -43,7 +43,10 @@ def setup_users():
ignore_failures = params.ignore_groupsusers_create
)
- set_uid(params.smoke_user, params.smoke_user_dirs)
+ if params.override_uid == "true":
+ set_uid(params.smoke_user, params.smoke_user_dirs)
+ else:
+ print 'Skipping setting uid for smoke user as host is sys prepped'
else:
print 'Skipping creation of User and Group as host is sys prepped'
pass
@@ -56,7 +59,7 @@ def setup_users():
recursive = True,
cd_access="a",
)
- if not params.host_sys_prepped and params.override_hbase_uid:
+ if not params.host_sys_prepped and params.override_uid == "true":
set_uid(params.hbase_user, params.hbase_user_dirs)
else:
print 'Skipping setting uid for hbase user as host is sys prepped'
@@ -208,4 +211,4 @@ def setup_java():
)
Execute(("chown","-R", getpass.getuser(), params.java_home),
sudo = True,
- )
\ No newline at end of file
+ )
http://git-wip-us.apache.org/repos/asf/ambari/blob/485bd8af/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog212Test.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog212Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog212Test.java
index fae8985..fa469e4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog212Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog212Test.java
@@ -155,6 +155,58 @@ public class UpgradeCatalog212Test {
}
@Test
+ public void testUpdateHBaseAdnClusterConfigs() throws Exception {
+ EasyMockSupport easyMockSupport = new EasyMockSupport();
+ final AmbariManagementController mockAmbariManagementController = easyMockSupport.createNiceMock(AmbariManagementController.class);
+ final ConfigHelper mockConfigHelper = easyMockSupport.createMock(ConfigHelper.class);
+
+ final Clusters mockClusters = easyMockSupport.createStrictMock(Clusters.class);
+ final Cluster mockClusterExpected = easyMockSupport.createNiceMock(Cluster.class);
+
+ final Map<String, String> propertiesHbaseEnv = new HashMap<String, String>() {
+ {
+ put("override_hbase_uid", "false");
+ }
+ };
+
+ final Config mockHbaseEnv = easyMockSupport.createNiceMock(Config.class);
+ expect(mockHbaseEnv.getProperties()).andReturn(propertiesHbaseEnv).once();
+
+ final Config mockClusterEnv = easyMockSupport.createNiceMock(Config.class);
+
+ final Map<String, String> propertiesExpectedHbaseEnv = new HashMap<String, String>();
+ final Map<String, String> propertiesExpectedClusterEnv = new HashMap<String, String>() {{
+ put("override_uid", "false");
+ }};
+
+ final Injector mockInjector = Guice.createInjector(new AbstractModule() {
+ @Override
+ protected void configure() {
+ bind(AmbariManagementController.class).toInstance(mockAmbariManagementController);
+ bind(ConfigHelper.class).toInstance(mockConfigHelper);
+ bind(Clusters.class).toInstance(mockClusters);
+
+ bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
+ bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
+ }
+ });
+
+ expect(mockAmbariManagementController.getClusters()).andReturn(mockClusters).once();
+ expect(mockClusters.getClusters()).andReturn(new HashMap<String, Cluster>() {{
+ put("normal", mockClusterExpected);
+ }}).once();
+
+ expect(mockClusterExpected.getDesiredConfigByType("cluster-env")).andReturn(mockClusterEnv).atLeastOnce();
+ expect(mockClusterExpected.getDesiredConfigByType("hbase-env")).andReturn(mockHbaseEnv).atLeastOnce();
+ expect(mockClusterEnv.getProperties()).andReturn(propertiesExpectedClusterEnv).atLeastOnce();
+ expect(mockHbaseEnv.getProperties()).andReturn(propertiesExpectedHbaseEnv).atLeastOnce();
+ easyMockSupport.replayAll();
+ mockInjector.getInstance(UpgradeCatalog212.class).updateHbaseAndClusterConfigurations();
+ easyMockSupport.verifyAll();
+
+ }
+
+ @Test
public void testUpdateHiveConfigs() throws Exception {
EasyMockSupport easyMockSupport = new EasyMockSupport();
final AmbariManagementController mockAmbariManagementController = easyMockSupport.createNiceMock(AmbariManagementController.class);
http://git-wip-us.apache.org/repos/asf/ambari/blob/485bd8af/ambari-server/src/test/python/stacks/2.0.6/configs/default.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/configs/default.json b/ambari-server/src/test/python/stacks/2.0.6/configs/default.json
index b45758c..a0da7f0 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/configs/default.json
+++ b/ambari-server/src/test/python/stacks/2.0.6/configs/default.json
@@ -538,7 +538,8 @@
"kerberos_domain": "EXAMPLE.COM",
"user_group": "hadoop",
"repo_suse_rhel_template": "[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0",
- "repo_ubuntu_template": "{{package_type}} {{base_url}} {{components}}"
+ "repo_ubuntu_template": "{{package_type}} {{base_url}} {{components}}",
+ "override_uid" : "true"
},
"hbase-env": {
"hbase_pid_dir": "/var/run/hbase",
@@ -548,8 +549,7 @@
"hbase_regionserver_heapsize": "1024m",
"hbase_regionserver_xmn_max": "512",
"hbase_regionserver_xmn_ratio": "0.2",
- "hbase_log_dir": "/var/log/hbase",
- "override_hbase_uid" : "true"
+ "hbase_log_dir": "/var/log/hbase"
},
"ganglia-env": {
"gmond_user": "nobody",
http://git-wip-us.apache.org/repos/asf/ambari/blob/485bd8af/ambari-web/app/data/HDP2/site_properties.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/HDP2/site_properties.js b/ambari-web/app/data/HDP2/site_properties.js
index 11ea3b7..ed24dbc 100644
--- a/ambari-web/app/data/HDP2/site_properties.js
+++ b/ambari-web/app/data/HDP2/site_properties.js
@@ -4134,13 +4134,13 @@ var hdp2properties = [
},
{
"id": "puppet var",
- "name": "override_hbase_uid",
+ "name": "override_uid",
"displayName": "Have Ambari manage UIDs",
"displayType": "checkbox",
"isReconfigurable": true,
"isOverridable": false,
"isVisible": true,
- "filename": "hbase-env.xml",
+ "filename": "cluster-env.xml",
"category": "Users and Groups"
},
{
http://git-wip-us.apache.org/repos/asf/ambari/blob/485bd8af/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index f1ab4b4..609b068 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -808,9 +808,9 @@ App.config = Em.Object.create({
'zk_user': 'ZooKeeper User',
'metadata_user': 'Atlas User',
'ignore_groupsusers_create': 'Skip group modifications during install',
- 'override_hbase_uid': 'Have Ambari manage UIDs'
+ 'override_uid': 'Have Ambari manage UIDs'
};
- var checkboxProperties = ['ignore_groupsusers_create', 'override_hbase_uid'];
+ var checkboxProperties = ['ignore_groupsusers_create', 'override_uid'];
if (Em.isArray(config.property_type)) {
if (config.property_type.contains('USER') || config.property_type.contains('ADDITIONAL_USER_PROPERTY') || config.property_type.contains('GROUP')) {
propertyData.id = "puppet var";