Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master ba5dece6a -> f3e0430a0


Basho Riak - Linux Install

Install from packagecloud.io


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

Branch: refs/heads/master
Commit: 3737c11b1bab7806a4cc3cc576259926907f801c
Parents: a440080
Author: Valentin Aitken <[email protected]>
Authored: Wed Feb 25 16:32:01 2015 +0200
Committer: Valentin Aitken <[email protected]>
Committed: Mon Mar 2 12:08:03 2015 +0200

----------------------------------------------------------------------
 .../entity/nosql/riak/RiakNodeSshDriver.java    | 33 ++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3737c11b/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 8e3e28c..9ecb5df 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
@@ -95,7 +95,8 @@ public class RiakNodeSshDriver extends 
AbstractSoftwareProcessSshDriver implemen
         OsDetails osDetails = getMachine().getMachineDetails().getOsDetails();
         List<String> commands = Lists.newLinkedList();
         if (osDetails.isLinux()) {
-            commands.addAll(installLinux(getExpandedInstallDir()));
+//            commands.addAll(installLinux(getExpandedInstallDir()));
+            commands.addAll(installPackageCloud());
         } else if (osDetails.isMac()) {
             isPackageInstall = false;
             commands.addAll(installMac());
@@ -124,7 +125,7 @@ public class RiakNodeSshDriver extends 
AbstractSoftwareProcessSshDriver implemen
         String osReleaseCmd;
         if ("debian".equalsIgnoreCase(osDetails.getName())) {
             // TODO osDetails.getName() is returning "linux", instead of 
debian/ubuntu on AWS with jenkins image,
-            //      running as integration test targetting localhost. 
+            //      running as integration test targetting localhost.
             // TODO Debian support (default debian image fails with 'sudo: 
command not found')
             downloadUrl = 
(String)entity.getAttribute(RiakNode.DOWNLOAD_URL_DEBIAN);
             osReleaseCmd = osDetails.getVersion().substring(0, 
osDetails.getVersion().indexOf("."));
@@ -156,6 +157,34 @@ public class RiakNodeSshDriver extends 
AbstractSoftwareProcessSshDriver implemen
                 .add("ln -s `which riak-admin` " + Urls.mergePaths(installBin, 
"riak-admin"))
                 .build();
     }
+    
+    private List<String> installPackageCloud() {
+        return ifExecutable0Else1("yum", installDebianBased(), 
installRpmBased());
+    }
+
+    private ImmutableList<String> installDebianBased() {
+        ImmutableList.Builder<String> commands = 
ImmutableList.<String>builder();
+        commands.add("curl 
https://packagecloud.io/install/repositories/basho/riak/script.deb | sudo 
bash");
+        commands.add("sudo apt-get install --assume-yes riak");
+        return commands.build();
+    }
+    
+    private ImmutableList<String> installRpmBased() {
+        ImmutableList.Builder<String> commands = 
ImmutableList.<String>builder();
+        commands.add("curl 
https://packagecloud.io/install/repositories/basho/riak/script.rpm | sudo 
bash");
+        commands.add("sudo yum install -y riak");
+        return commands.build();
+    }
+
+    private static ImmutableList<String> ifExecutable0Else1(String command, 
List<String> ifTrue, List<String> otherwise) {
+        ImmutableList.Builder<String> commands = 
ImmutableList.<String>builder();
+        commands.add(String.format("if test -z `which %s`; then", command));
+        commands.addAll(ifTrue);
+        commands.add("else");
+        commands.addAll(otherwise);
+        commands.add("fi");
+        return commands.build();
+    }
 
     protected List<String> installMac() {
         String saveAs = resolver.getFilename();

Reply via email to