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);
+    }
 }

Reply via email to