Repository: brooklyn-server Updated Branches: refs/heads/master 2edf7168d -> bd8be34be
Catalog Policy REST API now returns config array Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/cfa51d95 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/cfa51d95 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/cfa51d95 Branch: refs/heads/master Commit: cfa51d95f2d8b862933663647d35d3d9f1aec8b2 Parents: 784e18f Author: Mark McKenna <[email protected]> Authored: Sat Jun 4 19:01:33 2016 +0100 Committer: Mark McKenna <[email protected]> Committed: Mon Jun 6 15:35:09 2016 +0100 ---------------------------------------------------------------------- .../brooklyn/rest/domain/PolicyConfigSummary.java | 6 ++++++ .../brooklyn/rest/transform/CatalogTransformer.java | 12 +++++++++++- .../brooklyn/rest/transform/EntityTransformer.java | 10 ++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/cfa51d95/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicyConfigSummary.java ---------------------------------------------------------------------- diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicyConfigSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicyConfigSummary.java index dd59507..8115ab9 100644 --- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicyConfigSummary.java +++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicyConfigSummary.java @@ -25,6 +25,7 @@ import java.util.Objects; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.google.common.collect.ImmutableMap; +import org.apache.brooklyn.config.ConfigKey; public class PolicyConfigSummary extends ConfigSummary { @@ -44,6 +45,11 @@ public class PolicyConfigSummary extends ConfigSummary { this.links = (links == null) ? ImmutableMap.<String, URI>of() : ImmutableMap.copyOf(links); } + public PolicyConfigSummary(ConfigKey<?> config, String label, Double priority, Map<String, URI> links) { + super(config, label, priority); + this.links = links != null ? ImmutableMap.copyOf(links) : null; + } + @Override public Map<String, URI> getLinks() { return links; http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/cfa51d95/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java ---------------------------------------------------------------------- diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java index 7e0d8bc..1b89db2 100644 --- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java +++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java @@ -19,6 +19,7 @@ package org.apache.brooklyn.rest.transform; import java.net.URI; +import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -131,7 +132,16 @@ public class CatalogTransformer { } public static CatalogPolicySummary catalogPolicySummary(BrooklynRestResourceUtils b, CatalogItem<? extends Policy,PolicySpec<?>> item, UriBuilder ub) { - Set<PolicyConfigSummary> config = ImmutableSet.of(); + final Set<PolicyConfigSummary> config = Sets.newLinkedHashSet(); + try{ + final PolicySpec<?> spec = (PolicySpec<?>) b.getCatalog().createSpec((CatalogItem) item); + for (final SpecParameter<?> input : spec.getParameters()){ + config.add(EntityTransformer.policyConfigSummary(input)); + } + }catch (Exception e) { + Exceptions.propagateIfFatal(e); + log.trace("Unable to create policy spec for "+item+": "+e, e); + } return new CatalogPolicySummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), item.getJavaType(), item.getPlanYaml(), item.getDescription(), tidyIconLink(b, item, item.getIconUrl(), ub), config, http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/cfa51d95/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/EntityTransformer.java ---------------------------------------------------------------------- diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/EntityTransformer.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/EntityTransformer.java index 731291a..72b9a63 100644 --- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/EntityTransformer.java +++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/EntityTransformer.java @@ -33,6 +33,7 @@ import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.render.RendererHints; import org.apache.brooklyn.rest.domain.EntityConfigSummary; import org.apache.brooklyn.rest.domain.EntitySummary; +import org.apache.brooklyn.rest.domain.PolicyConfigSummary; import org.apache.brooklyn.util.collections.MutableMap; import com.google.common.base.Function; @@ -122,6 +123,11 @@ public class EntityTransformer { Map<String, URI> mapOfLinks = links==null ? null : ImmutableMap.copyOf(links); return new EntityConfigSummary(config, label, priority, mapOfLinks); } + + public static PolicyConfigSummary policyConfigSummary(ConfigKey<?> config, String label, Double priority, Map<String, URI> links) { + return new PolicyConfigSummary(config, label, priority, links); + } + /** generates a representation for a given config key, * with label inferred from annoation in the entity class, * and links pointing to the entity and the applicaiton */ @@ -179,4 +185,8 @@ public class EntityTransformer { return entityConfigSummary(input.getConfigKey(), input.getLabel(), priority, null); } + public static PolicyConfigSummary policyConfigSummary(SpecParameter<?> input) { + Double priority = input.isPinned() ? Double.valueOf(1d) : null; + return policyConfigSummary(input.getConfigKey(), input.getLabel(), priority, null); + } }
