You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2015/12/13 01:47:18 UTC
ambari git commit: AMBARI-14354: Express Upgrade: Error during
preparing Oozie server step during EU from HDP 2.3.0 to 2.3.4 with
java.net.UnknownHostException: nameservice error (jluniya)
Repository: ambari
Updated Branches:
refs/heads/trunk f15bcc833 -> f578d42dc
AMBARI-14354: Express Upgrade: Error during preparing Oozie server step during EU from HDP 2.3.0 to 2.3.4 with java.net.UnknownHostException: nameservice error (jluniya)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f578d42d
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f578d42d
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f578d42d
Branch: refs/heads/trunk
Commit: f578d42dc99a2fc23285d642a8122d6bd00c3284
Parents: f15bcc8
Author: Jayush Luniya <jl...@hortonworks.com>
Authored: Sat Dec 12 16:47:12 2015 -0800
Committer: Jayush Luniya <jl...@hortonworks.com>
Committed: Sat Dec 12 16:47:12 2015 -0800
----------------------------------------------------------------------
.../server/upgrade/UpgradeCatalog220.java | 26 ++++++++
.../4.0.0.2.0/configuration/oozie-site.xml | 2 +-
.../4.2.0.2.3/configuration/oozie-site.xml | 2 +-
.../server/upgrade/UpgradeCatalog220Test.java | 65 +++++++++++++++++++-
4 files changed, 92 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/f578d42d/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog220.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog220.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog220.java
index ab0b3cd..122cba9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog220.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog220.java
@@ -26,6 +26,9 @@ import java.util.List;
import java.util.Map;
import org.apache.ambari.server.AmbariException;
+import org.apache.ambari.server.controller.AmbariManagementController;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Config;
import org.apache.ambari.server.orm.DBAccessor.DBColumnInfo;
import org.apache.ambari.server.orm.dao.DaoUtils;
import org.apache.ambari.server.orm.dao.PermissionDAO;
@@ -58,6 +61,11 @@ public class UpgradeCatalog220 extends AbstractUpgradeCatalog {
private static final String ROLE_AUTHORIZATION_ID_COL = "authorization_id";
private static final String ROLE_AUTHORIZATION_NAME_COL = "authorization_name";
+ private static final String OOZIE_SITE_CONFIG = "oozie-site";
+ private static final String OOZIE_SERVICE_HADOOP_CONFIGURATIONS_PROPERTY_NAME = "oozie.service.HadoopAccessorService.hadoop.configurations";
+ private static final String OLD_DEFAULT_HADOOP_CONFIG_PATH = "/etc/hadoop/conf";
+ private static final String NEW_DEFAULT_HADOOP_CONFIG_PATH = "{{hadoop_conf_dir}}";
+
@Inject
DaoUtils daoUtils;
@@ -127,6 +135,7 @@ public class UpgradeCatalog220 extends AbstractUpgradeCatalog {
addNewPermissions();
createRoleAuthorizations();
createPermissionRoleAuthorizationMap();
+ updateOozieConfigs();
}
private void addNewPermissions() throws SQLException {
@@ -377,4 +386,21 @@ public class UpgradeCatalog220 extends AbstractUpgradeCatalog {
PermissionEntity.VIEW_USER_PERMISSION_NAME, PermissionEntity.VIEW_USER_PERMISSION));
}
+ protected void updateOozieConfigs() throws AmbariException {
+ AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class);
+ for (final Cluster cluster : getCheckedClusterMap(ambariManagementController.getClusters()).values()) {
+ Config oozieSiteProps = cluster.getDesiredConfigByType(OOZIE_SITE_CONFIG);
+ if (oozieSiteProps != null) {
+ // Update oozie.service.HadoopAccessorService.hadoop.configurations
+ Map<String, String> updateProperties = new HashMap<>();
+ String oozieHadoopConfigProperty = oozieSiteProps.getProperties().get(OOZIE_SERVICE_HADOOP_CONFIGURATIONS_PROPERTY_NAME);
+ if(oozieHadoopConfigProperty != null && oozieHadoopConfigProperty.contains(OLD_DEFAULT_HADOOP_CONFIG_PATH)) {
+ String updatedOozieHadoopConfigProperty = oozieHadoopConfigProperty.replaceAll(
+ OLD_DEFAULT_HADOOP_CONFIG_PATH, NEW_DEFAULT_HADOOP_CONFIG_PATH);
+ updateProperties.put(OOZIE_SERVICE_HADOOP_CONFIGURATIONS_PROPERTY_NAME, updatedOozieHadoopConfigProperty);
+ updateConfigurationPropertiesForCluster(cluster, OOZIE_SITE_CONFIG, updateProperties, true, false);
+ }
+ }
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f578d42d/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/configuration/oozie-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/configuration/oozie-site.xml b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/configuration/oozie-site.xml
index 57cc8a7..5a18875 100644
--- a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/configuration/oozie-site.xml
+++ b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/configuration/oozie-site.xml
@@ -150,7 +150,7 @@
</property>
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
- <value>*=/etc/hadoop/conf</value>
+ <value>*={{hadoop_conf_dir}}</value>
<description>
Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of
the Hadoop service (JobTracker, HDFS). The wildcard '*' configuration is
http://git-wip-us.apache.org/repos/asf/ambari/blob/f578d42d/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.2.3/configuration/oozie-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.2.3/configuration/oozie-site.xml b/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.2.3/configuration/oozie-site.xml
index b25cfcb..079ca25 100644
--- a/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.2.3/configuration/oozie-site.xml
+++ b/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.2.3/configuration/oozie-site.xml
@@ -48,7 +48,7 @@
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
- <value>*=/etc/hadoop/conf</value>
+ <value>*={{hadoop_conf_dir}}</value>
<description>
Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of
the Hadoop service (JobTracker, HDFS). The wildcard '*' configuration is
http://git-wip-us.apache.org/repos/asf/ambari/blob/f578d42d/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog220Test.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog220Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog220Test.java
index 5359101..a2926a1 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog220Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog220Test.java
@@ -22,15 +22,20 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.List;
import org.apache.ambari.server.configuration.Configuration;
+import org.apache.ambari.server.controller.AmbariManagementController;
import org.apache.ambari.server.orm.DBAccessor;
import org.apache.ambari.server.orm.dao.DaoUtils;
import org.apache.ambari.server.orm.dao.PermissionDAO;
import org.apache.ambari.server.orm.dao.ResourceTypeDAO;
import org.apache.ambari.server.orm.entities.PermissionEntity;
import org.apache.ambari.server.orm.entities.ResourceTypeEntity;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Clusters;
+import org.apache.ambari.server.state.Config;
import org.apache.ambari.server.state.stack.OsFamily;
import org.easymock.Capture;
import org.easymock.EasyMock;
@@ -39,6 +44,7 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import com.google.inject.AbstractModule;
import com.google.inject.Binder;
import com.google.inject.Guice;
import com.google.inject.Injector;
@@ -46,12 +52,17 @@ import com.google.inject.Module;
import javax.persistence.EntityManager;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* UpgradeCatalog220 tests.
*/
public class UpgradeCatalog220Test extends EasyMockSupport {
private Injector injector;
+ private AmbariManagementController controller;
@Before
public void setup() {
@@ -156,8 +167,17 @@ public class UpgradeCatalog220Test extends EasyMockSupport {
@Test
public void testExecuteDMLUpdates() throws Exception {
+ Method updateOozieConfigs = UpgradeCatalog220.class.getDeclaredMethod("updateOozieConfigs");
+
final DBAccessor dbAccessor = injector.getInstance(DBAccessor.class);
- UpgradeCatalog220 upgradeCatalog = injector.getInstance(UpgradeCatalog220.class);
+ UpgradeCatalog220 upgradeCatalog = createMockBuilder(UpgradeCatalog220.class)
+ .withConstructor(Injector.class)
+ .withArgs(injector)
+ .addMockedMethod(updateOozieConfigs)
+ .createMock();
+
+ upgradeCatalog.updateOozieConfigs();
+ expectLastCall().once();
final ResourceTypeEntity ambariResourceTypeEntity = createMock(ResourceTypeEntity.class);
expect(ambariResourceTypeEntity.getId()).andReturn(1).anyTimes();
@@ -266,4 +286,47 @@ public class UpgradeCatalog220Test extends EasyMockSupport {
Assert.assertEquals("2.1.3", upgradeCatalog.getSourceVersion());
}
+ @Test
+ public void testUpdateOozieConfigs() throws Exception {
+ EasyMockSupport easyMockSupport = new EasyMockSupport();
+ final AmbariManagementController mockAmbariManagementController = easyMockSupport.createNiceMock(AmbariManagementController.class);
+ final Clusters mockClusters = easyMockSupport.createStrictMock(Clusters.class);
+ final Cluster mockClusterExpected = easyMockSupport.createNiceMock(Cluster.class);
+ expect(mockAmbariManagementController.getClusters()).andReturn(mockClusters).once();
+ expect(mockClusters.getClusters()).andReturn(new HashMap<String, Cluster>() {{
+ put("normal", mockClusterExpected);
+ }}).atLeastOnce();
+ final Config oozieSiteConf = easyMockSupport.createNiceMock(Config.class);
+ final Map<String, String> propertiesOozieSite = new HashMap<String, String>() {{
+ put("oozie.service.HadoopAccessorService.hadoop.configurations", "*=/etc/hadoop/conf");
+ }};
+ expect(mockClusterExpected.getDesiredConfigByType("oozie-site")).andReturn(oozieSiteConf).atLeastOnce();
+ expect(oozieSiteConf.getProperties()).andReturn(propertiesOozieSite).once();
+
+ final Injector mockInjector = Guice.createInjector(new AbstractModule() {
+ @Override
+ protected void configure() {
+ bind(AmbariManagementController.class).toInstance(mockAmbariManagementController);
+ bind(Clusters.class).toInstance(mockClusters);
+ bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
+ bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
+ }
+ });
+
+ UpgradeCatalog220 upgradeCatalog220 = createMockBuilder(UpgradeCatalog220.class)
+ .withConstructor(Injector.class)
+ .withArgs(mockInjector)
+ .addMockedMethod("updateConfigurationPropertiesForCluster", Cluster.class, String.class,
+ Map.class, boolean.class, boolean.class)
+ .createMock();
+ upgradeCatalog220.updateConfigurationPropertiesForCluster(mockClusterExpected, "oozie-site",
+ Collections.singletonMap("oozie.service.HadoopAccessorService.hadoop.configurations", "*={{hadoop_conf_dir}}"),
+ true, false);
+ expectLastCall().once();
+
+ easyMockSupport.replayAll();
+ replay(upgradeCatalog220);
+ upgradeCatalog220.updateOozieConfigs();
+ easyMockSupport.verifyAll();
+ }
}