Repository: ambari Updated Branches: refs/heads/trunk ef9e122df -> 73229f26e
AMBARI-11785. Ambari upgrade to 2.1 hangs.(vbrodetskyi) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/73229f26 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/73229f26 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/73229f26 Branch: refs/heads/trunk Commit: 73229f26e78d1efa859446e3d4efca6b3554d8bc Parents: ef9e122 Author: Vitaly Brodetskyi <[email protected]> Authored: Mon Jun 8 08:04:50 2015 +0300 Committer: Vitaly Brodetskyi <[email protected]> Committed: Mon Jun 8 08:05:20 2015 +0300 ---------------------------------------------------------------------- .../server/upgrade/UpgradeCatalog210.java | 86 +++++++++----------- 1 file changed, 38 insertions(+), 48 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/73229f26/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java index cd842fe..9b51d2d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java @@ -18,24 +18,12 @@ package org.apache.ambari.server.upgrade; -import java.net.URI; -import java.net.URISyntaxException; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.persistence.EntityManager; -import javax.persistence.Query; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaDelete; -import javax.persistence.criteria.Root; - +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.google.inject.Inject; +import com.google.inject.Injector; +import com.google.inject.persist.Transactional; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.api.services.AmbariMetaInfo; import org.apache.ambari.server.configuration.Configuration; @@ -55,10 +43,7 @@ import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.Service; import org.apache.ambari.server.state.StackId; -import org.apache.ambari.server.state.alert.AlertDefinition; import org.apache.ambari.server.state.alert.AlertDefinitionFactory; -import org.apache.ambari.server.state.alert.PortSource; -import org.apache.ambari.server.state.alert.WebSource; import org.apache.ambari.server.state.stack.OsFamily; import org.apache.ambari.server.utils.VersionUtils; import org.apache.commons.lang.StringUtils; @@ -66,12 +51,22 @@ import org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.google.inject.Inject; -import com.google.inject.Injector; -import com.google.inject.persist.Transactional; +import javax.persistence.EntityManager; +import javax.persistence.Query; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaDelete; +import javax.persistence.criteria.Root; +import java.net.URI; +import java.net.URISyntaxException; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; /** @@ -1043,34 +1038,29 @@ public class UpgradeCatalog210 extends AbstractUpgradeCatalog { cluster.getClusterId(), "hdfs_zookeeper_failover_controller_process"); if (zkFailoverDefinitionEntity != null) { - AlertDefinition zkfcAlertDefinition = alertDefinitionFactory.coerce(zkFailoverDefinitionEntity); - PortSource portSource = (PortSource) zkfcAlertDefinition.getSource(); - portSource.setPort(8019); - portSource.setUri("{{hdfs-site/dfs.ha.zkfc.port}}"); - - // merge the definition back into the entity - zkFailoverDefinitionEntity = alertDefinitionFactory.merge(zkfcAlertDefinition, - zkFailoverDefinitionEntity); + String source = zkFailoverDefinitionEntity.getSource(); + JsonObject rootJson = new JsonParser().parse(source).getAsJsonObject(); + rootJson.remove("uri"); + rootJson.remove("default_port"); + rootJson.addProperty("uri", "{{hdfs-site/dfs.ha.zkfc.port}}"); + rootJson.addProperty("default_port", new Integer(8019)); // save the changes - alertDefinitionDAO.merge(zkFailoverDefinitionEntity); + updateAlertDefinitionEntitySource("hdfs_zookeeper_failover_controller_process", rootJson.toString()); } - // oozie web url changed - AlertDefinitionEntity oozieWebDefinitionEntity = alertDefinitionDAO.findByName( - cluster.getClusterId(), "oozie_server_webui"); - - if (oozieWebDefinitionEntity != null) { - AlertDefinition oozieAlertDefinition = alertDefinitionFactory.coerce(oozieWebDefinitionEntity); - WebSource webSource = (WebSource) oozieAlertDefinition.getSource(); - webSource.getUri().setHttpUri("{{oozie-site/oozie.base.url}}/?user.name={{oozie-env/oozie_user}}"); + // update oozie web ui alert + AlertDefinitionEntity oozieWebUIAlertDefinitionEntity = alertDefinitionDAO.findByName(cluster.getClusterId(), + "oozie_server_webui"); - // merge the definition back into the entity - oozieWebDefinitionEntity = alertDefinitionFactory.merge(oozieAlertDefinition, - oozieWebDefinitionEntity); + if (oozieWebUIAlertDefinitionEntity != null) { + String source = oozieWebUIAlertDefinitionEntity.getSource(); + JsonObject rootJson = new JsonParser().parse(source).getAsJsonObject(); + rootJson.get("uri").getAsJsonObject().remove("http"); + rootJson.get("uri").getAsJsonObject().addProperty("http", "{{oozie-site/oozie.base.url}}/?user.name=oozie"); // save the changes - alertDefinitionDAO.merge(oozieWebDefinitionEntity); + updateAlertDefinitionEntitySource("oozie_server_webui", rootJson.toString()); } } }
