summaryrefslogtreecommitdiffstats
path: root/tosca2heat/heat-translator/translator/tests/data
diff options
context:
space:
mode:
Diffstat (limited to 'tosca2heat/heat-translator/translator/tests/data')
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/config.py25
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/create.sh5
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/start.sh4
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/elasticsearch/create.sh14
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/elasticsearch/start.sh4
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/config.sh7
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/create.sh12
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/start.sh4
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_collectd.py28
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_elasticsearch.py26
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_rsyslog.py25
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/create.sh20
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/start.sh4
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/config.sh7
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/create.sh14
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/create_database.sh5
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/start.sh5
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_database_configure.sh8
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_configure.sh5
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_install.sh9
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_start.sh2
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/config.sh28
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/create.sh7
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/start.sh3
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/config.sh30
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/create.sh5
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/start.sh4
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/webserver/webserver_install.sh5
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/webserver/webserver_start.sh2
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/wordpress/wordpress_configure.sh4
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/artifacts/wordpress/wordpress_install.sh5
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/csar_elk.zipbin0 -> 17488 bytes
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/csar_hello_world.zipbin0 -> 936 bytes
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/csar_metadata_not_yaml.zipbin0 -> 936 bytes
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/csar_not_zip.zip1
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/csar_single_instance_wordpress.zipbin0 -> 5967 bytes
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/csar_wordpress_invalid_import_path.zipbin0 -> 5978 bytes
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/csar_wordpress_invalid_script_url.zipbin0 -> 6034 bytes
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/csar_wrong_metadata_file.zipbin0 -> 873 bytes
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/custom_types/collectd.yaml13
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/custom_types/elasticsearch.yaml12
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/custom_types/kibana.yaml14
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/custom_types/logstash.yaml25
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/custom_types/paypalpizzastore_nodejs_app.yaml29
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/custom_types/rsyslog.yaml13
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/custom_types/wordpress.yaml19
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_artifact.yaml30
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type.yaml34
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type_with_override.yaml34
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type_with_param_override.yaml34
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_elk.yaml551
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_elk_from_csar.yaml551
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_flavor_and_image.yaml18
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_flavor_and_image_params.yaml18
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_hello_world.yaml14
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_hello_world_userkey.yaml19
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_host_assignment.yaml135
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_nfv_sample.yaml35
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_nodejs_mongodb_two_instances.yaml185
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_policies.yaml25
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_instance_wordpress.yaml209
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_instance_wordpress_from_csar.yaml207
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_object_store.yaml21
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server.yaml36
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_with_defaults_with_input.yaml36
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_with_defaults_without_input.yaml36
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_without_tosca_os_version.yaml17
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_software_component.yaml58
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/hot_web_application.yaml100
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_custom_network_nodes.yaml33
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_one_server_one_network.yaml44
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_one_server_three_networks.yaml71
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_server_on_existing_network.yaml27
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_two_servers_one_network.yaml72
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment.yaml71
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation1_alt1.yaml92
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation1_alt2.yaml92
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation2_alt1.yaml96
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation2_alt2.yaml96
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_custom_relationship_type.yaml72
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_relationship_template.yaml65
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_multiple_blockstorage_with_attachment_alt1.yaml109
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_multiple_blockstorage_with_attachment_alt2.yaml109
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_defs.yaml41
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_imports.yaml41
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_inline.yaml82
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/network/tosca_one_server_one_network.yaml43
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/network/tosca_one_server_three_networks.yaml64
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/network/tosca_server_on_existing_network.yaml39
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/network/tosca_two_servers_one_network.yaml79
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment.yaml61
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment_notation1.yaml87
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment_notation2.yaml99
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_custom_relationship_type.yaml64
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_relationship_template.yaml59
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/storage/tosca_multiple_blockstorage_with_attachment.yaml93
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/storage/tosca_single_object_store.yaml17
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/test_host_assignment.yaml80
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/test_single_server_without_optional_version_prop.yaml24
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/test_tosca_artifact.yaml40
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/test_tosca_custom_type.yaml47
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/test_tosca_custom_type_with_override.yaml45
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/test_tosca_flavor_and_image.yaml29
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/test_tosca_nfv_sample.yaml43
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_elk.yaml219
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_helloworld.yaml23
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_helloworld_invalid.yaml23
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_nodejs_mongodb_two_instances.yaml96
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_policies.yaml28
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress.yaml120
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress_with_local_abspath_import.yaml125
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress_with_url_import.yaml120
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_single_server.yaml32
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_single_server_with_defaults.yaml35
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_software_component.yaml40
-rw-r--r--tosca2heat/heat-translator/translator/tests/data/tosca_web_application.yaml56
116 files changed, 5998 insertions, 0 deletions
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/config.py b/tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/config.py
new file mode 100644
index 0000000..686bbd1
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/config.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+
+# Licensed 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.
+
+# This script configures collectd to send metric data to the
+# logstash server port 25826
+# The environment variable logstash_ip is expected to be set up
+import os
+with open("/etc/collectd/collectd.conf.d/tosca_elk.conf", "w") as fh:
+ fh.write("""
+ LoadPlugin network
+ <Plugin network>
+ Server "%s" "25826"
+ </Plugin>
+ """ % (os.environ['logstash_ip']))
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/create.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/create.sh
new file mode 100644
index 0000000..a483b88
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/create.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+# This script install collectd for monitoring data
+
+apt-get update
+apt-get install -y collectd
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/start.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/start.sh
new file mode 100644
index 0000000..7e8e033
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/collectd/start.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+# This script starts collectd as a service in init.d
+service collectd stop
+service collectd start
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/elasticsearch/create.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/elasticsearch/create.sh
new file mode 100644
index 0000000..c34126c
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/elasticsearch/create.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+# This script installs java and elasticsearch
+
+apt-get update
+apt-get install -y openjdk-7-jre-headless
+
+wget -qO - https://packages.elasticsearch.org/GPG-KEY-elasticsearch | apt-key add -
+echo "deb http://packages.elasticsearch.org/elasticsearch/1.5/debian stable main" | tee -a /etc/apt/sources.list
+
+apt-get update
+apt-get install -y elasticsearch
+
+# set up to run as service
+update-rc.d elasticsearch defaults 95 10
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/elasticsearch/start.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/elasticsearch/start.sh
new file mode 100644
index 0000000..bbc0347
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/elasticsearch/start.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+# This script starts elasticsearch as a service in init.d
+service elasticsearch stop
+service elasticsearch start
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/config.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/config.sh
new file mode 100644
index 0000000..f28215a
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/config.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+# This script configures kibana to connect to the elasticsearch server
+# to access data and to export the app url on port 5601:
+# The environment variable elasticsearch_ip and kibana_ip are expected
+# to be set up.
+sed -i 's/localhost/'$elasticsearch_ip'/' /opt/kibana/config/kibana.yml
+sed -i 's/0.0.0.0/'$kibana_ip'/' /opt/kibana/config/kibana.yml
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/create.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/create.sh
new file mode 100644
index 0000000..41914b1
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/create.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+# This script installs kibana and sets it up to run as a service in init.d
+cd /opt
+wget https://download.elastic.co/kibana/kibana/kibana-4.1.0-linux-x64.tar.gz
+tar xzvf kibana-4.1.0-linux-x64.tar.gz
+mv kibana-4.1.0-linux-x64 kibana
+
+# set up to run as service
+cd /etc/init.d
+wget https://gist.githubusercontent.com/thisismitch/8b15ac909aed214ad04a/raw/bce61d85643c2dcdfbc2728c55a41dab444dca20/kibana4
+chmod +x kibana4
+update-rc.d kibana4 defaults 96 9
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/start.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/start.sh
new file mode 100644
index 0000000..5149bb3
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/kibana/start.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+# This script starts kibana as a service in init.d
+service kibana4 stop
+service kibana4 start
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_collectd.py b/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_collectd.py
new file mode 100644
index 0000000..18fdacf
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_collectd.py
@@ -0,0 +1,28 @@
+#!/usr/bin/python
+
+# Licensed 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.
+
+# This script configures the logstash input using the udp protocol on
+# port 25826. This is intended to receive data from collectd from
+# any source
+with open("/etc/logstash/conf.d/collectd.conf", "w") as fh:
+ fh.write("""
+ input {
+ udp {
+ port => 25826 # 25826 is the default for collectd
+ buffer_size => 1452 # 1452 is the default for collectd
+ codec => collectd { }
+ tags => ["metrics"]
+ type => "collectd"
+ }
+ }""")
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_elasticsearch.py b/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_elasticsearch.py
new file mode 100644
index 0000000..2e5389c
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_elasticsearch.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+
+# Licensed 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.
+
+# This script configures the logstash output to forward to elasticsearch
+# The environment variable elasticsearch_ip is expected to be set up
+import os
+with open("/etc/logstash/conf.d/elasticsearch.conf", 'w') as fh:
+ fh.write("""
+ output {
+ elasticsearch {
+ action => index
+ host => "%s"
+ protocol => "http"
+ }
+ }""" % (os.environ['elasticsearch_ip']))
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_rsyslog.py b/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_rsyslog.py
new file mode 100644
index 0000000..fc610c2
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/configure_rsyslog.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+
+# Licensed 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.
+
+# This script configures the logstash input using the RELP protocol on
+# port 2514 This is intended to receive logs from rsyslog from
+# any source
+with open("/etc/logstash/conf.d/rsyslog.conf", "w") as fh:
+ fh.write("""
+ input {
+ relp {
+ port => 2514
+ tags => ["logs"]
+ }
+ }""")
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/create.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/create.sh
new file mode 100644
index 0000000..77cc8fd
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/create.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+# This script installs java, logstash and the contrib package for logstash
+# install java as prereq
+
+apt-get update
+apt-get install -y openjdk-7-jre-headless
+mkdir /etc/logstash
+
+# install by apt-get from repo
+wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | apt-key add -
+echo "deb http://packages.elasticsearch.org/logstash/1.4/debian stable main" | tee -a /etc/apt/sources.list
+
+apt-get update
+apt-get install -y logstash
+
+# install contrib to get the relp plugin
+/opt/logstash/bin/plugin install contrib
+
+# set up to run as service
+update-rc.d logstash defaults 95 10
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/start.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/start.sh
new file mode 100644
index 0000000..a73cf61
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/logstash/start.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+# Run logstash as service in init.d
+service logstash stop
+service logstash start
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/config.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/config.sh
new file mode 100644
index 0000000..78f484e
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/config.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+# Edit the file /etc/mongod.conf, update with real IP of Mongo server
+# This script configures the mongodb server to export its service on
+# the server IP
+# bind_ip = 127.0.0.1 -> bind_ip = <IP for Mongo server>
+# The environment variable mongodb_ip is expected to be set up
+sed -i "s/= 127.0.0.1/= $mongodb_ip,127.0.0.1/" /etc/mongod.conf
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/create.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/create.sh
new file mode 100644
index 0000000..d84c275
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/create.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+# This script installs mongodb
+
+apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
+echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.0.list
+
+apt-get update
+apt-get install -y mongodb-org
+
+#Wait for mongodb initialization
+while [[ ! -d "/var/lib/mongodb/_tmp" ]]; do
+ echo "Waiting for mongodb initialization ..."
+ sleep 5
+done
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/create_database.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/create_database.sh
new file mode 100644
index 0000000..16f1358
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/create_database.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+echo "conn = new Mongo();" > setup.js
+echo "db = conn.getDB('paypal_pizza');" >> setup.js
+echo "db.about.insert({'name': 'PayPal Pizza Store'});" >> setup.js
+mongo setup.js
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/start.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/start.sh
new file mode 100644
index 0000000..ac200a5
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/mongodb/start.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+# This script starts mongodb
+service mongod stop
+rm /var/lib/mongodb/mongod.lock
+service mongod start
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_database_configure.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_database_configure.sh
new file mode 100644
index 0000000..092136a
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_database_configure.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+cat << EOF | mysql -u root --password=$db_root_password
+CREATE DATABASE $db_name;
+GRANT ALL PRIVILEGES ON $db_name.* TO "$db_user"@"localhost"
+IDENTIFIED BY "$db_password";
+FLUSH PRIVILEGES;
+EXIT
+EOF \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_configure.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_configure.sh
new file mode 100644
index 0000000..d4ef6b4
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_configure.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+sed --regexp-extended "s/(port\s*=\s*)[0-9]*/\1$db_port/g" </etc/mysql/my.cnf >/tmp/my.cnf
+mv -f /tmp/my.cnf /etc/mysql/my.cnf
+/etc/init.d/mysql stop
+/etc/init.d/mysql start \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_install.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_install.sh
new file mode 100644
index 0000000..38628b9
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_install.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+#This script installs mysql server
+
+apt-get update
+
+debconf-set-selections <<< "mysql-server mysql-server/root_password password $db_root_password"
+debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $db_root_password"
+
+apt-get -y install --fix-missing mysql-server \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_start.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_start.sh
new file mode 100644
index 0000000..3378670
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/mysql/mysql_dbms_start.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+/etc/init.d/mysql start \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/config.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/config.sh
new file mode 100644
index 0000000..1e149a2
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/config.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+# This script installs an app for nodejs: the app intended is the paypal app
+# and it is configured to connect to the mongodb server
+# The environment variables github_url and mongodb_ip are expected to be set up
+export app_dir=/opt/app
+git clone $github_url /opt/app
+if [ -f /opt/app/package.json ]; then
+ cd /opt/app/ && npm install
+ sed -i "s/localhost/$mongodb_ip/" config.json
+fi
+
+cat > /etc/init/nodeapp.conf <<EOS
+description "node.js app"
+
+start on (net-device-up
+ and local-filesystems
+ and runlevel [2345])
+stop on runlevel [!2345]
+
+expect fork
+respawn
+
+script
+ export HOME=/
+ export NODE_PATH=/usr/lib/node
+ exec /usr/bin/node ${app_dir}/app.js >> /var/log/nodeapp.log 2>&1 &
+end script
+EOS
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/create.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/create.sh
new file mode 100644
index 0000000..04fd6c6
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/create.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+# This script installs nodejs and the prereq
+
+add-apt-repository ppa:chris-lea/node.js
+
+apt-get update
+apt-get install -y nodejs build-essential
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/start.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/start.sh
new file mode 100644
index 0000000..6939cb7
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/nodejs/start.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+# This script starts the nodejs application
+start nodeapp
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/config.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/config.sh
new file mode 100644
index 0000000..630767d
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/config.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# This script configures the output for rsyslogd to send logs to the
+# logstash server port 2514 using the RELP protocol
+# The environment variable logstash_ip is expected to be set up
+echo "module(load=\"omrelp\")
+action(type=\"omrelp\" target=\"$logstash_ip\" port=\"2514\")" > /etc/rsyslog.d/tosca_elk.conf
+
+# Remove the /dev/xconsole configuration as xconsole
+# is not available by default
+l=`awk '/=warn.*\|.*\/dev\/xconsole/{print NR - 1}' /etc/rsyslog.d/50-default.conf`
+if [ ! -z $l ]; then
+ l=`expr $l + 1`
+ line=`cat /etc/rsyslog.d/50-default.conf | head -n $l | tail -1`
+ if [[ ! $line == \#* ]]; then
+ l0=`expr $l - 3`
+ sed -i -r -e "${l0},${l}s/^.{0}/&#/" /etc/rsyslog.d/50-default.conf
+ fi
+fi
+
+# Enable nodejs logs for rsyslog
+if ! grep -q nodeapp "/etc/rsyslog.conf"; then
+ sed -i 's/\$PrivDropToGroup\ syslog/\$PrivDropToGroup adm/' /etc/rsyslog.conf
+ echo "\$ModLoad imfile.so
+\$InputFileName /var/log/nodeapp.log
+\$InputFileTag paypal_pizza:
+\$InputFileStateFile stat-nodeapp
+\$InputRunFileMonitor
+\$InputFilePollInterval 1" >> /etc/rsyslog.conf
+fi
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/create.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/create.sh
new file mode 100644
index 0000000..affdd6e
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/create.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+# This script installs rsyslog and the library for RELP
+
+apt-get update
+apt-get install -y rsyslog rsyslog-relp
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/start.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/start.sh
new file mode 100644
index 0000000..3de82d1
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/rsyslog/start.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+# This script starts rsyslogd as a service in init.d
+service rsyslog stop
+service rsyslog start
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/webserver/webserver_install.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/webserver/webserver_install.sh
new file mode 100644
index 0000000..4ca9b4e
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/webserver/webserver_install.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+#This script installs apache web server
+
+apt-get update
+apt-get install -y apache2 \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/webserver/webserver_start.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/webserver/webserver_start.sh
new file mode 100644
index 0000000..e962ca5
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/webserver/webserver_start.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+service apache2 start \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/wordpress/wordpress_configure.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/wordpress/wordpress_configure.sh
new file mode 100644
index 0000000..5598b4f
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/wordpress/wordpress_configure.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+ln -s /usr/share/wordpress /var/www/html/wordpress
+gzip -d /usr/share/doc/wordpress/examples/setup-mysql.gz
+echo $wp_db_password | bash /usr/share/doc/wordpress/examples/setup-mysql -e $wp_db_name -u $wp_db_user localhost \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/artifacts/wordpress/wordpress_install.sh b/tosca2heat/heat-translator/translator/tests/data/artifacts/wordpress/wordpress_install.sh
new file mode 100644
index 0000000..1320443
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/artifacts/wordpress/wordpress_install.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+#This script installs wordpress
+
+apt-get update
+apt-get install -y wordpress \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/csar_elk.zip b/tosca2heat/heat-translator/translator/tests/data/csar_elk.zip
new file mode 100644
index 0000000..5fae801
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/csar_elk.zip
Binary files differ
diff --git a/tosca2heat/heat-translator/translator/tests/data/csar_hello_world.zip b/tosca2heat/heat-translator/translator/tests/data/csar_hello_world.zip
new file mode 100644
index 0000000..43ffbbc
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/csar_hello_world.zip
Binary files differ
diff --git a/tosca2heat/heat-translator/translator/tests/data/csar_metadata_not_yaml.zip b/tosca2heat/heat-translator/translator/tests/data/csar_metadata_not_yaml.zip
new file mode 100644
index 0000000..3e6120b
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/csar_metadata_not_yaml.zip
Binary files differ
diff --git a/tosca2heat/heat-translator/translator/tests/data/csar_not_zip.zip b/tosca2heat/heat-translator/translator/tests/data/csar_not_zip.zip
new file mode 100644
index 0000000..43b7f5f
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/csar_not_zip.zip
@@ -0,0 +1 @@
+This is an invalid CSAR file. \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/csar_single_instance_wordpress.zip b/tosca2heat/heat-translator/translator/tests/data/csar_single_instance_wordpress.zip
new file mode 100644
index 0000000..17e655e
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/csar_single_instance_wordpress.zip
Binary files differ
diff --git a/tosca2heat/heat-translator/translator/tests/data/csar_wordpress_invalid_import_path.zip b/tosca2heat/heat-translator/translator/tests/data/csar_wordpress_invalid_import_path.zip
new file mode 100644
index 0000000..9dc6c9a
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/csar_wordpress_invalid_import_path.zip
Binary files differ
diff --git a/tosca2heat/heat-translator/translator/tests/data/csar_wordpress_invalid_script_url.zip b/tosca2heat/heat-translator/translator/tests/data/csar_wordpress_invalid_script_url.zip
new file mode 100644
index 0000000..6014f92
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/csar_wordpress_invalid_script_url.zip
Binary files differ
diff --git a/tosca2heat/heat-translator/translator/tests/data/csar_wrong_metadata_file.zip b/tosca2heat/heat-translator/translator/tests/data/csar_wrong_metadata_file.zip
new file mode 100644
index 0000000..85d660a
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/csar_wrong_metadata_file.zip
Binary files differ
diff --git a/tosca2heat/heat-translator/translator/tests/data/custom_types/collectd.yaml b/tosca2heat/heat-translator/translator/tests/data/custom_types/collectd.yaml
new file mode 100644
index 0000000..1ac0935
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/custom_types/collectd.yaml
@@ -0,0 +1,13 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ collectd is a daemon which gathers statistics about the system it is running on.
+
+node_types:
+ tosca.nodes.SoftwareComponent.Collectd:
+ derived_from: tosca.nodes.SoftwareComponent
+ requirements:
+ - log_endpoint:
+ capability: tosca.capabilities.Endpoint
+ node: tosca.nodes.SoftwareComponent.Logstash
+ relationship: tosca.relationships.ConnectsTo \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/custom_types/elasticsearch.yaml b/tosca2heat/heat-translator/translator/tests/data/custom_types/elasticsearch.yaml
new file mode 100644
index 0000000..b140a32
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/custom_types/elasticsearch.yaml
@@ -0,0 +1,12 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ Elasticsearch is an open-source search engine built on top of Apache Lucene,
+ a full-text search-engine library.
+
+node_types:
+ tosca.nodes.SoftwareComponent.Elasticsearch:
+ derived_from: tosca.nodes.SoftwareComponent
+ capabilities:
+ search_endpoint:
+ type: tosca.capabilities.Endpoint
diff --git a/tosca2heat/heat-translator/translator/tests/data/custom_types/kibana.yaml b/tosca2heat/heat-translator/translator/tests/data/custom_types/kibana.yaml
new file mode 100644
index 0000000..5701e69
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/custom_types/kibana.yaml
@@ -0,0 +1,14 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ Kibana is an open source analytics and visualization platform designed to work with Elasticsearch.
+ You use Kibana to search, view, and interact with data stored in Elasticsearch.
+
+node_types:
+ tosca.nodes.SoftwareComponent.Kibana:
+ derived_from: tosca.nodes.SoftwareComponent
+ requirements:
+ - search_endpoint:
+ capability: tosca.capabilities.Endpoint
+ node: tosca.nodes.SoftwareComponent.Elasticsearch
+ relationship: tosca.relationships.ConnectsTo
diff --git a/tosca2heat/heat-translator/translator/tests/data/custom_types/logstash.yaml b/tosca2heat/heat-translator/translator/tests/data/custom_types/logstash.yaml
new file mode 100644
index 0000000..cf60521
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/custom_types/logstash.yaml
@@ -0,0 +1,25 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ Logstash is a tool for receiving, processing and outputting logs. All kinds
+ of logs. System logs, webserver logs, error logs, application logs, and just
+ about anything you can throw at it.
+
+node_types:
+ tosca.nodes.SoftwareComponent.Logstash:
+ derived_from: tosca.nodes.SoftwareComponent
+ requirements:
+ - search_endpoint:
+ capability: tosca.capabilities.Endpoint
+ node: tosca.nodes.SoftwareComponent.Elasticsearch
+ relationship:
+ type: tosca.relationships.ConnectsTo
+ interfaces:
+ Configure:
+ pre_configure_source:
+ inputs:
+ elasticsearch_ip:
+ type: string
+ capabilities:
+ log_endpoint:
+ type: tosca.capabilities.Endpoint
diff --git a/tosca2heat/heat-translator/translator/tests/data/custom_types/paypalpizzastore_nodejs_app.yaml b/tosca2heat/heat-translator/translator/tests/data/custom_types/paypalpizzastore_nodejs_app.yaml
new file mode 100644
index 0000000..d62c4c1
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/custom_types/paypalpizzastore_nodejs_app.yaml
@@ -0,0 +1,29 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ Pizza store app that allows you to explore the features provided by PayPal's REST APIs.
+ More detail can be found at https://github.com/paypal/rest-api-sample-app-nodejs/
+
+node_types:
+ tosca.nodes.WebApplication.PayPalPizzaStore:
+ derived_from: tosca.nodes.WebApplication
+ properties:
+ github_url:
+ required: no
+ type: string
+ description: location of the application on the github.
+ default: https://github.com/sample.git
+ requirements:
+ #WebApplication inherits Computer, so host implied.
+ - database_connection:
+ capability: tosca.capabilities.Endpoint.Database
+ node: tosca.nodes.Database
+ relationship: tosca.relationships.ConnectsTo
+ interfaces:
+ Standard:
+ configure:
+ inputs:
+ github_url:
+ type: string
+ mongodb_ip:
+ type: string
diff --git a/tosca2heat/heat-translator/translator/tests/data/custom_types/rsyslog.yaml b/tosca2heat/heat-translator/translator/tests/data/custom_types/rsyslog.yaml
new file mode 100644
index 0000000..4614ee7
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/custom_types/rsyslog.yaml
@@ -0,0 +1,13 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ RSYSLOG is the Rocket-fast SYStem for LOG processing.
+
+node_types:
+ tosca.nodes.SoftwareComponent.Rsyslog:
+ derived_from: tosca.nodes.SoftwareComponent
+ requirements:
+ - log_endpoint:
+ capability: tosca.capabilities.Endpoint
+ node: tosca.nodes.SoftwareComponent.Logstash
+ relationship: tosca.relationships.ConnectsTo
diff --git a/tosca2heat/heat-translator/translator/tests/data/custom_types/wordpress.yaml b/tosca2heat/heat-translator/translator/tests/data/custom_types/wordpress.yaml
new file mode 100644
index 0000000..5899ed9
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/custom_types/wordpress.yaml
@@ -0,0 +1,19 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+node_types:
+ tosca.nodes.WebApplication.WordPress:
+ derived_from: tosca.nodes.WebApplication
+ requirements:
+ - database_endpoint:
+ capability: tosca.capabilities.Endpoint.Database
+ node: tosca.nodes.Database
+ relationship: tosca.relationships.ConnectsTo
+ interfaces:
+ Standard:
+ inputs:
+ wp_db_name:
+ type: string
+ wp_db_user:
+ type: string
+ wp_db_password:
+ type: string
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_artifact.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_artifact.yaml
new file mode 100644
index 0000000..7284116
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_artifact.yaml
@@ -0,0 +1,30 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA template to test artifact usage
+
+parameters: {}
+resources:
+ customwebserver_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: customwebserver_create_config
+ input_values:
+ content:
+ get_file: http://www.mycompany.org/content.tgz
+ server:
+ get_resource: server
+ server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: ubuntu-12.04-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+ customwebserver_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: install.sh
+ group: script
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type.yaml
new file mode 100644
index 0000000..9f722cc
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type.yaml
@@ -0,0 +1,34 @@
+
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA template to test custom type with an interface defined on it
+
+parameters:
+ install_path:
+ type: string
+ default: /home/custom/other
+resources:
+ customwebserver_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: customwebserver_create_config
+ input_values:
+ path:
+ get_param: install_path
+ server:
+ get_resource: server
+ server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: ubuntu-12.04-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+ customwebserver_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: install.sh
+ group: script
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type_with_override.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type_with_override.yaml
new file mode 100644
index 0000000..24a2893
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type_with_override.yaml
@@ -0,0 +1,34 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA template to test custom type with an interface defined on it,
+ and an interface overriding the type's one on the template itself
+
+parameters:
+ install_path:
+ type: string
+ default: /home/custom/other
+resources:
+ customwebserver_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: customwebserver_create_config
+ input_values:
+ path:
+ get_param: install_path
+ server:
+ get_resource: server
+ server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: ubuntu-12.04-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+ customwebserver_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: install_override.sh
+ group: script
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type_with_param_override.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type_with_param_override.yaml
new file mode 100644
index 0000000..b166d7c
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_custom_type_with_param_override.yaml
@@ -0,0 +1,34 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA template to test custom type with an interface defined on it,
+ and an interface overriding the type's one on the template itself
+
+parameters:
+ install_path:
+ type: string
+ default: /home/custom/from/cli
+resources:
+ customwebserver_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: customwebserver_create_config
+ input_values:
+ path:
+ get_param: install_path
+ server:
+ get_resource: server
+ server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: ubuntu-12.04-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+ customwebserver_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: install_override.sh
+ group: script
+outputs: {} \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_elk.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_elk.yaml
new file mode 100644
index 0000000..a298745
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_elk.yaml
@@ -0,0 +1,551 @@
+heat_template_version: 2013-05-23
+
+description: >
+ This TOSCA simple profile deploys nodejs, mongodb, elasticsearch, logstash and
+ kibana each on a separate server with monitoring enabled for nodejs server where
+ a sample nodejs application is running. The rsyslog and collectd are installed
+ on a nodejs server.
+
+parameters:
+ github_url:
+ type: string
+ description: The URL to download nodejs.
+ default: http://github.com/paypal/rest-api-sample-app-nodejs.git
+
+ my_cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 4
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+
+resources:
+
+ nodejs_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: nodejs_create_config
+ server:
+ get_resource: app_server
+
+ nodejs_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: nodejs/create.sh
+ group: script
+
+ paypal_pizzastore_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: paypal_pizzastore_configure_config
+ input_values:
+ github_url:
+ get_param: github_url
+ mongodb_ip:
+ get_attr:
+ - mongo_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: app_server
+ depends_on:
+ - nodejs_create_deploy
+ - mongo_db_create_deploy
+
+ paypal_pizzastore_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: nodejs/config.sh
+ group: script
+
+ paypal_pizzastore_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: paypal_pizzastore_start_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - paypal_pizzastore_configure_deploy
+
+ paypal_pizzastore_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: nodejs/start.sh
+ group: script
+
+
+ mongo_dbms_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_dbms_create_config
+ server:
+ get_resource: mongo_server
+
+ mongo_dbms_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mongodb/create.sh
+ group: script
+
+ mongo_dbms_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_dbms_configure_config
+ input_values:
+ mongodb_ip:
+ get_attr:
+ - mongo_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: mongo_server
+ depends_on:
+ - mongo_dbms_create_deploy
+
+ mongo_dbms_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mongodb/config.sh
+ group: script
+
+ mongo_dbms_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_dbms_start_config
+ server:
+ get_resource: mongo_server
+ depends_on:
+ - mongo_dbms_configure_deploy
+
+ mongo_dbms_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mongodb/start.sh
+ group: script
+
+ mongo_db_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_db_create_config
+ server:
+ get_resource: mongo_server
+ depends_on:
+ - mongo_dbms_start_deploy
+
+ mongo_db_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mongodb/create_database.sh
+ group: script
+
+
+ app_collectd_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_create_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - logstash_start_deploy
+
+ app_collectd_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: collectd/create.sh
+ group: script
+
+ app_collectd_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_configure_config
+ input_values:
+ logstash_ip:
+ get_attr:
+ - logstash_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: app_server
+ depends_on:
+ - app_collectd_create_deploy
+
+ app_collectd_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: collectd/config.py
+ group: script
+
+ app_collectd_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_start_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - app_collectd_configure_deploy
+
+ app_collectd_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: collectd/start.sh
+ group: script
+
+ app_collectd_logstash_connect_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_logstash_connect_config
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - logstash_create_deploy
+
+ app_collectd_logstash_connect_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: logstash/configure_collectd.py
+ group: script
+
+
+ app_rsyslog_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_rsyslog_create_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - logstash_start_deploy
+
+ app_rsyslog_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: rsyslog/create.sh
+ group: script
+
+ app_rsyslog_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_rsyslog_start_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - app_rsyslog_configure_deploy
+
+ app_rsyslog_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: rsyslog/start.sh
+ group: script
+
+ app_rsyslog_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_rsyslog_configure_config
+ input_values:
+ logstash_ip:
+ get_attr:
+ - logstash_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: app_server
+ depends_on:
+ - app_rsyslog_create_deploy
+
+ app_rsyslog_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: rsyslog/config.sh
+ group: script
+
+ app_rsyslog_logstash_connect_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_rsyslog_logstash_connect_config
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - logstash_create_deploy
+
+ app_rsyslog_logstash_connect_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: logstash/configure_rsyslog.py
+ group: script
+
+
+ logstash_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: logstash_create_config
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - elasticsearch_start_deploy
+
+ logstash_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: logstash/create.sh
+ group: script
+
+ logstash_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: logstash_start_config
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - logstash_create_deploy
+
+ logstash_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: logstash/start.sh
+ group: script
+
+ logstash_elasticsearch_connect_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: logstash_elasticsearch_connect_config
+ input_values:
+ elasticsearch_ip:
+ get_attr:
+ - elasticsearch_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - logstash_create_deploy
+
+ logstash_elasticsearch_connect_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: logstash/configure_elasticsearch.py
+ group: script
+
+
+ elasticsearch_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: elasticsearch_create_config
+ server:
+ get_resource: elasticsearch_server
+
+ elasticsearch_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: elasticsearch/create.sh
+ group: script
+
+ elasticsearch_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: elasticsearch_start_config
+ server:
+ get_resource: elasticsearch_server
+ depends_on:
+ - elasticsearch_create_deploy
+
+ elasticsearch_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: elasticsearch/start.sh
+ group: script
+
+
+ kibana_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: kibana_create_config
+ server:
+ get_resource: kibana_server
+ depends_on:
+ - elasticsearch_start_deploy
+
+ kibana_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: kibana/create.sh
+ group: script
+
+ kibana_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: kibana_configure_config
+ input_values:
+ elasticsearch_ip:
+ get_attr:
+ - elasticsearch_server
+ - networks
+ - private
+ - 0
+ kibana_ip:
+ get_attr:
+ - kibana_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: kibana_server
+ depends_on:
+ - kibana_create_deploy
+
+ kibana_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: kibana/config.sh
+ group: script
+
+ kibana_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: kibana_start_config
+ server:
+ get_resource: kibana_server
+ depends_on:
+ - kibana_configure_deploy
+
+ kibana_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: kibana/start.sh
+ group: script
+
+
+ app_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ mongo_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ logstash_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ elasticsearch_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ kibana_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+outputs:
+ nodejs_url:
+ description: URL for the nodejs server, http://<IP>:3000
+ value:
+ get_attr:
+ - app_server
+ - networks
+ - private
+ - 0
+
+ mongodb_url:
+ description: URL for the mongodb server.
+ value:
+ get_attr:
+ - mongo_server
+ - networks
+ - private
+ - 0
+
+ logstash_url:
+ description: URL for the logstash server.
+ value:
+ get_attr:
+ - logstash_server
+ - networks
+ - private
+ - 0
+
+ elasticsearch_url:
+ description: URL for the elasticsearch server.
+ value:
+ get_attr:
+ - elasticsearch_server
+ - networks
+ - private
+ - 0
+
+ kibana_url:
+ description: URL for the kibana server.
+ value:
+ get_attr:
+ - kibana_server
+ - networks
+ - private
+ - 0
+
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_elk_from_csar.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_elk_from_csar.yaml
new file mode 100644
index 0000000..5eb1701
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_elk_from_csar.yaml
@@ -0,0 +1,551 @@
+heat_template_version: 2013-05-23
+
+description: >
+ This TOSCA simple profile deploys nodejs, mongodb, elasticsearch, logstash and
+ kibana each on a separate server with monitoring enabled for nodejs server where
+ a sample nodejs application is running. The rsyslog and collectd are installed
+ on a nodejs server.
+
+parameters:
+ github_url:
+ type: string
+ description: The URL to download nodejs.
+ default: http://github.com/paypal/rest-api-sample-app-nodejs.git
+
+ my_cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 4
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+
+resources:
+
+ nodejs_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: nodejs_create_config
+ server:
+ get_resource: app_server
+
+ nodejs_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/nodejs/create.sh
+ group: script
+
+ paypal_pizzastore_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: paypal_pizzastore_configure_config
+ input_values:
+ github_url:
+ get_param: github_url
+ mongodb_ip:
+ get_attr:
+ - mongo_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: app_server
+ depends_on:
+ - nodejs_create_deploy
+ - mongo_db_create_deploy
+
+ paypal_pizzastore_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/nodejs/config.sh
+ group: script
+
+ paypal_pizzastore_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: paypal_pizzastore_start_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - paypal_pizzastore_configure_deploy
+
+ paypal_pizzastore_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/nodejs/start.sh
+ group: script
+
+
+ mongo_dbms_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_dbms_create_config
+ server:
+ get_resource: mongo_server
+
+ mongo_dbms_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/mongodb/create.sh
+ group: script
+
+ mongo_dbms_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_dbms_configure_config
+ input_values:
+ mongodb_ip:
+ get_attr:
+ - mongo_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: mongo_server
+ depends_on:
+ - mongo_dbms_create_deploy
+
+ mongo_dbms_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/mongodb/config.sh
+ group: script
+
+ mongo_dbms_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_dbms_start_config
+ server:
+ get_resource: mongo_server
+ depends_on:
+ - mongo_dbms_configure_deploy
+
+ mongo_dbms_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/mongodb/start.sh
+ group: script
+
+ mongo_db_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_db_create_config
+ server:
+ get_resource: mongo_server
+ depends_on:
+ - mongo_dbms_start_deploy
+
+ mongo_db_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/mongodb/create_database.sh
+ group: script
+
+
+ app_collectd_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_create_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - logstash_start_deploy
+
+ app_collectd_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/collectd/create.sh
+ group: script
+
+ app_collectd_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_configure_config
+ input_values:
+ logstash_ip:
+ get_attr:
+ - logstash_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: app_server
+ depends_on:
+ - app_collectd_create_deploy
+
+ app_collectd_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Python/collectd/config.py
+ group: script
+
+ app_collectd_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_start_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - app_collectd_configure_deploy
+
+ app_collectd_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/collectd/start.sh
+ group: script
+
+ app_collectd_logstash_connect_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_logstash_connect_config
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - logstash_create_deploy
+
+ app_collectd_logstash_connect_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Python/logstash/configure_collectd.py
+ group: script
+
+
+ app_rsyslog_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_rsyslog_create_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - logstash_start_deploy
+
+ app_rsyslog_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/rsyslog/create.sh
+ group: script
+
+ app_rsyslog_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_rsyslog_start_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - app_rsyslog_configure_deploy
+
+ app_rsyslog_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/rsyslog/start.sh
+ group: script
+
+ app_rsyslog_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_rsyslog_configure_config
+ input_values:
+ logstash_ip:
+ get_attr:
+ - logstash_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: app_server
+ depends_on:
+ - app_rsyslog_create_deploy
+
+ app_rsyslog_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/rsyslog/config.sh
+ group: script
+
+ app_rsyslog_logstash_connect_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_rsyslog_logstash_connect_config
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - logstash_create_deploy
+
+ app_rsyslog_logstash_connect_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Python/logstash/configure_rsyslog.py
+ group: script
+
+
+ logstash_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: logstash_create_config
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - elasticsearch_start_deploy
+
+ logstash_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/logstash/create.sh
+ group: script
+
+ logstash_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: logstash_start_config
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - logstash_create_deploy
+
+ logstash_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/logstash/start.sh
+ group: script
+
+ logstash_elasticsearch_connect_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: logstash_elasticsearch_connect_config
+ input_values:
+ elasticsearch_ip:
+ get_attr:
+ - elasticsearch_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - logstash_create_deploy
+
+ logstash_elasticsearch_connect_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Python/logstash/configure_elasticsearch.py
+ group: script
+
+
+ elasticsearch_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: elasticsearch_create_config
+ server:
+ get_resource: elasticsearch_server
+
+ elasticsearch_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/elasticsearch/create.sh
+ group: script
+
+ elasticsearch_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: elasticsearch_start_config
+ server:
+ get_resource: elasticsearch_server
+ depends_on:
+ - elasticsearch_create_deploy
+
+ elasticsearch_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/elasticsearch/start.sh
+ group: script
+
+
+ kibana_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: kibana_create_config
+ server:
+ get_resource: kibana_server
+ depends_on:
+ - elasticsearch_start_deploy
+
+ kibana_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/kibana/create.sh
+ group: script
+
+ kibana_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: kibana_configure_config
+ input_values:
+ elasticsearch_ip:
+ get_attr:
+ - elasticsearch_server
+ - networks
+ - private
+ - 0
+ kibana_ip:
+ get_attr:
+ - kibana_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: kibana_server
+ depends_on:
+ - kibana_create_deploy
+
+ kibana_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/kibana/config.sh
+ group: script
+
+ kibana_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: kibana_start_config
+ server:
+ get_resource: kibana_server
+ depends_on:
+ - kibana_configure_deploy
+
+ kibana_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/kibana/start.sh
+ group: script
+
+
+ app_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ mongo_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ logstash_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ elasticsearch_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ kibana_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+outputs:
+ nodejs_url:
+ description: URL for the nodejs server, http://<IP>:3000
+ value:
+ get_attr:
+ - app_server
+ - networks
+ - private
+ - 0
+
+ mongodb_url:
+ description: URL for the mongodb server.
+ value:
+ get_attr:
+ - mongo_server
+ - networks
+ - private
+ - 0
+
+ logstash_url:
+ description: URL for the logstash server.
+ value:
+ get_attr:
+ - logstash_server
+ - networks
+ - private
+ - 0
+
+ elasticsearch_url:
+ description: URL for the elasticsearch server.
+ value:
+ get_attr:
+ - elasticsearch_server
+ - networks
+ - private
+ - 0
+
+ kibana_url:
+ description: URL for the kibana server.
+ value:
+ get_attr:
+ - kibana_server
+ - networks
+ - private
+ - 0
+
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_flavor_and_image.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_flavor_and_image.yaml
new file mode 100644
index 0000000..da8285e
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_flavor_and_image.yaml
@@ -0,0 +1,18 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Template for deploying a server with custom properties for image, flavor and key_name.
+
+parameters:
+ key_name:
+ type: string
+ default: inputkey
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: rhel-6.5-test-image
+ key_name: {get_param: key_name}
+ user_data_format: SOFTWARE_CONFIG
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_flavor_and_image_params.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_flavor_and_image_params.yaml
new file mode 100644
index 0000000..679461c
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_flavor_and_image_params.yaml
@@ -0,0 +1,18 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Template for deploying a server with custom properties for image, flavor and key_name.
+
+parameters:
+ key_name:
+ type: string
+ default: paramkey
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: rhel-6.5-test-image
+ key_name: {get_param: key_name}
+ user_data_format: SOFTWARE_CONFIG
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_hello_world.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_hello_world.yaml
new file mode 100644
index 0000000..8cb4081
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_hello_world.yaml
@@ -0,0 +1,14 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Template for deploying a single server with predefined properties.
+
+parameters: {}
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: rhel-6.5-test-image
+ user_data_format: SOFTWARE_CONFIG
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_hello_world_userkey.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_hello_world_userkey.yaml
new file mode 100644
index 0000000..e5fadb0
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_hello_world_userkey.yaml
@@ -0,0 +1,19 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Template for deploying a single server with predefined properties.
+
+parameters:
+ key_name:
+ type: string
+ default: userkey
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: rhel-6.5-test-image
+ key_name: { get_param: key_name }
+ user_data_format: SOFTWARE_CONFIG
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_host_assignment.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_host_assignment.yaml
new file mode 100644
index 0000000..33f3059
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_host_assignment.yaml
@@ -0,0 +1,135 @@
+heat_template_version: 2013-05-23
+
+description: >
+ A template to test host assignment for translated hot resources.
+ It makes sure if a resource depends on multiple hosts only the
+ one with the "HostedOn" relationship is picked as the host. In
+ this template, the translated resource 'app_collectd_create_deploy'
+ would depend on 'logstash_server' and 'app_server'. But it would
+ have "HostedOn" relationship with 'app_server', and that server
+ would be its host.
+
+parameters: {}
+resources:
+ app_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ logstash_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ app_collectd_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: collectd/create.sh
+ group: script
+
+ app_collectd_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_create_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - logstash_start_deploy
+
+ app_collectd_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: collectd/config.py
+ group: script
+
+ app_collectd_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_configure_config
+ input_values:
+ logstash_ip:
+ get_attr:
+ - logstash_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: app_server
+ depends_on:
+ - app_collectd_create_deploy
+
+ app_collectd_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: collectd/start.sh
+ group: script
+
+ app_collectd_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_start_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - app_collectd_configure_deploy
+
+ logstash_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: logstash/create.sh
+ group: script
+
+ logstash_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: logstash_create_config
+ server:
+ get_resource: logstash_server
+
+ logstash_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: logstash/start.sh
+ group: script
+
+ logstash_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: logstash_start_config
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - logstash_create_deploy
+
+ app_collectd_logstash_connect_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: logstash/configure_collectd.py
+ group: script
+
+ app_collectd_logstash_connect_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: app_collectd_logstash_connect_config
+ server:
+ get_resource: logstash_server
+ depends_on:
+ - logstash_create_deploy
+
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_nfv_sample.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_nfv_sample.yaml
new file mode 100644
index 0000000..2103d43
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_nfv_sample.yaml
@@ -0,0 +1,35 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Template for deploying a single server with predefined properties.
+
+parameters: {}
+resources:
+ VDU1:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: rhel-6.5-test-image
+ networks:
+ - port: { get_resource: CP1 }
+ user_data_format: SOFTWARE_CONFIG
+ CP1:
+ type: OS::Neutron::Port
+ properties:
+ fixed_ips:
+ - ip_address: '192.168.0.55'
+ network: { get_resource: VL1 }
+ VL1:
+ type: OS::Neutron::Net
+ VL1_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ ip_version: 4
+ allocation_pools:
+ - end: 192.168.0.200
+ start: 192.168.0.50
+ gateway_ip: 192.168.0.1
+ cidr: 192.168.0.0/24
+ network: { get_resource: VL1 }
+outputs: {}
+
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_nodejs_mongodb_two_instances.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_nodejs_mongodb_two_instances.yaml
new file mode 100644
index 0000000..b95120b
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_nodejs_mongodb_two_instances.yaml
@@ -0,0 +1,185 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with nodejs and mongodb.
+
+parameters:
+ github_url:
+ type: string
+ description: The URL to download nodejs.
+ default: http://github.com/paypal/rest-api-sample-app-nodejs.git
+
+ my_cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 4
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+
+resources:
+ mongo_dbms_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_dbms_create_config
+ server:
+ get_resource: mongo_server
+
+ mongo_dbms_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mongodb/create.sh
+ group: script
+
+ mongo_dbms_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_dbms_configure_config
+ input_values:
+ mongodb_ip:
+ get_attr:
+ - mongo_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: mongo_server
+ depends_on:
+ - mongo_dbms_create_deploy
+
+ mongo_dbms_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mongodb/config.sh
+ group: script
+
+ mongo_dbms_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_dbms_start_config
+ server:
+ get_resource: mongo_server
+ depends_on:
+ - mongo_dbms_configure_deploy
+
+ mongo_dbms_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mongodb/start.sh
+ group: script
+
+ mongo_db_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mongo_db_create_config
+ server:
+ get_resource: mongo_server
+ depends_on:
+ - mongo_dbms_start_deploy
+
+ mongo_db_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mongodb/create_database.sh
+ group: script
+
+ nodejs_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: nodejs_create_config
+ server:
+ get_resource: app_server
+
+ nodejs_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: nodejs/create.sh
+ group: script
+
+ paypal_pizzastore_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: paypal_pizzastore_configure_config
+ input_values:
+ github_url: http://github.com/paypal/rest-api-sample-app-nodejs.git
+ mongodb_ip:
+ get_attr:
+ - mongo_server
+ - networks
+ - private
+ - 0
+ server:
+ get_resource: app_server
+ depends_on:
+ - mongo_db_create_deploy
+ - nodejs_create_deploy
+
+ paypal_pizzastore_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: nodejs/config.sh
+ group: script
+
+ paypal_pizzastore_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: paypal_pizzastore_start_config
+ server:
+ get_resource: app_server
+ depends_on:
+ - paypal_pizzastore_configure_deploy
+
+ paypal_pizzastore_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: nodejs/start.sh
+ group: script
+
+ mongo_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ app_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+outputs:
+ mongodb_url:
+ description: URL for the mongodb server.
+ value:
+ get_attr:
+ - mongo_server
+ - networks
+ - private
+ - 0
+ nodejs_url:
+ description: URL for the nodejs server, http://<IP>:3000
+ value:
+ get_attr:
+ - app_server
+ - networks
+ - private
+ - 0
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_policies.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_policies.yaml
new file mode 100644
index 0000000..c7cfa44
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_policies.yaml
@@ -0,0 +1,25 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Template for deploying the nodes based on given policies.
+
+parameters: {}
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: rhel-6.5-test-image
+ scheduler_hints:
+ group:
+ get_resource: my_compute_placement_policy
+ user_data_format: SOFTWARE_CONFIG
+ my_compute_placement_policy:
+ type: OS::Nova::ServerGroup
+ properties:
+ name: my_compute_placement_policy
+ policies:
+ - affinity
+
+outputs: {} \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_instance_wordpress.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_instance_wordpress.yaml
new file mode 100644
index 0000000..8c10a93
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_instance_wordpress.yaml
@@ -0,0 +1,209 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with wordpress, web server and mysql on the same server.
+
+parameters:
+ db_name:
+ type: string
+ description: The name of the database.
+ default: wordpress
+ db_user:
+ type: string
+ description: The user name of the DB user.
+ default: wp_user
+ db_pwd:
+ type: string
+ description: The WordPress database admin account password.
+ default: wp_pass
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 8
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ db_root_pwd:
+ type: string
+ description: Root password for MySQL.
+ default: passw0rd
+ db_port:
+ type: number
+ description: Port for the MySQL database.
+ default: 3366
+
+resources:
+
+ mysql_dbms_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mysql/mysql_dbms_install.sh
+ group: script
+
+ mysql_dbms_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mysql_dbms_create_config
+ input_values:
+ db_root_password:
+ get_param: db_root_pwd
+ server:
+ get_resource: server
+
+ mysql_dbms_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mysql/mysql_dbms_start.sh
+ group: script
+
+ mysql_dbms_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mysql_dbms_start_config
+ server:
+ get_resource: server
+ depends_on:
+ - mysql_dbms_configure_deploy
+
+ mysql_dbms_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mysql/mysql_dbms_configure.sh
+ group: script
+
+ mysql_dbms_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mysql_dbms_configure_config
+ input_values:
+ db_port: 3366
+ server:
+ get_resource: server
+ depends_on:
+ - mysql_dbms_create_deploy
+
+ mysql_database_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: mysql/mysql_database_configure.sh
+ group: script
+
+ mysql_database_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mysql_database_configure_config
+ input_values:
+ db_name:
+ get_param: db_name
+ db_password:
+ get_param: db_pwd
+ db_root_password:
+ get_param: db_root_pwd
+ db_user:
+ get_param: db_user
+ server:
+ get_resource: server
+ depends_on:
+ - mysql_dbms_start_deploy
+
+ webserver_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: webserver/webserver_install.sh
+ group: script
+
+ webserver_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: webserver_create_config
+ server:
+ get_resource: server
+
+ webserver_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: webserver/webserver_start.sh
+ group: script
+
+ webserver_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: webserver_start_config
+ server:
+ get_resource: server
+ depends_on:
+ - webserver_create_deploy
+
+ wordpress_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: wordpress/wordpress_install.sh
+ group: script
+
+ wordpress_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: wordpress_create_config
+ server:
+ get_resource: server
+ depends_on:
+ - webserver_start_deploy
+ - mysql_database_configure_deploy
+
+ wordpress_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: wordpress/wordpress_configure.sh
+ group: script
+
+ wordpress_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: wordpress_configure_config
+ input_values:
+ wp_db_name:
+ get_param: db_name
+ wp_db_password:
+ get_param: db_pwd
+ wp_db_user:
+ get_param: db_user
+ server:
+ get_resource: server
+ depends_on:
+ - wordpress_create_deploy
+
+ server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.xlarge
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+outputs:
+ website_url:
+ description: URL for Wordpress wiki.
+ value:
+ get_attr:
+ - server
+ - networks
+ - private
+ - 0
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_instance_wordpress_from_csar.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_instance_wordpress_from_csar.yaml
new file mode 100644
index 0000000..3598540
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_instance_wordpress_from_csar.yaml
@@ -0,0 +1,207 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with wordpress, web server and mysql on the same server.
+
+parameters:
+ db_name:
+ type: string
+ description: The name of the database.
+ default: wordpress
+ db_user:
+ type: string
+ description: The user name of the DB user.
+ default: wp_user
+ db_pwd:
+ type: string
+ description: The WordPress database admin account password.
+ default: wp_pass
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 8
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ db_root_pwd:
+ type: string
+ description: Root password for MySQL.
+ default: passw0rd
+ db_port:
+ type: number
+ description: Port for the MySQL database.
+ default: 3366
+
+resources:
+
+ mysql_dbms_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/MYSQLDBMS/install.sh
+ group: script
+
+ mysql_dbms_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mysql_dbms_create_config
+ server:
+ get_resource: server
+
+ mysql_dbms_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/MYSQLDBMS/start.sh
+ group: script
+
+ mysql_dbms_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mysql_dbms_start_config
+ server:
+ get_resource: server
+ depends_on:
+ - mysql_dbms_configure_deploy
+
+ mysql_dbms_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/MYSQLDBMS/configure.sh
+ group: script
+
+ mysql_dbms_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mysql_dbms_configure_config
+ input_values:
+ db_root_password:
+ get_param: db_root_pwd
+ server:
+ get_resource: server
+ depends_on:
+ - mysql_dbms_create_deploy
+
+ mysql_database_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/MYSQLDatabase/configure.sh
+ group: script
+
+ mysql_database_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: mysql_database_configure_config
+ input_values:
+ db_name:
+ get_param: db_name
+ db_password:
+ get_param: db_pwd
+ db_root_password:
+ get_param: db_root_pwd
+ db_user:
+ get_param: db_user
+ server:
+ get_resource: server
+ depends_on:
+ - mysql_dbms_start_deploy
+
+ webserver_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/WebServer/install.sh
+ group: script
+
+ webserver_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: webserver_create_config
+ server:
+ get_resource: server
+
+ webserver_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/WebServer/start.sh
+ group: script
+
+ webserver_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: webserver_start_config
+ server:
+ get_resource: server
+ depends_on:
+ - webserver_create_deploy
+
+ wordpress_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/WordPress/install.sh
+ group: script
+
+ wordpress_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: wordpress_create_config
+ server:
+ get_resource: server
+ depends_on:
+ - webserver_start_deploy
+ - mysql_database_configure_deploy
+
+ wordpress_configure_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: ../Scripts/WordPress/configure.sh
+ group: script
+
+ wordpress_configure_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: wordpress_configure_config
+ input_values:
+ wp_db_name:
+ get_param: db_name
+ wp_db_password:
+ get_param: db_pwd
+ wp_db_user:
+ get_param: db_user
+ server:
+ get_resource: server
+ depends_on:
+ - wordpress_create_deploy
+
+ server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.xlarge
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+
+outputs:
+ website_url:
+ description: IP address for Wordpress wiki.
+ value:
+ get_attr:
+ - server
+ - networks
+ - private
+ - 0
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_object_store.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_object_store.yaml
new file mode 100644
index 0000000..91491e3
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_object_store.yaml
@@ -0,0 +1,21 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Tosca template for creating an object storage service.
+
+parameters:
+ objectstore_name:
+ type: string
+ default: myobjstore
+
+resources:
+ obj_store_server:
+ type: OS::Swift::Container
+ properties:
+ X-Container-Meta:
+ Quota-Bytes: 1000000000
+ X-Container-Read: ".r:*"
+ name:
+ get_param: objectstore_name
+
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server.yaml
new file mode 100644
index 0000000..5cffb43
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server.yaml
@@ -0,0 +1,36 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile that just defines a single compute instance and selects a
+ (guest) host Operating System from the Compute node's properties. Note, this
+ example does not include default values on inputs properties.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: ubuntu-12.04-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+outputs:
+ private_ip:
+ description: The private IP address of the deployed server instance.
+ value:
+ get_attr:
+ - my_server
+ - networks
+ - private
+ - 0
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_with_defaults_with_input.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_with_defaults_with_input.yaml
new file mode 100644
index 0000000..1eb88a7
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_with_defaults_with_input.yaml
@@ -0,0 +1,36 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile that just defines a single compute instance and selects a
+ (guest) host Operating System from the Compute node's properties. Note, this
+ example includes default values on inputs properties.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: ubuntu-12.04-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+outputs:
+ private_ip:
+ description: The private IP address of the deployed server instance.
+ value:
+ get_attr:
+ - my_server
+ - networks
+ - private
+ - 0
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_with_defaults_without_input.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_with_defaults_without_input.yaml
new file mode 100644
index 0000000..4e7e6b5
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_with_defaults_without_input.yaml
@@ -0,0 +1,36 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile that just defines a single compute instance and selects a
+ (guest) host Operating System from the Compute node's properties. Note, this
+ example includes default values on inputs properties.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 4
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.large
+ image: ubuntu-12.04-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+outputs:
+ private_ip:
+ description: The private IP address of the deployed server instance.
+ value:
+ get_attr:
+ - my_server
+ - networks
+ - private
+ - 0
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_without_tosca_os_version.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_without_tosca_os_version.yaml
new file mode 100644
index 0000000..d2828cf
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_single_server_without_tosca_os_version.yaml
@@ -0,0 +1,17 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile that just defines a single compute instance and selects a
+ flavor and host Operating System for the Compute node. Note, this is just a test
+ template showing Compute without optional 'version' property of OS capability.
+ In general, you should have version to narrow down your image selection.
+
+parameters: {}
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: rhel-6.5-test-image
+ user_data_format: SOFTWARE_CONFIG
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_software_component.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_software_component.yaml
new file mode 100644
index 0000000..b1bbe49
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_software_component.yaml
@@ -0,0 +1,58 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with a software component.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+
+resources:
+ server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ my_software_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: my_software_create_config
+ server:
+ get_resource: server
+
+ my_software_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: software_install.sh
+ group: script
+
+ my_software_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: my_software_start_config
+ server:
+ get_resource: server
+ depends_on:
+ - my_software_create_deploy
+
+ my_software_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: software_start.sh
+ group: script
+
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_web_application.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_web_application.yaml
new file mode 100644
index 0000000..38f12e6
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/hot_web_application.yaml
@@ -0,0 +1,100 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with a web application.
+
+parameters:
+ context_root:
+ type: string
+ description: Context root for installing the application.
+ default: my_web_app
+
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 2
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+
+resources:
+ server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: ubuntu-software-config-os-init
+ user_data_format: SOFTWARE_CONFIG
+
+ web_server_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: web_server_create_config
+ server:
+ get_resource: server
+
+ web_server_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: web_server_install.sh
+ group: script
+
+ web_server_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: web_server_start_config
+ server:
+ get_resource: server
+ depends_on:
+ - web_server_create_deploy
+
+ web_server_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: web_server_start.sh
+ group: script
+
+ web_app_create_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: web_app_create_config
+ input_values:
+ context_root:
+ get_param: context_root
+ server:
+ get_resource: server
+ depends_on:
+ - web_server_start_deploy
+
+ web_app_create_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: web_app_install.sh
+ group: script
+
+ web_app_start_deploy:
+ type: OS::Heat::SoftwareDeployment
+ properties:
+ config:
+ get_resource: web_app_start_config
+ server:
+ get_resource: server
+ depends_on:
+ - web_app_create_deploy
+
+ web_app_start_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ get_file: web_app_start.sh
+ group: script
+
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_custom_network_nodes.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_custom_network_nodes.yaml
new file mode 100644
index 0000000..556dcf4
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_custom_network_nodes.yaml
@@ -0,0 +1,33 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Template for deploying a single server with predefined properties.
+
+parameters: {}
+resources:
+ VDU1:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: rhel-6.5-test-image
+ networks:
+ - port: { get_resource: CP1 }
+ user_data_format: SOFTWARE_CONFIG
+ CP1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: VL1 }
+ VL1:
+ type: OS::Neutron::Net
+ VL1_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ ip_version: 4
+ allocation_pools:
+ - end: 192.168.0.200
+ start: 192.168.0.50
+ gateway_ip: 192.168.0.1
+ cidr: 192.168.0.0/24
+ network: { get_resource: VL1 }
+outputs: {}
+
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_one_server_one_network.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_one_server_one_network.yaml
new file mode 100644
index 0000000..cfcd290
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_one_server_one_network.yaml
@@ -0,0 +1,44 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with 1 server bound to a new network
+
+parameters:
+ network_name:
+ type: string
+ description: Network name
+ default: private_net
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: cirros-0.3.2-x86_64-uec
+ networks:
+ - port: { get_resource: my_port }
+ user_data_format: SOFTWARE_CONFIG
+
+ my_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: network_name
+
+ my_network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ allocation_pools:
+ - end: 192.168.0.200
+ start: 192.168.0.50
+ cidr: 192.168.0.0/24
+ gateway_ip: 192.168.0.1
+ ip_version: 4
+ network: { get_resource: my_network }
+
+ my_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: my_network }
+
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_one_server_three_networks.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_one_server_three_networks.yaml
new file mode 100644
index 0000000..f8674e1
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_one_server_three_networks.yaml
@@ -0,0 +1,71 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with 1 server bound to 3 networks
+
+parameters: {}
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: cirros-0.3.2-x86_64-uec
+ networks:
+ - port: { get_resource: my_port1 }
+ - port: { get_resource: my_port2 }
+ - port: { get_resource: my_port3 }
+ user_data_format: SOFTWARE_CONFIG
+
+ my_network1:
+ type: OS::Neutron::Net
+ properties:
+ name: net1
+
+ my_network2:
+ type: OS::Neutron::Net
+ properties:
+ name: net2
+
+ my_network3:
+ type: OS::Neutron::Net
+ properties:
+ name: net3
+
+ my_network1_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ cidr: 192.168.1.0/24
+ ip_version: 4
+ network: { get_resource: my_network1 }
+
+ my_network2_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ cidr: 192.168.2.0/24
+ ip_version: 4
+ network: { get_resource: my_network2 }
+
+ my_network3_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ cidr: 192.168.3.0/24
+ ip_version: 4
+ network: { get_resource: my_network3 }
+
+ my_port1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: my_network1 }
+
+ my_port2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: my_network2 }
+
+ my_port3:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: my_network3 }
+
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_server_on_existing_network.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_server_on_existing_network.yaml
new file mode 100644
index 0000000..b8282b5
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_server_on_existing_network.yaml
@@ -0,0 +1,27 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with 1 server bound to an existing network
+
+parameters:
+ network_name:
+ type: string
+ description: Network name
+ default: private_net
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: cirros-0.3.2-x86_64-uec
+ networks:
+ - port: { get_resource: my_port }
+ user_data_format: SOFTWARE_CONFIG
+
+ my_port:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: network_name}
+
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_two_servers_one_network.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_two_servers_one_network.yaml
new file mode 100644
index 0000000..21157bb
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/network/hot_two_servers_one_network.yaml
@@ -0,0 +1,72 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with 2 servers bound to the 1 network
+
+parameters:
+ network_name:
+ type: string
+ description: Network name
+ default: my_private_net
+ network_cidr:
+ type: string
+ description: CIDR for the network
+ default: 10.0.0.0/24
+ network_start_ip:
+ type: string
+ description: Start IP for the allocation pool
+ default: 10.0.0.100
+ network_end_ip:
+ type: string
+ description: End IP for the allocation pool
+ default: 10.0.0.150
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: cirros-0.3.2-x86_64-uec
+ networks:
+ - port: { get_resource: my_port }
+ user_data_format: SOFTWARE_CONFIG
+
+ my_server2:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: cirros-0.3.2-x86_64-uec
+ networks:
+ - port: { get_resource: my_port2 }
+ user_data_format: SOFTWARE_CONFIG
+
+ my_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: network_name
+
+ my_network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ allocation_pools:
+ - end:
+ get_param: network_end_ip
+ start:
+ get_param: network_start_ip
+ cidr:
+ get_param: network_cidr
+ ip_version: 4
+ network: { get_resource: my_network }
+
+ my_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: my_network }
+
+ my_port2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: my_network }
+
+outputs: {}
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment.yaml
new file mode 100644
index 0000000..5ff5382
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment.yaml
@@ -0,0 +1,71 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with server and attached block storage using the normative
+ AttachesTo Relationship Type.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ storage_location:
+ type: string
+ description: Block storage mount point (filesystem path).
+ default: /dev/vdc
+ storage_size:
+ type: number
+ description: Size of the storage to be created.
+ default: 2
+ storage_snapshot_id:
+ type: string
+ description: "Optional identifier for an existing snapshot to use when creating storage."
+ default: ssid
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ my_storage:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+ snapshot_id:
+ get_param: storage_snapshot_id
+
+ attachesto_1:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_server
+ mountpoint:
+ get_param: storage_location
+ volume_id:
+ get_resource: my_storage
+
+outputs:
+ private_ip:
+ description: The private IP address of the newly created compute instance.
+ value:
+ get_attr:
+ - my_server
+ - networks
+ - private
+ - 0
+ volume_id:
+ description: The volume id of the block storage instance.
+ value:
+ get_resource: my_storage
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation1_alt1.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation1_alt1.yaml
new file mode 100644
index 0000000..9ffaf23
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation1_alt1.yaml
@@ -0,0 +1,92 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with a Single Block Storage node shared by 2-Tier
+ Application with custom AttachesTo Type and implied relationships.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ storage_size:
+ type: number
+ description: Size of the storage to be created.
+ default: 1
+ storage_snapshot_id:
+ type: string
+ description: Optional identifier for an existing snapshot to use when creating storage.
+ default: ssid
+
+resources:
+ my_storage:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+ snapshot_id:
+ get_param: storage_snapshot_id
+
+ my_web_app_tier_1:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ myattachesto_1:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_web_app_tier_1
+ mountpoint: /default_location
+ volume_id:
+ get_resource: my_storage
+
+ my_web_app_tier_2:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ myattachesto_2:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_web_app_tier_2
+ mountpoint: /some_other_data_location
+ volume_id:
+ get_resource: my_storage
+
+outputs:
+ private_ip_1:
+ description: The private IP address of the applications first tier.
+ value:
+ get_attr:
+ - my_web_app_tier_1
+ - networks
+ - private
+ - 0
+ private_ip_2:
+ description: The private IP address of the applications second tier.
+ value:
+ get_attr:
+ - my_web_app_tier_2
+ - networks
+ - private
+ - 0
+ volume_id:
+ description: The volume id of the block storage instance.
+ value:
+ get_resource: my_storage
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation1_alt2.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation1_alt2.yaml
new file mode 100644
index 0000000..9b5e71c
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation1_alt2.yaml
@@ -0,0 +1,92 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with a Single Block Storage node shared by 2-Tier
+ Application with custom AttachesTo Type and implied relationships.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ storage_size:
+ type: number
+ description: Size of the storage to be created.
+ default: 1
+ storage_snapshot_id:
+ type: string
+ description: Optional identifier for an existing snapshot to use when creating storage.
+ default: ssid
+
+resources:
+ my_storage:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+ snapshot_id:
+ get_param: storage_snapshot_id
+
+ my_web_app_tier_1:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ myattachesto_2:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_web_app_tier_1
+ mountpoint: /default_location
+ volume_id:
+ get_resource: my_storage
+
+ my_web_app_tier_2:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ myattachesto_1:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_web_app_tier_2
+ mountpoint: /some_other_data_location
+ volume_id:
+ get_resource: my_storage
+
+outputs:
+ private_ip_1:
+ description: The private IP address of the applications first tier.
+ value:
+ get_attr:
+ - my_web_app_tier_1
+ - networks
+ - private
+ - 0
+ private_ip_2:
+ description: The private IP address of the applications second tier.
+ value:
+ get_attr:
+ - my_web_app_tier_2
+ - networks
+ - private
+ - 0
+ volume_id:
+ description: The volume id of the block storage instance.
+ value:
+ get_resource: my_storage
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation2_alt1.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation2_alt1.yaml
new file mode 100644
index 0000000..1b4eb73
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation2_alt1.yaml
@@ -0,0 +1,96 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with a single Block Storage node shared by 2-Tier
+ Application with custom AttachesTo Type and explicit Relationship Templates.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ storage_location:
+ type: string
+ description: Block storage mount point (filesystem path).
+ default: /dev/vdc
+ storage_size:
+ type: number
+ description: Size of the storage to be created.
+ default: 1
+ storage_snapshot_id:
+ type: string
+ description: Optional identifier for an existing snapshot to use when creating storage.
+ default: ssid
+
+resources:
+ my_storage:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+ snapshot_id:
+ get_param: storage_snapshot_id
+
+ my_web_app_tier_1:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ storage_attachesto_1_2:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_web_app_tier_1
+ mountpoint: /my_data_location
+ volume_id:
+ get_resource: my_storage
+
+ my_web_app_tier_2:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ storage_attachesto_2_1:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_web_app_tier_2
+ mountpoint: /some_other_data_location
+ volume_id:
+ get_resource: my_storage
+
+outputs:
+ private_ip_1:
+ description: The private IP address of the applications first tier.
+ value:
+ get_attr:
+ - my_web_app_tier_1
+ - networks
+ - private
+ - 0
+ private_ip_2:
+ description: The private IP address of the applications second tier.
+ value:
+ get_attr:
+ - my_web_app_tier_2
+ - networks
+ - private
+ - 0
+ volume_id:
+ description: The volume id of the block storage instance.
+ value:
+ get_resource: my_storage
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation2_alt2.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation2_alt2.yaml
new file mode 100644
index 0000000..0311a55
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_attachment_notation2_alt2.yaml
@@ -0,0 +1,96 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with a single Block Storage node shared by 2-Tier
+ Application with custom AttachesTo Type and explicit Relationship Templates.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ storage_location:
+ type: string
+ description: Block storage mount point (filesystem path).
+ default: /dev/vdc
+ storage_size:
+ type: number
+ description: Size of the storage to be created.
+ default: 1
+ storage_snapshot_id:
+ type: string
+ description: Optional identifier for an existing snapshot to use when creating storage.
+ default: ssid
+
+resources:
+ my_storage:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+ snapshot_id:
+ get_param: storage_snapshot_id
+
+ my_web_app_tier_1:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ storage_attachesto_1_1:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_web_app_tier_1
+ mountpoint: /my_data_location
+ volume_id:
+ get_resource: my_storage
+
+ my_web_app_tier_2:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ storage_attachesto_2_2:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_web_app_tier_2
+ mountpoint: /some_other_data_location
+ volume_id:
+ get_resource: my_storage
+
+outputs:
+ private_ip_1:
+ description: The private IP address of the applications first tier.
+ value:
+ get_attr:
+ - my_web_app_tier_1
+ - networks
+ - private
+ - 0
+ private_ip_2:
+ description: The private IP address of the applications second tier.
+ value:
+ get_attr:
+ - my_web_app_tier_2
+ - networks
+ - private
+ - 0
+ volume_id:
+ description: The volume id of the block storage instance.
+ value:
+ get_resource: my_storage
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_custom_relationship_type.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_custom_relationship_type.yaml
new file mode 100644
index 0000000..bce4603
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_custom_relationship_type.yaml
@@ -0,0 +1,72 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with server and attached block storage using a custom
+ AttachesTo Relationship Type.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ storage_location:
+ type: string
+ description: Block storage mount point (filesystem path).
+ default: /dev/vdc
+ storage_size:
+ type: number
+ description: Size of the storage to be created.
+ default: 1
+ storage_snapshot_id:
+ type: string
+ description: Optional identifier for an existing snapshot to use when creating storage.
+ default: ssid
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ my_storage:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+ snapshot_id:
+ get_param: storage_snapshot_id
+
+ mycustomattachesto_1:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_server
+ volume_id:
+ get_resource: my_storage
+ mountpoint:
+ get_param: storage_location
+
+
+outputs:
+ private_ip:
+ description: The private IP address of the newly created compute instance.
+ value:
+ get_attr:
+ - my_server
+ - networks
+ - private
+ - 0
+ volume_id:
+ description: The volume id of the block storage instance.
+ value:
+ get_resource: my_storage
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_relationship_template.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_relationship_template.yaml
new file mode 100644
index 0000000..e17dff9
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_blockstorage_with_relationship_template.yaml
@@ -0,0 +1,65 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with server and attached block storage using a named
+ Relationship Template for the storage attachment.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ storage_location:
+ type: string
+ description: Block storage mount point (filesystem path).
+ default: /dev/vdc
+ storage_size:
+ type: number
+ description: Size of the storage to be created.
+ default: 1
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.small
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ my_storage:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+
+ storage_attachment_1:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_server
+ mountpoint:
+ get_input: storage_location
+ volume_id:
+ get_resource: my_storage
+
+outputs:
+ private_ip:
+ description: The private IP address of the newly created compute instance.
+ value:
+ get_attr:
+ - my_server
+ - networks
+ - private
+ - 0
+ volume_id:
+ description: The volume id of the block storage instance.
+ value:
+ get_resource: my_storage
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_multiple_blockstorage_with_attachment_alt1.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_multiple_blockstorage_with_attachment_alt1.yaml
new file mode 100644
index 0000000..55ada08
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_multiple_blockstorage_with_attachment_alt1.yaml
@@ -0,0 +1,109 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with 2 servers each with different attached block storage.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ storage_location:
+ type: string
+ description: Block storage mount point (filesystem path).
+ default: /dev/vdc
+ storage_size:
+ type: number
+ description: Size of the storage to be created.
+ default: 1
+ storage_snapshot_id:
+ type: string
+ description: Optional identifier for an existing snapshot to use when creating storage.
+ default: ssid
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ my_storage:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+ snapshot_id:
+ get_param: storage_snapshot_id
+
+ attachesto_1:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_server
+ mountpoint:
+ get_param: storage_location
+ volume_id:
+ get_resource: my_storage
+
+ my_server2:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage2
+
+ my_storage2:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+ snapshot_id:
+ get_param: storage_snapshot_id
+
+ attachesto_2:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_server2
+ mountpoint:
+ get_param: storage_location
+ volume_id:
+ get_resource: my_storage2
+
+outputs:
+ server_ip_1:
+ description: The private IP address of the applications first server.
+ value:
+ get_attr:
+ - my_server
+ - networks
+ - private
+ - 0
+ server_ip_2:
+ description: The private IP address of the applications second server.
+ value:
+ get_attr:
+ - my_server2
+ - networks
+ - private
+ - 0
+ volume_id_1:
+ description: The volume id of the first block storage instance.
+ value:
+ get_resource: my_storage
+ volume_id_2:
+ description: The volume id of the second block storage instance.
+ value:
+ get_resource: my_storage2
diff --git a/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_multiple_blockstorage_with_attachment_alt2.yaml b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_multiple_blockstorage_with_attachment_alt2.yaml
new file mode 100644
index 0000000..3386d79
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/hot_output/storage/hot_multiple_blockstorage_with_attachment_alt2.yaml
@@ -0,0 +1,109 @@
+heat_template_version: 2013-05-23
+
+description: >
+ TOSCA simple profile with 2 servers each with different attached block storage.
+
+parameters:
+ cpus:
+ type: number
+ description: Number of CPUs for the server.
+ default: 1
+ constraints:
+ - allowed_values:
+ - 1
+ - 2
+ - 4
+ - 8
+ storage_location:
+ type: string
+ description: Block storage mount point (filesystem path).
+ default: /dev/vdc
+ storage_size:
+ type: number
+ description: Size of the storage to be created.
+ default: 1
+ storage_snapshot_id:
+ type: string
+ description: Optional identifier for an existing snapshot to use when creating storage.
+ default: ssid
+
+resources:
+ my_server:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage
+
+ my_storage:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+ snapshot_id:
+ get_param: storage_snapshot_id
+
+ attachesto_2:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_server
+ mountpoint:
+ get_param: storage_location
+ volume_id:
+ get_resource: my_storage
+
+ my_server2:
+ type: OS::Nova::Server
+ properties:
+ flavor: m1.medium
+ image: fedora-amd64-heat-config
+ user_data_format: SOFTWARE_CONFIG
+ depends_on:
+ - my_storage2
+
+ my_storage2:
+ type: OS::Cinder::Volume
+ properties:
+ size:
+ get_param: storage_size
+ snapshot_id:
+ get_param: storage_snapshot_id
+
+ attachesto_1:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid:
+ get_resource: my_server2
+ mountpoint:
+ get_param: storage_location
+ volume_id:
+ get_resource: my_storage2
+
+outputs:
+ server_ip_1:
+ description: The private IP address of the applications first server.
+ value:
+ get_attr:
+ - my_server
+ - networks
+ - private
+ - 0
+ server_ip_2:
+ description: The private IP address of the applications second server.
+ value:
+ get_attr:
+ - my_server2
+ - networks
+ - private
+ - 0
+ volume_id_1:
+ description: The volume id of the first block storage instance.
+ value:
+ get_resource: my_storage
+ volume_id_2:
+ description: The volume id of the second block storage instance.
+ value:
+ get_resource: my_storage2
diff --git a/tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_defs.yaml b/tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_defs.yaml
new file mode 100644
index 0000000..552ae07
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_defs.yaml
@@ -0,0 +1,41 @@
+node_types:
+ tosca.nodes.vendor.VDU:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ virtualbinding:
+ type: tosca.capabilities.vendor.VendorBindable
+
+ tosca.nodes.vendor.CP:
+ derived_from: tosca.nodes.network.Port
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.VendorLinkable
+ relationship: tosca.relationships.vendor.VendorLinksTo
+ node: tosca.nodes.vendor.VL
+ - virtualBinding:
+ capability: tosca.capabilities.vendor.VendorBindable
+ node: tosca.nodes.vendor.VDU
+ relationship: tosca.relationships.vendor.VendorBindsTo
+
+ tosca.nodes.vendor.VL:
+ derived_from: tosca.nodes.network.Network
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.vendor.VendorLinkable
+
+relationship_types:
+ tosca.relationships.vendor.VendorLinksTo:
+ derived_from: tosca.relationships.network.LinksTo
+ valid_target_types: [ tosca.capabilities.vendor.VendorLinkable ]
+
+ tosca.relationships.vendor.VendorBindsTo:
+ derived_from: tosca.relationships.network.BindsTo
+ valid_target_types: [ tosca.capabilities.vendor.VendorBindable ]
+
+capability_types:
+ tosca.capabilities.vendor.VendorLinkable:
+ derived_from: tosca.capabilities.network.Linkable
+
+ tosca.capabilities.vendor.VendorBindable:
+ derived_from: tosca.capabilities.network.Bindable
+
diff --git a/tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_imports.yaml b/tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_imports.yaml
new file mode 100644
index 0000000..ea473b1
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_imports.yaml
@@ -0,0 +1,41 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Template for deploying a single server with predefined properties.
+
+imports:
+ - test_tosca_custom_network_nodes_defs.yaml
+
+topology_template:
+ node_templates:
+
+ VDU1:
+ type: tosca.nodes.vendor.VDU
+ capabilities:
+ host:
+ properties:
+ num_cpus: 2
+ disk_size: 10 GB
+ mem_size: 512 MB
+ # Guest Operating System properties
+ os:
+ properties:
+ # host Operating System image properties
+ architecture: x86_64
+ type: Linux
+ distribution: RHEL
+ version: 6.5
+ CP1:
+ type: tosca.nodes.vendor.CP
+ requirements:
+ - virtualLink:
+ node: VL1
+ - virtualBinding:
+ node: VDU1
+
+ VL1:
+ type: tosca.nodes.vendor.VL
+ properties:
+ cidr: '192.168.0.0/24'
+ start_ip: '192.168.0.50'
+ end_ip: '192.168.0.200'
+ gateway_ip: '192.168.0.1'
diff --git a/tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_inline.yaml b/tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_inline.yaml
new file mode 100644
index 0000000..509aab4
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/network/test_tosca_custom_network_nodes_inline.yaml
@@ -0,0 +1,82 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Template for deploying a single server with predefined properties.
+
+
+node_types:
+ tosca.nodes.vendor.VDU:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ virtualbinding:
+ type: tosca.capabilities.vendor.VendorBindable
+
+ tosca.nodes.vendor.CP:
+ derived_from: tosca.nodes.network.Port
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.VendorLinkable
+ relationship: tosca.relationships.vendor.VendorLinksTo
+ node: tosca.nodes.vendor.VL
+ - virtualBinding:
+ capability: tosca.capabilities.vendor.VendorBindable
+ node: tosca.nodes.vendor.VDU
+ relationship: tosca.relationships.vendor.VendorBindsTo
+
+ tosca.nodes.vendor.VL:
+ derived_from: tosca.nodes.network.Network
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.vendor.VendorLinkable
+
+relationship_types:
+ tosca.relationships.vendor.VendorLinksTo:
+ derived_from: tosca.relationships.network.LinksTo
+ valid_target_types: [ tosca.capabilities.vendor.VendorLinkable ]
+
+ tosca.relationships.vendor.VendorBindsTo:
+ derived_from: tosca.relationships.network.BindsTo
+ valid_target_types: [ tosca.capabilities.vendor.VendorBindable ]
+
+capability_types:
+ tosca.capabilities.vendor.VendorLinkable:
+ derived_from: tosca.capabilities.network.Linkable
+
+ tosca.capabilities.vendor.VendorBindable:
+ derived_from: tosca.capabilities.network.Bindable
+
+topology_template:
+ node_templates:
+
+ VDU1:
+ type: tosca.nodes.vendor.VDU
+ capabilities:
+ host:
+ properties:
+ num_cpus: 2
+ disk_size: 10 GB
+ mem_size: 512 MB
+ # Guest Operating System properties
+ os:
+ properties:
+ # host Operating System image properties
+ architecture: x86_64
+ type: Linux
+ distribution: RHEL
+ version: 6.5
+ CP1:
+ type: tosca.nodes.vendor.CP
+ requirements:
+ - virtualLink:
+ node: VL1
+ relationship: tosca.relationships.vendor.VendorLinksTo
+ - virtualBinding:
+ node: VDU1
+ relationship: tosca.relationships.vendor.VendorBindsTo
+
+ VL1:
+ type: tosca.nodes.vendor.VL
+ properties:
+ cidr: '192.168.0.0/24'
+ start_ip: '192.168.0.50'
+ end_ip: '192.168.0.200'
+ gateway_ip: '192.168.0.1'
diff --git a/tosca2heat/heat-translator/translator/tests/data/network/tosca_one_server_one_network.yaml b/tosca2heat/heat-translator/translator/tests/data/network/tosca_one_server_one_network.yaml
new file mode 100644
index 0000000..8e58fa9
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/network/tosca_one_server_one_network.yaml
@@ -0,0 +1,43 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with 1 server bound to a new network
+
+topology_template:
+
+ inputs:
+ network_name:
+ type: string
+ description: Network name
+
+ node_templates:
+ my_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: 1
+ mem_size: 512 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: CirrOS
+ version: 0.3.2
+
+ my_network:
+ type: tosca.nodes.network.Network
+ properties:
+ network_name: { get_input: network_name }
+ ip_version: 4
+ cidr: '192.168.0.0/24'
+ start_ip: '192.168.0.50'
+ end_ip: '192.168.0.200'
+ gateway_ip: '192.168.0.1'
+
+ my_port:
+ type: tosca.nodes.network.Port
+ requirements:
+ - binding: my_server
+ - link: my_network
diff --git a/tosca2heat/heat-translator/translator/tests/data/network/tosca_one_server_three_networks.yaml b/tosca2heat/heat-translator/translator/tests/data/network/tosca_one_server_three_networks.yaml
new file mode 100644
index 0000000..d791b17
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/network/tosca_one_server_three_networks.yaml
@@ -0,0 +1,64 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with 1 server bound to 3 networks
+
+topology_template:
+
+ node_templates:
+ my_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: 1
+ mem_size: 512 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: CirrOS
+ version: 0.3.2
+
+ my_network1:
+ type: tosca.nodes.network.Network
+ properties:
+ cidr: '192.168.1.0/24'
+ network_name: net1
+
+ my_network2:
+ type: tosca.nodes.network.Network
+ properties:
+ cidr: '192.168.2.0/24'
+ network_name: net2
+
+ my_network3:
+ type: tosca.nodes.network.Network
+ properties:
+ cidr: '192.168.3.0/24'
+ network_name: net3
+
+ my_port1:
+ type: tosca.nodes.network.Port
+ properties:
+ order: 0
+ requirements:
+ - binding: my_server
+ - link: my_network1
+
+ my_port2:
+ type: tosca.nodes.network.Port
+ properties:
+ order: 1
+ requirements:
+ - binding: my_server
+ - link: my_network2
+
+ my_port3:
+ type: tosca.nodes.network.Port
+ properties:
+ order: 2
+ requirements:
+ - binding: my_server
+ - link: my_network3
diff --git a/tosca2heat/heat-translator/translator/tests/data/network/tosca_server_on_existing_network.yaml b/tosca2heat/heat-translator/translator/tests/data/network/tosca_server_on_existing_network.yaml
new file mode 100644
index 0000000..7fedc13
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/network/tosca_server_on_existing_network.yaml
@@ -0,0 +1,39 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with 1 server bound to an existing network
+
+topology_template:
+ inputs:
+ network_name:
+ type: string
+ description: Network name
+
+ node_templates:
+ my_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: 1
+ mem_size: 512 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: CirrOS
+ version: 0.3.2
+
+ my_network:
+ type: tosca.nodes.network.Network
+ properties:
+ network_name: { get_input: network_name }
+
+ my_port:
+ type: tosca.nodes.network.Port
+ requirements:
+ - binding:
+ node: my_server
+ - link:
+ node: my_network
diff --git a/tosca2heat/heat-translator/translator/tests/data/network/tosca_two_servers_one_network.yaml b/tosca2heat/heat-translator/translator/tests/data/network/tosca_two_servers_one_network.yaml
new file mode 100644
index 0000000..1473a8d
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/network/tosca_two_servers_one_network.yaml
@@ -0,0 +1,79 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with 2 servers bound to the 1 network
+
+topology_template:
+
+ inputs:
+ network_name:
+ type: string
+ description: Network name
+ network_cidr:
+ type: string
+ default: 10.0.0.0/24
+ description: CIDR for the network
+ network_start_ip:
+ type: string
+ default: 10.0.0.100
+ description: Start IP for the allocation pool
+ network_end_ip:
+ type: string
+ default: 10.0.0.150
+ description: End IP for the allocation pool
+
+ node_templates:
+ my_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: 1
+ mem_size: 512 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: CirrOS
+ version: 0.3.2
+
+ my_server2:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: 1
+ mem_size: 512 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: CirrOS
+ version: 0.3.2
+
+ my_network:
+ type: tosca.nodes.network.Network
+ properties:
+ ip_version: 4
+ cidr: { get_input: network_cidr }
+ network_name: { get_input: network_name }
+ start_ip: { get_input: network_start_ip }
+ end_ip: { get_input: network_end_ip }
+
+ my_port:
+ type: tosca.nodes.network.Port
+ requirements:
+ - binding:
+ node: my_server
+ - link:
+ node: my_network
+
+ my_port2:
+ type: tosca.nodes.network.Port
+ requirements:
+ - binding:
+ node: my_server2
+ - link:
+ node: my_network
diff --git a/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment.yaml b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment.yaml
new file mode 100644
index 0000000..460fa4c
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment.yaml
@@ -0,0 +1,61 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with server and attached block storage using the normative AttachesTo Relationship Type.
+
+topology_template:
+
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ storage_size:
+ type: scalar-unit.size
+ description: Size of the storage to be created.
+ default: 1 GB
+ storage_snapshot_id:
+ type: string
+ description: >
+ Optional identifier for an existing snapshot to use when creating storage.
+ storage_location:
+ type: string
+ description: Block storage mount point (filesystem path).
+
+ node_templates:
+ my_server:
+ type: Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4096 kB
+ os:
+ properties:
+ architecture: x86_64
+ type: linux
+ distribution: fedora
+ version: 18.0
+ requirements:
+ - local_storage:
+ node: my_storage
+ relationship:
+ type: AttachesTo
+ properties:
+ location: { get_input: storage_location }
+
+ my_storage:
+ type: BlockStorage
+ properties:
+ size: { get_input: storage_size }
+ snapshot_id: { get_input: storage_snapshot_id }
+
+ outputs:
+ private_ip:
+ description: The private IP address of the newly created compute instance.
+ value: { get_attribute: [my_server, private_address] }
+ volume_id:
+ description: The volume id of the block storage instance.
+ value: { get_attribute: [my_storage, volume_id] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment_notation1.yaml b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment_notation1.yaml
new file mode 100644
index 0000000..df22d72
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment_notation1.yaml
@@ -0,0 +1,87 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with a Single Block Storage node shared by 2-Tier Application with custom AttachesTo Type and implied relationships.
+
+relationship_types:
+ MyAttachesTo:
+ derived_from: tosca.relationships.AttachesTo
+ properties:
+ location:
+ type: string
+ default: /default_location
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ storage_size:
+ type: scalar-unit.size
+ default: 1 GB
+ description: Size of the storage to be created.
+ storage_snapshot_id:
+ type: string
+ description: >
+ Optional identifier for an existing snapshot to use when creating storage.
+
+ node_templates:
+ my_web_app_tier_1:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Fedora
+ version: 18.0
+ requirements:
+ - local_storage:
+ node: my_storage
+ relationship: MyAttachesTo
+
+ my_web_app_tier_2:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Fedora
+ version: 18.0
+ requirements:
+ - local_storage:
+ node: my_storage
+ relationship:
+ type: MyAttachesTo
+ properties:
+ location: /some_other_data_location
+
+ my_storage:
+ type: tosca.nodes.BlockStorage
+ properties:
+ size: { get_input: storage_size }
+ snapshot_id: { get_input: storage_snapshot_id }
+
+ outputs:
+ private_ip_1:
+ description: The private IP address of the application's first tier.
+ value: { get_attribute: [my_web_app_tier_1, private_address] }
+ private_ip_2:
+ description: The private IP address of the application's second tier.
+ value: { get_attribute: [my_web_app_tier_2, private_address] }
+ volume_id:
+ description: The volume id of the block storage instance.
+ value: { get_attribute: [my_storage, volume_id] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment_notation2.yaml b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment_notation2.yaml
new file mode 100644
index 0000000..cb1c17a
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_attachment_notation2.yaml
@@ -0,0 +1,99 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with a single Block Storage node shared by 2-Tier Application with custom AttachesTo Type and explicit Relationship Templates.
+
+relationship_types:
+ MyAttachesTo:
+ derived_from: tosca.relationships.AttachesTo
+ properties:
+ location:
+ type: string
+ default: /default_location
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ storage_size:
+ type: scalar-unit.size
+ default: 1 GB
+ description: Size of the storage to be created.
+ storage_snapshot_id:
+ type: string
+ description: >
+ Optional identifier for an existing snapshot to use when creating storage.
+ storage_location:
+ type: string
+ description: >
+ Block storage mount point (filesystem path).
+
+ node_templates:
+
+ my_web_app_tier_1:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4096 kB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Fedora
+ version: 18.0
+ requirements:
+ - local_storage:
+ node: my_storage
+ relationship: storage_attachesto_1
+
+ my_web_app_tier_2:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4096 kB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Fedora
+ version: 18.0
+ requirements:
+ - local_storage:
+ node: my_storage
+ relationship: storage_attachesto_2
+
+ my_storage:
+ type: tosca.nodes.BlockStorage
+ properties:
+ size: { get_input: storage_size }
+ snapshot_id: { get_input: storage_snapshot_id }
+
+ relationship_templates:
+ storage_attachesto_1:
+ type: MyAttachesTo
+ properties:
+ location: /my_data_location
+
+ storage_attachesto_2:
+ type: MyAttachesTo
+ properties:
+ location: /some_other_data_location
+ outputs:
+ private_ip_1:
+ description: The private IP address of the application's first tier.
+ value: { get_attribute: [my_web_app_tier_1, private_address] }
+ private_ip_2:
+ description: The private IP address of the application's second tier.
+ value: { get_attribute: [my_web_app_tier_2, private_address] }
+ volume_id:
+ description: The volume id of the block storage instance.
+ value: { get_attribute: [my_storage, volume_id] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_custom_relationship_type.yaml b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_custom_relationship_type.yaml
new file mode 100644
index 0000000..932f89e
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_custom_relationship_type.yaml
@@ -0,0 +1,64 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with server and attached block storage using a custom AttachesTo Relationship Type.
+
+relationship_types:
+ MyCustomAttachesTo:
+ derived_from: AttachesTo
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ storage_size:
+ type: scalar-unit.size
+ description: Size of the storage to be created.
+ default: 1 GB
+ storage_snapshot_id:
+ type: string
+ description: >
+ Optional identifier for an existing snapshot to use when creating storage.
+ storage_location:
+ type: string
+ description: Block storage mount point (filesystem path).
+
+ node_templates:
+ my_server:
+ type: Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Fedora
+ version: 18.0
+ requirements:
+ - local_storage:
+ node: my_storage
+ # Declare custom AttachesTo type using the 'relationship' keyword
+ relationship:
+ type: MyCustomAttachesTo
+ properties:
+ location: { get_input: storage_location }
+ my_storage:
+ type: BlockStorage
+ properties:
+ size: { get_input: storage_size }
+ snapshot_id: { get_input: storage_snapshot_id }
+
+ outputs:
+ private_ip:
+ description: The private IP address of the newly created compute instance.
+ value: { get_attribute: [my_server, private_address] }
+ volume_id:
+ description: The volume id of the block storage instance.
+ value: { get_attribute: [my_storage, volume_id] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_relationship_template.yaml b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_relationship_template.yaml
new file mode 100644
index 0000000..c31a4da
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_blockstorage_with_relationship_template.yaml
@@ -0,0 +1,59 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with server and attached block storage using a named Relationship Template for the storage attachment.
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ storage_size:
+ type: scalar-unit.size
+ description: Size of the storage to be created.
+ default: 1 GB
+ storage_location:
+ type: string
+ description: Block storage mount point (filesystem path).
+
+ node_templates:
+ my_server:
+ type: Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Fedora
+ version: 18.0
+ requirements:
+ - local_storage:
+ node: my_storage
+ # Declare template to use with 'relationship' keyword
+ relationship: storage_attachment
+
+ my_storage:
+ type: BlockStorage
+ properties:
+ size: { get_input: storage_size }
+
+ relationship_templates:
+ storage_attachment:
+ type: AttachesTo
+ properties:
+ location: { get_input: storage_location }
+
+ outputs:
+ private_ip:
+ description: The private IP address of the newly created compute instance.
+ value: { get_attribute: [my_server, private_address] }
+ volume_id:
+ description: The volume id of the block storage instance.
+ value: { get_attribute: [my_storage, volume_id] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/storage/tosca_multiple_blockstorage_with_attachment.yaml b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_multiple_blockstorage_with_attachment.yaml
new file mode 100644
index 0000000..aa4647e
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_multiple_blockstorage_with_attachment.yaml
@@ -0,0 +1,93 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with 2 servers each with different attached block storage.
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ storage_size:
+ type: scalar-unit.size
+ default: 1 GB
+ description: Size of the storage to be created.
+ storage_snapshot_id:
+ type: string
+ description: >
+ Optional identifier for an existing snapshot to use when creating storage.
+ storage_location:
+ type: string
+ description: >
+ Block storage mount point (filesystem path).
+
+ node_templates:
+ my_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Fedora
+ version: 18.0
+ requirements:
+ - local_storage:
+ node: my_storage
+ relationship:
+ type: AttachesTo
+ properties:
+ location: { get_input: storage_location }
+ my_storage:
+ type: tosca.nodes.BlockStorage
+ properties:
+ size: { get_input: storage_size }
+ snapshot_id: { get_input: storage_snapshot_id }
+
+ my_server2:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Fedora
+ version: 18.0
+ requirements:
+ - local_storage:
+ node: my_storage2
+ relationship:
+ type: AttachesTo
+ properties:
+ location: { get_input: storage_location }
+ my_storage2:
+ type: tosca.nodes.BlockStorage
+ properties:
+ size: { get_input: storage_size }
+ snapshot_id: { get_input: storage_snapshot_id }
+
+ outputs:
+ server_ip_1:
+ description: The private IP address of the application's first server.
+ value: { get_attribute: [my_server, private_address] }
+ server_ip_2:
+ description: The private IP address of the application's second server.
+ value: { get_attribute: [my_server2, private_address] }
+ volume_id_1:
+ description: The volume id of the first block storage instance.
+ value: { get_attribute: [my_storage, volume_id] }
+ volume_id_2:
+ description: The volume id of the second block storage instance.
+ value: { get_attribute: [my_storage2, volume_id] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/storage/tosca_single_object_store.yaml b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_single_object_store.yaml
new file mode 100644
index 0000000..869af48
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/storage/tosca_single_object_store.yaml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ Tosca template for creating an object storage service.
+
+topology_template:
+ inputs:
+ objectstore_name:
+ type: string
+
+ node_templates:
+ obj_store_server:
+ type: tosca.nodes.ObjectStorage
+ properties:
+ name: { get_input: objectstore_name }
+ size: 1024 kB
+ maxsize: 1 GB
diff --git a/tosca2heat/heat-translator/translator/tests/data/test_host_assignment.yaml b/tosca2heat/heat-translator/translator/tests/data/test_host_assignment.yaml
new file mode 100644
index 0000000..acffd24
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/test_host_assignment.yaml
@@ -0,0 +1,80 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ A template to test host assignment for translated hot resources.
+ It makes sure if a resource depends on multiple hosts only the
+ one with the "HostedOn" relationship is picked as the host. In
+ this template, the translated resource 'app_collectd_create_deploy'
+ would depend on 'logstash_server' and 'app_server'. But it would
+ have "HostedOn" relationship with 'app_server', and that server
+ would be its host.
+
+imports:
+ - custom_types/logstash.yaml
+ - custom_types/collectd.yaml
+ - custom_types/rsyslog.yaml
+ - custom_types/elasticsearch.yaml
+
+dsl_definitions:
+ host_capabilities: &host_capabilities
+ # compute properties (flavor)
+ disk_size: 10 GB
+ num_cpus: 1
+ mem_size: 4096 MB
+ os_capabilities: &os_capabilities
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+topology_template:
+ node_templates:
+ app_collectd:
+ type: tosca.nodes.SoftwareComponent.Collectd
+ requirements:
+ - host:
+ node: app_server
+ - log_endpoint:
+ node: logstash
+ capability: log_endpoint
+ relationship:
+ type: tosca.relationships.ConnectsTo
+ interfaces:
+ Configure:
+ pre_configure_target:
+ implementation: logstash/configure_collectd.py
+ interfaces:
+ Standard:
+ create: collectd/create.sh
+ configure:
+ implementation: collectd/config.py
+ inputs:
+ logstash_ip: { get_attribute: [logstash_server, private_address] }
+ start: collectd/start.sh
+
+ logstash:
+ type: tosca.nodes.SoftwareComponent.Logstash
+ requirements:
+ - host:
+ node: logstash_server
+ interfaces:
+ Standard:
+ create: logstash/create.sh
+ start: logstash/start.sh
+
+ app_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ os:
+ properties: *os_capabilities
+ host:
+ properties: *host_capabilities
+
+ logstash_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ os:
+ properties: *os_capabilities
+ host:
+ properties: *host_capabilities
+
diff --git a/tosca2heat/heat-translator/translator/tests/data/test_single_server_without_optional_version_prop.yaml b/tosca2heat/heat-translator/translator/tests/data/test_single_server_without_optional_version_prop.yaml
new file mode 100644
index 0000000..8cf5255
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/test_single_server_without_optional_version_prop.yaml
@@ -0,0 +1,24 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile that just defines a single compute instance and selects a
+ flavor and host Operating System for the Compute node. Note, this is just a test
+ template showing Compute without optional 'version' property of OS capability. In
+ general, you should have version to narrow down your image selection.
+
+topology_template:
+
+ node_templates:
+ my_server:
+ type: Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 40 GB
+ num_cpus: 2
+ mem_size: 4 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: RHEL
diff --git a/tosca2heat/heat-translator/translator/tests/data/test_tosca_artifact.yaml b/tosca2heat/heat-translator/translator/tests/data/test_tosca_artifact.yaml
new file mode 100644
index 0000000..be2caca
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/test_tosca_artifact.yaml
@@ -0,0 +1,40 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: TOSCA template to test artifact usage
+
+node_types:
+ tosca.nodes.CustomWebServer:
+ derived_from: tosca.nodes.WebServer
+ artifacts:
+ web_content:
+ file: http://www.mycompany.org/content.tgz
+ type: tosca.artifacts.File
+ interfaces:
+ Standard:
+ create:
+ inputs:
+ content: { get_artifact: [ SELF, web_content ] }
+ implementation: install.sh
+
+topology_template:
+ node_templates:
+
+ customwebserver:
+ type: tosca.nodes.CustomWebServer
+ requirements:
+ - host: server
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ num_cpus: 1
+ mem_size: 1 GB
+ os:
+ properties:
+ type: Linux
+ distribution: Ubuntu
+ version: 12.04
+ architecture: x86_64
+
diff --git a/tosca2heat/heat-translator/translator/tests/data/test_tosca_custom_type.yaml b/tosca2heat/heat-translator/translator/tests/data/test_tosca_custom_type.yaml
new file mode 100644
index 0000000..c427ef0
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/test_tosca_custom_type.yaml
@@ -0,0 +1,47 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: TOSCA template to test custom type with an interface defined on it
+
+node_types:
+ tosca.nodes.CustomWebServer:
+ derived_from: tosca.nodes.WebServer
+ properties:
+ custom_install_path:
+ type: string
+ default: /home/custom/custom
+ interfaces:
+ Standard:
+ create:
+ implementation: install.sh
+ inputs:
+ path: { get_property: [ SELF, custom_install_path ] }
+
+topology_template:
+ inputs:
+ install_path:
+ type: string
+ default: /home/custom/other
+
+ node_templates:
+
+ customwebserver:
+ type: tosca.nodes.CustomWebServer
+ requirements:
+ - host: server
+ properties:
+ custom_install_path : { get_input: install_path }
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ num_cpus: 1
+ mem_size: 1 GB
+ os:
+ properties:
+ type: Linux
+ distribution: Ubuntu
+ version: 12.04
+ architecture: x86_64
+
diff --git a/tosca2heat/heat-translator/translator/tests/data/test_tosca_custom_type_with_override.yaml b/tosca2heat/heat-translator/translator/tests/data/test_tosca_custom_type_with_override.yaml
new file mode 100644
index 0000000..d398c63
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/test_tosca_custom_type_with_override.yaml
@@ -0,0 +1,45 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA template to test custom type with an interface defined on it,
+ and an interface overriding the type's one on the template itself
+
+node_types:
+ tosca.nodes.CustomWebServer:
+ derived_from: tosca.nodes.WebServer
+ interfaces:
+ Standard:
+ create:
+ implementation: install.sh
+
+topology_template:
+ inputs:
+ install_path:
+ type: string
+ default: /home/custom/other
+
+ node_templates:
+ customwebserver:
+ type: tosca.nodes.CustomWebServer
+ requirements:
+ - host: server
+ interfaces:
+ Standard:
+ create:
+ implementation: install_override.sh
+ inputs:
+ path: { get_input: install_path }
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ num_cpus: 1
+ mem_size: 1 GB
+ os:
+ properties:
+ type: Linux
+ distribution: Ubuntu
+ version: 12.04
+ architecture: x86_64
diff --git a/tosca2heat/heat-translator/translator/tests/data/test_tosca_flavor_and_image.yaml b/tosca2heat/heat-translator/translator/tests/data/test_tosca_flavor_and_image.yaml
new file mode 100644
index 0000000..3247589
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/test_tosca_flavor_and_image.yaml
@@ -0,0 +1,29 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Template for deploying a server with custom properties for image, flavor and key_name.
+
+node_types:
+ tosca.nodes.nfv.VDU:
+ derived_from: tosca.nodes.Compute
+ properties:
+ key_name:
+ type: string
+ image:
+ type: string
+ flavor:
+ type: string
+
+topology_template:
+ inputs:
+ key_name:
+ type: string
+ default: inputkey
+
+ node_templates:
+ my_server:
+ type: tosca.nodes.nfv.VDU
+ properties:
+ flavor: m1.medium
+ image: rhel-6.5-test-image
+ key_name:
+ get_input: key_name
diff --git a/tosca2heat/heat-translator/translator/tests/data/test_tosca_nfv_sample.yaml b/tosca2heat/heat-translator/translator/tests/data/test_tosca_nfv_sample.yaml
new file mode 100644
index 0000000..1112234
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/test_tosca_nfv_sample.yaml
@@ -0,0 +1,43 @@
+tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
+
+description: Template for deploying a single server with predefined properties.
+
+topology_template:
+ node_templates:
+
+ VDU1:
+ type: tosca.nodes.nfv.VDU
+ capabilities:
+ host:
+ properties:
+ num_cpus: 2
+ disk_size: 10 GB
+ mem_size: 512 MB
+ # Guest Operating System properties
+ os:
+ properties:
+ # host Operating System image properties
+ architecture: x86_64
+ type: Linux
+ distribution: RHEL
+ version: 6.5
+ CP1:
+ type: tosca.nodes.nfv.CP
+ properties:
+ ip_address: 192.168.0.55
+ requirements:
+ - virtualLink:
+ node: VL1
+# relationship: tosca.relationships.nfv.VirtualLinksTo
+ - virtualBinding:
+ node: VDU1
+ relationship: tosca.relationships.nfv.VirtualBindsTo
+
+ VL1:
+ type: tosca.nodes.nfv.VL
+ properties:
+ vendor: ACME
+ cidr: '192.168.0.0/24'
+ start_ip: '192.168.0.50'
+ end_ip: '192.168.0.200'
+ gateway_ip: '192.168.0.1'
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_elk.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_elk.yaml
new file mode 100644
index 0000000..a074aa6
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_elk.yaml
@@ -0,0 +1,219 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ This TOSCA simple profile deploys nodejs, mongodb, elasticsearch, logstash
+ and kibana each on a separate server with monitoring enabled for nodejs
+ server where a sample nodejs application is running. The rsyslog and collectd
+ are installed on a nodejs server.
+
+imports:
+ - custom_types/paypalpizzastore_nodejs_app.yaml
+ - custom_types/elasticsearch.yaml
+ - custom_types/logstash.yaml
+ - custom_types/kibana.yaml
+ - custom_types/collectd.yaml
+ - custom_types/rsyslog.yaml
+
+dsl_definitions:
+ host_capabilities: &host_capabilities
+ disk_size: 10 GB
+ num_cpus: { get_input: my_cpus }
+ mem_size: 4096 MB
+ os_capabilities: &os_capabilities
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+topology_template:
+ inputs:
+ my_cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ default: 1
+ github_url:
+ type: string
+ description: The URL to download nodejs.
+ default: http://github.com/paypal/rest-api-sample-app-nodejs.git
+
+ node_templates:
+ paypal_pizzastore:
+ type: tosca.nodes.WebApplication.PayPalPizzaStore
+ properties:
+ github_url: { get_input: github_url }
+ requirements:
+ - host: nodejs
+ - database_connection: mongo_db
+ interfaces:
+ Standard:
+ configure:
+ implementation: nodejs/config.sh
+ inputs:
+ github_url: { get_property: [ SELF, github_url ] }
+ mongodb_ip: { get_attribute: [mongo_server, private_address] }
+ start: nodejs/start.sh
+ nodejs:
+ type: tosca.nodes.WebServer
+ requirements:
+ - host: app_server
+ interfaces:
+ Standard:
+ create: nodejs/create.sh
+ mongo_db:
+ type: tosca.nodes.Database
+ requirements:
+ - host: mongo_dbms
+ interfaces:
+ Standard:
+ create: mongodb/create_database.sh
+ mongo_dbms:
+ type: tosca.nodes.DBMS
+ requirements:
+ - host: mongo_server
+ interfaces:
+ Standard:
+ create: mongodb/create.sh
+ configure:
+ implementation: mongodb/config.sh
+ inputs:
+ mongodb_ip: { get_attribute: [mongo_server, private_address] }
+ start: mongodb/start.sh
+ elasticsearch:
+ type: tosca.nodes.SoftwareComponent.Elasticsearch
+ requirements:
+ - host: elasticsearch_server
+ interfaces:
+ Standard:
+ create: elasticsearch/create.sh
+ start: elasticsearch/start.sh
+ logstash:
+ type: tosca.nodes.SoftwareComponent.Logstash
+ requirements:
+ - host: logstash_server
+ - search_endpoint:
+ node: elasticsearch
+ capability: search_endpoint
+ relationship:
+ type: tosca.relationships.ConnectsTo
+ interfaces:
+ Configure:
+ pre_configure_source:
+ implementation: logstash/configure_elasticsearch.py
+ inputs:
+ elasticsearch_ip: { get_attribute: [elasticsearch_server, private_address] }
+ interfaces:
+ Standard:
+ create: logstash/create.sh
+ start: logstash/start.sh
+ kibana:
+ type: tosca.nodes.SoftwareComponent.Kibana
+ requirements:
+ - host: kibana_server
+ - search_endpoint:
+ node: elasticsearch
+ capability: search_endpoint
+ interfaces:
+ Standard:
+ create: kibana/create.sh
+ configure:
+ implementation: kibana/config.sh
+ inputs:
+ elasticsearch_ip: { get_attribute: [elasticsearch_server, private_address] }
+ kibana_ip: { get_attribute: [kibana_server, private_address] }
+ start: kibana/start.sh
+ app_collectd:
+ type: tosca.nodes.SoftwareComponent.Collectd
+ requirements:
+ - host: app_server
+ - log_endpoint:
+ node: logstash
+ capability: log_endpoint
+ relationship:
+ type: tosca.relationships.ConnectsTo
+ interfaces:
+ Configure:
+ pre_configure_target:
+ implementation: logstash/configure_collectd.py
+ interfaces:
+ Standard:
+ create: collectd/create.sh
+ configure:
+ implementation: collectd/config.py
+ inputs:
+ logstash_ip: { get_attribute: [logstash_server, private_address] }
+ start: collectd/start.sh
+ app_rsyslog:
+ type: tosca.nodes.SoftwareComponent.Rsyslog
+ requirements:
+ - host: app_server
+ - log_endpoint:
+ node: logstash
+ capability: log_endpoint
+ relationship:
+ type: tosca.relationships.ConnectsTo
+ interfaces:
+ Configure:
+ pre_configure_target:
+ implementation: logstash/configure_rsyslog.py
+ interfaces:
+ Standard:
+ create: rsyslog/create.sh
+ configure:
+ implementation: rsyslog/config.sh
+ inputs:
+ logstash_ip: { get_attribute: [logstash_server, private_address] }
+ start: rsyslog/start.sh
+ app_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties: *host_capabilities
+ os:
+ properties: *os_capabilities
+ mongo_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties: *host_capabilities
+ os:
+ properties: *os_capabilities
+ elasticsearch_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties: *host_capabilities
+ os:
+ properties: *os_capabilities
+ logstash_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties: *host_capabilities
+ os:
+ properties: *os_capabilities
+ kibana_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties: *host_capabilities
+ os:
+ properties: *os_capabilities
+
+ outputs:
+ nodejs_url:
+ description: URL for the nodejs server, http://<IP>:3000
+ value: { get_attribute: [ app_server, private_address ] }
+ mongodb_url:
+ description: URL for the mongodb server.
+ value: { get_attribute: [ mongo_server, private_address ] }
+ elasticsearch_url:
+ description: URL for the elasticsearch server.
+ value: { get_attribute: [ elasticsearch_server, private_address ] }
+ logstash_url:
+ description: URL for the logstash server.
+ value: { get_attribute: [ logstash_server, private_address ] }
+ kibana_url:
+ description: URL for the kibana server.
+ value: { get_attribute: [ kibana_server, private_address ] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_helloworld.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_helloworld.yaml
new file mode 100644
index 0000000..5b913ff
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_helloworld.yaml
@@ -0,0 +1,23 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Template for deploying a single server with predefined properties.
+
+topology_template:
+ node_templates:
+ my_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ # Host container properties
+ host:
+ properties:
+ num_cpus: 2
+ disk_size: 10 GB
+ mem_size: 512 MB
+ # Guest Operating System properties
+ os:
+ properties:
+ # host Operating System image properties
+ architecture: x86_64
+ type: Linux
+ distribution: RHEL
+ version: 6.5
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_helloworld_invalid.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_helloworld_invalid.yaml
new file mode 100644
index 0000000..ea60733
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_helloworld_invalid.yaml
@@ -0,0 +1,23 @@
+tosca_definitions: tosca_simple_yaml_1_0
+
+description: Template with invalid version and topology_template section.
+
+topology_template:
+ node_temp:
+ my_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ # Host container properties
+ host:
+ properties:
+ num_cpus: 2
+ disk_size: 10 GB
+ mem_size: 512 MB
+ # Guest Operating System properties
+ os:
+ properties:
+ # host Operating System image properties
+ architecture: x86_64
+ type: Linux
+ distribution: RHEL
+ version: 6.5
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_nodejs_mongodb_two_instances.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_nodejs_mongodb_two_instances.yaml
new file mode 100644
index 0000000..f611071
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_nodejs_mongodb_two_instances.yaml
@@ -0,0 +1,96 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with nodejs and mongodb.
+
+imports:
+ - custom_types/paypalpizzastore_nodejs_app.yaml
+
+dsl_definitions:
+ host_capabilities: &host_capabilities
+ disk_size: 10 GB
+ num_cpus: 1
+ mem_size: 4096 MB
+ os_capabilities: &os_capabilities
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+topology_template:
+ inputs:
+ my_cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ default: 1
+ github_url:
+ type: string
+ description: The URL to download nodejs.
+ default: http://github.com/paypal/rest-api-sample-app-nodejs.git
+
+ node_templates:
+ paypal_pizzastore:
+ type: tosca.nodes.WebApplication.PayPalPizzaStore
+ properties:
+ github_url: { get_input: github_url }
+ requirements:
+ - host: nodejs
+ - database_connection: mongo_db
+ interfaces:
+ Standard:
+ configure:
+ implementation: nodejs/config.sh
+ inputs:
+ github_url: http://github.com/paypal/rest-api-sample-app-nodejs.git
+ mongodb_ip: { get_attribute: [mongo_server, private_address] }
+ start: nodejs/start.sh
+ nodejs:
+ type: tosca.nodes.WebServer
+ requirements:
+ - host: app_server
+ interfaces:
+ Standard:
+ create: nodejs/create.sh
+ mongo_db:
+ type: tosca.nodes.Database
+ requirements:
+ - host: mongo_dbms
+ interfaces:
+ Standard:
+ create: mongodb/create_database.sh
+ mongo_dbms:
+ type: tosca.nodes.DBMS
+ requirements:
+ - host: mongo_server
+ interfaces:
+ Standard:
+ create: mongodb/create.sh
+ configure:
+ implementation: mongodb/config.sh
+ inputs:
+ mongodb_ip: { get_attribute: [mongo_server, private_address] }
+ start: mongodb/start.sh
+ mongo_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties: *host_capabilities
+ os:
+ properties: *os_capabilities
+ app_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties: *host_capabilities
+ os:
+ properties: *os_capabilities
+
+ outputs:
+ nodejs_url:
+ description: URL for the nodejs server, http://<IP>:3000
+ value: { get_attribute: [app_server, private_address] }
+ mongodb_url:
+ description: URL for the mongodb server.
+ value: { get_attribute: [mongo_server, private_address] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_policies.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_policies.yaml
new file mode 100644
index 0000000..26417d3
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_policies.yaml
@@ -0,0 +1,28 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Template for deploying the nodes based on given policies.
+
+topology_template:
+ node_templates:
+ my_server:
+ type: tosca.nodes.Compute
+ capabilities:
+ # Host container properties
+ host:
+ properties:
+ num_cpus: 2
+ disk_size: 10 GB
+ mem_size: 512 MB
+ # Guest Operating System properties
+ os:
+ properties:
+ # host Operating System image properties
+ architecture: x86_64
+ type: Linux
+ distribution: RHEL
+ version: 6.5
+ policies:
+ - my_compute_placement_policy:
+ type: tosca.policies.Placement
+ description: Apply my placement policy to my application’s servers
+ targets: [ my_server ]
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress.yaml
new file mode 100644
index 0000000..8c907db
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress.yaml
@@ -0,0 +1,120 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with wordpress, web server and mysql on the same server.
+
+imports:
+ - custom_types/wordpress.yaml
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ default: 1
+ db_name:
+ type: string
+ description: The name of the database.
+ default: wordpress
+ db_user:
+ type: string
+ description: The user name of the DB user.
+ default: wp_user
+ db_pwd:
+ type: string
+ description: The WordPress database admin account password.
+ default: wp_pass
+ db_root_pwd:
+ type: string
+ description: Root password for MySQL.
+ db_port:
+ type: PortDef
+ description: Port for the MySQL database.
+ default: 3306
+
+ node_templates:
+ wordpress:
+ type: tosca.nodes.WebApplication.WordPress
+ requirements:
+ - host: webserver
+ - database_endpoint: mysql_database
+ interfaces:
+ Standard:
+ create: wordpress/wordpress_install.sh
+ configure:
+ implementation: wordpress/wordpress_configure.sh
+ inputs:
+ wp_db_name: { get_property: [ mysql_database, name ] }
+ wp_db_user: { get_property: [ mysql_database, user ] }
+ wp_db_password: { get_property: [ mysql_database, password ] }
+
+ mysql_database:
+ type: tosca.nodes.Database
+ properties:
+ name: { get_input: db_name }
+ user: { get_input: db_user }
+ password: { get_input: db_pwd }
+ capabilities:
+ database_endpoint:
+ properties:
+ port: { get_input: db_port }
+ requirements:
+ - host:
+ node: mysql_dbms
+ interfaces:
+ Standard:
+ configure:
+ implementation: mysql/mysql_database_configure.sh
+ inputs:
+ db_name: { get_property: [ SELF, name ] }
+ db_user: { get_property: [ SELF, user ] }
+ db_password: { get_property: [ SELF, password ] }
+ db_root_password: { get_property: [ mysql_dbms, root_password ] }
+ mysql_dbms:
+ type: tosca.nodes.DBMS
+ properties:
+ root_password: { get_input: db_root_pwd }
+ port: { get_input: db_port }
+ requirements:
+ - host: server
+ interfaces:
+ Standard:
+ create:
+ implementation: mysql/mysql_dbms_install.sh
+ inputs:
+ db_root_password: { get_property: [ SELF, root_password ] }
+ start: mysql/mysql_dbms_start.sh
+ configure:
+ implementation: mysql/mysql_dbms_configure.sh
+ inputs:
+ db_port: 3366
+
+ webserver:
+ type: tosca.nodes.WebServer
+ requirements:
+ - host: server
+ interfaces:
+ Standard:
+ create: webserver/webserver_install.sh
+ start: webserver/webserver_start.sh
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+ outputs:
+ website_url:
+ description: URL for Wordpress wiki.
+ value: { get_attribute: [server, private_address] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress_with_local_abspath_import.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress_with_local_abspath_import.yaml
new file mode 100644
index 0000000..af2e7a3
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress_with_local_abspath_import.yaml
@@ -0,0 +1,125 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with wordpress, web server and mysql on the same server.
+ This template was added to test an 'invalid' scenario where the input template
+ to heat-translator is provided as a URL and that template is referencing an
+ import using an absolute path. The translation of this template would work
+ only if it is tried locally (not via a URL link but via a file system
+ reference) and the referenced import exists in the path below.
+
+imports:
+ - /tmp/wordpress.yaml
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ default: 1
+ db_name:
+ type: string
+ description: The name of the database.
+ default: wordpress
+ db_user:
+ type: string
+ description: The user name of the DB user.
+ default: wp_user
+ db_pwd:
+ type: string
+ description: The WordPress database admin account password.
+ default: wp_pass
+ db_root_pwd:
+ type: string
+ description: Root password for MySQL.
+ db_port:
+ type: PortDef
+ description: Port for the MySQL database.
+ default: 3306
+
+ node_templates:
+ wordpress:
+ type: tosca.nodes.WebApplication.WordPress
+ requirements:
+ - host: webserver
+ - database_endpoint: mysql_database
+ interfaces:
+ Standard:
+ create: wordpress/wordpress_install.sh
+ configure:
+ implementation: wordpress/wordpress_configure.sh
+ inputs:
+ wp_db_name: { get_input: db_name }
+ wp_db_user: { get_input: db_user }
+ wp_db_password: { get_input: db_pwd }
+
+ mysql_database:
+ type: tosca.nodes.Database
+ properties:
+ name: { get_input: db_name }
+ user: { get_input: db_user }
+ password: { get_input: db_pwd }
+ capabilities:
+ database_endpoint:
+ properties:
+ port: { get_input: db_port }
+ requirements:
+ - host:
+ node: mysql_dbms
+ interfaces:
+ Standard:
+ configure:
+ implementation: mysql/mysql_database_configure.sh
+ inputs:
+ db_name: { get_input: db_name }
+ db_user: { get_input: db_user }
+ db_password: { get_input: db_pwd }
+ db_root_password: { get_input: db_root_pwd }
+ mysql_dbms:
+ type: tosca.nodes.DBMS
+ properties:
+ root_password: { get_input: db_root_pwd }
+ port: { get_input: db_port }
+ requirements:
+ - host: server
+ interfaces:
+ Standard:
+ create:
+ implementation: mysql/mysql_dbms_install.sh
+ inputs:
+ db_root_password: passw0rd
+ start: mysql/mysql_dbms_start.sh
+ configure:
+ implementation: mysql/mysql_dbms_configure.sh
+ inputs:
+ db_port: 3366
+
+ webserver:
+ type: tosca.nodes.WebServer
+ requirements:
+ - host: server
+ interfaces:
+ Standard:
+ create: webserver/webserver_install.sh
+ start: webserver/webserver_start.sh
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+ outputs:
+ website_url:
+ description: URL for Wordpress wiki.
+ value: { get_attribute: [server, private_address] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress_with_url_import.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress_with_url_import.yaml
new file mode 100644
index 0000000..69dbfeb
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_single_instance_wordpress_with_url_import.yaml
@@ -0,0 +1,120 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with wordpress, web server and mysql on the same server.
+
+imports:
+ - https://raw.githubusercontent.com/openstack/heat-translator/master/translator/tests/data/custom_types/wordpress.yaml
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ default: 1
+ db_name:
+ type: string
+ description: The name of the database.
+ default: wordpress
+ db_user:
+ type: string
+ description: The user name of the DB user.
+ default: wp_user
+ db_pwd:
+ type: string
+ description: The WordPress database admin account password.
+ default: wp_pass
+ db_root_pwd:
+ type: string
+ description: Root password for MySQL.
+ db_port:
+ type: PortDef
+ description: Port for the MySQL database.
+ default: 3306
+
+ node_templates:
+ wordpress:
+ type: tosca.nodes.WebApplication.WordPress
+ requirements:
+ - host: webserver
+ - database_endpoint: mysql_database
+ interfaces:
+ Standard:
+ create: wordpress/wordpress_install.sh
+ configure:
+ implementation: wordpress/wordpress_configure.sh
+ inputs:
+ wp_db_name: { get_property: [ mysql_database, name ] }
+ wp_db_user: { get_property: [ mysql_database, user ] }
+ wp_db_password: { get_property: [ mysql_database, password ] }
+
+ mysql_database:
+ type: tosca.nodes.Database
+ properties:
+ name: { get_input: db_name }
+ user: { get_input: db_user }
+ password: { get_input: db_pwd }
+ capabilities:
+ database_endpoint:
+ properties:
+ port: { get_input: db_port }
+ requirements:
+ - host:
+ node: mysql_dbms
+ interfaces:
+ Standard:
+ configure:
+ implementation: mysql/mysql_database_configure.sh
+ inputs:
+ db_name: { get_property: [ SELF, name ] }
+ db_user: { get_property: [ SELF, user ] }
+ db_password: { get_property: [ SELF, password ] }
+ db_root_password: { get_property: [ mysql_dbms, root_password ] }
+ mysql_dbms:
+ type: tosca.nodes.DBMS
+ properties:
+ root_password: { get_input: db_root_pwd }
+ port: { get_input: db_port }
+ requirements:
+ - host: server
+ interfaces:
+ Standard:
+ create:
+ implementation: mysql/mysql_dbms_install.sh
+ inputs:
+ db_root_password: { get_property: [ SELF, root_password ] }
+ start: mysql/mysql_dbms_start.sh
+ configure:
+ implementation: mysql/mysql_dbms_configure.sh
+ inputs:
+ db_port: 3366
+
+ webserver:
+ type: tosca.nodes.WebServer
+ requirements:
+ - host: server
+ interfaces:
+ Standard:
+ create: webserver/webserver_install.sh
+ start: webserver/webserver_start.sh
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+ outputs:
+ website_url:
+ description: URL for Wordpress wiki.
+ value: { get_attribute: [server, private_address] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_single_server.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_single_server.yaml
new file mode 100644
index 0000000..67a0161
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_single_server.yaml
@@ -0,0 +1,32 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile that just defines a single compute instance and selects a (guest) host Operating System from the Compute node's properties. Note, this example does not include default values on inputs properties.
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+
+ node_templates:
+ my_server:
+ type: Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: ubuntu
+ version: 12.04
+ outputs:
+ private_ip:
+ description: The private IP address of the deployed server instance.
+ value: { get_attribute: [my_server, private_address] }
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_single_server_with_defaults.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_single_server_with_defaults.yaml
new file mode 100644
index 0000000..68933e2
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_single_server_with_defaults.yaml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile that just defines a single compute instance and
+ selects a (guest) host Operating System from the Compute node's properties.
+ Note, this example includes default values on inputs properties.
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ default: 4
+
+ node_templates:
+ my_server:
+ type: Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 4 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: ubuntu
+ version: 12.04
+ outputs:
+ private_ip:
+ description: The private IP address of the deployed server instance.
+ value: { get_attribute: [my_server, private_address] } \ No newline at end of file
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_software_component.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_software_component.yaml
new file mode 100644
index 0000000..88186a5
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_software_component.yaml
@@ -0,0 +1,40 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with a software component.
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ default: 1
+
+ node_templates:
+ my_software:
+ type: tosca.nodes.SoftwareComponent
+ properties:
+ component_version: 1.0
+ requirements:
+ - host: server
+ interfaces:
+ Standard:
+ create: software_install.sh
+ start: software_start.sh
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 1024 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
diff --git a/tosca2heat/heat-translator/translator/tests/data/tosca_web_application.yaml b/tosca2heat/heat-translator/translator/tests/data/tosca_web_application.yaml
new file mode 100644
index 0000000..d5ab038
--- /dev/null
+++ b/tosca2heat/heat-translator/translator/tests/data/tosca_web_application.yaml
@@ -0,0 +1,56 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ TOSCA simple profile with a web application.
+
+topology_template:
+ inputs:
+ cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ default: 1
+ context_root:
+ type: string
+ description: Context root for installing the application.
+ default: app
+
+ node_templates:
+ web_app:
+ type: tosca.nodes.WebApplication
+ properties:
+ context_root: { get_input: context_root }
+ requirements:
+ - host: web_server
+ interfaces:
+ Standard:
+ create:
+ implementation: web_app_install.sh
+ inputs:
+ context_root: { get_input: context_root }
+ start: web_app_start.sh
+
+ web_server:
+ type: tosca.nodes.WebServer
+ requirements:
+ - host: server
+ interfaces:
+ Standard:
+ create: web_server_install.sh
+ start: web_server_start.sh
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: cpus }
+ mem_size: 1024 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04