Repository: ambari Updated Branches: refs/heads/trunk bd3d83fdc -> 3e1bd89b6
AMBARI-12079 - Views : resource type may not be persisted on view deployment. (tbeerbower) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/3e1bd89b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/3e1bd89b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/3e1bd89b Branch: refs/heads/trunk Commit: 3e1bd89b6b5c11a9f2902c4f4a844293fb29859e Parents: bd3d83f Author: tbeerbower <tbeerbo...@hortonworks.com> Authored: Tue Jun 23 11:07:43 2015 -0400 Committer: tbeerbower <tbeerbo...@hortonworks.com> Committed: Tue Jun 23 11:08:00 2015 -0400 ---------------------------------------------------------------------- .../apache/ambari/server/view/ViewRegistry.java | 21 ++++++-------------- .../ambari/server/view/ViewRegistryTest.java | 4 +--- 2 files changed, 7 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/3e1bd89b/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 29b9000..7b32898 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 @@ -518,11 +518,9 @@ public class ViewRegistry { instanceEntity.validate(viewEntity, Validator.ValidationContext.PRE_CREATE); - ResourceTypeEntity resourceTypeEntity = resourceTypeDAO.findByName(ViewEntity.getViewName(viewName, version)); - setPersistenceEntities(instanceEntity); - ViewInstanceEntity persistedInstance = mergeViewInstance(instanceEntity, resourceTypeEntity); + ViewInstanceEntity persistedInstance = mergeViewInstance(instanceEntity, viewEntity.getResourceType()); instanceEntity.setViewInstanceId(persistedInstance.getViewInstanceId()); syncViewInstance(instanceEntity, persistedInstance); @@ -1275,9 +1273,8 @@ public class ViewRegistry { Set<ViewInstanceEntity> instanceDefinitions) throws Exception { - String viewName = view.getName(); - ViewEntity persistedView = viewDAO.findByName(viewName); - ResourceTypeEntity resourceType = view.getResourceType(); + String viewName = view.getName(); + ViewEntity persistedView = viewDAO.findByName(viewName); if (LOG.isDebugEnabled()) { LOG.debug("Syncing view " + viewName + "."); @@ -1289,20 +1286,14 @@ public class ViewRegistry { LOG.debug("Creating view " + viewName + "."); } - // get or create an admin resource type to represent this view - ResourceTypeEntity resourceTypeEntity = resourceTypeDAO.findByName(viewName); - if (resourceTypeEntity == null) { - resourceTypeEntity = resourceType; - if (LOG.isDebugEnabled()) { - LOG.debug("Creating resource type for " + viewName + "."); - } - resourceTypeDAO.create(resourceTypeEntity); - } + // create an admin resource type to represent this view + ResourceTypeEntity resourceType = resourceTypeDAO.merge(view.getResourceType()); for( ViewInstanceEntity instance : view.getInstances()) { instance.setResource(createViewInstanceResource(resourceType)); } // ... merge the view + view.setResourceType(resourceType); persistedView = viewDAO.merge(view); } http://git-wip-us.apache.org/repos/asf/ambari/blob/3e1bd89b/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 4d2c8e2..f9dadcd 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 @@ -815,10 +815,8 @@ public class ViewRegistryTest { ViewConfig config = ViewConfigTest.getConfig(XML_VALID_INSTANCE); ViewEntity viewEntity = getViewEntity(config, ambariConfig, getClass().getClassLoader(), ""); ViewInstanceEntity viewInstanceEntity = getViewInstanceEntity(viewEntity, config.getInstances().get(0)); - ResourceTypeEntity resourceTypeEntity = new ResourceTypeEntity(); expect(viewInstanceDAO.merge(viewInstanceEntity)).andReturn(viewInstanceEntity); - expect(resourceTypeDAO.findByName("MY_VIEW{1.0.0}")).andReturn(resourceTypeEntity); handlerList.addViewInstance(viewInstanceEntity); @@ -835,7 +833,7 @@ public class ViewRegistryTest { Assert.assertEquals("v2-1", instanceEntity.getProperty("p2").getValue() ); Assert.assertEquals(viewInstanceEntity, viewInstanceDefinitions.iterator().next()); - Assert.assertEquals(resourceTypeEntity, viewInstanceEntity.getResource().getResourceType()); + Assert.assertEquals("MY_VIEW{1.0.0}", viewInstanceEntity.getResource().getResourceType().getName()); verify(viewDAO, viewInstanceDAO, resourceTypeDAO, securityHelper, handlerList); }