Return-Path: X-Original-To: apmail-ambari-commits-archive@www.apache.org Delivered-To: apmail-ambari-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B10DFCC9F for ; Thu, 7 Aug 2014 17:21:44 +0000 (UTC) Received: (qmail 60285 invoked by uid 500); 7 Aug 2014 17:21:44 -0000 Delivered-To: apmail-ambari-commits-archive@ambari.apache.org Received: (qmail 60258 invoked by uid 500); 7 Aug 2014 17:21:44 -0000 Mailing-List: contact commits-help@ambari.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ambari-dev@ambari.apache.org Delivered-To: mailing list commits@ambari.apache.org Received: (qmail 60249 invoked by uid 99); 7 Aug 2014 17:21:44 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Aug 2014 17:21:44 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 3C6629C2F05; Thu, 7 Aug 2014 17:21:44 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: swagle@apache.org To: commits@ambari.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: git commit: AMBARI-6774. Ambari omits url-provided properties for single-element arrays. Date: Thu, 7 Aug 2014 17:21:44 +0000 (UTC) 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 Authored: Thu Aug 7 10:18:27 2014 -0700 Committer: Siddharth Wagle 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 entry : mapResourceIds.entrySet()) { Map 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 mapResourceIds = resource.getKeyValueMap(); + Resource.Type type = resource.getResourceDefinition().getType(); + Schema schema = m_controller.getSchema(type); + Set setProperties = requestBody.getNamedPropertySets(); - if (setProperties.size() > 1) { - Map mapResourceIds = resource.getKeyValueMap(); - Resource.Type type = resource.getResourceDefinition().getType(); - Schema schema = m_controller.getSchema(type); - - for (NamedPropertySet propertySet : setProperties) { - for (Map.Entry entry : mapResourceIds.entrySet()) { - Map 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 entry : mapResourceIds.entrySet()) { + Map 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 mapResourceIds = new HashMap(); + mapResourceIds.put(Resource.Type.Cluster, clusterId); + mapResourceIds.put(Resource.Type.Service, serviceId); + Map mapProperties = new HashMap(); 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));