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 2014/08/07 19:21:44 UTC
git commit: AMBARI-6774. Ambari omits url-provided properties for
single-element arrays.
Repository: ambari
Updated Branches:
refs/heads/trunk a716f3d7c -> be6c3bdd7
AMBARI-6774. Ambari omits url-provided properties for single-element arrays.
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/be6c3bdd
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/be6c3bdd
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/be6c3bdd
Branch: refs/heads/trunk
Commit: be6c3bdd7fb4471f0e23b53739c71c0c0ecec03f
Parents: a716f3d
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Thu Aug 7 10:18:27 2014 -0700
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Thu Aug 7 10:18:27 2014 -0700
----------------------------------------------------------------------
.../persistence/PersistenceManagerImpl.java | 30 +++++++++-----------
.../services/PersistenceManagerImplTest.java | 13 ++++++++-
2 files changed, 26 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/be6c3bdd/ambari-server/src/main/java/org/apache/ambari/server/api/services/persistence/PersistenceManagerImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/persistence/PersistenceManagerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/persistence/PersistenceManagerImpl.java
index 595ad00..1c488a8 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/persistence/PersistenceManagerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/persistence/PersistenceManagerImpl.java
@@ -67,7 +67,7 @@ public class PersistenceManagerImpl implements PersistenceManager {
for (Map.Entry<Resource.Type, String> entry : mapResourceIds.entrySet()) {
Map<String, Object> mapProperties = propertySet.getProperties();
String property = schema.getKeyPropertyId(entry.getKey());
- if (! mapProperties.containsKey(property)) {
+ if (!mapProperties.containsKey(property)) {
mapProperties.put(property, entry.getValue());
}
}
@@ -79,25 +79,23 @@ public class PersistenceManagerImpl implements PersistenceManager {
public RequestStatus update(ResourceInstance resource, RequestBody requestBody)
throws UnsupportedPropertyException, SystemException, NoSuchParentResourceException, NoSuchResourceException {
- // Allow for multiple property sets in an update request body...
+ Map<Resource.Type, String> mapResourceIds = resource.getKeyValueMap();
+ Resource.Type type = resource.getResourceDefinition().getType();
+ Schema schema = m_controller.getSchema(type);
+
Set<NamedPropertySet> setProperties = requestBody.getNamedPropertySets();
- if (setProperties.size() > 1) {
- Map<Resource.Type, String> mapResourceIds = resource.getKeyValueMap();
- Resource.Type type = resource.getResourceDefinition().getType();
- Schema schema = m_controller.getSchema(type);
-
- for (NamedPropertySet propertySet : setProperties) {
- for (Map.Entry<Resource.Type, String> entry : mapResourceIds.entrySet()) {
- Map<String, Object> mapProperties = propertySet.getProperties();
- String property = schema.getKeyPropertyId(entry.getKey());
- if (! mapProperties.containsKey(property)) {
- mapProperties.put(property, entry.getValue());
- }
+
+ for (NamedPropertySet propertySet : setProperties) {
+ for (Map.Entry<Resource.Type, String> entry : mapResourceIds.entrySet()) {
+ Map<String, Object> mapProperties = propertySet.getProperties();
+ String property = schema.getKeyPropertyId(entry.getKey());
+ if (!mapProperties.containsKey(property)) {
+ mapProperties.put(property, entry.getValue());
}
}
}
- return m_controller.updateResources(resource.getResourceDefinition().getType(),
- createControllerRequest(requestBody), resource.getQuery().getPredicate());
+
+ return m_controller.updateResources(type, createControllerRequest(requestBody), resource.getQuery().getPredicate());
}
@Override
http://git-wip-us.apache.org/repos/asf/ambari/blob/be6c3bdd/ambari-server/src/test/java/org/apache/ambari/server/api/services/PersistenceManagerImplTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/PersistenceManagerImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/PersistenceManagerImplTest.java
index f98ada8..82bd6ec 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/PersistenceManagerImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/PersistenceManagerImplTest.java
@@ -197,6 +197,13 @@ public class PersistenceManagerImplTest {
Predicate predicate = createMock(Predicate.class);
RequestBody body = new RequestBody();
+ String clusterId = "clusterId";
+ String serviceId = "serviceId";
+
+ Map<Resource.Type, String> mapResourceIds = new HashMap<Resource.Type, String>();
+ mapResourceIds.put(Resource.Type.Cluster, clusterId);
+ mapResourceIds.put(Resource.Type.Service, serviceId);
+
Map<String, Object> mapProperties = new HashMap<String, Object>();
mapProperties.put(PropertyHelper.getPropertyId("foo", "bar"), "value");
NamedPropertySet namedPropSet = new NamedPropertySet("", mapProperties);
@@ -206,10 +213,14 @@ public class PersistenceManagerImplTest {
setExpected.add(mapProperties);
//expectations
- expect(resource.getResourceDefinition()).andReturn(resourceDefinition);
+ expect(resource.getKeyValueMap()).andReturn(mapResourceIds);
+ expect(resource.getResourceDefinition()).andReturn(resourceDefinition).atLeastOnce();
+ expect(controller.getSchema(Resource.Type.Component)).andReturn(schema);
expect(resourceDefinition.getType()).andReturn(Resource.Type.Component);
expect(resource.getQuery()).andReturn(query);
expect(query.getPredicate()).andReturn(predicate);
+ expect(schema.getKeyPropertyId(Resource.Type.Cluster)).andReturn(clusterId);
+ expect(schema.getKeyPropertyId(Resource.Type.Service)).andReturn(serviceId);
expect(controller.updateResources(Resource.Type.Component, serverRequest, predicate)).andReturn(new RequestStatusImpl(null));