Repository: incubator-brooklyn Updated Branches: refs/heads/master 1f1491740 -> cf4276396
Riak - Create Bucket type effector Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/6c1b5176 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/6c1b5176 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/6c1b5176 Branch: refs/heads/master Commit: 6c1b51761622152a83fdc337580877d2448ac2db Parents: 9a1c59a Author: Valentin Aitken <[email protected]> Authored: Wed Apr 1 13:48:40 2015 +0300 Committer: Valentin Aitken <[email protected]> Committed: Thu Apr 2 00:18:34 2015 +0300 ---------------------------------------------------------------------- .../java/brooklyn/entity/nosql/riak/RiakNode.java | 13 ++++++++----- .../brooklyn/entity/nosql/riak/RiakNodeDriver.java | 16 +++++++++------- .../brooklyn/entity/nosql/riak/RiakNodeImpl.java | 5 +++++ .../entity/nosql/riak/RiakNodeSshDriver.java | 15 ++++++++++++++- 4 files changed, 36 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6c1b5176/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java index 7fe93fb..30391fb 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java @@ -183,18 +183,21 @@ public interface RiakNode extends SoftwareProcess { String getOsMajorVersion(); @Effector(description = "Join the Riak cluster on the given node") - public void joinCluster(@EffectorParam(name = "nodeName") String nodeName); + void joinCluster(@EffectorParam(name = "nodeName") String nodeName); @Effector(description = "Leave the Riak cluster") - public void leaveCluster(); + void leaveCluster(); @Effector(description = "Remove the given node from the Riak cluster") - public void removeNode(@EffectorParam(name = "nodeName") String nodeName); + void removeNode(@EffectorParam(name = "nodeName") String nodeName); @Effector(description = "Recover and join the Riak cluster on the given node") - public void recoverFailedNode(@EffectorParam(name = "nodeName") String nodeName); + void recoverFailedNode(@EffectorParam(name = "nodeName") String nodeName); @Effector(description = "Commit changes made to the Riak cluster") - public void commitCluster(); + void commitCluster(); + @Effector(description = "Apply bucket type") + void applyBucketType(@EffectorParam(name = "bucketTypeName") String bucketTypeName, + @EffectorParam(name = "bucketTypeProperties") String bucketTypeProperties); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6c1b5176/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeDriver.java index 7da618a..a6c4805 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeDriver.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeDriver.java @@ -22,17 +22,19 @@ import brooklyn.entity.basic.SoftwareProcessDriver; public interface RiakNodeDriver extends SoftwareProcessDriver { - public String getRiakEtcDir(); + String getRiakEtcDir(); - public void joinCluster(String nodeName); + void joinCluster(String nodeName); - public void leaveCluster(); + void leaveCluster(); - public void removeNode(String nodeName); + void removeNode(String nodeName); - public void recoverFailedNode(String nodeName); + void recoverFailedNode(String nodeName); - public void commitCluster(); + void commitCluster(); - public String getOsMajorVersion(); + String getOsMajorVersion(); + + void applyBucketType(String bucketTypeName, String bucketTypeProperties); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6c1b5176/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java index 57def1a..7bb803c 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java @@ -208,6 +208,11 @@ public class RiakNodeImpl extends SoftwareProcessImpl implements RiakNode { } @Override + public void applyBucketType(String bucketTypeName, String bucketTypeProperties) { + getDriver().applyBucketType(bucketTypeName, bucketTypeProperties); + } + + @Override public void recoverFailedNode(String nodeName) { getDriver().recoverFailedNode(nodeName); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6c1b5176/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java index 7a4d952..1056198 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java @@ -28,6 +28,7 @@ import static brooklyn.util.ssh.BashCommands.ifExecutableElse; import static brooklyn.util.ssh.BashCommands.ifNotExecutable; import static brooklyn.util.ssh.BashCommands.ok; import static brooklyn.util.ssh.BashCommands.sudo; +import static brooklyn.util.text.StringEscapes.BashStringEscapes.escapeLiteralForDoubleQuotedBash; import static java.lang.String.format; import java.net.URI; @@ -54,10 +55,10 @@ import brooklyn.util.text.Strings; import com.google.common.base.Joiner; import com.google.common.base.Optional; +import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; - // TODO: Alter -env ERL_CRASH_DUMP path in vm.args public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implements RiakNodeDriver { @@ -474,6 +475,18 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen } @Override + public void applyBucketType(String bucketTypeName, String bucketTypeProperties) { + newScript("bucket-type create " + bucketTypeName) + .body.append(sudo(format( + "%s bucket-type create %s %s", + getRiakAdminCmd(), + bucketTypeName, + escapeLiteralForDoubleQuotedBash(bucketTypeProperties)))) + .failOnNonZeroResultCode() + .execute(); + } + + @Override public void recoverFailedNode(String nodeName) { //TODO find ways to detect a faulty/failed node //argument passed 'node' is any working node in the riak cluster
