cloudstore-developers

Minor fixes

3/12/2014 6:36:30 AM

Changes

deployment-scripts/platform/generator/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java 34(+0 -34)

deployment-scripts/software/showcase/src/main/java/eu/cloudscale/showcase/test/JDBCtest.java 34(+0 -34)

Details

diff --git a/deployment-scripts/config.ini b/deployment-scripts/config.ini
index 367ecee..a015e8e 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 = t1.micro
-key_name = key-pair
-key_pair = /path/to/key-pair.pem
+instance_type = m1.small
+key_name = keypair
+key_pair = /path/to/keypair.pem
 
 [RDS]
 generate_type = dump
 generate_dump_path = /path/to/rds-tpcw-dump-15.1.2014.sql
 region = eu-west-1
-instance_type = db.t1.micro
+instance_type = db.m1.large
 master_identifier = cloudscale-master
 replica_identifier = cloudscale-replica
 database_name = tpcw
-database_user = root
-database_pass = password
+database_user = <user>
+database_pass = <pass>
 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 2036931..e1ec3db 100644
--- a/deployment-scripts/infrastructure/aws/aws-create-ami.py
+++ b/deployment-scripts/infrastructure/aws/aws-create-ami.py
@@ -13,6 +13,7 @@ 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 beaaca0..350cf5f 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.create_load_balancer()
+        lb_name = self.cfg.get('infrastructure', 'loadbalancer_name')
         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,22 +123,11 @@ 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
diff --git a/deployment-scripts/infrastructure/aws/aws-create-loadbalancer.py b/deployment-scripts/infrastructure/aws/aws-create-loadbalancer.py
new file mode 100644
index 0000000..4a77ceb
--- /dev/null
+++ b/deployment-scripts/infrastructure/aws/aws-create-loadbalancer.py
@@ -0,0 +1,31 @@
+from common.Cloudscale import check_args
+from common.Cloudscale import parse_args
+import boto.ec2.elb
+
+class CreateLoadBalancer:
+
+    def __init__(self, cfg, key_name, key_pair, config_path):
+        self.cfg = cfg
+        self.key_pair = key_pair
+        self.key_name = key_name
+        lb = self.create_load_balancer()
+        self.cfg.save_option(config_path, 'infrastructure', 'loadbalancer_name', lb.name)
+        self.cfg.save_option(config_path, 'infrastructure', 'loadbalancer_url', lb.dns_name)
+
+    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
+
+if __name__ == "__main__":
+    check_args(1, "<config_path>")
+    config_path, cfg, key_name, key_pair = parse_args()
+
+    CreateLoadBalancer(cfg, key_name, key_pair, config_path)
\ No newline at end of file
diff --git a/deployment-scripts/install.sh b/deployment-scripts/install.sh
old mode 100755
new mode 100644
index 8fef1e0..ce4f372
--- a/deployment-scripts/install.sh
+++ b/deployment-scripts/install.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-function usage
+usage ()
 {
     echo "Usage:"
     echo "$ ./install.sh <aws|openstack> <config>"
@@ -10,6 +10,7 @@ if [ $# -lt 2 ]
 then
     usage
     exit
+fi
 
 if [ $1 == 'aws' ]
 then
@@ -17,6 +18,7 @@ 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 d5eff6f..458cc5e 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', 'db.t1.micro', availability_zone="eu-west-1a")
+                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")
             except boto.exception.BotoServerError as e:
                 if not e.error_code == 'DBInstanceAlreadyExists':
-                    raise
+                    raise e
             finally:
                 instance = self.conn.get_all_dbinstances(instance_id='cloudscale-replica' + str(i+1))[0]
 
@@ -63,7 +63,8 @@ class ConfigureRDS:
         db = self.cfg.get('RDS', 'database_name')
         user = self.cfg.get('RDS', 'database_user')
         passwd = self.cfg.get('RDS', 'database_pass')
-        cmd = [os.path.abspath("dump.sh"), str(instance.endpoint[0]), user, passwd, db, dump_file]
+        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]
         subprocess.call(cmd)
 
     def write_showcase_database_config(self, instance):
@@ -108,7 +109,7 @@ class ConfigureRDS:
         print "Creating RDS master instance ..."
 
         try:
-            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)
+            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)
         except boto.exception.BotoServerError as e:
             if not e.error_code == 'DBInstanceAlreadyExists':
                 raise
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 de37633..6930b13 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/databasename
-jdbc.username=user
-jdbc.password=password
+jdbc.url=jdbc:mysql://master,slave1,slave2/tpcw
+jdbc.username=<user>
+jdbc.password=<passw>
 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 ace5797..78dab16 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=password
