You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2015/05/22 11:39:21 UTC
[01/11] incubator-brooklyn git commit: Riak update packagecloud url
Repository: incubator-brooklyn
Updated Branches:
refs/heads/master 321d88790 -> 4d673a824
Riak update packagecloud url
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/555de5d1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/555de5d1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/555de5d1
Branch: refs/heads/master
Commit: 555de5d12fa7b8a41904f5274af1638a83de23ff
Parents: 8eb8231
Author: Valentin Aitken <va...@cloudsoftcorp.com>
Authored: Tue May 5 04:48:53 2015 +0300
Committer: Valentin Aitken <va...@cloudsoftcorp.com>
Committed: Tue May 12 00:15:19 2015 +0300
----------------------------------------------------------------------
.../main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/555de5d1/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 5bd7867..9ed5ef1 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
@@ -198,14 +198,14 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
private ImmutableList<String> installDebianBased() {
return ImmutableList.<String>builder()
- .add("curl https://packagecloud.io/install/repositories/basho/riak/script.deb | " + BashCommands.sudo("bash"))
+ .add("curl https://packagecloud.io/install/repositories/basho/riak/script.deb.sh | " + BashCommands.sudo("bash"))
.add(BashCommands.sudo("apt-get install --assume-yes riak=" + getEntity().getFullVersion() + "-1"))
.build();
}
private ImmutableList<String> installRpmBased() {
return ImmutableList.<String>builder()
- .add("curl https://packagecloud.io/install/repositories/basho/riak/script.rpm | " + BashCommands.sudo("bash"))
+ .add("curl https://packagecloud.io/install/repositories/basho/riak/script.rpm.sh | " + BashCommands.sudo("bash"))
.add(BashCommands.sudo("yum install -y riak-" + getEntity().getFullVersion() + "*"))
.build();
}
[04/11] incubator-brooklyn git commit: chef delete uses `-y`,
and ensure validity of node name
Posted by he...@apache.org.
chef delete uses `-y`, and ensure validity of node name
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/a49162f5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/a49162f5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/a49162f5
Branch: refs/heads/master
Commit: a49162f5bbb7a57d7b8185ecbdb2ca5e0fc16a61
Parents: 7ab18f6
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon May 18 11:36:08 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon May 18 11:36:42 2015 +0100
----------------------------------------------------------------------
.../java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a49162f5/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java b/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
index e82aaec..46b8894 100644
--- a/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
+++ b/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
@@ -101,7 +101,7 @@ public class ChefLifecycleEffectorTasks extends MachineLifecycleEffectorTasks im
// in addition to supporting hard-coded node names (which is all we support so far).
String nodeName = entity().getConfig(ChefConfig.CHEF_NODE_NAME);
- if (Strings.isNonBlank(nodeName)) return nodeName;
+ if (Strings.isNonBlank(nodeName)) return Strings.makeValidFilename(nodeName);
// node name is taken from ID of this entity, if not specified
return entity().getId();
}
@@ -306,8 +306,8 @@ public class ChefLifecycleEffectorTasks extends MachineLifecycleEffectorTasks im
// (ie allow us to actually decommission the machine)
TaskTags.markInessential(
new KnifeTaskFactory<String>("delete node and client registration at chef server")
- .add("knife node delete "+getNodeName())
- .add("knife client delete "+getNodeName())
+ .add("knife node delete "+getNodeName()+" -y")
+ .add("knife client delete "+getNodeName()+" -y")
.requiringZeroAndReturningStdout()
.newTask() ));
}
[07/11] incubator-brooklyn git commit: Fix MachineEntity exec
effector to return stdout
Posted by he...@apache.org.
Fix MachineEntity exec effector to return stdout
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/d3fb57e4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/d3fb57e4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/d3fb57e4
Branch: refs/heads/master
Commit: d3fb57e410a3ac87926d48dae48fed5be9c4cae0
Parents: 776ad43
Author: Andrew Kennedy <gr...@apache.org>
Authored: Thu May 21 16:16:16 2015 +0100
Committer: Andrew Kennedy <gr...@apache.org>
Committed: Thu May 21 16:22:32 2015 +0100
----------------------------------------------------------------------
.../entity/machine/MachineEntityImpl.java | 23 ++++++++++----------
1 file changed, 12 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d3fb57e4/software/base/src/main/java/brooklyn/entity/machine/MachineEntityImpl.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/machine/MachineEntityImpl.java b/software/base/src/main/java/brooklyn/entity/machine/MachineEntityImpl.java
index 67f66d3..a0f45a9 100644
--- a/software/base/src/main/java/brooklyn/entity/machine/MachineEntityImpl.java
+++ b/software/base/src/main/java/brooklyn/entity/machine/MachineEntityImpl.java
@@ -35,6 +35,7 @@ import brooklyn.location.basic.Machines;
import brooklyn.location.basic.SshMachineLocation;
import brooklyn.util.exceptions.Exceptions;
import brooklyn.util.task.DynamicTasks;
+import brooklyn.util.task.system.ProcessTaskStub.ScriptReturnType;
import brooklyn.util.task.system.ProcessTaskWrapper;
import brooklyn.util.text.Strings;
import brooklyn.util.time.Duration;
@@ -157,25 +158,25 @@ public class MachineEntityImpl extends EmptySoftwareProcessImpl implements Machi
@Override
public String execCommandTimeout(String command, Duration timeout) {
+ ProcessTaskWrapper<String> task = SshEffectorTasks.ssh(command)
+ .environmentVariables(((AbstractSoftwareProcessSshDriver) getDriver()).getShellEnvironment())
+ .requiringZeroAndReturningStdout()
+ .machine(getMachine())
+ .summary(command)
+ .newTask();
+
try {
- ProcessTaskWrapper<Integer> task = SshEffectorTasks.ssh(command)
- .environmentVariables(((AbstractSoftwareProcessSshDriver) getDriver()).getShellEnvironment())
- .machine(getMachine())
- .summary(command)
- .newTask();
- Integer result = DynamicTasks.queueIfPossible(task)
+ String result = DynamicTasks.queueIfPossible(task)
.executionContext(this)
.orSubmitAsync()
.asTask()
.get(timeout);
- if (result != 0) {
- LOG.warn("Command failed: {}", task.getStderr());
- throw new IllegalStateException("Command failed, return code " + result);
- }
- return task.getStdout();
+ return result;
} catch (TimeoutException te) {
throw new IllegalStateException("Timed out running command: " + command);
} catch (Exception e) {
+ Integer exitCode = task.getExitCode();
+ LOG.warn("Command failed, return code {}: {}", exitCode == null ? -1 : exitCode, task.getStderr());
throw Exceptions.propagate(e);
}
}
[05/11] incubator-brooklyn git commit: Mirror summary for
BrooklynEntityMirror
Posted by he...@apache.org.
Mirror summary for BrooklynEntityMirror
Also extract the catalogItemId in a separate attribute for easier access.
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/644d6cd0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/644d6cd0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/644d6cd0
Branch: refs/heads/master
Commit: 644d6cd0244d02c5d8ee6ae7c5cc53398067ead7
Parents: d0cbcf3
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Tue May 12 16:03:51 2015 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Tue May 19 23:22:59 2015 +0300
----------------------------------------------------------------------
.../entity/brooklynnode/BrooklynEntityMirror.java | 7 +++++++
.../brooklynnode/BrooklynEntityMirrorImpl.java | 18 ++++++++++++++----
.../BrooklynEntityMirrorIntegrationTest.java | 8 ++++++++
3 files changed, 29 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/644d6cd0/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynEntityMirror.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynEntityMirror.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynEntityMirror.java
index 6cd8709..b19c9dc 100644
--- a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynEntityMirror.java
+++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynEntityMirror.java
@@ -18,6 +18,8 @@
*/
package brooklyn.entity.brooklynnode;
+import java.util.Map;
+
import brooklyn.catalog.Catalog;
import brooklyn.config.ConfigKey;
import brooklyn.entity.Entity;
@@ -54,6 +56,11 @@ public interface BrooklynEntityMirror extends Entity {
"Frequency to poll for client sensors", Duration.FIVE_SECONDS);
public static final AttributeSensor<String> MIRROR_STATUS = Sensors.newStringSensor("brooklyn.mirror.monitoring_status");
+ @SuppressWarnings("rawtypes")
+ public static final AttributeSensor<Map> MIRROR_SUMMARY = Sensors.newSensor(Map.class, "brooklyn.mirror.summary",
+ "The json map returned by the entity rest endpoint (ie the EntitySummary model)");
+ public static final AttributeSensor<String> MIRROR_CATALOG_ITEM_ID = Sensors.newStringSensor("brooklyn.mirror.catalog_item_id",
+ "The catalog item id of the mirrored entity in the remote brooklyn");
public EntityHttpClient http();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/644d6cd0/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynEntityMirrorImpl.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynEntityMirrorImpl.java b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynEntityMirrorImpl.java
index 80b19f5..48ed3a8 100644
--- a/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynEntityMirrorImpl.java
+++ b/software/base/src/main/java/brooklyn/entity/brooklynnode/BrooklynEntityMirrorImpl.java
@@ -51,6 +51,16 @@ import com.google.common.net.MediaType;
import com.google.gson.Gson;
public class BrooklynEntityMirrorImpl extends AbstractEntity implements BrooklynEntityMirror {
+ @SuppressWarnings("rawtypes")
+ private class MirrorSummary implements Function<HttpToolResponse, Map> {
+ @Override
+ public Map apply(HttpToolResponse input) {
+ Map<?, ?> entitySummary = new Gson().fromJson(input.getContentAsString(), Map.class);
+ String catalogItemId = (String)entitySummary.get("catalogItemId");
+ setAttribute(MIRROR_CATALOG_ITEM_ID, catalogItemId);
+ return entitySummary;
+ }
+ }
private HttpFeed mirror;
@@ -108,14 +118,13 @@ public class BrooklynEntityMirrorImpl extends AbstractEntity implements Brooklyn
}
};
- String sensorsUri = Urls.mergePaths(mirroredEntityUrl, "sensors/current-state");
-
final BrooklynEntityMirrorImpl self = this;
mirror = HttpFeed.builder().entity(this)
- .baseUri(sensorsUri)
+ .baseUri(mirroredEntityUrl)
.credentialsIfNotNull(getConfig(BrooklynNode.MANAGEMENT_USER), getConfig(BrooklynNode.MANAGEMENT_PASSWORD))
.period(getConfig(POLL_PERIOD))
.poll(HttpPollConfig.forMultiple()
+ .suburl("/sensors/current-state")
.onSuccess(mirrorSensors)
.onFailureOrException(new Function<Object, Void>() {
@Override
@@ -130,7 +139,8 @@ public class BrooklynEntityMirrorImpl extends AbstractEntity implements Brooklyn
}
return null;
}
- })).build();
+ }))
+ .poll(HttpPollConfig.forSensor(MIRROR_SUMMARY).onSuccess(new MirrorSummary())).build();
populateEffectors();
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/644d6cd0/usage/launcher/src/test/java/brooklyn/entity/brooklynnode/BrooklynEntityMirrorIntegrationTest.java
----------------------------------------------------------------------
diff --git a/usage/launcher/src/test/java/brooklyn/entity/brooklynnode/BrooklynEntityMirrorIntegrationTest.java b/usage/launcher/src/test/java/brooklyn/entity/brooklynnode/BrooklynEntityMirrorIntegrationTest.java
index 4ec0ddb..bb50f5a 100644
--- a/usage/launcher/src/test/java/brooklyn/entity/brooklynnode/BrooklynEntityMirrorIntegrationTest.java
+++ b/usage/launcher/src/test/java/brooklyn/entity/brooklynnode/BrooklynEntityMirrorIntegrationTest.java
@@ -19,6 +19,7 @@
package brooklyn.entity.brooklynnode;
import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -104,7 +105,10 @@ public class BrooklynEntityMirrorIntegrationTest {
public void testServiceMirroring() throws Exception {
setUpServer();
+ String catalogItemId = "test-catalog-item:1.0";
+ String catalogItemIdGA = "test-catalog-item:1.0-GA";
serverApp.setAttribute(TestApplication.MY_ATTRIBUTE, "austria");
+ serverApp.setCatalogItemId(catalogItemId);
String serviceId = serverApp.getId();
Entity mirror = localApp.addChild(EntitySpec.create(BrooklynEntityMirror.class)
@@ -115,10 +119,14 @@ public class BrooklynEntityMirrorIntegrationTest {
);
EntityTestUtils.assertAttributeEqualsEventually(mirror, TestApplication.MY_ATTRIBUTE, "austria");
+ EntityTestUtils.assertAttributeEqualsEventually(mirror, BrooklynEntityMirror.MIRROR_CATALOG_ITEM_ID, catalogItemId);
+ assertTrue(mirror.getAttribute(BrooklynEntityMirror.MIRROR_SUMMARY) != null, "entity summary is null");
log.info("Sensors mirrored are: "+((EntityInternal)mirror).getAllAttributes());
serverApp.setAttribute(TestApplication.MY_ATTRIBUTE, "bermuda");
+ serverApp.setCatalogItemId(catalogItemIdGA);
EntityTestUtils.assertAttributeEqualsEventually(mirror, TestApplication.MY_ATTRIBUTE, "bermuda");
+ EntityTestUtils.assertAttributeEqualsEventually(mirror, BrooklynEntityMirror.MIRROR_CATALOG_ITEM_ID, catalogItemIdGA);
serverApp.stop();
assertUnmanagedEventually(mirror);
[11/11] incubator-brooklyn git commit: This closes #626
Posted by he...@apache.org.
This closes #626
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/4d673a82
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/4d673a82
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/4d673a82
Branch: refs/heads/master
Commit: 4d673a8249624cb9fe894f5eecc79da2d1f8efb9
Parents: e197f11 555de5d
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri May 22 10:39:07 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 22 10:39:07 2015 +0100
----------------------------------------------------------------------
.../nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java | 2 +-
.../main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
[08/11] incubator-brooklyn git commit: This closes #652
Posted by he...@apache.org.
This closes #652
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/52115a16
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/52115a16
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/52115a16
Branch: refs/heads/master
Commit: 52115a16538e270a890dd23e8ad47e4638834767
Parents: 321d887 d3fb57e
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri May 22 10:06:30 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 22 10:06:30 2015 +0100
----------------------------------------------------------------------
.../entity/machine/MachineEntityImpl.java | 23 ++++++++++----------
1 file changed, 12 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
[03/11] incubator-brooklyn git commit: do the node and client
deletion as part of stopping a chef node
Posted by he...@apache.org.
do the node and client deletion as part of stopping a chef node
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/7ab18f67
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/7ab18f67
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/7ab18f67
Branch: refs/heads/master
Commit: 7ab18f6758b28adb46cd51ba593d80c455715443
Parents: d78c172
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu May 14 12:40:01 2015 -0700
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu May 14 12:44:57 2015 -0700
----------------------------------------------------------------------
.../java/brooklyn/entity/chef/ChefConfig.java | 5 +++
.../entity/chef/ChefLifecycleEffectorTasks.java | 33 +++++++++++++++++++-
.../software/MachineLifecycleEffectorTasks.java | 23 +++++++-------
3 files changed, 48 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ab18f67/software/base/src/main/java/brooklyn/entity/chef/ChefConfig.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/chef/ChefConfig.java b/software/base/src/main/java/brooklyn/entity/chef/ChefConfig.java
index 4d01b2c..769d8d0 100644
--- a/software/base/src/main/java/brooklyn/entity/chef/ChefConfig.java
+++ b/software/base/src/main/java/brooklyn/entity/chef/ChefConfig.java
@@ -79,6 +79,11 @@ public interface ChefConfig {
public static final ConfigKey<String> KNIFE_CONFIG_FILE = ConfigKeys.newStringConfigKey("brooklyn.chef.knife.configFile",
"Knife config file (typically knife.rb) to use, including full path; defaults to knife default/global config");
+ @SetFromFlag("chef_node_name")
+ public static final ConfigKey<String> CHEF_NODE_NAME = ConfigKeys.newStringConfigKey("brooklyn.chef.node.nodeName",
+ "Node name to register with the chef server for this entity, if using Chef server and a specific node name is desired; "
+ + "if supplied ,this must be unique across the nodes Chef Server manages; if not supplied, one will be created if needed");
+
// for providing some simple (ssh-based) lifecycle operations and checks
@SetFromFlag("pid_file")
public static final ConfigKey<String> PID_FILE = ConfigKeys.newStringConfigKey("brooklyn.chef.lifecycle.pidFile",
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ab18f67/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java b/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
index 8f7ee31..e82aaec 100644
--- a/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
+++ b/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
@@ -40,6 +40,7 @@ import brooklyn.util.exceptions.Exceptions;
import brooklyn.util.net.Urls;
import brooklyn.util.ssh.BashCommands;
import brooklyn.util.task.DynamicTasks;
+import brooklyn.util.task.TaskTags;
import brooklyn.util.task.Tasks;
import brooklyn.util.task.system.ProcessTaskWrapper;
import brooklyn.util.text.Strings;
@@ -93,6 +94,18 @@ public class ChefLifecycleEffectorTasks extends MachineLifecycleEffectorTasks im
return _serviceName = entity().getConfig(ChefConfig.SERVICE_NAME);
}
+ protected String getNodeName() {
+ // (node name is needed so we can node delete it)
+
+ // TODO would be better if CHEF_NODE_NAME were a freemarker template, could access entity.id, or hostname, etc,
+ // in addition to supporting hard-coded node names (which is all we support so far).
+
+ String nodeName = entity().getConfig(ChefConfig.CHEF_NODE_NAME);
+ if (Strings.isNonBlank(nodeName)) return nodeName;
+ // node name is taken from ID of this entity, if not specified
+ return entity().getId();
+ }
+
public String getWindowsServiceName() {
if (_windowsServiceName!=null) return _windowsServiceName;
return _windowsServiceName = entity().getConfig(ChefConfig.WINDOWS_SERVICE_NAME);
@@ -217,6 +230,7 @@ public class ChefLifecycleEffectorTasks extends MachineLifecycleEffectorTasks im
DynamicTasks.queue(
ChefServerTasks.knifeConvergeTask()
+ .knifeNodeName(getNodeName())
.knifeRunList(Strings.join(runList, ","))
.knifeAddAttributes((Map<? extends Object, ? extends Object>)(Map) attrs.root().get())
.knifeRunTwice(entity().getConfig(CHEF_RUN_CONVERGE_TWICE)) );
@@ -279,11 +293,28 @@ public class ChefLifecycleEffectorTasks extends MachineLifecycleEffectorTasks im
result |= tryStopWindowsService();
result |= tryStopPid();
if (!result) {
- throw new IllegalStateException("The process for "+entity()+" appears could not be stopped (no impl!)");
+ throw new IllegalStateException("The process for "+entity()+" could not be stopped (no impl!)");
}
return "stopped";
}
+ @Override
+ protected StopMachineDetails<Integer> stopAnyProvisionedMachines() {
+ if (detectChefMode(entity())==ChefModes.KNIFE) {
+ DynamicTasks.queue(
+ // if this task fails show it as failed but don't block subsequent routines
+ // (ie allow us to actually decommission the machine)
+ TaskTags.markInessential(
+ new KnifeTaskFactory<String>("delete node and client registration at chef server")
+ .add("knife node delete "+getNodeName())
+ .add("knife client delete "+getNodeName())
+ .requiringZeroAndReturningStdout()
+ .newTask() ));
+ }
+
+ return super.stopAnyProvisionedMachines();
+ }
+
protected boolean tryStopService() {
if (getServiceName()==null) return false;
int result = DynamicTasks.queue(SshEffectorTasks.ssh("/etc/init.d/"+getServiceName()+" stop").runAsRoot()).get();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ab18f67/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java b/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java
index 4fd6b09..6ccfc38 100644
--- a/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java
+++ b/software/base/src/main/java/brooklyn/entity/software/MachineLifecycleEffectorTasks.java
@@ -42,6 +42,7 @@ import brooklyn.entity.basic.EffectorStartableImpl.StartParameters;
import brooklyn.entity.basic.Entities;
import brooklyn.entity.basic.EntityInternal;
import brooklyn.entity.basic.Lifecycle;
+import brooklyn.entity.basic.Sanitizer;
import brooklyn.entity.basic.ServiceStateLogic;
import brooklyn.entity.basic.SoftwareProcess;
import brooklyn.entity.basic.SoftwareProcess.RestartSoftwareParameters;
@@ -292,7 +293,7 @@ public abstract class MachineLifecycleEffectorTasks {
if (log.isDebugEnabled())
log.debug("While starting {}, obtained new location instance {}", entity(),
(machine instanceof SshMachineLocation ?
- machine+", details "+((SshMachineLocation)machine).getUser()+":"+Entities.sanitize(((SshMachineLocation)machine).config().getLocalBag())
+ machine+", details "+((SshMachineLocation)machine).getUser()+":"+Sanitizer.sanitize(((SshMachineLocation)machine).config().getLocalBag())
: machine));
return machine;
}
@@ -664,6 +665,7 @@ public abstract class MachineLifecycleEffectorTasks {
stopMode == StopMode.IF_NOT_STOPPED && !isStopped;
}
+ @SuppressWarnings("deprecation")
private static void checkCompatibleMachineModes(Boolean isStopMachine, boolean hasStopMachineMode, StopMode stopMachineMode) {
if (hasStopMachineMode &&
(isStopMachine && stopMachineMode != StopMode.IF_NOT_STOPPED ||
@@ -714,6 +716,13 @@ public abstract class MachineLifecycleEffectorTasks {
}
/**
+ * Return string message of result.
+ * <p>
+ * Can run synchronously or not, caller will submit/queue as needed, and will block on any submitted tasks.
+ */
+ protected abstract String stopProcessesAtMachine();
+
+ /**
* Stop the {@link MachineLocation} the entity is provisioned at.
* <p>
* Can run synchronously or not, caller will submit/queue as needed, and will block on any submitted tasks.
@@ -722,9 +731,6 @@ public abstract class MachineLifecycleEffectorTasks {
@SuppressWarnings("unchecked")
MachineProvisioningLocation<MachineLocation> provisioner = entity().getAttribute(SoftwareProcess.PROVISIONING_LOCATION);
- // NB: previously has logic about "removeFirstMachine" but elsewhere had assumptions that there was only one,
- // so i think that was an aborted bit of work (which has been removed here). Alex, Aug 2013
-
if (Iterables.isEmpty(entity().getLocations())) {
log.debug("No machine decommissioning necessary for "+entity()+" - no locations");
return new StopMachineDetails<Integer>("No machine decommissioning necessary - no locations", 0);
@@ -741,7 +747,7 @@ public abstract class MachineLifecycleEffectorTasks {
log.debug("No decommissioning necessary for "+entity()+" - not a machine location ("+machine+")");
return new StopMachineDetails<Integer>("No machine decommissioning necessary - not a machine ("+machine+")", 0);
}
-
+
try {
entity().removeLocations(ImmutableList.of(machine));
entity().setAttribute(Attributes.HOSTNAME, null);
@@ -755,11 +761,4 @@ public abstract class MachineLifecycleEffectorTasks {
return new StopMachineDetails<Integer>("Decommissioned "+machine, 1);
}
- /**
- * Return string message of result.
- * <p>
- * Can run synchronously or not, caller will submit/queue as needed, and will block on any submitted tasks.
- */
- protected abstract String stopProcessesAtMachine();
-
}
[02/11] incubator-brooklyn git commit: Fix the latest Riak version
Posted by he...@apache.org.
Fix the latest Riak version
Basho pulled out 2.1.0
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/8eb8231b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/8eb8231b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/8eb8231b
Branch: refs/heads/master
Commit: 8eb8231bb384e7b8f506618536bc7f02f4591f62
Parents: 125f01e
Author: Valentin Aitken <va...@cloudsoftcorp.com>
Authored: Tue May 5 04:30:56 2015 +0300
Committer: Valentin Aitken <va...@cloudsoftcorp.com>
Committed: Tue May 12 00:15:19 2015 +0300
----------------------------------------------------------------------
.../nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8eb8231b/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 0312890..23f86a9 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
@@ -46,7 +46,7 @@ public interface RiakNode extends SoftwareProcess {
@SetFromFlag("version")
ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION,
- "Version to install (Default 2.1.0)", "2.1.0");
+ "Version to install (Default 2.0.5)", "2.0.5");
@SetFromFlag("optimizeNetworking")
ConfigKey<Boolean> OPTIMIZE_HOST_NETWORKING = ConfigKeys.newBooleanConfigKey("riak.networking.optimize", "Optimize host networking when running in a VM", Boolean.TRUE);
[10/11] incubator-brooklyn git commit: This closes #638
Posted by he...@apache.org.
This closes #638
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/e197f114
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/e197f114
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/e197f114
Branch: refs/heads/master
Commit: e197f114c4192ba7d9791d419591907f4d03d8d6
Parents: 1a4cb43 644d6cd
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri May 22 10:38:46 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 22 10:38:46 2015 +0100
----------------------------------------------------------------------
.../entity/brooklynnode/BrooklynEntityMirror.java | 7 +++++++
.../brooklynnode/BrooklynEntityMirrorImpl.java | 18 ++++++++++++++----
.../BrooklynEntityMirrorIntegrationTest.java | 8 ++++++++
3 files changed, 29 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
[06/11] incubator-brooklyn git commit: chef specify
`--no-host-key-verify` on knife bootstrap
Posted by he...@apache.org.
chef specify `--no-host-key-verify` on knife bootstrap
so that if same ip is recycled knife doesn't fail
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/60f319b5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/60f319b5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/60f319b5
Branch: refs/heads/master
Commit: 60f319b54b7bf16a45867fa1fd4d1a8b875f22cd
Parents: a49162f
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed May 20 16:57:35 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu May 21 08:56:10 2015 +0100
----------------------------------------------------------------------
.../main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java | 1 +
.../main/java/brooklyn/entity/chef/KnifeConvergeTaskFactory.java | 2 ++
2 files changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/60f319b5/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java b/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
index 46b8894..ed6722b 100644
--- a/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
+++ b/software/base/src/main/java/brooklyn/entity/chef/ChefLifecycleEffectorTasks.java
@@ -304,6 +304,7 @@ public class ChefLifecycleEffectorTasks extends MachineLifecycleEffectorTasks im
DynamicTasks.queue(
// if this task fails show it as failed but don't block subsequent routines
// (ie allow us to actually decommission the machine)
+ // TODO args could be a List<String> config key ?
TaskTags.markInessential(
new KnifeTaskFactory<String>("delete node and client registration at chef server")
.add("knife node delete "+getNodeName()+" -y")
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/60f319b5/software/base/src/main/java/brooklyn/entity/chef/KnifeConvergeTaskFactory.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/brooklyn/entity/chef/KnifeConvergeTaskFactory.java b/software/base/src/main/java/brooklyn/entity/chef/KnifeConvergeTaskFactory.java
index fe05798..ba974ad 100644
--- a/software/base/src/main/java/brooklyn/entity/chef/KnifeConvergeTaskFactory.java
+++ b/software/base/src/main/java/brooklyn/entity/chef/KnifeConvergeTaskFactory.java
@@ -92,6 +92,8 @@ public class KnifeConvergeTaskFactory<RET> extends KnifeTaskFactory<RET> {
if (keyfile!=null) result.add("-i "+keyfile.getPath());
else result.add("-P "+checkNotNull(machine.findPassword(), "No password or private key data for "+machine));
+ result.add("--no-host-key-verify");
+
if (sudo != Boolean.FALSE) result.add("--sudo");
if (!Strings.isNullOrEmpty(nodeName)) {
[09/11] incubator-brooklyn git commit: This closes #647
Posted by he...@apache.org.
This closes #647
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/1a4cb43d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/1a4cb43d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/1a4cb43d
Branch: refs/heads/master
Commit: 1a4cb43df0f85bd3d577c488f890fcfcac9224a0
Parents: 52115a1 60f319b
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri May 22 10:07:03 2015 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Fri May 22 10:07:03 2015 +0100
----------------------------------------------------------------------
.../java/brooklyn/entity/chef/ChefConfig.java | 5 +++
.../entity/chef/ChefLifecycleEffectorTasks.java | 34 +++++++++++++++++++-
.../entity/chef/KnifeConvergeTaskFactory.java | 2 ++
.../software/MachineLifecycleEffectorTasks.java | 23 +++++++------
4 files changed, 51 insertions(+), 13 deletions(-)
----------------------------------------------------------------------