You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2015/01/22 23:16:47 UTC
[07/14] ambari git commit: AMBARI-9247. Wrong stack version of
Service installed (ncole)
AMBARI-9247. Wrong stack version of Service installed (ncole)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/84bfe433
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/84bfe433
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/84bfe433
Branch: refs/heads/2.0-preview
Commit: 84bfe4334531fd049281ee869128a09cac06f6ee
Parents: 049b692
Author: Nate Cole <nc...@hortonworks.com>
Authored: Wed Jan 21 15:05:10 2015 -0500
Committer: Yusaku Sako <yu...@hortonworks.com>
Committed: Wed Jan 21 14:16:22 2015 -0800
----------------------------------------------------------------------
.../server/api/services/AmbariMetaInfo.java | 8 ++--
.../apache/ambari/server/stack/StackModule.java | 13 ++++---
.../ambari/server/state/RepositoryInfo.java | 27 ++++++++++---
.../server/state/stack/LatestRepoCallable.java | 3 +-
.../server/api/services/AmbariMetaInfoTest.java | 18 ++++++++-
.../server/upgrade/StackUpgradeUtilTest.java | 40 ++++++++++----------
6 files changed, 70 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/84bfe433/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
index 1b7e2fe..897cf52 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
@@ -44,17 +44,17 @@ import org.apache.ambari.server.customactions.ActionDefinition;
import org.apache.ambari.server.customactions.ActionDefinitionManager;
import org.apache.ambari.server.events.AlertDefinitionRegistrationEvent;
import org.apache.ambari.server.events.publishers.AmbariEventPublisher;
+import org.apache.ambari.server.metadata.ActionMetadata;
import org.apache.ambari.server.metadata.AgentAlertDefinitions;
import org.apache.ambari.server.orm.dao.AlertDefinitionDAO;
-import org.apache.ambari.server.metadata.ActionMetadata;
import org.apache.ambari.server.orm.dao.MetainfoDAO;
import org.apache.ambari.server.orm.entities.AlertDefinitionEntity;
import org.apache.ambari.server.orm.entities.MetainfoEntity;
import org.apache.ambari.server.stack.StackContext;
import org.apache.ambari.server.stack.StackDirectory;
+import org.apache.ambari.server.stack.StackManager;
import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Clusters;
-import org.apache.ambari.server.stack.StackManager;
import org.apache.ambari.server.state.ComponentInfo;
import org.apache.ambari.server.state.DependencyInfo;
import org.apache.ambari.server.state.OperatingSystemInfo;
@@ -766,10 +766,12 @@ public class AmbariMetaInfo {
entity.setMetainfoName(metaKey);
entity.setMetainfoValue(newBaseUrl);
- if (null != ri.getDefaultBaseUrl() && newBaseUrl.equals(ri.getDefaultBaseUrl())) {
+ // !!! need a way to remove
+ if (newBaseUrl.equals("")) {
metaInfoDAO.remove(entity);
} else {
metaInfoDAO.merge(entity);
+ ri.setBaseUrlFromSaved(true);
}
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/84bfe433/ambari-server/src/main/java/org/apache/ambari/server/stack/StackModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackModule.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/StackModule.java
index 933f187..8da2ff9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/StackModule.java
@@ -18,6 +18,12 @@
package org.apache.ambari.server.stack;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.state.RepositoryInfo;
@@ -29,12 +35,6 @@ import org.apache.ambari.server.state.stack.StackMetainfoXml;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
/**
* Stack module which provides all functionality related to parsing and fully
* resolving stacks from the stack definition.
@@ -561,6 +561,7 @@ public class StackModule extends BaseModule<StackModule, StackInfo> {
if (null != updatedUrl) {
ri.setBaseUrl(updatedUrl);
+ ri.setBaseUrlFromSaved(true);
}
if (LOG.isDebugEnabled()) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/84bfe433/ambari-server/src/main/java/org/apache/ambari/server/state/RepositoryInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/RepositoryInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/RepositoryInfo.java
index 5347682..29776ed 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/RepositoryInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/RepositoryInfo.java
@@ -28,6 +28,7 @@ public class RepositoryInfo {
private String mirrorsList;
private String defaultBaseUrl;
private String latestBaseUrl;
+ private boolean baseSaved = false;
/**
* @return the baseUrl
@@ -98,7 +99,7 @@ public class RepositoryInfo {
public void setMirrorsList(String mirrorsList) {
this.mirrorsList = mirrorsList;
}
-
+
/**
* @return the default base url
*/
@@ -119,14 +120,28 @@ public class RepositoryInfo {
public String getLatestBaseUrl() {
return latestBaseUrl;
}
-
+
/**
* @param url the latest determined base url
*/
public void setLatestBaseUrl(String url) {
latestBaseUrl = url;
- }
-
+ }
+
+ /**
+ * @return if the base url was from a saved value
+ */
+ public boolean isBaseUrlFromSaved() {
+ return baseSaved;
+ }
+
+ /**
+ * Sets if the base url was from a saved value
+ */
+ public void setBaseUrlFromSaved(boolean saved) {
+ baseSaved = saved;
+ }
+
@Override
public String toString() {
return "[ repoInfo: "
@@ -137,8 +152,8 @@ public class RepositoryInfo {
+ ", mirrorsList=" + mirrorsList
+ " ]";
}
-
-
+
+
public RepositoryResponse convertToResponse()
{
return new RepositoryResponse(getBaseUrl(), getOsType(), getRepoId(),
http://git-wip-us.apache.org/repos/asf/ambari/blob/84bfe433/ambari-server/src/main/java/org/apache/ambari/server/state/stack/LatestRepoCallable.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/LatestRepoCallable.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/LatestRepoCallable.java
index 608637c..373be33 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/LatestRepoCallable.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/LatestRepoCallable.java
@@ -126,8 +126,7 @@ public class LatestRepoCallable implements Callable<Void> {
}
ri.setLatestBaseUrl(baseUrl);
- if (ri.getBaseUrl() != null
- && ri.getBaseUrl().equals(ri.getDefaultBaseUrl())) {
+ if (ri.getBaseUrl() != null && !ri.isBaseUrlFromSaved()) {
// Override baseUrl with the latestBaseUrl.
ri.setBaseUrl(baseUrl);
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/84bfe433/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
index 5579db3..c0ff4a6 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
@@ -42,7 +42,6 @@ import java.util.Set;
import javax.persistence.EntityManager;
import javax.xml.bind.JAXBException;
-import com.google.gson.Gson;
import junit.framework.Assert;
import org.apache.ambari.server.AmbariException;
@@ -82,6 +81,8 @@ import org.apache.ambari.server.state.stack.MetricDefinition;
import org.apache.ambari.server.state.stack.OsFamily;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
+import org.easymock.Capture;
+import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -89,6 +90,7 @@ import org.junit.rules.TemporaryFolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.gson.Gson;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
@@ -116,7 +118,6 @@ public class AmbariMetaInfoTest {
private static final String NON_EXT_VALUE = "XXX";
private static final int REPOS_CNT = 3;
- private static final int STACKS_NAMES_CNT = 2;
private static final int PROPERTIES_CNT = 62;
private static final int OS_CNT = 4;
@@ -272,9 +273,22 @@ public class AmbariMetaInfoTest {
}
}
+ Capture<MetainfoEntity> c = new Capture<MetainfoEntity>();
+
+ metainfoDAO = ambariMetaInfo.metaInfoDAO;
+ reset(metainfoDAO);
+ reset(entity);
+ expect(metainfoDAO.findByKey("repo:/HDP/2.1.1/redhat6/HDP-2.1.1:baseurl")).andReturn(entity).atLeastOnce();
+ expect(metainfoDAO.merge(EasyMock.capture(c))).andReturn(entity).atLeastOnce();
+ replay(metainfoDAO, entity);
+
// Reset the database with the original baseUrl
ambariMetaInfo.updateRepoBaseURL(STACK_NAME_HDP, "2.1.1", "redhat6",
HDP_REPO_ID, prevBaseUrl);
+
+ assertEquals(prevBaseUrl, c.getValue().getMetainfoValue());
+ assertTrue(repoInfo.isBaseUrlFromSaved());
+
}
@Test
http://git-wip-us.apache.org/repos/asf/ambari/blob/84bfe433/ambari-server/src/test/java/org/apache/ambari/server/upgrade/StackUpgradeUtilTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/StackUpgradeUtilTest.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/StackUpgradeUtilTest.java
index 64de35d..35650a1 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/StackUpgradeUtilTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/StackUpgradeUtilTest.java
@@ -42,57 +42,57 @@ import com.google.inject.persist.PersistService;
public class StackUpgradeUtilTest {
private Injector injector;
-
+
@Before
public void setup() throws Exception {
injector = Guice.createInjector(new InMemoryDefaultTestModule());
injector.getInstance(GuiceJpaInitializer.class);
}
-
+
@After
public void teardown() throws Exception {
injector.getInstance(PersistService.class).stop();
}
-
+
private void reset(String stackName, String stackVersion) throws Exception {
AmbariMetaInfo ami = injector.getInstance(AmbariMetaInfo.class);
-
+
for (Entry<String, List<RepositoryInfo>> entry : ami.getRepository(stackName, stackVersion).entrySet()) {
for (RepositoryInfo ri : entry.getValue()) {
if (-1 == ri.getRepoId().indexOf("epel")) {
ami.updateRepoBaseURL(stackName, stackVersion,
- ri.getOsType(), ri.getRepoId(), ri.getDefaultBaseUrl());
+ ri.getOsType(), ri.getRepoId(), "");
}
}
}
-
+
}
-
+
@Test
public void testUpgradeStack() throws Exception {
StackUpgradeUtil stackUpgradeUtil = injector.getInstance(StackUpgradeUtil.class);
-
+
String stackName = "HDP";
String stackVersion = "1.3.0";
String localRepoUrl = "http://foo.bar";
-
+
// check updating all
stackUpgradeUtil.updateLocalRepo(stackName, stackVersion, localRepoUrl, null);
-
+
MetainfoDAO dao = injector.getInstance(MetainfoDAO.class);
-
+
Collection<MetainfoEntity> entities = dao.findAll();
Assert.assertTrue(entities.size() > 0);
-
+
for (MetainfoEntity entity : entities) {
Assert.assertTrue(entity.getMetainfoName().startsWith("repo:/HDP/1.3.0/"));
Assert.assertEquals(localRepoUrl, entity.getMetainfoValue());
}
-
+
reset (stackName, stackVersion);
entities = dao.findAll();
- Assert.assertTrue(0 == entities.size());
-
+ Assert.assertEquals(0, entities.size());
+
// check updating only centos6
stackUpgradeUtil.updateLocalRepo(stackName, stackVersion, localRepoUrl, "centos6");
@@ -106,7 +106,7 @@ public class StackUpgradeUtilTest {
reset (stackName, stackVersion);
entities = dao.findAll();
Assert.assertTrue(0 == entities.size());
-
+
// check updating only centos6 and centos5
stackUpgradeUtil.updateLocalRepo(stackName, stackVersion, localRepoUrl, "centos6,centos5");
@@ -118,7 +118,7 @@ public class StackUpgradeUtilTest {
entity.getMetainfoName().startsWith("repo:/HDP/1.3.0/centos5"));
Assert.assertEquals(localRepoUrl, entity.getMetainfoValue());
}
-
+
// verify that a change to centos6 also changes redhat6
localRepoUrl = "http://newfoo.bar";
stackUpgradeUtil.updateLocalRepo(stackName, stackVersion, localRepoUrl, "centos6");
@@ -138,8 +138,8 @@ public class StackUpgradeUtilTest {
}
Assert.assertTrue(foundCentos6);
Assert.assertTrue(foundRedhat6);
-
+
}
-
-
+
+
}