From e03d96b2ab05ed1fce7cbb87b5811e36c9b30a6e Mon Sep 17 00:00:00 2001 From: Serg Melikyan Date: Tue, 9 Dec 2014 16:29:17 -0800 Subject: [PATCH] Add PostgreSQL database Change-Id: I76c0ce82404862ceeacd0d2539c04ba206ac4483 --- .../Classes/PostgreSql.yaml | 125 ++++++++++++++++++ .../Resources/AssignUserPostgreSql.template | 20 +++ .../CreatePostgreSqlDatabase.template | 19 +++ .../Resources/CreatePostgreSqlUser.template | 20 +++ .../Resources/DeployPostgreSql.template | 19 +++ .../Resources/scripts/assignPostgreSqlUser.sh | 5 + .../scripts/createPostgreSqlDatabase.sh | 3 + .../Resources/scripts/createPostgreSqlUser.sh | 3 + .../Resources/scripts/deployPostgreSql.sh | 8 ++ io.murano.databases.PostgreSql/UI/ui.yaml | 102 ++++++++++++++ io.murano.databases.PostgreSql/logo.png | Bin 0 -> 70219 bytes io.murano.databases.PostgreSql/manifest.yaml | 13 ++ 12 files changed, 337 insertions(+) create mode 100644 io.murano.databases.PostgreSql/Classes/PostgreSql.yaml create mode 100644 io.murano.databases.PostgreSql/Resources/AssignUserPostgreSql.template create mode 100644 io.murano.databases.PostgreSql/Resources/CreatePostgreSqlDatabase.template create mode 100644 io.murano.databases.PostgreSql/Resources/CreatePostgreSqlUser.template create mode 100644 io.murano.databases.PostgreSql/Resources/DeployPostgreSql.template create mode 100644 io.murano.databases.PostgreSql/Resources/scripts/assignPostgreSqlUser.sh create mode 100644 io.murano.databases.PostgreSql/Resources/scripts/createPostgreSqlDatabase.sh create mode 100644 io.murano.databases.PostgreSql/Resources/scripts/createPostgreSqlUser.sh create mode 100644 io.murano.databases.PostgreSql/Resources/scripts/deployPostgreSql.sh create mode 100644 io.murano.databases.PostgreSql/UI/ui.yaml create mode 100644 io.murano.databases.PostgreSql/logo.png create mode 100644 io.murano.databases.PostgreSql/manifest.yaml diff --git a/io.murano.databases.PostgreSql/Classes/PostgreSql.yaml b/io.murano.databases.PostgreSql/Classes/PostgreSql.yaml new file mode 100644 index 00000000..a39eabfe --- /dev/null +++ b/io.murano.databases.PostgreSql/Classes/PostgreSql.yaml @@ -0,0 +1,125 @@ +Namespaces: + =: io.murano.databases + std: io.murano + res: io.murano.resources + sys: io.murano.system + +Name: PostgreSql + +Extends: + - SqlDatabase + +Properties: + instance: + Contract: $.class(res:Instance).notNull() + name: + Contract: $.string().notNull() + database: + Contract: $.string() + username: + Contract: $.string() + password: + Contract: $.string() + + +Methods: + initialize: + Body: + - $._environment: $.find(std:Environment).require() + + deploy: + Body: + - If: not $.getAttr(deployed, false) + Then: + - $._environment.reporter.report($this, 'Creating VM for PostgreSql') + - $securityGroupIngress: + - ToPort: 5432 + FromPort: 5432 + IpProtocol: tcp + External: true + - $._environment.securityGroupManager.addGroupIngress($securityGroupIngress) + - $.instance.deploy() + - $resources: new(sys:Resources) + # Deploy PostgreSql + - $._environment.reporter.report($this, 'Instance is created. Deploying PostgreSql') + - $template: $resources.yaml('DeployPostgreSql.template') + - $.instance.agent.call($template, $resources) + - $._environment.reporter.report($this, 'PostgreSql application is installed.') + - $.setAttr(deployed, true) + - $._environment.reporter.report($this, 'Creating database and user.') + - If: $.database != '' and $.database != null + Then: + - $.createDatabase($.database) + - $._environment.reporter.report($this, format('Database {0} created.', $.database)) + - If: $.username != '' and $.username != null + Then: + - $.createUser($.username, $.password) + - If: $.database != '' and $.database != null + Then: + - $.assignUser($.username, $.database) + - $._environment.reporter.report($this, format('User {0} created.', $.username)) + + createDatabase: + Arguments: + - database: + Contract: $.string().notNull() + Body: + - $.deploy() + - $._environment.reporter.report($this, format('Creating {0} database.', $database)) + # Creating Database on PostgreSQL + - $resources: new(sys:Resources) + - $template: $resources.yaml('CreatePostgreSqlDatabase.template').bind(dict( + database => $database + )) + - $.instance.agent.call($template, $resources) + - $._environment.reporter.report($this, 'Database is created') + + createUser: + Arguments: + - username: + Contract: $.string().notNull() + - password: + Contract: $.string().notNull() + Body: + - $.deploy() + - $._environment.reporter.report($this, format('Creating {0} user.', $username)) + # Creating Database on PostgreSQL + - $resources: new(sys:Resources) + - $template: $resources.yaml('CreatePostgreSqlUser.template').bind(dict( + username => $username, + password => $password + )) + - $.instance.agent.call($template, $resources) + - $._environment.reporter.report($this, format('User {0} created', $username)) + + assignUser: + Arguments: + - username: + Contract: $.string().notNull() + - database: + Contract: $.string().notNull() + Body: + - $.deploy() + - $._environment.reporter.report($this, format('Assigning user {0} to database {1}.', $username, $database)) + # Assigning user to PostgresQL database + - $resources: new(sys:Resources) + - $template: $resources.yaml('AssignUserPostgreSql.template').bind(dict( + username => $username, + database => $database + )) + - $.instance.agent.call($template, $resources) + - $._environment.reporter.report($this, format('User {0} assigned to database {1}.', $username, $database)) + + getConnectionString: + Arguments: + - username: + Contract: $.string().notNull() + - password: + Contract: $.string().notNull() + Body: + - If: $.instance.assignFloatingIp + Then: + - $host: $.instance.floatingIpAddress + Else: + - $host: $.instance.ipAddresses[0] + - Return: format('psql://{0}@{1}:{2}', $username, $password, $host) diff --git a/io.murano.databases.PostgreSql/Resources/AssignUserPostgreSql.template b/io.murano.databases.PostgreSql/Resources/AssignUserPostgreSql.template new file mode 100644 index 00000000..1f597c48 --- /dev/null +++ b/io.murano.databases.PostgreSql/Resources/AssignUserPostgreSql.template @@ -0,0 +1,20 @@ +FormatVersion: 2.0.0 +Version: 1.0.0 +Name: Assign user to PostgreSql database + +Parameters: + database: $database + username: $username + +Body: | + return assignUser('{0} {1}'.format(args.database, args.username)).stdout + +Scripts: + assignUser: + Type: Application + Version: 1.0.0 + EntryPoint: assignPostgreSqlUser.sh + Files: [] + Options: + captureStdout: true + captureStderr: true diff --git a/io.murano.databases.PostgreSql/Resources/CreatePostgreSqlDatabase.template b/io.murano.databases.PostgreSql/Resources/CreatePostgreSqlDatabase.template new file mode 100644 index 00000000..45cb92b7 --- /dev/null +++ b/io.murano.databases.PostgreSql/Resources/CreatePostgreSqlDatabase.template @@ -0,0 +1,19 @@ +FormatVersion: 2.0.0 +Version: 1.0.0 +Name: Create PostgreSql database + +Parameters: + database: $database + +Body: | + return createDatabase(args.database).stdout + +Scripts: + createDatabase: + Type: Application + Version: 1.0.0 + EntryPoint: createPostgreSqlDatabase.sh + Files: [] + Options: + captureStdout: true + captureStderr: true diff --git a/io.murano.databases.PostgreSql/Resources/CreatePostgreSqlUser.template b/io.murano.databases.PostgreSql/Resources/CreatePostgreSqlUser.template new file mode 100644 index 00000000..aa351a75 --- /dev/null +++ b/io.murano.databases.PostgreSql/Resources/CreatePostgreSqlUser.template @@ -0,0 +1,20 @@ +FormatVersion: 2.0.0 +Version: 1.0.0 +Name: Create PostgreSql user + +Parameters: + username: $username + password: $password + +Body: | + return createUser('{0} {1}'.format(args.username, args.password)).stdout + +Scripts: + createUser: + Type: Application + Version: 1.0.0 + EntryPoint: createPostgreSqlUser.sh + Files: [] + Options: + captureStdout: true + captureStderr: true diff --git a/io.murano.databases.PostgreSql/Resources/DeployPostgreSql.template b/io.murano.databases.PostgreSql/Resources/DeployPostgreSql.template new file mode 100644 index 00000000..4b93f9a0 --- /dev/null +++ b/io.murano.databases.PostgreSql/Resources/DeployPostgreSql.template @@ -0,0 +1,19 @@ +FormatVersion: 2.0.0 +Version: 1.0.0 +Name: Deploy PostgreSql + +Parameters: + appName: $appName + +Body: | + return deploy(args.appName).stdout + +Scripts: + deploy: + Type: Application + Version: 1.0.0 + EntryPoint: deployPostgreSql.sh + Files: [] + Options: + captureStdout: true + captureStderr: true diff --git a/io.murano.databases.PostgreSql/Resources/scripts/assignPostgreSqlUser.sh b/io.murano.databases.PostgreSql/Resources/scripts/assignPostgreSqlUser.sh new file mode 100644 index 00000000..35e0c249 --- /dev/null +++ b/io.murano.databases.PostgreSql/Resources/scripts/assignPostgreSqlUser.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $1 to $2" +tee --append /etc/postgresql/*/main/pg_hba.conf <<< "host $1 $2 all md5" +sudo /etc/init.d/postgresql restart diff --git a/io.murano.databases.PostgreSql/Resources/scripts/createPostgreSqlDatabase.sh b/io.murano.databases.PostgreSql/Resources/scripts/createPostgreSqlDatabase.sh new file mode 100644 index 00000000..80ef038f --- /dev/null +++ b/io.murano.databases.PostgreSql/Resources/scripts/createPostgreSqlDatabase.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +sudo -u postgres psql -c "CREATE DATABASE $1" diff --git a/io.murano.databases.PostgreSql/Resources/scripts/createPostgreSqlUser.sh b/io.murano.databases.PostgreSql/Resources/scripts/createPostgreSqlUser.sh new file mode 100644 index 00000000..440799b9 --- /dev/null +++ b/io.murano.databases.PostgreSql/Resources/scripts/createPostgreSqlUser.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +sudo -u postgres psql -c "CREATE USER $1 WITH PASSWORD '$2'" diff --git a/io.murano.databases.PostgreSql/Resources/scripts/deployPostgreSql.sh b/io.murano.databases.PostgreSql/Resources/scripts/deployPostgreSql.sh new file mode 100644 index 00000000..a3d53d12 --- /dev/null +++ b/io.murano.databases.PostgreSql/Resources/scripts/deployPostgreSql.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +sudo apt-get update +sudo apt-get -y -q install postgresql + +tee --append /etc/postgresql/*/main/postgresql.conf <<< "listen_addresses = '*'" +sudo iptables -I INPUT 1 -p tcp -m tcp --dport 5432 -j ACCEPT -m comment --comment "by murano, PostgreSQL" +sudo /etc/init.d/postgresql restart diff --git a/io.murano.databases.PostgreSql/UI/ui.yaml b/io.murano.databases.PostgreSql/UI/ui.yaml new file mode 100644 index 00000000..c3e7553b --- /dev/null +++ b/io.murano.databases.PostgreSql/UI/ui.yaml @@ -0,0 +1,102 @@ +Version: 2 + +Application: + ?: + type: io.murano.databases.PostgreSql + name: $.appConfiguration.name + database: $.initDatabaseConfiguration.database + username: $.initDatabaseConfiguration.username + password: $.initDatabaseConfiguration.password + instance: + ?: + type: io.murano.resources.LinuxMuranoInstance + name: generateHostname($.appConfiguration.unitNamingPattern, 1) + flavor: $.instanceConfiguration.flavor + image: $.instanceConfiguration.osImage + keyname: $.instanceConfiguration.keyPair + assignFloatingIp: $.appConfiguration.assignFloatingIP + +Forms: + - appConfiguration: + fields: + - name: name + type: string + label: Application Name + initial: PostgreDB + description: >- + Enter a desired name for the application. Just A-Z, a-z, 0-9, dash and + underline are allowed + - name: assignFloatingIP + type: boolean + label: Assign Floating IP + description: >- + Select to true to assign floating IP automatically + initial: false + required: false + - name: unitNamingPattern + type: string + required: false + hidden: true + widgetMedia: + js: ['muranodashboard/js/support_placeholder.js'] + css: {all: ['muranodashboard/css/support_placeholder.css']} + - initDatabaseConfiguration: + fields: + - name: title + type: string + required: false + hidden: true + descriptionTitle: Database Configuration + description: Specify the properties of the database which will be created at MySql Server + - name: database + type: string + required: false + label: Database name + description: >- + Please, provide database name that is going to be created + - name: username + type: string + required: false + label: Username + description: >- + Please, provide username that is going to be used to connect to the database + - name: password + type: password + required: false + label: Password + descriptionTitle: Password + description: >- + Please, provide password that is going to be used to connect to the database + - instanceConfiguration: + fields: + - name: title + type: string + required: false + hidden: true + description: Specify some instance parameters on which application would be created + - name: flavor + type: flavor + label: Instance flavor + description: >- + Select registered in Openstack flavor. Consider that application performance + depends on this parameter. + required: false + - name: osImage + type: image + imageType: linux + label: Instance image + description: >- + Select valid image for the application. Image should already be prepared and + registered in glance. + - name: keyPair + type: keypair + label: Key Pair + description: >- + Select the Key Pair to control access to instances. You can login to + instances using this KeyPair after the deployment of application. + required: false + - name: availabilityZone + type: azone + label: Availability zone + description: Select availability zone where the application would be installed. + required: false diff --git a/io.murano.databases.PostgreSql/logo.png b/io.murano.databases.PostgreSql/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4eeae17ce44de154f0d17e2f8e4bb797a59c4109 GIT binary patch literal 70219 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 RLk|J}+*MLnES5J7{y%cGqS^oe literal 0 HcmV?d00001 diff --git a/io.murano.databases.PostgreSql/manifest.yaml b/io.murano.databases.PostgreSql/manifest.yaml new file mode 100644 index 00000000..e6ede498 --- /dev/null +++ b/io.murano.databases.PostgreSql/manifest.yaml @@ -0,0 +1,13 @@ +Format: 1.0 +Type: Application +FullName: io.murano.databases.PostgreSql +Name: PostgreSQL +Description: | + PostgreSQL is a powerful, open source object-relational database system. + It has more than 15 years of active development and a proven architecture + that has earned it a strong reputation for reliability, data integrity, + and correctness. +Author: 'Mirantis, Inc' +Tags: [Database, Postgre, SQL, RDBMS] +Classes: + io.murano.databases.PostgreSql: PostgreSql.yaml