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 00000000..41d6ce2e --- /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 00000000..7fddd9b5 --- /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 00000000..4a7d138c --- /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 00000000..de619558 --- /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 00000000..89480642 --- /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 00000000..7e69fcec --- /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 00000000..cef8e6b2 --- /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 00000000..09dd0dc3 --- /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 3525ada2..b882b27f 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 df25b91c..1474f7be 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']