You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/07/04 11:51:09 UTC

[27/45] git commit: allow access to CAMP from brooklyn catalog

allow access to CAMP from brooklyn catalog


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/5c3d32ce
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/5c3d32ce
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/5c3d32ce

Branch: refs/heads/master
Commit: 5c3d32ce1f473341d30e3aedaec9c88d1b8f42f0
Parents: c664f5e
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Jul 2 16:38:01 2014 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Jul 2 16:38:01 2014 +0100

----------------------------------------------------------------------
 .../catalog/internal/BasicBrooklynCatalog.java  | 25 ++++++++++++++++----
 .../brooklyn/config/BrooklynServerConfig.java   | 12 ++++++++++
 .../entity/basic/BrooklynConfigKeys.java        |  6 +++--
 .../camp/brooklyn/BrooklynCampConstants.java    |  5 ++--
 4 files changed, 39 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5c3d32ce/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
index 237b140..67cbbe1 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -1,5 +1,8 @@
 package brooklyn.catalog.internal;
 
+import io.brooklyn.camp.CampPlatform;
+import io.brooklyn.camp.spi.pdp.DeploymentPlan;
+
 import java.util.NoSuchElementException;
 
 import javax.annotation.Nullable;
@@ -10,11 +13,12 @@ import org.slf4j.LoggerFactory;
 import brooklyn.catalog.BrooklynCatalog;
 import brooklyn.catalog.CatalogItem;
 import brooklyn.catalog.CatalogPredicates;
+import brooklyn.config.BrooklynServerConfig;
 import brooklyn.management.ManagementContext;
-import brooklyn.util.collections.MutableMap;
 import brooklyn.util.exceptions.Exceptions;
 import brooklyn.util.javalang.AggregateClassLoader;
 import brooklyn.util.javalang.LoadedClassLoader;
+import brooklyn.util.stream.Streams;
 import brooklyn.util.time.Duration;
 import brooklyn.util.time.Time;
 
@@ -115,6 +119,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
         return (Class<? extends T>) loadClass(resultI);
     }
 
+    @Deprecated
     private <T> CatalogItemDtoAbstract<T> getAbstractCatalogItem(CatalogItem<T> item) {
         while (item instanceof CatalogItemDo) item = ((CatalogItemDo<T>)item).itemDto;
         if (item==null) return null;
@@ -123,7 +128,19 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
     }
 
     private <T> CatalogItemDtoAbstract<T> getAbstractCatalogItem(String yaml) {
-        // FIXME Need to parse yaml to extract CatalogItem info
+        CampPlatform camp = BrooklynServerConfig.getCampPlatform(mgmt).get();
+        
+        DeploymentPlan plan = camp.pdp().parseDeploymentPlan(Streams.newReaderWithContents(yaml));
+        
+        // TODO #2 parse brooklyn.catalog metadata, bundles etc.
+        // for now take the name from the plan or from a single service type therein
+        
+        // TODO #3 version info
+        
+        // TODO #1 build the catalog item from the plan (as CatalogItem<Entity> ?)
+//        plan.getName()
+        // TODO #2 then support instantiating from the item, replacing 
+        
         throw new UnsupportedOperationException();
     }
 
@@ -137,7 +154,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
         return itemDto;
     }
 
-    @Override
+    @Override @Deprecated
     public void addItem(CatalogItem<?> item) {
         log.debug("Adding manual catalog item to "+mgmt+": "+item);
         Preconditions.checkNotNull(item, "item");
@@ -145,7 +162,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
         manualAdditionsCatalog.addEntry(getAbstractCatalogItem(item));
     }
 
