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();
