Repository: ambari Updated Branches: refs/heads/trunk 59d2cc8ca -> 456dcb246
AMBARI-7806 - Views: Instance Data Storage doesn't work Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/456dcb24 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/456dcb24 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/456dcb24 Branch: refs/heads/trunk Commit: 456dcb246bb575c4c84c4294a7341e77932a566f Parents: 59d2cc8 Author: tbeerbower <[email protected]> Authored: Thu Oct 16 09:46:03 2014 -0400 Committer: tbeerbower <[email protected]> Committed: Thu Oct 16 09:46:35 2014 -0400 ---------------------------------------------------------------------- .../org/apache/ambari/server/view/ViewRegistry.java | 16 ++-------------- .../apache/ambari/server/view/ViewRegistryTest.java | 11 ++++++++++- 2 files changed, 12 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/456dcb24/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java index f5dc8b9..1f5db9a 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java @@ -1092,11 +1092,6 @@ public class ViewRegistry { persistedView = viewDAO.merge(view); } - Map<String, ViewInstanceEntity> xmlInstanceEntityMap = new HashMap<String, ViewInstanceEntity>(); - for( ViewInstanceEntity instance : view.getInstances()) { - xmlInstanceEntityMap.put(instance.getName(), instance); - } - view.setResourceType(persistedView.getResourceType()); view.setPermissions(persistedView.getPermissions()); @@ -1106,8 +1101,6 @@ public class ViewRegistry { String instanceName = persistedInstance.getName(); ViewInstanceEntity instance = view.getInstanceDefinition(instanceName); - xmlInstanceEntityMap.remove(instanceName); - // if the persisted instance is not in the view ... if (instance == null) { if (persistedInstance.isXmlDriven()) { @@ -1123,15 +1116,10 @@ public class ViewRegistry { } } else { instance.setResource(persistedInstance.getResource()); + instance.setViewInstanceId(persistedInstance.getViewInstanceId()); + instance.setData(persistedInstance.getData()); } } - - // these instances appear in the view.xml but are not present in the db... - // add them to db - for (ViewInstanceEntity instance : xmlInstanceEntityMap.values()) { - instance.setResource(createViewInstanceResource(resourceType)); - instanceDAO.merge(instance); - } } // create an admin resource to represent a view instance http://git-wip-us.apache.org/repos/asf/ambari/blob/456dcb24/ambari-server/src/test/java/org/apache/ambari/server/view/ViewRegistryTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewRegistryTest.java b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewRegistryTest.java index ffcac6b..7c0cade 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewRegistryTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewRegistryTest.java @@ -204,6 +204,10 @@ public class ViewRegistryTest { viewDefinition.setResourceType(resourceTypeEntity); Set<ViewInstanceEntity> viewInstanceEntities = ViewInstanceEntityTest.getViewInstanceEntities(viewDefinition); + + for (ViewInstanceEntity viewInstanceEntity : viewInstanceEntities) { + viewInstanceEntity.putInstanceData("p1", "v1"); + } viewDefinition.setInstances(viewInstanceEntities); Map<File, ViewConfig> viewConfigs = @@ -307,7 +311,12 @@ public class ViewRegistryTest { Assert.assertNotNull(view); Assert.assertEquals(ViewDefinition.ViewStatus.DEPLOYED, view.getStatus()); - Assert.assertEquals(2, registry.getInstanceDefinitions(view).size()); + Collection<ViewInstanceEntity> instanceDefinitions = registry.getInstanceDefinitions(view); + Assert.assertEquals(2, instanceDefinitions.size()); + + for (ViewInstanceEntity viewInstanceEntity : instanceDefinitions) { + Assert.assertEquals("v1", viewInstanceEntity.getInstanceData("p1").getValue()); + } // verify mocks verify(configuration, viewDir, extractedArchiveDir, viewArchive, archiveDir, entryFile, classesDir,
