You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2013/03/06 02:27:02 UTC
svn commit: r1453117 - in /incubator/ambari/trunk: ./
ambari-server/src/main/java/org/apache/ambari/server/api/services/
ambari-server/src/main/java/org/apache/ambari/server/controller/
ambari-server/src/main/java/org/apache/ambari/server/controller/in...
Author: swagle
Date: Wed Mar 6 01:27:01 2013
New Revision: 1453117
URL: http://svn.apache.org/r1453117
Log:
AMBARI-1554. API support for current version of Stack and available versions to upgrade . (swagle)
Added:
incubator/ambari/trunk/ambari-server/src/test/resources/stacks/HDP/0.1/metainfo.xml
Modified:
incubator/ambari/trunk/CHANGES.txt
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/StackVersionResponse.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackVersionResourceProvider.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
incubator/ambari/trunk/ambari-server/src/main/resources/properties.json
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1453117&r1=1453116&r2=1453117&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Wed Mar 6 01:27:01 2013
@@ -12,6 +12,9 @@ Trunk (unreleased changes):
NEW FEATURES
+ AMBARI-1554. API support for current version of Stack and available versions
+ to upgrade (Sumit Mohanty via swagle)
+
AMBARI-1511. Add ability to override configurations at the host level (ncole)
AMBARI-1550. Modify existing puppet manifests to allow installing/configuring
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java?rev=1453117&r1=1453116&r2=1453117&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java Wed Mar 6 01:27:01 2013
@@ -54,6 +54,10 @@ public class AmbariMetaInfo {
private File stackRoot;
private final static Logger LOG = LoggerFactory
.getLogger(AmbariMetaInfo.class);
+
+ private static final String STACK_METAINFO_FILE_NAME = "metainfo.xml";
+ private static final String STACK_XML_MAIN_BLOCK_NAME = "metainfo";
+ private static final String STACK_XML_PROPERTY_UPGRADE = "upgrade";
private static final String SERVICES_FOLDER_NAME = "services";
private static final String SERVICE_METAINFO_FILE_NAME = "metainfo.xml";
@@ -90,6 +94,7 @@ public class AmbariMetaInfo {
return true;
}
};
+
/**
* Ambari Meta Info Object
@@ -603,10 +608,8 @@ public class AmbariMetaInfo {
for (File stack : concretStacks) {
if (stack.isFile())
continue;
- StackInfo stackInfo = new StackInfo();
- stackInfo.setName(stackFolder.getName());
- stackInfo.setVersion(stack.getName());
+ StackInfo stackInfo = getStackInfo(stack);
if (LOG.isDebugEnabled()) {
LOG.debug("Adding new stack to known stacks"
+ ", stackName=" + stackFolder.getName()
@@ -673,6 +676,54 @@ public class AmbariMetaInfo {
}
}
+ private StackInfo getStackInfo(File stackVersionFolder) {
+
+ StackInfo stackInfo = new StackInfo();
+
+ stackInfo.setName(stackVersionFolder.getParentFile().getName());
+ stackInfo.setVersion(stackVersionFolder.getName());
+
+ // Get metainfo from file
+ File stackMetainfoFile = new File(stackVersionFolder.getAbsolutePath()
+ + File.separator + STACK_METAINFO_FILE_NAME);
+
+ if (stackMetainfoFile.exists()) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Reading stack version metainfo from file "
+ + stackMetainfoFile.getAbsolutePath());
+ }
+
+ try {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.parse(stackMetainfoFile);
+ doc.getDocumentElement().normalize();
+
+ NodeList stackNodes = doc
+ .getElementsByTagName(STACK_XML_MAIN_BLOCK_NAME);
+
+ for (int index = 0; index < stackNodes.getLength(); index++) {
+
+ Node node = stackNodes.item(index);
+
+ if (node.getNodeType() == Node.ELEMENT_NODE) {
+ Element property = (Element) node;
+
+ stackInfo.setMinUpgradeVersion(getTagValue(
+ STACK_XML_PROPERTY_UPGRADE, property));
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+
+ }
+
+ return stackInfo;
+
+ }
+
private List<RepositoryInfo> getRepository(File repositoryFile) throws ParserConfigurationException, IOException, SAXException {
List<RepositoryInfo> repositorysInfo = new ArrayList<RepositoryInfo>();
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/StackVersionResponse.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/StackVersionResponse.java?rev=1453117&r1=1453116&r2=1453117&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/StackVersionResponse.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/StackVersionResponse.java Wed Mar 6 01:27:01 2013
@@ -25,10 +25,12 @@ import org.apache.ambari.server.state.Re
public class StackVersionResponse {
private String stackVersion;
+ private String minUpgradeVersion;
private List<RepositoryInfo> repositories;
- public StackVersionResponse(String stackVersion) {
+ public StackVersionResponse(String stackVersion, String minUpgradeVersion) {
setStackVersion(stackVersion);
+ setMinUpgradeVersion(minUpgradeVersion);
}
public String getStackVersion() {
@@ -46,4 +48,12 @@ public class StackVersionResponse {
public void setRepositories(List<RepositoryInfo> repositories) {
this.repositories = repositories;
}
+
+ public String getMinUpgradeVersion() {
+ return minUpgradeVersion;
+ }
+
+ public void setMinUpgradeVersion(String minUpgradeVersion) {
+ this.minUpgradeVersion = minUpgradeVersion;
+ }
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackVersionResourceProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackVersionResourceProvider.java?rev=1453117&r1=1453116&r2=1453117&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackVersionResourceProvider.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackVersionResourceProvider.java Wed Mar 6 01:27:01 2013
@@ -52,7 +52,10 @@ public class StackVersionResourceProvide
.getPropertyId("Versions", "stack_version");
private static final String STACK_NAME_PROPERTY_ID = PropertyHelper
- .getPropertyId("Versions", "stack_name");;
+ .getPropertyId("Versions", "stack_name");
+
+ private static final String STACK_MIN_VERSION_PROPERTY_ID = PropertyHelper
+ .getPropertyId("Versions", "min_upgrade_version");
private static Set<String> pkPropertyIds = new HashSet<String>(
Arrays.asList(new String[] { STACK_NAME_PROPERTY_ID,
@@ -86,6 +89,9 @@ public class StackVersionResourceProvide
setResourceProperty(resource, STACK_VERSION_PROPERTY_ID,
response.getStackVersion(), requestedIds);
+
+ setResourceProperty(resource, STACK_MIN_VERSION_PROPERTY_ID,
+ response.getMinUpgradeVersion(), requestedIds);
resources.add(resource);
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java?rev=1453117&r1=1453116&r2=1453117&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java Wed Mar 6 01:27:01 2013
@@ -26,6 +26,7 @@ import org.apache.ambari.server.controll
public class StackInfo {
private String name;
private String version;
+ private String minUpgradeVersion;
private List<RepositoryInfo> repositories;
private List<ServiceInfo> services;
@@ -105,6 +106,14 @@ public class StackInfo {
public StackVersionResponse convertToResponse() {
- return new StackVersionResponse(getVersion());
+ return new StackVersionResponse(getVersion(), getMinUpgradeVersion());
+ }
+
+ public String getMinUpgradeVersion() {
+ return minUpgradeVersion;
+ }
+
+ public void setMinUpgradeVersion(String minUpgradeVersion) {
+ this.minUpgradeVersion = minUpgradeVersion;
}
}
Modified: incubator/ambari/trunk/ambari-server/src/main/resources/properties.json
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/resources/properties.json?rev=1453117&r1=1453116&r2=1453117&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/resources/properties.json (original)
+++ incubator/ambari/trunk/ambari-server/src/main/resources/properties.json Wed Mar 6 01:27:01 2013
@@ -107,6 +107,7 @@
"StackVersion":[
"Versions/stack_name",
"Versions/stack_version",
+ "Versions/min_upgrade_version",
"_"
],
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java?rev=1453117&r1=1453116&r2=1453117&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java Wed Mar 6 01:27:01 2013
@@ -55,6 +55,7 @@ public class AmbariMetaInfoTest {
private static String STACK_NAME_HDP = "HDP";
private static String STACK_VERSION_HDP = "0.1";
+ private static final String STACK_MINIMAL_VERSION_HDP = "0.0";
private static String SERVICE_NAME_HDFS = "HDFS";
private static String SERVICE_COMPONENT_NAME = "NAMENODE";
private static final String OS_TYPE = "centos5";
@@ -71,6 +72,7 @@ public class AmbariMetaInfoTest {
private AmbariMetaInfo metaInfo = null;
private final static Logger LOG =
LoggerFactory.getLogger(AmbariMetaInfoTest.class);
+
@Rule
@@ -336,6 +338,7 @@ public class AmbariMetaInfoTest {
StackInfo stackInfo = metaInfo.getStackInfo(STACK_NAME_HDP, STACK_VERSION_HDP);
Assert.assertEquals(stackInfo.getName(), STACK_NAME_HDP);
Assert.assertEquals(stackInfo.getVersion(), STACK_VERSION_HDP);
+ Assert.assertEquals(stackInfo.getMinUpgradeVersion(), STACK_MINIMAL_VERSION_HDP);
try {
metaInfo.getStackInfo(STACK_NAME_HDP, NON_EXT_VALUE);
} catch (StackAccessException e) {
@@ -375,13 +378,12 @@ public class AmbariMetaInfoTest {
Assert.assertEquals(operatingSystem.getOsType(), OS_TYPE);
- Throwable ex = null;
try {
metaInfo.getOperatingSystem(STACK_NAME_HDP, STACK_VERSION_HDP, NON_EXT_VALUE);
} catch (StackAccessException e) {
- ex = e;
+ Assert.assertTrue(e instanceof StackAccessException);
}
- Assert.assertTrue(ex instanceof StackAccessException);
+
}
}
Added: incubator/ambari/trunk/ambari-server/src/test/resources/stacks/HDP/0.1/metainfo.xml
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/resources/stacks/HDP/0.1/metainfo.xml?rev=1453117&view=auto
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/resources/stacks/HDP/0.1/metainfo.xml (added)
+++ incubator/ambari/trunk/ambari-server/src/test/resources/stacks/HDP/0.1/metainfo.xml Wed Mar 6 01:27:01 2013
@@ -0,0 +1,22 @@
+<?xml version="1.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.
+-->
+<metainfo>
+ <versions>
+ <upgrade>0.0</upgrade>
+ </versions>
+</metainfo>