Hi Elvinas,

_*Non-java developers*_
Brooklyn should be accessible to non-java developers, particularly people who are wiring together existing entities into an application and for people configuring the use of Puppet/Chef/etc for the individual servers.

Saying that, there is certainly room for improvement - feedback like yours is invaluable for that.

Where an entity has been written in Java, if there are problems with it then it does lead the person debugging into that Java code. We are looking to have a clearer separation of the Java from the bash etc, so it's easier to debug and customize for non-java developers.


_*No which*_
Interesting - we'll look at how we can re-write the bash utilities to not rely on `which` being available!

Do you want to create an issue on https://issues.apache.org/jira/browse/BROOKLYN?


_*Download URLs*_
You can override the download url (e.g. for JBoss AS 7 install) by setting in yaml brooklyn.config the `download.url` configuration option.

It is also possible to configure Brooklyn to point at a different repo, either for everything or for specific entities, in brooklyn.properties. e.g. something like: brooklyn.downloads.entity.JBoss7Server.url=http://myserver/jboss-as-${version}.tar.gz

_*catalog.xml*_
Note that the catalog.xml is usually not the best way to give customizations for entities (such as download URLs or run dir).

You can think of the catalog as just a set of pointers to existing blueprints (which could be in Java or moving forwards more in yaml). The catalog specifies things like the Java class (or YAML) that defines the application, the catalog version, icons, descriptions, etc.


_*Use of SingleWebServerExample*_
All the SingleWebServerExample does is to create an application with a single JBoss 7 server in it. If that's what you want, an alternative would be to use the yaml below:

   location: localhost
   services:
   - type: brooklyn.entity.webapp.jboss.JBoss7Server
      brooklyn.config:
        war: classpath://hello-world-webapp.war
        http.port: 8080+
        download.url:
   file://path/on/localhost/to/jboss-as-7.1.1.Final.tar.gz


You wrote:
"should not it fail instead of silently changing provisioning type (SimpleWebServer -> JBoss7)?"

Hopefully this clears it up - the SimpleWebServerExample is an app that just creates a JBoss7Server, hence that being what is created.

_*
"*__*silently attempted to install JBoss7*__*"*_
I'm not sure I follow this comment. Is this because you tried to redefine SingleWebServerExample in catalog.xml?

The reference to SingleWebServerExample will continue to point at that Java class.
See "Use of SingleWebServerExample" above.


_*Ignoring PDP attributes on io.brooklyn.camp.spi.pdp.Service*_
Not sure off hand why it ignored these.

You could try changing the yaml to including `provisioning.properties` nested inside a `brooklyn.config` section.

I'll try to reproduce this later.

Right now, I have another call I need to jump on!

Aled


On 02/12/2014 07:52, Elvinas Piliponis wrote:

Hello,

Again either I am doing something wrong way (at least logs indicate that), either I do not understand Brooklyn. I am no Java programmer and most likely not intend to become one. Can this tool be useful for me without resorting to rewrite application deployments scenarios in Java? I know that we will use Brooklyn and will have some Java guys to code that that will be separate use case. At the moment I am looking at infrastructure deployment orchestration. We already have server deployment defined with Puppet but that covers single server only and all interdependencies must be covered manually.

I am trying to provision default demo application with custom provisioning properties.

Launching Brooklin SimpleWebserver  app from command line works:

% ${BROOKLYN_HOME}/bin/brooklyn launch --app brooklyn.demo.SingleWebServerExample --location localhost

However it fails to build and exists as fedora 19 cloud image does not have which utility. So I have tried to launch Brooklyn specify it in YAML through web page and got two issues:

1.I failed to understand how to specify local path for application on server, instead of picking up from some web repo. There might be use cases where no internet access will be available and only local files should be used. Specifying “<entry>/opt/brooklyn/examples/brooklyn-examples/simple-web-cluster/target/classes</entry>” in catalog.xml did not help.

I have tried to the following YAML but saw that Brooklyn did not bite my attempt and silently attempted to install JBoss7…

name: xStream-install

location: openstack

services:

- type: brooklyn.demo.SingleWebServerExample