+mongodb.username=<user>
+mongodb.password=<pass>
\ No newline at end of file
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 58557db..ab0a963 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://cloudscale-master.caf1fqo3vxnr.eu-west-1.rds.amazonaws.com/tpcw
-jdbc.username=root
-jdbc.password=password
+jdbc.url=jdbc:mysql://master/tpcw
+jdbc.username=<user>
+jdbc.password=<pass>
 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 58557db..ab0a963 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://cloudscale-master.caf1fqo3vxnr.eu-west-1.rds.amazonaws.com/tpcw
-jdbc.username=root
-jdbc.password=password
+jdbc.url=jdbc:mysql://master/tpcw
+jdbc.username=<user>
+jdbc.password=<pass>
 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 f099cfd..20ea4c7 100644
--- a/deployment-scripts/software/cloudscale-apache-virtualhost.conf
+++ b/deployment-scripts/software/cloudscale-apache-virtualhost.conf
@@ -1,4 +1,6 @@
 <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 ed61391..2195889 100644
--- a/deployment-scripts/software/cloudscale-vm-setup.sh
+++ b/deployment-scripts/software/cloudscale-vm-setup.sh
@@ -2,8 +2,13 @@
 
 sudo apt-get install -y zip tomcat7 apache2 openjdk-7-jdk
 
-sudo a2enmod proxy
+sudo a2enmod proxy proxy_http
 sudo cp cloudscale.conf /etc/apache2/sites-available/
 sudo a2ensite cloudscale
 sudo /etc/init.d/apache2 restart
-sudo /etc/init.d/tomcat7 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
diff --git a/deployment-scripts/software/deploy-showcase.py b/deployment-scripts/software/deploy-showcase.py
index ee01ef4..021aca9 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 " + 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.war " + 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 a57b807..868db05 100644
--- a/deployment-scripts/software/install-tomcat-apache.py
+++ b/deployment-scripts/software/install-tomcat-apache.py
@@ -4,6 +4,8 @@ import paramiko
 import ConfigParser
 import sys, os
 from common.Cloudscale import *
+import re
+import subprocess
 
 class InstallTomcatApache:
 
@@ -16,7 +18,20 @@ 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)
@@ -34,7 +49,6 @@ 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:
@@ -44,7 +58,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' % (working_dir, os.path.sep)), 'cloudscale.conf')
+        scp.put(os.path.abspath('%s%scloudscale-apache-virtualhost.conf.new' % (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/resources/database/database.aws.hibernate.properties b/deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties
index ef59182..b578dba 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://url1,url2/tpcw
-jdbc.username=root
-jdbc.password=password
+jdbc.url=jdbc:mysql:replication://master,slave1,slave2,slave3/tpcw
+jdbc.username=<user>
+jdbc.password=<pass>
 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 59da231..78dab16 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=127.0.0.1
+mongodb.host=<ip>
 mongodb.port=27017
-mongodb.username=tpcw
-mongodb.password=password
+mongodb.username=<user>
+mongodb.password=<pass>
\ No newline at end of file
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 f693399..ab0a963 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://url1/tpcw
-jdbc.username=root
-jdbc.password=password
+jdbc.url=jdbc:mysql://master/tpcw
+jdbc.username=<user>
+jdbc.password=<pass>
 jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/distributed-jmeter/conf/nginx.conf b/distributed-jmeter/conf/nginx.conf
index 0ebe29d..4fdf997 100644
--- a/distributed-jmeter/conf/nginx.conf
+++ b/distributed-jmeter/conf/nginx.conf
@@ -2,11 +2,6 @@ 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;