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 2016/02/01 18:46:59 UTC
[41/50] brooklyn-library git commit: Redis: add missing interfaces
Redis: add missing interfaces
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-library/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-library/commit/e4098ab6
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-library/tree/e4098ab6
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-library/diff/e4098ab6
Branch: refs/heads/0.5.0
Commit: e4098ab6d71c4a1c64d316861e1b728c7da81479
Parents: c06d64c
Author: Aled Sage <al...@gmail.com>
Authored: Mon Apr 22 13:09:04 2013 +0100
Committer: Andrew Kennedy <an...@cloudsoftcorp.com>
Committed: Wed Apr 24 13:25:44 2013 +0100
----------------------------------------------------------------------
.../entity/nosql/redis/RedisCluster.java | 19 +++++++++
.../brooklyn/entity/nosql/redis/RedisShard.java | 9 ++++
.../brooklyn/entity/nosql/redis/RedisSlave.java | 12 ++++++
.../brooklyn/entity/nosql/redis/RedisStore.java | 43 ++++++++++++++++++++
.../entity/nosql/redis/RedisEc2LiveTest.java | 3 +-
5 files changed, 85 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/e4098ab6/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisCluster.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisCluster.java b/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisCluster.java
new file mode 100644
index 0000000..57b3682
--- /dev/null
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisCluster.java
@@ -0,0 +1,19 @@
+package brooklyn.entity.nosql.redis;
+
+import brooklyn.catalog.Catalog;
+import brooklyn.entity.Entity;
+import brooklyn.entity.group.DynamicCluster;
+import brooklyn.entity.proxying.ImplementedBy;
+import brooklyn.entity.trait.Startable;
+
+/**
+ * A cluster of {@link RedisStore}s with one master and a group of slaves.
+ *
+ * The slaves are contained in a {@link DynamicCluster} which can be resized by a policy if required.
+ *
+ * TODO add sensors with aggregated Redis statistics from cluster
+ */
+@Catalog(name="Redis Cluster", description="Redis is an open-source, networked, in-memory, key-value data store with optional durability", iconUrl="classpath:///redis-logo.jpeg")
+@ImplementedBy(RedisClusterImpl.class)
+public interface RedisCluster extends Entity, Startable {
+}
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/e4098ab6/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisShard.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisShard.java b/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisShard.java
new file mode 100644
index 0000000..7ce30c0
--- /dev/null
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisShard.java
@@ -0,0 +1,9 @@
+package brooklyn.entity.nosql.redis;
+
+import brooklyn.entity.Entity;
+import brooklyn.entity.nosql.Shard;
+import brooklyn.entity.proxying.ImplementedBy;
+
+@ImplementedBy(RedisShardImpl.class)
+public interface RedisShard extends Entity, Shard {
+}
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/e4098ab6/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisSlave.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisSlave.java b/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisSlave.java
new file mode 100644
index 0000000..d433688
--- /dev/null
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisSlave.java
@@ -0,0 +1,12 @@
+package brooklyn.entity.nosql.redis;
+
+import brooklyn.entity.proxying.ImplementedBy;
+
+/**
+ * A {@link RedisStore} configured as a slave.
+ *
+ * The {@code master} property must be set to the master Redis store entity.
+ */
+@ImplementedBy(RedisSlaveImpl.class)
+public interface RedisSlave extends RedisStore {
+}
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/e4098ab6/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisStore.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisStore.java b/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisStore.java
new file mode 100644
index 0000000..a6ce441
--- /dev/null
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/redis/RedisStore.java
@@ -0,0 +1,43 @@
+package brooklyn.entity.nosql.redis;
+
+import brooklyn.catalog.Catalog;
+import brooklyn.config.ConfigKey;
+import brooklyn.entity.basic.SoftwareProcess;
+import brooklyn.entity.nosql.DataStore;
+import brooklyn.entity.proxying.ImplementedBy;
+import brooklyn.event.AttributeSensor;
+import brooklyn.event.basic.BasicAttributeSensor;
+import brooklyn.event.basic.BasicAttributeSensorAndConfigKey;
+import brooklyn.event.basic.BasicConfigKey;
+import brooklyn.event.basic.PortAttributeSensorAndConfigKey;
+import brooklyn.util.flags.SetFromFlag;
+
+/**
+ * An entity that represents a Redis key-value store service.
+ *
+ * TODO add sensors with Redis statistics using INFO command
+ */
+@Catalog(name="Redis Server", description="Redis is an open-source, networked, in-memory, key-value data store with optional durability", iconUrl="classpath:///redis-logo.jpeg")
+@ImplementedBy(RedisStoreImpl.class)
+public interface RedisStore extends SoftwareProcess, DataStore {
+
+ @SetFromFlag("version")
+ public static final BasicConfigKey<String> SUGGESTED_VERSION =
+ new BasicConfigKey<String>(SoftwareProcess.SUGGESTED_VERSION, "2.6.7");
+
+ @SetFromFlag("downloadUrl")
+ public static final BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>(
+ SoftwareProcess.DOWNLOAD_URL, "http://redis.googlecode.com/files/redis-${version}.tar.gz");
+
+ @SetFromFlag("redisPort")
+ public static final PortAttributeSensorAndConfigKey REDIS_PORT = new PortAttributeSensorAndConfigKey("redis.port", "Redis port number", 6379);
+
+ @SetFromFlag("configFile")
+ public static final ConfigKey<String> REDIS_CONFIG_FILE = new BasicConfigKey<String>(String.class, "redis.config.file", "Redis user configuration file");
+
+ public static final AttributeSensor<Integer> UPTIME = new BasicAttributeSensor<Integer>(Integer.class, "redis.uptime", "Redis uptime in seconds");
+
+ public String getAddress();
+
+ public String getConfigData(int port, boolean include);
+}
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/e4098ab6/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisEc2LiveTest.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisEc2LiveTest.java b/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisEc2LiveTest.java
index a3eeb2f..d49fee5 100644
--- a/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisEc2LiveTest.java
+++ b/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisEc2LiveTest.java
@@ -40,8 +40,9 @@ public class RedisEc2LiveTest extends AbstractEc2LiveTest {
}
private Connection getRedisConnection(RedisStore redis) {
+ String hostname = redis.getAttribute(RedisStore.HOSTNAME);
int port = redis.getAttribute(RedisStore.REDIS_PORT);
- Connection connection = new Connection("localhost", port);
+ Connection connection = new Connection(hostname, port);
connection.connect();
return connection;
}