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