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,

Reply via email to