You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2014/11/05 01:37:29 UTC
[5/6] git commit: Fix Riak install on Ubuntu
Fix Riak install on Ubuntu
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/5345fba7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/5345fba7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/5345fba7
Branch: refs/heads/master
Commit: 5345fba7313ed93b2cd37271f43b5de2c7c670af
Parents: 2995857
Author: Aled Sage <al...@gmail.com>
Authored: Tue Nov 4 00:39:58 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Nov 4 12:25:36 2014 +0000
----------------------------------------------------------------------
.../brooklyn/entity/nosql/riak/RiakNode.java | 13 +++++--
.../entity/nosql/riak/RiakNodeSshDriver.java | 39 ++++++++++++--------
2 files changed, 33 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5345fba7/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 50089bc..6285059 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
@@ -71,10 +71,15 @@ public interface RiakNode extends SoftwareProcess {
"URL pattern for downloading the linux RPM installer (will substitute things like ${version} automatically)",
"http://s3.amazonaws.com/downloads.basho.com/riak/${entity.majorVersion}/${entity.fullVersion}/rhel/${entity.osMajorVersion}/riak-${entity.fullVersion}-1.el6.x86_64.rpm");
- @SetFromFlag("downloadUrlUbuntuDebian")
- AttributeSensorAndConfigKey DOWNLOAD_URL_UBUNTU_DEBIAN = new TemplatedStringAttributeSensorAndConfigKey("download.url.ubuntudebian",
- "URL pattern for downloading the linux RPM installer (will substitute things like ${version} automatically)",
- "http://s3.amazonaws.com/downloads.basho.com/riak/${entity.majorVersion}/${entity.fullVersion}/$OS_NAME/$OS_RELEASE/riak_${entity.fullVersion}-1_amd64.deb");
+ @SetFromFlag("downloadUrlUbuntu")
+ AttributeSensorAndConfigKey DOWNLOAD_URL_UBUNTU = new TemplatedStringAttributeSensorAndConfigKey("download.url.ubuntu",
+ "URL pattern for downloading the linux Ubuntu installer (will substitute things like ${version} automatically)",
+ "http://s3.amazonaws.com/downloads.basho.com/riak/${entity.majorVersion}/${entity.fullVersion}/ubuntu/$OS_RELEASE/riak_${entity.fullVersion}-1_amd64.deb");
+
+ @SetFromFlag("downloadUrlDebian")
+ AttributeSensorAndConfigKey DOWNLOAD_URL_DEBIAN = new TemplatedStringAttributeSensorAndConfigKey("download.url.debian",
+ "URL pattern for downloading the linux Debian installer (will substitute things like ${version} automatically)",
+ "http://s3.amazonaws.com/downloads.basho.com/riak/${entity.majorVersion}/${entity.fullVersion}/debian/$OS_RELEASE/riak_${entity.fullVersion}-1_amd64.deb");
@SetFromFlag("downloadUrlMac")
AttributeSensorAndConfigKey DOWNLOAD_URL_MAC = new TemplatedStringAttributeSensorAndConfigKey("download.url.mac",
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5345fba7/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 42189f6..62ca6b3 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
@@ -18,7 +18,13 @@
*/
package brooklyn.entity.nosql.riak;
-import static brooklyn.util.ssh.BashCommands.*;
+import static brooklyn.util.ssh.BashCommands.INSTALL_CURL;
+import static brooklyn.util.ssh.BashCommands.INSTALL_TAR;
+import static brooklyn.util.ssh.BashCommands.alternatives;
+import static brooklyn.util.ssh.BashCommands.chainGroup;
+import static brooklyn.util.ssh.BashCommands.commandToDownloadUrlAs;
+import static brooklyn.util.ssh.BashCommands.ok;
+import static brooklyn.util.ssh.BashCommands.sudo;
import static java.lang.String.format;
import java.util.List;
@@ -44,14 +50,6 @@ import brooklyn.util.text.Strings;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-import java.util.Map;
-
-import static brooklyn.util.ssh.BashCommands.*;
-import static java.lang.String.format;
// TODO: Alter -env ERL_CRASH_DUMP path in vm.args
public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implements RiakNodeDriver {
@@ -120,18 +118,29 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
String saveAsYum = "riak.rpm";
String saveAsApt = "riak.deb";
OsDetails osDetails = getMachine().getOsDetails();
+
+ String downloadUrl;
+ 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.
+ // TODO Debian support (default debian image fails with 'sudo: command not found')
+ downloadUrl = entity.getAttribute(RiakNode.DOWNLOAD_URL_DEBIAN);
+ osReleaseCmd = osDetails.getVersion().substring(0, osDetails.getVersion().indexOf("."));
+ } else {
+ // assume Ubuntu
+ downloadUrl = entity.getAttribute(RiakNode.DOWNLOAD_URL_UBUNTU);
+ osReleaseCmd = "`lsb_release -sc` && " +
+ "export OS_RELEASE=`([[ \"lucid natty precise\" =~ (^| )\\$OS_RELEASE($| ) ]] && echo $OS_RELEASE || echo precise)`";
+ }
String apt = chainGroup(
//debian fix
"export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"which apt-get",
ok(sudo("apt-get -y --allow-unauthenticated install logrotate libpam0g-dev libssl0.9.8")),
"export OS_NAME=" + Strings.toLowerCase(osDetails.getName()),
- // TODO: Debian support (default debian image fails with 'sudo: command not found')
- "debian".equals(osDetails.getName()) ?
- "export OS_RELEASE=" + osDetails.getVersion().substring(0, osDetails.getVersion().indexOf(".")) :
- "export OS_RELEASE=`lsb_release -sc` && " +
- "export OS_RELEASE=`([[ \"lucid natty precise\" =~ (^| )\\$OS_RELEASE($| ) ]] && echo $OS_RELEASE || echo precise)`",
- String.format("wget -O %s %s", saveAsApt, entity.getAttribute(RiakNode.DOWNLOAD_URL_UBUNTU_DEBIAN)),
+ "export OS_RELEASE=" + osReleaseCmd,
+ String.format("wget -O %s %s", saveAsApt, downloadUrl),
sudo(String.format("dpkg -i %s", saveAsApt)));
String yum = chainGroup(
"which yum",