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 2017/04/21 22:55:41 UTC
[22/39] brooklyn-server git commit: Add start of a test framework
test for the catalog behaviour.
Add start of a test framework test for the catalog behaviour.
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/10afaad7
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/10afaad7
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/10afaad7
Branch: refs/heads/master
Commit: 10afaad79fc0dec595a298cc67e7c18db232ff94
Parents: 3f986ec
Author: Geoff Macartney <ge...@cloudsoftcorp.com>
Authored: Wed Oct 5 22:25:37 2016 +0100
Committer: Geoff Macartney <ge...@cloudsoftcorp.com>
Committed: Thu Apr 20 11:20:36 2017 +0100
----------------------------------------------------------------------
.../src/test/yaml/python-webserver.bom | 98 ++++++++++++++++++++
1 file changed, 98 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/10afaad7/camp/camp-brooklyn/src/test/yaml/python-webserver.bom
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/yaml/python-webserver.bom b/camp/camp-brooklyn/src/test/yaml/python-webserver.bom
new file mode 100644
index 0000000..5fb5261
--- /dev/null
+++ b/camp/camp-brooklyn/src/test/yaml/python-webserver.bom
@@ -0,0 +1,98 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Tests nested catalog definition. 'python-webserver' is
+# an example of an item that is meant to be extended.
+# 'my-webserver' is such an extension.
+# For test purposes 'my-webserver' makes reference to a
+# resource defined in a library included in its parent.
+
+brooklyn.catalog:
+ items:
+
+ - id: python-webserver
+ icon_url: classpath://org/apache/brooklyn/test/osgi/entities/icon.gif
+ brooklyn.libraries:
+ - url: https://github.com/apache/brooklyn-server/blob/master/utils/common/src/test/resources/brooklyn/osgi/brooklyn-test-osgi-entities.jar?raw=true
+ item:
+ type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
+ brooklyn.config:
+ install.command: |
+ # install python if not present
+ which python || \
+ { sudo apt-get update && sudo apt-get install python ; } || \
+ { sudo yum update && sudo yum install python ; } || \
+ { echo WARNING: cannot install python && exit 1 ; }
+
+ launch.command: |
+ # launch in background (ensuring no streams open), and record PID to file
+ nohup python -m SimpleHTTPServer ${PORT:-8020} < /dev/null > output.txt 2>&1 &
+ echo $! > ${PID_FILE:-pid.txt}
+ sleep 5
+ ps -p `cat ${PID_FILE:-pid.txt}`
+ if [ $? -ne 0 ] ; then
+ cat output.txt
+ echo WARNING: python web server not running
+ exit 1
+ fi
+
+ shell.env:
+ HOSTNAME: $brooklyn:attributeWhenReady("host.name")
+ PORT: $brooklyn:config("my.app.port")
+
+ brooklyn.enrichers:
+ # publish the URL as a sensor; the GUI will pick this up (main.uri)
+ - type: org.apache.brooklyn.enricher.stock.Transformer
+ brooklyn.config:
+ uniqueTag: url-generator
+ enricher.sourceSensor: host.subnet.hostname
+ # use the definition from Attributes class, as it has a RendererHint so GUI makes it a link
+ enricher.targetSensor: $brooklyn:sensor("org.apache.brooklyn.core.entity.Attributes", "main.uri")
+ enricher.targetValue:
+ $brooklyn:formatString:
+ - "http://%s:%s/"
+ - $brooklyn:attributeWhenReady("host.subnet.hostname")
+ - $brooklyn:config("my.app.port")
+
+ - id: my-webserver
+ item:
+ type: python-webserver
+ customize.command: |
+ cp ${INSTALL_DIR}/icon.gif ${RUN_DIR}
+ # create the web page to serve
+ cat > index.html << EOF
+
+ <img src='icon.gif'/>
+ Hello world.
+ <p>
+ I am ${ENTITY_INFO}, ${MESSAGE:-a Brooklyn sample}.
+ <p>
+ Created at: `date`
+ <p>
+ I am running at ${HOSTNAME}, with on-box IP configuration:
+ <pre>
+ `ifconfig | grep inet`
+ </pre>
+
+ EOF
+ shell.env:
+ ENTITY_INFO: $brooklyn:component("this", "")
+ MESSAGE: $brooklyn:config("my.message")
+ brooklyn.config:
+ files.preinstall:
+ classpath://org/apache/brooklyn/test/osgi/entities/icon.gif: icon.gif
+ my.app.port: 8020
+ my.message: "good to meet you"
\ No newline at end of file