Skip to content

Instantly share code, notes, and snippets.

View aledsage's full-sized avatar

Aled Sage aledsage

View GitHub Profile
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 ({})
Manifest-Version: 1.0
Implementation-SHA-1: 41638183a07c9cf0f4866d7f02b8068f926e8c75
Export-Package: io.brooklyn.ambari.agent;uses:="com.google.common.refl
ect,org.apache.brooklyn.util.javalang,org.apache.brooklyn.api.entity,
javax.annotation,org.apache.brooklyn.api.sensor,org.apache.brooklyn.u
til.core.flags,org.apache.brooklyn.api.catalog,org.apache.brooklyn.co
re.sensor,io.brooklyn.ambari,org.apache.brooklyn.core.config,org.apac
he.brooklyn.config,org.apache.brooklyn.entity.java,org.apache.brookly
n.util.core.config,org.apache.brooklyn.entity.software.base,org.apach
e.brooklyn.api.internal,io.brooklyn.ambari.server,org.apache.brooklyn
@aledsage
aledsage / gist:a8795292407d255e1b0b
Created July 1, 2014 08:55
Brooklyn yaml: simple cluster with policy
location: localhost
services:
- type: brooklyn.entity.group.DynamicCluster
brooklyn.config:
initialSize: 2
memberSpec:
$brooklyn:entitySpec:
type: brooklyn.entity.basic.EmptySoftwareProcess
brooklyn.policies:
- policyType: brooklyn.policy.autoscaling.AutoScalerPolicy
@aledsage
aledsage / gist:9964492
Created April 3, 2014 22:54
AWS TerminateInstances 500 Internal Server Error
2014-04-02 14:26:18,329 DEBUG o.j.h.i.JavaUrlHttpCommandExecutorService [brooklyn-execmanager-C7S2PVnJ-4771]: Sending request -467970851: POST https://ec2.us-east-1.amazonaws.com/ 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
=2&Timestamp=2014-04-02T13%3A26%3A18.329Z&Version=2012-06-01&AWSAccessKeyId=keysnip"
2014-04-02 14:26:18,330 DEBUG jclouds.headers [brooklyn-execmanager-C7S2PVnJ-4771]: >> POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1
2014-04-02 14:26:18,330 DEBUG jclouds.headers [brooklyn-execmanager-C7S2PVnJ-4771]: >> Host: ec2.us-east-1.amazonaws.com
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
aledsage / gist:5186734
Created March 18, 2013 12:06
Brooklyn entity creation API
/*
* 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
aledsage / gist:5095696
Created March 6, 2013 00:28
brooklyn docs build fails
Aleds-MacBook-Pro:docs aled [0.5.0-M2] $./_scripts/build.sh
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/eclipse.include.md in ide.md
/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
aledsage / gist:4284263
Created December 14, 2012 10:12
Proposed "feeds" for polling an underlying resource for populating brooklyn attributes
// FROM JBOSS AS 7, polling its http management api
@Override
protected void connectSensors() {
super.connectSensors();
httpFeed = HttpFeed.builder()
.entity(this)
.period(200)
.baseUri(String.format("http://%s:%s/management/subsystem/web/connector/http/read-resource", host, port))
@aledsage
aledsage / gist:3143723
Created July 19, 2012 12:59
Proposed brooklyn Java code to poll an underlying resource, to update attributes (aka sensors) - v2
// See v1 proposal at https://gist.github.com/3122130
//
// 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
aledsage / gist:3122497
Last active October 7, 2015 06:48
Entity-author example
/**
* Everyone uses this interface when dealing with MySqlNode instances.
*/
@ImplementedBy(MySqlNodeImpl.class)
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
aledsage / gist:3122488
Last active October 7, 2015 06:48
Application-author example
// 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.