You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by tb...@apache.org on 2013/03/01 03:53:32 UTC
svn commit: r1451463 - in /incubator/ambari/trunk: ./
ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/
ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/
Author: tbeerbower
Date: Fri Mar 1 02:53:31 2013
New Revision: 1451463
URL: http://svn.apache.org/r1451463
Log:
AMBARI-1526 - State fields are not returned by default for services.
Modified:
incubator/ambari/trunk/CHANGES.txt
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerComponentProvider.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProvider.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProvider.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerResourceProvider.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProvider.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProviderTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProviderTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProviderTest.java
Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1451463&r1=1451462&r2=1451463&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Fri Mar 1 02:53:31 2013
@@ -387,7 +387,10 @@ Trunk (unreleased changes):
BUG FIXES
- AMBARI-1527. Allow loading of custom configurations in
+ AMBARI-1526. State fields are not returned by default for services.
+ (tbeerbower)
+
+ AMBARI-1527. Allow loading of custom configurations in
step7 : "Customize Services" (regression). (jaimin)
AMBARI-1525. ambari.properties file has an invalid character causing
@@ -399,7 +402,8 @@ Trunk (unreleased changes):
AMBARI-1520. Alerts take around 20-30 seconds to show up everytime you
refresh the dashboad. (srimanth via yusaku)
- AMBARI-1523. Ambari API: Resources doesn't always honor partial response fields restrictions. (tbeerbower)
+ AMBARI-1523. Ambari API: Resources doesn't always honor partial response
+ fields restrictions. (tbeerbower)
AMBARI-1519. Ambari Web goes back and forth between frozen and usable state
peridocially on a large cluster. (yusaku)
@@ -411,7 +415,8 @@ Trunk (unreleased changes):
AMBARI-1503. Ajax call sometimes adds multiple question marks in the query
causing bad requests. (yusaku)
- AMBARI-1463. State of HBase region server not updated when instance is shut down on a cluster not installed via Ambari. (tbeerbower)
+ AMBARI-1463. State of HBase region server not updated when instance is shut
+ down on a cluster not installed via Ambari. (tbeerbower)
AMBARI-1494. Browser memory consumption issues. (jaimin)
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerComponentProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerComponentProvider.java?rev=1451463&r1=1451462&r2=1451463&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerComponentProvider.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerComponentProvider.java Fri Mar 1 02:53:31 2013
@@ -57,7 +57,7 @@ public class GSInstallerComponentProvide
public void updateProperties(Resource resource, Request request, Predicate predicate) {
Set<String> propertyIds = getRequestPropertyIds(request, predicate);
- if (propertyIds.contains(COMPONENT_STATE_PROPERTY_ID)) {
+ if (contains(propertyIds, COMPONENT_STATE_PROPERTY_ID)) {
String serviceName = (String) resource.getPropertyValue(COMPONENT_SERVICE_NAME_PROPERTY_ID);
String componentName = (String) resource.getPropertyValue(COMPONENT_COMPONENT_NAME_PROPERTY_ID);
resource.setProperty(COMPONENT_STATE_PROPERTY_ID, getClusterDefinition().getComponentState(serviceName, componentName));
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProvider.java?rev=1451463&r1=1451462&r2=1451463&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProvider.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProvider.java Fri Mar 1 02:53:31 2013
@@ -58,8 +58,8 @@ public class GSInstallerHostComponentPro
@Override
public void updateProperties(Resource resource, Request request, Predicate predicate) {
Set<String> propertyIds = getRequestPropertyIds(request, predicate);
- if (propertyIds.contains(HOST_COMPONENT_STATE_PROPERTY_ID) ||
- propertyIds.contains(HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID)) {
+ if (contains(propertyIds, HOST_COMPONENT_STATE_PROPERTY_ID) ||
+ contains(propertyIds, HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID)) {
String serviceName = (String) resource.getPropertyValue(HOST_COMPONENT_SERVICE_NAME_PROPERTY_ID);
String componentName = (String) resource.getPropertyValue(HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID);
String hostName = (String) resource.getPropertyValue(HOST_COMPONENT_HOST_NAME_PROPERTY_ID);
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProvider.java?rev=1451463&r1=1451462&r2=1451463&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProvider.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProvider.java Fri Mar 1 02:53:31 2013
@@ -58,7 +58,7 @@ public class GSInstallerHostProvider ext
@Override
public void updateProperties(Resource resource, Request request, Predicate predicate) {
Set<String> propertyIds = getRequestPropertyIds(request, predicate);
- if (propertyIds.contains(HOST_STATE_PROPERTY_ID)) {
+ if (contains(propertyIds, HOST_STATE_PROPERTY_ID)) {
String hostName = (String) resource.getPropertyValue(HOST_NAME_PROPERTY_ID);
resource.setProperty(HOST_STATE_PROPERTY_ID, getClusterDefinition().getHostState(hostName));
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerResourceProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerResourceProvider.java?rev=1451463&r1=1451462&r2=1451463&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerResourceProvider.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerResourceProvider.java Fri Mar 1 02:53:31 2013
@@ -168,6 +168,27 @@ public abstract class GSInstallerResourc
}
/**
+ * Check to see if the given set contains a property or category id that matches the given property id.
+ *
+ * @param ids the set of property/category ids
+ * @param propertyId the property id
+ *
+ * @return true if the given set contains a property id or category that matches the given property id
+ */
+ protected static boolean contains(Set<String> ids, String propertyId) {
+ boolean contains = ids.contains(propertyId);
+
+ if (!contains) {
+ String category = PropertyHelper.getPropertyCategory(propertyId);
+ while (category != null && !contains) {
+ contains = ids.contains(category);
+ category = PropertyHelper.getPropertyCategory(category);
+ }
+ }
+ return contains;
+ }
+
+ /**
* Add a resource to the set of resources provided by this provider.
*
* @param resource the resource to add
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProvider.java?rev=1451463&r1=1451462&r2=1451463&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProvider.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProvider.java Fri Mar 1 02:53:31 2013
@@ -55,7 +55,7 @@ public class GSInstallerServiceProvider
@Override
public void updateProperties(Resource resource, Request request, Predicate predicate) {
Set<String> propertyIds = getRequestPropertyIds(request, predicate);
- if (propertyIds.contains(SERVICE_SERVICE_STATE_PROPERTY_ID)) {
+ if (contains(propertyIds, SERVICE_SERVICE_STATE_PROPERTY_ID)) {
String serviceName = (String) resource.getPropertyValue(SERVICE_SERVICE_NAME_PROPERTY_ID);
resource.setProperty(SERVICE_SERVICE_STATE_PROPERTY_ID, getClusterDefinition().getServiceState(serviceName));
}
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProviderTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProviderTest.java?rev=1451463&r1=1451462&r2=1451463&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProviderTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostComponentProviderTest.java Fri Mar 1 02:53:31 2013
@@ -81,6 +81,32 @@ public class GSInstallerHostComponentPro
}
@Test
+ public void testGetResourcesCheckStateFromCategory() throws Exception {
+ TestGSInstallerStateProvider stateProvider = new TestGSInstallerStateProvider();
+ ClusterDefinition clusterDefinition = new ClusterDefinition(stateProvider, 500);
+ GSInstallerResourceProvider provider = new GSInstallerHostComponentProvider(clusterDefinition);
+ Predicate predicate = new PredicateBuilder().property(GSInstallerHostComponentProvider.HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID).equals("HBASE_REGIONSERVER").toPredicate();
+ Set<Resource> resources = provider.getResources(PropertyHelper.getReadRequest("HostRoles"), predicate);
+ Assert.assertEquals(3, resources.size());
+
+ for (Resource resource : resources) {
+ Assert.assertEquals("STARTED", resource.getPropertyValue(GSInstallerHostComponentProvider.HOST_COMPONENT_STATE_PROPERTY_ID));
+ }
+
+ stateProvider.setHealthy(false);
+
+ // need to wait for old state value to expire
+ Thread.sleep(501);
+
+ resources = provider.getResources(PropertyHelper.getReadRequest(), predicate);
+ Assert.assertEquals(3, resources.size());
+
+ for (Resource resource : resources) {
+ Assert.assertEquals("INIT", resource.getPropertyValue(GSInstallerHostComponentProvider.HOST_COMPONENT_STATE_PROPERTY_ID));
+ }
+ }
+
+ @Test
public void testCreateResources() throws Exception {
ClusterDefinition clusterDefinition = new ClusterDefinition(new TestGSInstallerStateProvider());
GSInstallerResourceProvider provider = new GSInstallerHostComponentProvider(clusterDefinition);
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProviderTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProviderTest.java?rev=1451463&r1=1451462&r2=1451463&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProviderTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerHostProviderTest.java Fri Mar 1 02:53:31 2013
@@ -85,6 +85,31 @@ public class GSInstallerHostProviderTest
}
@Test
+ public void testGetResourcesCheckStateFromCategory() throws Exception {
+ TestGSInstallerStateProvider stateProvider = new TestGSInstallerStateProvider();
+ ClusterDefinition clusterDefinition = new ClusterDefinition(stateProvider, 500);
+ GSInstallerResourceProvider provider = new GSInstallerHostProvider(clusterDefinition);
+ Predicate predicate = new PredicateBuilder().property(GSInstallerHostProvider.HOST_NAME_PROPERTY_ID).equals("ip-10-190-97-104.ec2.internal").toPredicate();
+ Set<Resource> resources = provider.getResources(PropertyHelper.getReadRequest("Hosts"), predicate);
+ Assert.assertEquals(1, resources.size());
+
+ Resource resource = resources.iterator().next();
+
+ Assert.assertEquals("HEALTHY", resource.getPropertyValue(GSInstallerHostProvider.HOST_STATE_PROPERTY_ID));
+
+ stateProvider.setHealthy(false);
+
+ // need to wait for old state value to expire
+ Thread.sleep(501);
+
+ resources = provider.getResources(PropertyHelper.getReadRequest(), predicate);
+ Assert.assertEquals(1, resources.size());
+
+ resource = resources.iterator().next();
+ Assert.assertEquals("INIT", resource.getPropertyValue(GSInstallerHostProvider.HOST_STATE_PROPERTY_ID));
+ }
+
+ @Test
public void testCreateResources() throws Exception {
ClusterDefinition clusterDefinition = new ClusterDefinition(new TestGSInstallerStateProvider());
GSInstallerResourceProvider provider = new GSInstallerHostProvider(clusterDefinition);
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProviderTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProviderTest.java?rev=1451463&r1=1451462&r2=1451463&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProviderTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/gsinstaller/GSInstallerServiceProviderTest.java Fri Mar 1 02:53:31 2013
@@ -85,6 +85,31 @@ public class GSInstallerServiceProviderT
}
@Test
+ public void testGetResourcesCheckStateFromCategory() throws Exception {
+ TestGSInstallerStateProvider stateProvider = new TestGSInstallerStateProvider();
+ ClusterDefinition clusterDefinition = new ClusterDefinition(stateProvider, 500);
+ GSInstallerResourceProvider provider = new GSInstallerServiceProvider(clusterDefinition);
+ Predicate predicate = new PredicateBuilder().property(GSInstallerServiceProvider.SERVICE_SERVICE_NAME_PROPERTY_ID).equals("MAPREDUCE").toPredicate();
+ Set<Resource> resources = provider.getResources(PropertyHelper.getReadRequest("ServiceInfo"), predicate);
+ Assert.assertEquals(1, resources.size());
+
+ Resource resource = resources.iterator().next();
+
+ Assert.assertEquals("STARTED", resource.getPropertyValue(GSInstallerServiceProvider.SERVICE_SERVICE_STATE_PROPERTY_ID));
+
+ stateProvider.setHealthy(false);
+
+ // need to wait for old state value to expire
+ Thread.sleep(501);
+
+ resources = provider.getResources(PropertyHelper.getReadRequest(), predicate);
+ Assert.assertEquals(1, resources.size());
+
+ resource = resources.iterator().next();
+ Assert.assertEquals("INIT", resource.getPropertyValue(GSInstallerServiceProvider.SERVICE_SERVICE_STATE_PROPERTY_ID));
+ }
+
+ @Test
public void testCreateResources() throws Exception {
ClusterDefinition clusterDefinition = new ClusterDefinition(new TestGSInstallerStateProvider());
GSInstallerResourceProvider provider = new GSInstallerServiceProvider(clusterDefinition);