-    @Override
+    @Override @Deprecated
     public CatalogItem<?> addItem(Class<?> type) {
         log.debug("Adding manual catalog item to "+mgmt+": "+type);
         Preconditions.checkNotNull(type, "type");

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5c3d32ce/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/BrooklynServerConfig.java b/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
index f564176..1222392 100644
--- a/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
+++ b/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
@@ -1,6 +1,7 @@
 package brooklyn.config;
 
 import static brooklyn.entity.basic.ConfigKeys.newStringConfigKey;
+import io.brooklyn.camp.CampPlatform;
 
 import java.io.File;
 import java.util.Map;
@@ -12,6 +13,7 @@ import org.slf4j.LoggerFactory;
 import brooklyn.entity.basic.ConfigKeys;
 import brooklyn.management.ManagementContext;
 import brooklyn.util.exceptions.Exceptions;
+import brooklyn.util.guava.Maybe;
 import brooklyn.util.os.Os;
 
 /** config keys for the brooklyn server */
@@ -134,4 +136,14 @@ public class BrooklynServerConfig {
     public static final ConfigKey<Boolean> USE_OSGI = ConfigKeys.newBooleanConfigKey("brooklyn.osgi.enabled",
         "Whether OSGi is enabled, defaulting to true", true);
 
+    public static final ConfigKey<CampPlatform> CAMP_PLATFORM = ConfigKeys.newConfigKey(CampPlatform.class, "brooklyn.camp.platform",
+        "Config set at brooklyn management platform to find the CampPlatform instance (bi-directional)");
+
+    /** Returns the CAMP platform associated with a management context, if there is one. */
+    public static Maybe<CampPlatform> getCampPlatform(ManagementContext mgmt) {
+        CampPlatform result = mgmt.getConfig().getConfig(BrooklynServerConfig.CAMP_PLATFORM);
+        if (result!=null) return Maybe.of(result);
+        return Maybe.absent("No CAMP Platform is registered with this Brooklyn management context.");
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5c3d32ce/core/src/main/java/brooklyn/entity/basic/BrooklynConfigKeys.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BrooklynConfigKeys.java b/core/src/main/java/brooklyn/entity/basic/BrooklynConfigKeys.java
index 90e52ee..4ed5b88 100644
--- a/core/src/main/java/brooklyn/entity/basic/BrooklynConfigKeys.java
+++ b/core/src/main/java/brooklyn/entity/basic/BrooklynConfigKeys.java
@@ -1,13 +1,15 @@
 package brooklyn.entity.basic;
 
-import static brooklyn.entity.basic.ConfigKeys.*;
+import static brooklyn.entity.basic.ConfigKeys.newBooleanConfigKey;
+import static brooklyn.entity.basic.ConfigKeys.newConfigKey;
+import static brooklyn.entity.basic.ConfigKeys.newConfigKeyWithPrefix;
+import static brooklyn.entity.basic.ConfigKeys.newStringConfigKey;
 import brooklyn.config.BrooklynServerConfig;
 import brooklyn.config.ConfigKey;
 import brooklyn.event.basic.BasicAttributeSensorAndConfigKey;
 import brooklyn.event.basic.TemplatedStringAttributeSensorAndConfigKey;
 import brooklyn.util.internal.ssh.ShellTool;
 import brooklyn.util.internal.ssh.SshTool;
-import brooklyn.util.os.Os;
 import brooklyn.util.time.Duration;
 
 import com.google.common.base.Preconditions;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5c3d32ce/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/BrooklynCampConstants.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/BrooklynCampConstants.java b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/BrooklynCampConstants.java
index b1821b9..9798407 100644
--- a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/BrooklynCampConstants.java
+++ b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/BrooklynCampConstants.java
@@ -1,9 +1,9 @@
 package io.brooklyn.camp.brooklyn;
 
 import io.brooklyn.camp.CampPlatform;
+import brooklyn.config.BrooklynServerConfig;
 import brooklyn.config.ConfigKey;
 import brooklyn.config.ConfigKey.HasConfigKey;
-import brooklyn.entity.basic.ConfigKeys;
 import brooklyn.event.basic.BasicAttributeSensorAndConfigKey;
 
 public class BrooklynCampConstants {
@@ -19,7 +19,6 @@ public class BrooklynCampConstants {
     public static final HasConfigKey<String> TEMPLATE_ID = new BasicAttributeSensorAndConfigKey<String>(String.class, "camp.template.id", 
         "UID of the component in the CAMP template from which this entity was created");
 
-    public static final ConfigKey<CampPlatform> CAMP_PLATFORM = ConfigKeys.newConfigKey(CampPlatform.class, "brooklyn.camp.platform",
-        "Config set at brooklyn management platform to find the CampPlatform instance (bi-directional)");
+    public static final ConfigKey<CampPlatform> CAMP_PLATFORM = BrooklynServerConfig.CAMP_PLATFORM;
 
 }