cloudstore-developers
Changes
deployment-scripts/config.ini 16(+8 -8)
deployment-scripts/install.sh 4(+1 -3)
deployment-scripts/platform/generator/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java 34(+34 -0)
deployment-scripts/platform/generator/src/main/resources/database/database.aws.hibernate.properties 6(+3 -3)
deployment-scripts/platform/generator/src/main/resources/database/database.aws.mongodb.properties 6(+3 -3)
deployment-scripts/platform/generator/src/main/resources/generate/database.aws.hibernate.properties 6(+3 -3)
deployment-scripts/software/showcase/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java 34(+34 -0)
deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties 6(+3 -3)
deployment-scripts/software/showcase/src/main/resources/database/database.aws.mongodb.properties 6(+3 -3)
deployment-scripts/software/showcase/src/main/resources/generate/database.aws.hibernate.properties 6(+3 -3)
distributed-jmeter/conf/nginx.conf 5(+5 -0)
Details
deployment-scripts/config.ini 16(+8 -8)
diff --git a/deployment-scripts/config.ini b/deployment-scripts/config.ini
index a015e8e..367ecee 100644
--- a/deployment-scripts/config.ini
+++ b/deployment-scripts/config.ini
@@ -1,22 +1,22 @@
[EC2]
-aws_access_key_id =
-aws_secret_access_key =
+aws_access_key_id =
+aws_secret_access_key =
region = eu-west-1
availability_zones = eu-west-1a
ami_id = ami-480bea3f
-instance_type = m1.small
-key_name = keypair
-key_pair = /path/to/keypair.pem
+instance_type = t1.micro
+key_name = key-pair
+key_pair = /path/to/key-pair.pem
[RDS]
generate_type = dump
generate_dump_path = /path/to/rds-tpcw-dump-15.1.2014.sql
region = eu-west-1
-instance_type = db.m1.large
+instance_type = db.t1.micro
master_identifier = cloudscale-master
replica_identifier = cloudscale-replica
database_name = tpcw
-database_user = <user>
-database_pass = <pass>
+database_user = root
+database_pass = password
num_replicas = 3
driver = com.mysql.jdbc.ReplicationDriver
diff --git a/deployment-scripts/infrastructure/aws/aws-create-ami.py b/deployment-scripts/infrastructure/aws/aws-create-ami.py
index e1ec3db..2036931 100644
--- a/deployment-scripts/infrastructure/aws/aws-create-ami.py
+++ b/deployment-scripts/infrastructure/aws/aws-create-ami.py
@@ -13,7 +13,6 @@ class EC2CreateAMI:
aws_secret_access_key=self.cfg.get('EC2', 'aws_secret_access_key'))
ami_id = self.create_ami(self.cfg.get('infrastructure', 'ip_address'))
- print ami_id
self.cfg.save_option(config_file,'infrastructure', 'ami_id', ami_id)
print "Done"
diff --git a/deployment-scripts/infrastructure/aws/aws-create-autoscalability.py b/deployment-scripts/infrastructure/aws/aws-create-autoscalability.py
index 350cf5f..beaaca0 100644
--- a/deployment-scripts/infrastructure/aws/aws-create-autoscalability.py
+++ b/deployment-scripts/infrastructure/aws/aws-create-autoscalability.py
@@ -15,7 +15,7 @@ class Autoscalability:
self.conn = boto.ec2.autoscale.connect_to_region(self.cfg.get('EC2', 'region'),
aws_access_key_id=self.cfg.get('EC2', 'aws_access_key_id'),
aws_secret_access_key=self.cfg.get('EC2', 'aws_secret_access_key'))
- lb_name = self.cfg.get('infrastructure', 'loadbalancer_name')
+ lb_name = self.create_load_balancer()
self.create_security_group('http', 'Security group for HTTP', '0.0.0.0/0', '80')
self.create_security_group('ssh', 'Security group for SSH', '0.0.0.0/0', '22')
@@ -123,11 +123,22 @@ class Autoscalability:
if str(e.error_code) != 'InvalidGroup.Duplicate':
raise
+ def create_load_balancer(self):
+ print "Creating load balancer ..."
+ conn = boto.ec2.elb.connect_to_region(self.cfg.get('EC2', 'region'),
+ aws_access_key_id=self.cfg.get('EC2', 'aws_access_key_id'),
+ aws_secret_access_key=self.cfg.get('EC2', 'aws_secret_access_key'))
+
+ zones = self.cfg.get('EC2', 'availability_zones').split(",")
+ ports = [(80, 80, 'http')]
+ lb = conn.create_load_balancer('cloudscale-lb', zones, ports)
+
+ return lb.name
if __name__ == "__main__":
check_args(1, "<config_path>")
_, cfg, key_name, key_pair = parse_args()
- print "Autoscalability"
+
Autoscalability(cfg, key_name, key_pair)
\ No newline at end of file
deployment-scripts/install.sh 4(+1 -3)
diff --git a/deployment-scripts/install.sh b/deployment-scripts/install.sh
old mode 100644
new mode 100755
index ce4f372..8fef1e0
--- a/deployment-scripts/install.sh
+++ b/deployment-scripts/install.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-usage ()
+function usage
{
echo "Usage:"
echo "$ ./install.sh <aws|openstack> <config>"
@@ -10,7 +10,6 @@ if [ $# -lt 2 ]
then
usage
exit
-fi
if [ $1 == 'aws' ]
then
@@ -18,7 +17,6 @@ then
python infrastructure/aws/aws-remove-all.py $2
python platform/aws/configure-rds.py $2
python infrastructure/aws/aws-create-instance.py $2
- python infrastructure/aws/aws-create-loadbalancer.py $2
python software/install-tomcat-apache.py $2
python software/deploy-showcase.py $2
python infrastructure/aws/aws-create-ami.py $2
diff --git a/deployment-scripts/platform/aws/configure-rds.py b/deployment-scripts/platform/aws/configure-rds.py
index 458cc5e..d5eff6f 100644
--- a/deployment-scripts/platform/aws/configure-rds.py
+++ b/deployment-scripts/platform/aws/configure-rds.py
@@ -31,10 +31,10 @@ class ConfigureRDS:
for i in xrange(int(num)):
print "Creating read replica " + str(i+1)
try:
- instance = self.conn.create_dbinstance_read_replica('cloudscale-replica' + str(i+1), 'cloudscale-master', self.cfg.get('RDS', 'instance_type'), availability_zone="eu-west-1a")
+ instance = self.conn.create_dbinstance_read_replica('cloudscale-replica' + str(i+1), 'cloudscale-master', 'db.t1.micro', availability_zone="eu-west-1a")
except boto.exception.BotoServerError as e:
if not e.error_code == 'DBInstanceAlreadyExists':
- raise e
+ raise
finally:
instance = self.conn.get_all_dbinstances(instance_id='cloudscale-replica' + str(i+1))[0]
@@ -63,8 +63,7 @@ class ConfigureRDS:
db = self.cfg.get('RDS', 'database_name')
user = self.cfg.get('RDS', 'database_user')
passwd = self.cfg.get('RDS', 'database_pass')
- dump_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'dump.sh'))
- cmd = [dump_path, str(instance.endpoint[0]), user, passwd, db, dump_file]
+ cmd = [os.path.abspath("dump.sh"), str(instance.endpoint[0]), user, passwd, db, dump_file]
subprocess.call(cmd)
def write_showcase_database_config(self, instance):
@@ -109,7 +108,7 @@ class ConfigureRDS:
print "Creating RDS master instance ..."
try:
- instance = self.conn.create_dbinstance('cloudscale-master', 5, self.cfg.get('RDS', 'instance_type'), 'root', self.db_password, db_name='tpcw', vpc_security_groups=[sg_id], availability_zone='eu-west-1a', backup_retention_period=1)
+ instance = self.conn.create_dbinstance('cloudscale-master', 5, 'db.t1.micro', 'root', self.db_password, db_name='tpcw', vpc_security_groups=[sg_id], availability_zone='eu-west-1a', backup_retention_period=0)
except boto.exception.BotoServerError as e:
if not e.error_code == 'DBInstanceAlreadyExists':
raise
diff --git a/deployment-scripts/platform/generator/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java b/deployment-scripts/platform/generator/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java
new file mode 100644
index 0000000..ced040f
--- /dev/null
+++ b/deployment-scripts/platform/generator/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java
@@ -0,0 +1,34 @@
+package eu.cloudscale.showcase.test;
+
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import java.sql.Connection;
+
+
+public class JDBCtest
+{
+ public static void main(String args[])
+ {
+ try
+ {
+ Class.forName("com.mysql.jdbc.Driver");
+ Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/tpcw?user=root&password=toor");
+ Statement statment = conn.createStatement();
+ long start = System.currentTimeMillis();
+ ResultSet resultSet = statment.executeQuery( "SELECT i_id, i_title, a_fname, a_lname , SUM(ol_qty) AS val FROM orders, order_line, item, author WHERE order_line.ol_o_id = orders.o_id AND item.i_id = order_line.ol_i_id AND item.i_subject = 'ARTS' AND item.i_a_id = author.a_id GROUP BY i_id ORDER BY orders.o_date, val DESC LIMIT 50" );
+ System.out.println(start-(System.currentTimeMillis())/1E9);
+ }
+ catch ( ClassNotFoundException e )
+ {
+ e.printStackTrace();
+ }
+ catch ( SQLException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/deployment-scripts/platform/generator/src/main/resources/database/database.aws.hibernate.properties b/deployment-scripts/platform/generator/src/main/resources/database/database.aws.hibernate.properties
index 6930b13..de37633 100644
--- a/deployment-scripts/platform/generator/src/main/resources/database/database.aws.hibernate.properties
+++ b/deployment-scripts/platform/generator/src/main/resources/database/database.aws.hibernate.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://master,slave1,slave2/tpcw
-jdbc.username=<user>
-jdbc.password=<passw>
+jdbc.url=jdbc:mysql://master/databasename
+jdbc.username=user
+jdbc.password=password
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/deployment-scripts/platform/generator/src/main/resources/database/database.aws.mongodb.properties b/deployment-scripts/platform/generator/src/main/resources/database/database.aws.mongodb.properties
index 78dab16..ace5797 100644
--- a/deployment-scripts/platform/generator/src/main/resources/database/database.aws.mongodb.properties
+++ b/deployment-scripts/platform/generator/src/main/resources/database/database.aws.mongodb.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mongodb
mongodb.dbname=tpcw
-mongodb.host=<ip>
+mongodb.host=ip
mongodb.port=27017
-mongodb.username=<user>
-mongodb.password=<pass>
\ No newline at end of file
+mongodb.username=user
+mongodb.password=password
diff --git a/deployment-scripts/platform/generator/src/main/resources/generate/database.aws.hibernate.properties b/deployment-scripts/platform/generator/src/main/resources/generate/database.aws.hibernate.properties
index ab0a963..58557db 100644
--- a/deployment-scripts/platform/generator/src/main/resources/generate/database.aws.hibernate.properties
+++ b/deployment-scripts/platform/generator/src/main/resources/generate/database.aws.hibernate.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://master/tpcw
-jdbc.username=<user>
-jdbc.password=<pass>
+jdbc.url=jdbc:mysql://cloudscale-master.caf1fqo3vxnr.eu-west-1.rds.amazonaws.com/tpcw
+jdbc.username=root
+jdbc.password=password
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/deployment-scripts/platform/generator/src/main/resources/generate/database.properties b/deployment-scripts/platform/generator/src/main/resources/generate/database.properties
index ab0a963..58557db 100644
--- a/deployment-scripts/platform/generator/src/main/resources/generate/database.properties
+++ b/deployment-scripts/platform/generator/src/main/resources/generate/database.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://master/tpcw
-jdbc.username=<user>
-jdbc.password=<pass>
+jdbc.url=jdbc:mysql://cloudscale-master.caf1fqo3vxnr.eu-west-1.rds.amazonaws.com/tpcw
+jdbc.username=root
+jdbc.password=password
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/deployment-scripts/software/cloudscale-apache-virtualhost.conf b/deployment-scripts/software/cloudscale-apache-virtualhost.conf
index 20ea4c7..f099cfd 100644
--- a/deployment-scripts/software/cloudscale-apache-virtualhost.conf
+++ b/deployment-scripts/software/cloudscale-apache-virtualhost.conf
@@ -1,6 +1,4 @@
<VirtualHost *:80>
- ServerName %servername%
-
ProxyPreserveHost On
# showcase-1-a (MySQL)
ProxyPass /showcase-1-a http://localhost:8080/showcase-1-a
diff --git a/deployment-scripts/software/cloudscale-vm-setup.sh b/deployment-scripts/software/cloudscale-vm-setup.sh
index 2195889..ed61391 100644
--- a/deployment-scripts/software/cloudscale-vm-setup.sh
+++ b/deployment-scripts/software/cloudscale-vm-setup.sh
@@ -2,13 +2,8 @@
sudo apt-get install -y zip tomcat7 apache2 openjdk-7-jdk
-sudo a2enmod proxy proxy_http
+sudo a2enmod proxy
sudo cp cloudscale.conf /etc/apache2/sites-available/
sudo a2ensite cloudscale
sudo /etc/init.d/apache2 restart
-
-sudo ln -s /var/lib/tomcat7/shared /usr/share/tomcat7/shared
-sudo ln -s /var/lib/tomcat7/server /usr/share/tomcat7/server
-sudo ln -s /var/lib/tomcat7/common /usr/share/tomcat7/common
-
-sudo /etc/init.d/tomcat7 restart
\ No newline at end of file
+sudo /etc/init.d/tomcat7 restart
diff --git a/deployment-scripts/software/deploy-showcase.py b/deployment-scripts/software/deploy-showcase.py
index 021aca9..ee01ef4 100644
--- a/deployment-scripts/software/deploy-showcase.py
+++ b/deployment-scripts/software/deploy-showcase.py
@@ -62,8 +62,8 @@ class DeploySoftware:
scp.put(self.mysql_version, 'showcase-1-a.war')
#scp.put(self.nosql_version, 'showcase-1-b.jar')
- #ssh.exec_command("sudo unzip showcase-1-a.war -d showcase-1-a")
- ssh.exec_command("sudo cp -r showcase-1-a.war " + self.remote_deploy_path)
+ ssh.exec_command("sudo unzip showcase-1-a.war -d showcase-1-a")
+ ssh.exec_command("sudo cp -r showcase-1-a " + self.remote_deploy_path)
ssh.exec_command("sudo /etc/init.d/tomcat7 restart")
print "Successfully finished installation"
diff --git a/deployment-scripts/software/install-tomcat-apache.py b/deployment-scripts/software/install-tomcat-apache.py
index 868db05..a57b807 100644
--- a/deployment-scripts/software/install-tomcat-apache.py
+++ b/deployment-scripts/software/install-tomcat-apache.py
@@ -4,8 +4,6 @@ import paramiko
import ConfigParser
import sys, os
from common.Cloudscale import *
-import re
-import subprocess
class InstallTomcatApache:
@@ -18,20 +16,7 @@ class InstallTomcatApache:
self.setup_instance()
self.write_config()
- def create_virtual_host(self):
- fr = open(os.path.join(os.path.dirname(__file__), 'cloudscale-apache-virtualhost.conf'), 'r')
- fw = open(os.path.join(os.path.dirname(__file__), 'cloudscale-apache-virtualhost.conf.new'), 'w+')
-
- pat = re.compile('%servername%')
- for line in fr:
- res = pat.search(line)
- if res is not None:
- fw.write(line.replace('%servername%', self.cfg.get('infrastructure', 'loadbalancer_url')))
- else:
- fw.write(line)
-
def setup_instance(self):
- self.create_virtual_host()
for ip_address in self.ip_addresses:
if sys.platform == 'win32':
self.windows_shell(ip_address)
@@ -49,6 +34,7 @@ class InstallTomcatApache:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+
if key_pair:
ssh.connect(ip_address, username=self.remote_user, key_filename=os.path.abspath(self.key_pair))
else:
@@ -58,7 +44,7 @@ class InstallTomcatApache:
scp = paramiko.SFTPClient.from_transport(ssh.get_transport())
scp.put(os.path.abspath('%s%scloudscale-vm-setup.sh' % (working_dir, os.path.sep)), 'cloudscale-vm-setup.sh')
- scp.put(os.path.abspath('%s%scloudscale-apache-virtualhost.conf.new' % (working_dir, os.path.sep)), 'cloudscale.conf')
+ scp.put(os.path.abspath('%s%scloudscale-apache-virtualhost.conf' % (working_dir, os.path.sep)), 'cloudscale.conf')
_, stdout, _ = ssh.exec_command("sudo sh cloudscale-vm-setup.sh")
stdout.readlines()
diff --git a/deployment-scripts/software/showcase/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java b/deployment-scripts/software/showcase/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java
new file mode 100644
index 0000000..ced040f
--- /dev/null
+++ b/deployment-scripts/software/showcase/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java
@@ -0,0 +1,34 @@
+package eu.cloudscale.showcase.test;
+
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import java.sql.Connection;
+
+
+public class JDBCtest
+{
+ public static void main(String args[])
+ {
+ try
+ {
+ Class.forName("com.mysql.jdbc.Driver");
+ Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/tpcw?user=root&password=toor");
+ Statement statment = conn.createStatement();
+ long start = System.currentTimeMillis();
+ ResultSet resultSet = statment.executeQuery( "SELECT i_id, i_title, a_fname, a_lname , SUM(ol_qty) AS val FROM orders, order_line, item, author WHERE order_line.ol_o_id = orders.o_id AND item.i_id = order_line.ol_i_id AND item.i_subject = 'ARTS' AND item.i_a_id = author.a_id GROUP BY i_id ORDER BY orders.o_date, val DESC LIMIT 50" );
+ System.out.println(start-(System.currentTimeMillis())/1E9);
+ }
+ catch ( ClassNotFoundException e )
+ {
+ e.printStackTrace();
+ }
+ catch ( SQLException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties b/deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties
index b578dba..ef59182 100644
--- a/deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties
+++ b/deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mysql
jdbc.driverClassName=com.mysql.jdbc.ReplicationDriver
-jdbc.url=jdbc:mysql:replication://master,slave1,slave2,slave3/tpcw
-jdbc.username=<user>
-jdbc.password=<pass>
+jdbc.url=jdbc:mysql:replication://url1,url2/tpcw
+jdbc.username=root
+jdbc.password=password
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/deployment-scripts/software/showcase/src/main/resources/database/database.aws.mongodb.properties b/deployment-scripts/software/showcase/src/main/resources/database/database.aws.mongodb.properties
index 78dab16..59da231 100644
--- a/deployment-scripts/software/showcase/src/main/resources/database/database.aws.mongodb.properties
+++ b/deployment-scripts/software/showcase/src/main/resources/database/database.aws.mongodb.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mongodb
mongodb.dbname=tpcw
-mongodb.host=<ip>
+mongodb.host=127.0.0.1
mongodb.port=27017
-mongodb.username=<user>
-mongodb.password=<pass>
\ No newline at end of file
+mongodb.username=tpcw
+mongodb.password=password
diff --git a/deployment-scripts/software/showcase/src/main/resources/generate/database.aws.hibernate.properties b/deployment-scripts/software/showcase/src/main/resources/generate/database.aws.hibernate.properties
index ab0a963..f693399 100644
--- a/deployment-scripts/software/showcase/src/main/resources/generate/database.aws.hibernate.properties
+++ b/deployment-scripts/software/showcase/src/main/resources/generate/database.aws.hibernate.properties
@@ -1,6 +1,6 @@
jdbc.dbtype=mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://master/tpcw
-jdbc.username=<user>
-jdbc.password=<pass>
+jdbc.url=jdbc:mysql://url1/tpcw
+jdbc.username=root
+jdbc.password=password
jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
distributed-jmeter/conf/nginx.conf 5(+5 -0)
diff --git a/distributed-jmeter/conf/nginx.conf b/distributed-jmeter/conf/nginx.conf
index 4fdf997..0ebe29d 100644
--- a/distributed-jmeter/conf/nginx.conf
+++ b/distributed-jmeter/conf/nginx.conf
@@ -2,6 +2,11 @@ upstream class_app_server {
server 127.0.0.1:8001 fail_timeout=0;
}
+#server {
+# server_name cloudconference;
+# rewrite ^(.*) http://www.cloudconference.eu$1 permanent;
+#}
+
server {
listen 80;
client_max_body_size 4G;