Repository: knox Updated Branches: refs/heads/master 82e981be8 -> be4278120
KNOX-1317 - Ambari service discovery config handling of nested derived properties Project: http://git-wip-us.apache.org/repos/asf/knox/repo Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/be427812 Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/be427812 Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/be427812 Branch: refs/heads/master Commit: be42781207475ed5c7e9d5015c026d3896307a75 Parents: 82e981b Author: Phil Zampino <pzamp...@apache.org> Authored: Thu May 17 09:19:54 2018 -0400 Committer: Phil Zampino <pzamp...@apache.org> Committed: Thu May 17 09:19:54 2018 -0400 ---------------------------------------------------------------------- .../discovery/ambari/PropertyEqualsHandler.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/knox/blob/be427812/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/PropertyEqualsHandler.java ---------------------------------------------------------------------- diff --git a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/PropertyEqualsHandler.java b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/PropertyEqualsHandler.java index 0dfab36..6b81356 100644 --- a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/PropertyEqualsHandler.java +++ b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/PropertyEqualsHandler.java @@ -43,7 +43,17 @@ class PropertyEqualsHandler implements ConditionalValueHandler { ServiceURLPropertyConfig.Property p = config.getConfigProperty(serviceName, propertyName); if (p != null) { - String value = getActualPropertyValue(cluster, p); + + String value = null; + if (p.getType().equalsIgnoreCase(ServiceURLPropertyConfig.Property.TYPE_DERIVED)) { + ConditionalValueHandler valueHandler = p.getConditionHandler(); + if (valueHandler != null) { + value = valueHandler.evaluate(config, cluster); + } + } else { + value = getActualPropertyValue(cluster, p); + } + if (propertyValue == null) { // If the property value isn't specified, then we're just checking if the property is set with any value if (value != null) {