From d064f39c45480d876d2acbca0b9b73f33485d366 Mon Sep 17 00:00:00 2001 From: spzala Date: Mon, 23 Mar 2015 12:28:16 -0700 Subject: [PATCH] TOSCA: Add missing artifacts references The TOSCA wordpress template is missing artifacts. These artifacts were tested with actual deployment but never added here. Unit tests are there for this template for TOSCA parser side and we are working on to create tests for the full translated template with HOT mapping. Change-Id: I9ddedc6ee6e072e765d3d3fe6b97a2a7d8aa91d8 --- .../mysql/mysql_database_configure.sh | 9 +++++ .../artifacts/mysql/mysql_dbms_configure.sh | 3 ++ .../artifacts/mysql/mysql_dbms_install.sh | 4 ++ .../tests/artifacts/mysql/mysql_dbms_start.sh | 3 ++ .../artifacts/webserver/webserver_install.sh | 3 ++ .../artifacts/webserver/webserver_start.sh | 3 ++ .../wordpress/wordpress_configure.sh | 7 ++++ .../artifacts/wordpress/wordpress_install.sh | 2 + .../data/tosca_single_instance_wordpress.yaml | 39 ++++++++++--------- translator/toscalib/tests/test_toscatpl.py | 4 +- 10 files changed, 57 insertions(+), 20 deletions(-) create mode 100755 translator/toscalib/tests/artifacts/mysql/mysql_database_configure.sh create mode 100755 translator/toscalib/tests/artifacts/mysql/mysql_dbms_configure.sh create mode 100755 translator/toscalib/tests/artifacts/mysql/mysql_dbms_install.sh create mode 100755 translator/toscalib/tests/artifacts/mysql/mysql_dbms_start.sh create mode 100755 translator/toscalib/tests/artifacts/webserver/webserver_install.sh create mode 100755 translator/toscalib/tests/artifacts/webserver/webserver_start.sh create mode 100755 translator/toscalib/tests/artifacts/wordpress/wordpress_configure.sh create mode 100755 translator/toscalib/tests/artifacts/wordpress/wordpress_install.sh diff --git a/translator/toscalib/tests/artifacts/mysql/mysql_database_configure.sh b/translator/toscalib/tests/artifacts/mysql/mysql_database_configure.sh new file mode 100755 index 0000000..41d6ce2 --- /dev/null +++ b/translator/toscalib/tests/artifacts/mysql/mysql_database_configure.sh @@ -0,0 +1,9 @@ +#!/bin/sh -x +# Setup MySQL root password and create user +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 diff --git a/translator/toscalib/tests/artifacts/mysql/mysql_dbms_configure.sh b/translator/toscalib/tests/artifacts/mysql/mysql_dbms_configure.sh new file mode 100755 index 0000000..7fddd9b --- /dev/null +++ b/translator/toscalib/tests/artifacts/mysql/mysql_dbms_configure.sh @@ -0,0 +1,3 @@ +#!/bin/sh -x +# Set the MySQL server root password +mysqladmin -u root password db_root_password diff --git a/translator/toscalib/tests/artifacts/mysql/mysql_dbms_install.sh b/translator/toscalib/tests/artifacts/mysql/mysql_dbms_install.sh new file mode 100755 index 0000000..4a7d138 --- /dev/null +++ b/translator/toscalib/tests/artifacts/mysql/mysql_dbms_install.sh @@ -0,0 +1,4 @@ +#!/bin/sh -x +yum -y install mysql mysql-server +# Use systemd to start MySQL server at system boot time +#systemctl enable mysqld.service diff --git a/translator/toscalib/tests/artifacts/mysql/mysql_dbms_start.sh b/translator/toscalib/tests/artifacts/mysql/mysql_dbms_start.sh new file mode 100755 index 0000000..de61955 --- /dev/null +++ b/translator/toscalib/tests/artifacts/mysql/mysql_dbms_start.sh @@ -0,0 +1,3 @@ +#!/bin/sh -x +# Start the MySQL service (NOTE: may already be started at image boot time) +systemctl start mysqld.service diff --git a/translator/toscalib/tests/artifacts/webserver/webserver_install.sh b/translator/toscalib/tests/artifacts/webserver/webserver_install.sh new file mode 100755 index 0000000..8948064 --- /dev/null +++ b/translator/toscalib/tests/artifacts/webserver/webserver_install.sh @@ -0,0 +1,3 @@ +#!/bin/sh -x +yum -y install httpd +systemctl enable httpd.service diff --git a/translator/toscalib/tests/artifacts/webserver/webserver_start.sh b/translator/toscalib/tests/artifacts/webserver/webserver_start.sh new file mode 100755 index 0000000..7e69fce --- /dev/null +++ b/translator/toscalib/tests/artifacts/webserver/webserver_start.sh @@ -0,0 +1,3 @@ +#!/bin/sh -x +# Start the httpd service (NOTE: may already be started at image boot time) +systemctl start httpd.service diff --git a/translator/toscalib/tests/artifacts/wordpress/wordpress_configure.sh b/translator/toscalib/tests/artifacts/wordpress/wordpress_configure.sh new file mode 100755 index 0000000..cef8e6b --- /dev/null +++ b/translator/toscalib/tests/artifacts/wordpress/wordpress_configure.sh @@ -0,0 +1,7 @@ +#!/bin/sh -x +sed -i "/Deny from All/d" /etc/httpd/conf.d/wordpress.conf +sed -i "s/Require local/Require all granted/" /etc/httpd/conf.d/wordpress.conf +sed -i s/database_name_here/db_name/ /etc/wordpress/wp-config.php +sed -i s/username_here/db_user/ /etc/wordpress/wp-config.php +sed -i s/password_here/db_password/ /etc/wordpress/wp-config.php +systemctl restart httpd.service diff --git a/translator/toscalib/tests/artifacts/wordpress/wordpress_install.sh b/translator/toscalib/tests/artifacts/wordpress/wordpress_install.sh new file mode 100755 index 0000000..09dd0dc --- /dev/null +++ b/translator/toscalib/tests/artifacts/wordpress/wordpress_install.sh @@ -0,0 +1,2 @@ +#!/bin/sh -x +yum -y install wordpress diff --git a/translator/toscalib/tests/data/tosca_single_instance_wordpress.yaml b/translator/toscalib/tests/data/tosca_single_instance_wordpress.yaml index 3525ada..b882b27 100644 --- a/translator/toscalib/tests/data/tosca_single_instance_wordpress.yaml +++ b/translator/toscalib/tests/data/tosca_single_instance_wordpress.yaml @@ -36,14 +36,14 @@ node_templates: - database_endpoint: mysql_database interfaces: tosca.interfaces.node.lifecycle.Standard: - create: wordpress_install.sh - configure: - implementation: wordpress_configure.sh - inputs: - wp_db_name: { get_property: [ mysql_database, db_name ] } - wp_db_user: { get_property: [ mysql_database, db_user ] } - wp_db_password: { get_property: [ mysql_database, db_password ] } - wp_db_port: { get_property: [ SELF, database_endpoint, port ] } + create: wordpress/wordpress_install.sh + configure: + implementation: wordpress/wordpress_configure.sh + inputs: + wp_db_name: { get_property: [ mysql_database, db_name ] } + wp_db_user: { get_property: [ mysql_database, db_user ] } + wp_db_password: { get_property: [ mysql_database, db_password ] } + wp_db_port: { get_property: [ SELF, database_endpoint, port ] } mysql_database: type: tosca.nodes.Database @@ -59,11 +59,14 @@ node_templates: - host: mysql_dbms interfaces: tosca.interfaces.node.lifecycle.Standard: - configure: - implementation: mysql_database_configure.sh - inputs: - db_port: { get_property: [ SELF, database_endpoint, port ] } - + configure: + implementation: mysql/mysql_database_configure.sh + inputs: + db_name: { get_property: [ SELF, db_name ] } + db_user: { get_property: [ SELF, db_user ] } + db_password: { get_property: [ SELF, db_password ] } + db_root_password: { get_property: [ mysql_dbms, dbms_root_password ] } + db_port: { get_property: [ SELF, database_endpoint, port ] } mysql_dbms: type: tosca.nodes.DBMS properties: @@ -73,10 +76,10 @@ node_templates: - host: server interfaces: tosca.interfaces.node.lifecycle.Standard: - create: mysql_dbms_install.sh - start: mysql_dbms_start.sh + create: mysql/mysql_dbms_install.sh + start: mysql/mysql_dbms_start.sh configure: - implementation: mysql_dbms_configure.sh + implementation: mysql/mysql_dbms_configure.sh inputs: db_user: { get_input: db_user } db_root_password: { get_property: [ mysql_dbms, dbms_root_password ] } @@ -87,8 +90,8 @@ node_templates: - host: server interfaces: tosca.interfaces.node.lifecycle.Standard: - create: webserver_install.sh - start: webserver_start.sh + create: webserver/webserver_install.sh + start: webserver/webserver_start.sh server: type: tosca.nodes.Compute diff --git a/translator/toscalib/tests/test_toscatpl.py b/translator/toscalib/tests/test_toscatpl.py index df25b91..1474f7b 100644 --- a/translator/toscalib/tests/test_toscatpl.py +++ b/translator/toscalib/tests/test_toscatpl.py @@ -141,13 +141,13 @@ class ToscaTemplateTest(TestCase): if interface.name == 'create': self.assertEqual(ifaces.LIFECYCLE, interface.type) - self.assertEqual('wordpress_install.sh', + self.assertEqual('wordpress/wordpress_install.sh', interface.implementation) self.assertIsNone(interface.inputs) elif interface.name == 'configure': self.assertEqual(ifaces.LIFECYCLE, interface.type) - self.assertEqual('wordpress_configure.sh', + self.assertEqual('wordpress/wordpress_configure.sh', interface.implementation) self.assertEqual(4, len(interface.inputs)) wp_db_port = interface.inputs['wp_db_port']