Skip to content

Instantly share code, notes, and snippets.


Aled Sage aledsage

View GitHub Profile
View brooklyn-softlayer error with jclouds 2.0
When deploying to Softlayer (in a brooklyn live test), it failed to provision. There were two separate problems (shown in the log snippets below):
1. failed to login to the VM: `doesn't have login details within 3600000ms`
2. failed to delete the VM, when discarding it: softlayer sent back a 500 Internal Server Error `This cancellation could not be processed please contact support.This cancellation could not be processed. Please contact support. There is currently an active transaction.`
2016-12-13 12:45:23,293 INFO Creating VM null in JcloudsLocation[softlayer:software-development@pl9nu7srsh]
2016-12-13 12:45:32,963 INFO ignoring auto-generate-keypairs(false) in VM creation because not supported for cloud/type ({})
View brooklyn-ambari MANIFST.MF example
Manifest-Version: 1.0
Implementation-SHA-1: 41638183a07c9cf0f4866d7f02b8068f926e8c75
Export-Package: io.brooklyn.ambari.agent;uses:="
aledsage / gist:a8795292407d255e1b0b
Created July 1, 2014 08:55
Brooklyn yaml: simple cluster with policy
View gist:a8795292407d255e1b0b
location: localhost
- type:
initialSize: 2
type: brooklyn.entity.basic.EmptySoftwareProcess
- policyType: brooklyn.policy.autoscaling.AutoScalerPolicy
aledsage / gist:9964492
Created April 3, 2014 22:54
AWS TerminateInstances 500 Internal Server Error
View gist:9964492
2014-04-02 14:26:18,329 DEBUG o.j.h.i.JavaUrlHttpCommandExecutorService [brooklyn-execmanager-C7S2PVnJ-4771]: Sending request -467970851: POST HTTP/1.1
2014-04-02 14:26:18,329 DEBUG jclouds.wire [brooklyn-execmanager-C7S2PVnJ-4771]: >> "Action=TerminateInstances&InstanceId.1=i-ace13c8c&Signature=sigsnip&SignatureMethod=HmacSHA256&SignatureVersion
2014-04-02 14:26:18,330 DEBUG jclouds.headers [brooklyn-execmanager-C7S2PVnJ-4771]: >> POST HTTP/1.1
2014-04-02 14:26:18,330 DEBUG jclouds.headers [brooklyn-execmanager-C7S2PVnJ-4771]: >> Host:
2014-04-02 14:26:18,330 DEBUG jclouds.headers [brooklyn-execmanager-C7S2PVnJ-4771]: >> Content-Type: application/x-www-form-urlencoded
2014-04-02 14:26:18,330 DEBUG jclouds.headers [brooklyn-execmanager-C7S2PVnJ-4771]: >> Content-Length: 246
2014-04-02 14:26:19,097 DEBUG o.j.h.i.JavaUrlHttpCom
aledsage / gist:5186734
Created March 18, 2013 12:06
Brooklyn entity creation API
View gist:5186734
* Below is an example of 0.5.0-M2 code using ApplicationBuilder:
public class MyExample extends ApplicationBuilder {
protected void doBuild() {
MySqlNode mysql = createChild(BasicEntitySpec.newInstance(MySqlNode.class)
.configure(MySqlNode.CREATION_SCRIPT_URL, myUrl));
aledsage / gist:5095696
Created March 6, 2013 00:28
brooklyn docs build fails
View gist:5095696
Aleds-MacBook-Pro:docs aled [0.5.0-M2] $./_scripts/
Configuration from /Users/aled/repos/cloudsoft/brooklyn/docs/_config.yml
Building site: /Users/aled/repos/cloudsoft/brooklyn/docs -> /Users/aled/repos/cloudsoft/brooklyn/docs/_site
Liquid Exception: No such file or directory - /Users/aled/repos/cloudsoft/brooklyn/docs/use/guide/quickstart/ in
/Library/Ruby/Gems/1.8/gems/jekyll-0.12.1/bin/../lib/jekyll/convertible.rb:28:in `read'
/Library/Ruby/Gems/1.8/gems/jekyll-0.12.1/bin/../lib/jekyll/convertible.rb:28:in `read_yaml'
/Library/Ruby/Gems/1.8/gems/jekyll-0.12.1/bin/../lib/jekyll/page.rb:24:in `initialize'
/Users/aled/repos/cloudsoft/brooklyn/docs/_plugins/read.rb:51:in `new'
/Users/aled/repos/cloudsoft/brooklyn/docs/_plugins/read.rb:51:in `render'
/Library/Ruby/Gems/1.8/gems/liquid-2.4.1/lib/liquid/block.rb:94:in `render_all'
aledsage / gist:4284263
Created December 14, 2012 10:12
Proposed "feeds" for polling an underlying resource for populating brooklyn attributes
View gist:4284263
// FROM JBOSS AS 7, polling its http management api
protected void connectSensors() {
httpFeed = HttpFeed.builder()
.baseUri(String.format("http://%s:%s/management/subsystem/web/connector/http/read-resource", host, port))
aledsage / gist:3143723
Created July 19, 2012 12:59
Proposed brooklyn Java code to poll an underlying resource, to update attributes (aka sensors) - v2
View gist:3143723
// See v1 proposal at
// This example shows use of a builder pattern to construct an immmutable JmxSensorAdapter
// before passing it to register(...).
// Most contentious issues:
// 1. immutability of JmxSensorAdapter
// 2. explicitly passing in entity(...) so can infer the jmx url from its attributes
// 3. use of withObjectName(...) to create a kind of sub-context so subsequent calls to pollAttribute
// don't need to keep repeating the object name
aledsage / gist:3122497
Last active October 7, 2015 06:48
Entity-author example
View gist:3122497
* Everyone uses this interface when dealing with MySqlNode instances.
public interface MySqlNode extends Entity, Startable {
// Note needs this generic to make sub-classing simple
public static class Recipe<T extends MySqlNode> extends SoftwareProcessEntity.Recipe<T> {
private PortRange port = PortRanges.fromString("3306, 13306+");
private String creationScriptContents;
aledsage / gist:3122488
Last active October 7, 2015 06:48
Application-author example
View gist:3122488
// Application authors write an "ApplicationBuilder"...
// The advantage is that it separates the Entity API from this builder API,
// allowing each API to be optimised for the appropriate role (i.e. top-level
// methods for the common operations so they are easy to find and use).
// e.g. aim of ApplicationBuilder is to make it easy to create + configure +
// wire together pre-existing types of entity, and to associate policies with them.
// It uses the "Recipes" of these pre-existing entity types to configure them,
// without worrying about how that implementation handles its children etc.