You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by gr...@apache.org on 2014/11/03 19:39:31 UTC

[2/4] git commit: Fixes for subnetHostname in Riak for Clocker

Fixes for subnetHostname in Riak for Clocker


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

Branch: refs/heads/master
Commit: 1c17e735a1c027ae91c7dc00bdb1a12dd655f16d
Parents: 4abc623
Author: Andrew Kennedy <gr...@apache.org>
Authored: Mon Nov 3 15:00:03 2014 +0000
Committer: Andrew Kennedy <gr...@apache.org>
Committed: Mon Nov 3 17:40:51 2014 +0000

----------------------------------------------------------------------
 .../jclouds/JcloudsSshMachineLocation.java       | 19 +++----------------
 .../basic/AbstractSoftwareProcessSshDriver.java  |  2 ++
 .../entity/nosql/riak/RiakNodeDriver.java        |  2 --
 .../entity/nosql/riak/RiakNodeSshDriver.java     | 19 +++++--------------
 4 files changed, 10 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1c17e735/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsSshMachineLocation.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsSshMachineLocation.java b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsSshMachineLocation.java
index d218ec2..e0ceffc 100644
--- a/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsSshMachineLocation.java
+++ b/locations/jclouds/src/main/java/brooklyn/location/jclouds/JcloudsSshMachineLocation.java
@@ -160,24 +160,11 @@ public class JcloudsSshMachineLocation extends SshMachineLocation implements Has
         return node.getPrivateAddresses();
     }
 
-    /** returns the hostname (or sometimes IP) for use by peers in the same subnet,
-     * defaulting to public hostname if nothing special
-     * <p>
-     * for use e.g. in clouds like amazon where other machines
-     * in the same subnet need to use a different IP
-     */
+    /** In most clouds, the public hostname is the only way to ensure VMs in different zones can access each other. */
     @Override
     public String getSubnetHostname() {
         String publicHostname = jcloudsParent.getPublicHostname(node, Optional.<HostAndPort>absent(), getAllConfigBag());
-        
-        if ("aws-ec2".equals(jcloudsParent.getProvider())) {
-            // prefer hostname over IP for aws (resolves to private ip in subnet, and to public from outside)
-            if (!Networking.isValidIp4(publicHostname)) {
-                return publicHostname; // assume it's a hostname; could check for ip6!
-            }
-        }
-        Optional<String> privateAddress = getPrivateAddress();
-        return privateAddress.isPresent() ? privateAddress.get() : publicHostname;
+        return publicHostname;
     }
 
     @Override
@@ -186,7 +173,7 @@ public class JcloudsSshMachineLocation extends SshMachineLocation implements Has
         if (privateAddress.isPresent()) {
             return privateAddress.get();
         }
-        
+
         String hostname = jcloudsParent.getPublicHostname(node, Optional.<HostAndPort>absent(), getAllConfigBag());
         if (hostname != null && !Networking.isValidIp4(hostname)) {
             try {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1c17e735/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java
index ffab96b..0e54a20 100644
--- a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java
+++ b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java
@@ -258,6 +258,8 @@ public abstract class AbstractSoftwareProcessSshDriver extends AbstractSoftwareP
     public SshMachineLocation getMachine() { return getLocation(); }
     public String getHostname() { return entity.getAttribute(Attributes.HOSTNAME); }
     public String getAddress() { return entity.getAttribute(Attributes.ADDRESS); }
+    public String getSubnetHostname() { return entity.getAttribute(Attributes.SUBNET_HOSTNAME); }
+    public String getSubnetAddress() { return entity.getAttribute(Attributes.SUBNET_ADDRESS); }
 
     protected Map<String, Object> getSshFlags() {
         return SshEffectorTasks.getSshFlags(getEntity(), getMachine());

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1c17e735/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 7275bbf..3669c1c 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,8 +22,6 @@ import brooklyn.entity.basic.SoftwareProcessDriver;
 
 public interface RiakNodeDriver extends SoftwareProcessDriver {
 
-    public String getSubnetHostname();
-
     public String getRiakEtcDir();
 
     public void joinCluster(String nodeName);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1c17e735/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 a596e6f..830a798 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
@@ -103,11 +103,8 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
     }
 
     private List<String> installLinux(String expandedInstallDir) {
-
         DynamicTasks.queueIfPossible(SshTasks.dontRequireTtyForSudo(getMachine(), SshTasks.OnFailingTask.WARN_OR_IF_DYNAMIC_FAIL_MARKING_INESSENTIAL)).orSubmitAndBlock();
 
-        isPackageInstall = true;
-
         String installBin = Urls.mergePaths(expandedInstallDir, "bin");
         String saveAsYum = "riak.rpm";
         String saveAsApt = "riak.deb";
@@ -203,7 +200,7 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
         customizeScript.failOnNonZeroResultCode().execute();
 
         //set the riak node name
-        entity.setAttribute(RiakNode.RIAK_NODE_NAME, format("riak@%s", getEntity().getAttribute(Attributes.SUBNET_HOSTNAME)));
+        entity.setAttribute(RiakNode.RIAK_NODE_NAME, format("riak@%s", getSubnetHostname()));
     }
 
     @Override
@@ -231,11 +228,10 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
 
     @Override
     public void stop() {
-
         leaveCluster();
 
         String command = format("%s stop", getRiakCmd());
-        command = isPackageInstall ? "sudo " + command : command;
+        command = isPackageInstall ? sudo(command) : command;
 
         ScriptHelper stopScript = newScript(ImmutableMap.of(USE_PID_FILE, false), STOPPING)
                 .body.append(command);
@@ -248,7 +244,7 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
 
         int result = stopScript.failOnNonZeroResultCode().execute();
         if (result != 0) {
-            newScript(ImmutableMap.of(USE_PID_FILE, ""), STOPPING).execute();
+            newScript(ImmutableMap.of(USE_PID_FILE, false), STOPPING).execute();
         }
     }
 
@@ -335,7 +331,6 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
 
     @Override
     public void commitCluster() {
-
         if (hasJoinedCluster()) {
             ScriptHelper commitClusterScript = newScript("commitCluster")
                     .body.append(sudo(format("%s cluster plan", getRiakAdminCmd())))
@@ -366,10 +361,10 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
 
 
             String stopCommand = format("%s stop", getRiakCmd());
-            stopCommand = isPackageInstall ? "sudo " + stopCommand : stopCommand;
+            stopCommand = isPackageInstall ? sudo(stopCommand) : stopCommand;
 
             String startCommand = format("%s start >/dev/null 2>&1 < /dev/null &", getRiakCmd());
-            startCommand = isPackageInstall ? "sudo " + startCommand : startCommand;
+            startCommand = isPackageInstall ? sudo(startCommand) : startCommand;
 
             ScriptHelper recoverNodeScript = newScript("recoverNode")
                     .body.append(stopCommand)
@@ -394,10 +389,6 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
         }
     }
 
-    public String getSubnetHostname() {
-        return getEntity().getAttribute(Attributes.SUBNET_HOSTNAME);
-    }
-
     private Boolean hasJoinedCluster() {
         return ((RiakNode) entity).hasJoinedCluster();
     }