provisioning.properties:

minRam: 512

minCores: 1

minDisk: 10

autoAssignFloatingIp: true

imageId: RegionOne/15df41d1-d5e1-4b1e-8427-1ffdd2eb011c

hardwareId: RegionOne/24b24f68-535a-4c73-a052-52022240a2e3

networkName: 0869c8a0-47ab-4eb1-a6eb-0072172cd880

keyPair: brooklyn

securityGroups: default

privateKeyFile: /opt/brooklyn/brooklyn.pem

loginUser: root

2.While looking at status I saw that deployment failed to reach contactable state in 2 minutes. Looking at end of logs shoed that installation failed due to lack of “which”. Then I wondered why as I have explicitly specified updated image in YAML with “which”. Upon app initialization I saw the following lines:

2014-12-01 14:41:36,159 WARN i.b.c.b.s.c.BrooklynEntityMatcher [brooklyn-jetty-server-8081-qtp1846097386-22]: Ignoring PDP attributes on io.brooklyn.camp.spi.pdp

.Service@3a9c60b5[name=<null>,description=<null>,serviceType=brooklyn.demo.SingleWebServerExample,characteristics=[],customAttributes={provisioning.properties={mi

nRam=512, minCores=1, minDisk=10, autoAssignFloatingIp=true, imageId=RegionOne/15df41d1-d5e1-4b1e-8427-1ffdd2eb011c, hardwareId=RegionOne/24b24f68-535a-4c73-a052-

52022240a2e3, networkName=0869c8a0-47ab-4eb1-a6eb-0072172cd880, keyPair=brooklyn, securityGroups=default, privateKeyFile=/opt/brooklyn/brooklyn.pem, loginUser=roo

t}}]: {provisioning.properties={minRam=512, minCores=1, minDisk=10, autoAssignFloatingIp=true, imageId=RegionOne/15df41d1-d5e1-4b1e-8427-1ffdd2eb011c, hardwareId=

RegionOne/24b24f68-535a-4c73-a052-52022240a2e3, networkName=0869c8a0-47ab-4eb1-a6eb-0072172cd880, keyPair=brooklyn, securityGroups=default, privateKeyFile=/opt/br

ooklyn/brooklyn.pem, loginUser=root}}

….. some lines lower ….

2014-12-01 14:41:36,256 DEBUG b.l.jclouds.JcloudsLocation [brooklyn-execmanager-KFABVyQR-82]: jclouds using templateBuilder PortableTemplateBuilder[ports=[22], im

ageId=RegionOne/d5163d69-4b2c-4269-99ad-88506973037f, hardwareId=RegionOne/24b24f68-535a-4c73-a052-52022240a2e3, imageChooserFunction=brooklyn.location.jclouds.Br

ooklynImageChooser$3@6f8c09b2] for provisioning in JcloudsLocation[openstack-nova:http://10.12.208.5:5000/v2.0:brooklyn:brooklyn/openstack-nova:http://10.12.208.5

:5000/v2.0@Nv2F1oKb] for openstack-nova:http://10.12.208.5:5000/v2.0@JBoss7ServerImpl{id=aQq5sjap}

Search for warning message does not reveal anything obvious:

          if (!attrs.isEmpty()) {
              log.warn("Ignoring PDP attributes on "+deploymentPlanItem+": 
"+attrs);

Questions:

a)Does Brooklyn ignores provisioning.properties because it failed to find right application?

b)Should not it fail instead of silently changing provisioning type (SimpleWebServer -> JBoss7)?

Thank you

*_________________________________________*

*Elvinas Piliponis*

Description: Description: Description: Description: Description: Description: Description: Description: Description: cid:[email protected] <http://www.virtustream.com/>

Studentų  g. 59-B707, LT-51365, Kaunas *| *Lietuva

Email: [email protected] <mailto:[email protected]> *|*Mobile: +370 69807947

*The information contained in this electronic mail transmission may be privileged and confidential, and therefore, protected **from disclosure.*If you have received this communication in error, please notify us immediately by replying to this message and deleting the email and its attachments from all computers without copying or disclosing it.


Reply via email to