Repository: ambari
Updated Branches:
  refs/heads/trunk cf0877cea -> 747e5ba23


AMBARI-11224 - Views: attempt to save cluster-related view fails w/o default 
value (tbeerbower)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/747e5ba2
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/747e5ba2
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/747e5ba2

Branch: refs/heads/trunk
Commit: 747e5ba2398e16022ddf2d6af3bb7a2f67f9183a
Parents: cf0877c
Author: tbeerbower <tbeerbo...@hortonworks.com>
Authored: Mon May 18 17:20:09 2015 -0400
Committer: tbeerbower <tbeerbo...@hortonworks.com>
Committed: Mon May 18 17:20:19 2015 -0400

----------------------------------------------------------------------
 .../server/orm/entities/ViewInstanceEntity.java |  6 +++-
 .../orm/entities/ViewInstanceEntityTest.java    | 30 ++++++++++++++++++++
 2 files changed, 35 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/747e5ba2/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewInstanceEntity.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewInstanceEntity.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewInstanceEntity.java
index 6855b56..dc3876c 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewInstanceEntity.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewInstanceEntity.java
@@ -778,7 +778,11 @@ public class ViewInstanceEntity implements 
ViewInstanceDefinition {
       Set<String> requiredParameterNames = new HashSet<String>();
       for (ViewParameterEntity parameter : viewEntity.getParameters()) {
         if (parameter.isRequired()) {
-          requiredParameterNames.add(parameter.getName());
+          // Don't enforce 'required' validation for cluster config parameters 
since
+          // the value will be obtained through cluster association, not user 
input
+          if (parameter.getClusterConfig()== null) {
+            requiredParameterNames.add(parameter.getName());
+          }
         }
       }
       Map<String, String> propertyMap = getPropertyMap();

http://git-wip-us.apache.org/repos/asf/ambari/blob/747e5ba2/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewInstanceEntityTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewInstanceEntityTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewInstanceEntityTest.java
index 036fa03..6110a66 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewInstanceEntityTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewInstanceEntityTest.java
@@ -129,6 +129,21 @@ public class ViewInstanceEntityTest {
       "    </instance>\n" +
       "</view>";
 
+  private static String XML_CONFIG_INSTANCE = "<view>\n" +
+      "    <name>MY_VIEW</name>\n" +
+      "    <label>My View!</label>\n" +
+      "    <version>1.0.0</version>\n" +
+      "    <parameter>\n" +
+      "        <name>p1</name>\n" +
+      "        <cluster-config>hadoop-env/hdfs_user</cluster-config>\n" +
+      "        <required>true</required>\n" +
+      "    </parameter>\n" +
+      "    <instance>\n" +
+      "        <name>INSTANCE1</name>\n" +
+      "        <label>My Instance 1!</label>\n" +
+      "    </instance>\n" +
+      "</view>";
+
   @Test
   public void testGetViewEntity() throws Exception {
     InstanceConfig instanceConfig = 
InstanceConfigTest.getInstanceConfigs().get(0);
@@ -414,6 +429,21 @@ public class ViewInstanceEntityTest {
   }
 
   @Test
+  public void testValidateWithClusterConfig() throws Exception {
+
+    Properties properties = new Properties();
+    properties.put("p1", "v1");
+
+    Configuration ambariConfig = new Configuration(properties);
+
+    ViewConfig config = ViewConfigTest.getConfig(XML_CONFIG_INSTANCE);
+    ViewEntity viewEntity = ViewRegistryTest.getViewEntity(config, 
ambariConfig, getClass().getClassLoader(), "");
+    ViewInstanceEntity viewInstanceEntity = 
ViewRegistryTest.getViewInstanceEntity(viewEntity, 
config.getInstances().get(0));
+
+    viewInstanceEntity.validate(viewEntity, 
Validator.ValidationContext.PRE_CREATE);
+  }
+
+  @Test
   public void testValidateWithValidator() throws Exception {
 
     Properties properties = new Properties();

Reply via email to