This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package brooklyn.demo; | |
import static brooklyn.event.basic.DependentConfiguration.valueWhenAttributeReady; | |
import brooklyn.entity.basic.AbstractApplication; | |
import brooklyn.entity.database.mysql.MySqlNode; | |
import brooklyn.entity.proxy.nginx.NginxController; | |
import brooklyn.entity.webapp.ControlledDynamicWebAppCluster; | |
import brooklyn.entity.webapp.DynamicWebAppCluster; | |
import brooklyn.entity.webapp.jboss.JBoss7Server; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Polls a given URL, and uses the HTTP response to set the | |
// two Brooklyn entity attributes SERVICE_UP and REQUEST_COUNT | |
def http = sensorRegistry.register( | |
new HttpSensorAdapter("http://$host:$port/management/subsystem/web/connector/http/read-resource", | |
period: 200*TimeUnit.MILLISECONDS). | |
vars("include-runtime":true) ) | |
with(http) { | |
poll(SERVICE_UP) { responseCode==200 } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Polls the given JMX attribute every minute; transforms the result from tabular data | |
// into a java.util.Map and sets the given brooklyn sensor (aka attribute) accordingly. | |
// The onSuccess is passed the JMX attribute's value. | |
JmxSensorAdapter jmxAdapter = registry.register(new JmxSensorAdapter()); | |
jmxAdapter.withObjectName(myJmxObjectName) | |
.pollAttribute(new JmxAttributePollConfig<Map>(MY_BROOKLYN_SENSOR) | |
.attributeName(myJmxAttributeName) | |
.period(1, TimeUnit.MINUTES) | |
.onSuccess(JmxResponseFunctions.tabularDataToMap())); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* 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)); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
OlderNewer