ARIA-86-Create-a-basic-Hello-World-blueprint-example
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/16ae46a6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/16ae46a6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/16ae46a6 Branch: refs/heads/ARIA-48-aria-cli Commit: 16ae46a61b01acd2b654acc301e40cc29c683e9a Parents: 4400e30 Author: max-orlov <ma...@gigaspaces.com> Authored: Thu Mar 30 17:29:17 2017 +0300 Committer: max-orlov <ma...@gigaspaces.com> Committed: Thu Mar 30 17:59:55 2017 +0300 ---------------------------------------------------------------------- examples/hello-world/helloworld.yaml | 27 +++++++++++++ examples/hello-world/images/aria-logo.png | Bin 0 -> 23601 bytes examples/hello-world/index.html | 14 +++++++ examples/hello-world/scripts/configure.sh | 23 +++++++++++ examples/hello-world/scripts/start.sh | 52 +++++++++++++++++++++++++ examples/hello-world/scripts/stop.sh | 15 +++++++ 6 files changed, 131 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/16ae46a6/examples/hello-world/helloworld.yaml ---------------------------------------------------------------------- diff --git a/examples/hello-world/helloworld.yaml b/examples/hello-world/helloworld.yaml new file mode 100644 index 0000000..b6efaca --- /dev/null +++ b/examples/hello-world/helloworld.yaml @@ -0,0 +1,27 @@ +tosca_definitions_version: tosca_simple_profile_for_nfv_1_0 + +node_types: + web_app: + derived_from: tosca.nodes.WebApplication + properties: + port: + type: integer + default: 8080 + +topology_template: + + node_templates: + web_server: + type: tosca.nodes.WebServer + + web_app: + type: web_app + properties: + port: 9090 + requirements: + - host: web_server + interfaces: + Standard: + configure: scripts/configure.sh + start: scripts/start.sh + stop: scripts/stop.sh http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/16ae46a6/examples/hello-world/images/aria-logo.png ---------------------------------------------------------------------- diff --git a/examples/hello-world/images/aria-logo.png b/examples/hello-world/images/aria-logo.png new file mode 100644 index 0000000..3505844 Binary files /dev/null and b/examples/hello-world/images/aria-logo.png differ http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/16ae46a6/examples/hello-world/index.html ---------------------------------------------------------------------- diff --git a/examples/hello-world/index.html b/examples/hello-world/index.html new file mode 100644 index 0000000..8d21c3a --- /dev/null +++ b/examples/hello-world/index.html @@ -0,0 +1,14 @@ +<html> + <header> + <title>ARIA Hello World</title> + </header> +<body> + <h1>Hello, World!</h1> + <p> + blueprint_id = {{ ctx.service_template.name }}<br/> + deployment_id = {{ ctx.service.name }}<br/> + node_id = {{ ctx.node.name }} + </p> + <img src="aria-logo.png"> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/16ae46a6/examples/hello-world/scripts/configure.sh ---------------------------------------------------------------------- diff --git a/examples/hello-world/scripts/configure.sh b/examples/hello-world/scripts/configure.sh new file mode 100755 index 0000000..b55ec17 --- /dev/null +++ b/examples/hello-world/scripts/configure.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +set -e + +TEMP_DIR="/tmp" +PYTHON_FILE_SERVER_ROOT=${TEMP_DIR}/python-simple-http-webserver +if [ -d ${PYTHON_FILE_SERVER_ROOT} ]; then + echo "Removing file server root folder ${PYTHON_FILE_SERVER_ROOT}" + rm -rf ${PYTHON_FILE_SERVER_ROOT} +fi +ctx logger info "Creating HTTP server root directory at ${PYTHON_FILE_SERVER_ROOT}" + +mkdir -p ${PYTHON_FILE_SERVER_ROOT} + +cd ${PYTHON_FILE_SERVER_ROOT} + +index_path="index.html" +image_path="images/aria-logo.png" + +ctx logger info "Downloading blueprint resources..." +ctx download-resource-and-render ${PYTHON_FILE_SERVER_ROOT}/index.html ${index_path} +ctx download-resource ${PYTHON_FILE_SERVER_ROOT}/aria-logo.png ${image_path} + http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/16ae46a6/examples/hello-world/scripts/start.sh ---------------------------------------------------------------------- diff --git a/examples/hello-world/scripts/start.sh b/examples/hello-world/scripts/start.sh new file mode 100755 index 0000000..96298c5 --- /dev/null +++ b/examples/hello-world/scripts/start.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +set -e + +TEMP_DIR="/tmp" +PYTHON_FILE_SERVER_ROOT=${TEMP_DIR}/python-simple-http-webserver +PID_FILE="server.pid" + +ctx logger info "Starting HTTP server from ${PYTHON_FILE_SERVER_ROOT}" + +port=$(ctx node properties port) + +cd ${PYTHON_FILE_SERVER_ROOT} +ctx logger info "Starting SimpleHTTPServer" +nohup python -m SimpleHTTPServer ${port} > /dev/null 2>&1 & +echo $! > ${PID_FILE} + +ctx logger info "Waiting for server to launch on port ${port}" +url="http://localhost:${port}" + +server_is_up() { + if which wget >/dev/null; then + if wget $url >/dev/null; then + return 0 + fi + elif which curl >/dev/null; then + if curl $url >/dev/null; then + return 0 + fi + else + ctx logger error "Both curl, wget were not found in path" + exit 1 + fi + return 1 +} + +STARTED=false +for i in $(seq 1 15) +do + if server_is_up; then + ctx logger info "Server is up." + STARTED=true + break + else + ctx logger info "Server not up. waiting 1 second." + sleep 1 + fi +done +if [ ${STARTED} = false ]; then + ctx logger error "Failed starting web server in 15 seconds." + exit 1 +fi http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/16ae46a6/examples/hello-world/scripts/stop.sh ---------------------------------------------------------------------- diff --git a/examples/hello-world/scripts/stop.sh b/examples/hello-world/scripts/stop.sh new file mode 100755 index 0000000..5461caf --- /dev/null +++ b/examples/hello-world/scripts/stop.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +TEMP_DIR="/tmp" +PYTHON_FILE_SERVER_ROOT=${TEMP_DIR}/python-simple-http-webserver +PID_FILE="server.pid" + +PID=`cat ${PYTHON_FILE_SERVER_ROOT}/${PID_FILE}` + +ctx logger info "Shutting down file server. pid = ${PID}" +kill -9 ${PID} || exit $? + +ctx logger info "Deleting file server root directory (${PYTHON_FILE_SERVER_ROOT})" +rm -rf ${PYTHON_FILE_SERVER_ROOT}