cloudstore-developers

Conflict

3/12/2014 9:19:51 AM

Details

.gitignore 1(+1 -0)

diff --git a/.gitignore b/.gitignore
index 6b1bb78..64f0fa5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@ deployment-scripts/platform/generator/src/main/resources/database/database.aws.m
 distributed-jmeter/config.ini
 distributed-jmeter/conf/config.ini
 distributed-jmeter/conf/config.ini.production
+deployment-scripts/platform/rds-tpcw-dump-15.1.2014.sql
diff --git a/application/README.md b/application/README.md
index a08440e..9eb7479 100644
--- a/application/README.md
+++ b/application/README.md
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 ##Introduction
 Here you will find a modernized version of TPC-W e-commerce benchmark applicatin. Basically the application is a very simple bookshop. The modernized version is written in SpringFramework and uses Maven for building.
 
@@ -15,3 +16,6 @@ or
 ```bash
 $ mvn -Pamazon-mongodb install
 ```
+=======
+Showcase
+>>>>>>> 60bb954... Initial commit
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..61f5d41 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/tpcw
+jdbc.username=<user>
+jdbc.password=<pass>
 jdbc.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/distributed-jmeter/cloudscale/aws_distributed_jmeter.py b/distributed-jmeter/cloudscale/aws_distributed_jmeter.py
index 7eb9545..15e45ce 100644
--- a/distributed-jmeter/cloudscale/aws_distributed_jmeter.py
+++ b/distributed-jmeter/cloudscale/aws_distributed_jmeter.py
@@ -3,13 +3,14 @@ import sys, os, time
 import paramiko
 import subprocess
 import logging
-from cloudscale import models
+from cloudscale.common.distributed_jmeter import DistributedJmeter
 
 logger = logging.getLogger(__name__)
 
-class CreateInstance:
+class CreateInstance(DistributedJmeter):
 
     def __init__(self, config_path, cfg, key_pair, key_name, scenario_path, num_slaves):
+        super(CreateInstance, self).__init__(scenario_path)
         self.scenario_path = scenario_path
         self.num_slaves = num_slaves
         self.key_pair = key_pair
@@ -37,18 +38,7 @@ class CreateInstance:
         self.setup_master(slaves, instance)
         #self.write_config(config_path, instance)
 
-    def log(self, msg, fin=0):
-        logger.info(msg)
-        db_log = models.Log()
-        db_log.process_id = self.pid
-        db_log.log = msg
-        db_log.finished = fin
-        db_log.save()
-
-    def clear(self):
-        msgs = models.Log.objects.filter(process_id=self.pid)
-        for obj in msgs:
-            obj.delete()
+
 
     def setup_master(self, slaves, instance):
         ssh = paramiko.SSHClient()
diff --git a/distributed-jmeter/cloudscale/common/__init__.py b/distributed-jmeter/cloudscale/common/__init__.py
new file mode 100644
index 0000000..8f76346
--- /dev/null
+++ b/distributed-jmeter/cloudscale/common/__init__.py
@@ -0,0 +1 @@
+__author__ = 'ivansek'
diff --git a/distributed-jmeter/cloudscale/common/distributed_jmeter.py b/distributed-jmeter/cloudscale/common/distributed_jmeter.py
new file mode 100644
index 0000000..22ce26d
--- /dev/null
+++ b/distributed-jmeter/cloudscale/common/distributed_jmeter.py
@@ -0,0 +1,23 @@
+import logging
+from cloudscale import models
+
+logger = logging.getLogger(__name__)
+
+
+class DistributedJmeter(object):
+
+    def __init__(self, scenario_path):
+        self.pid = str(scenario_path.split('/')[-1][:-4])
+
+    def log(self, msg, fin=0):
+        logger.info(msg)
+        db_log = models.Log()
+        db_log.process_id = self.pid
+        db_log.log = msg
+        db_log.finished = fin
+        db_log.save()
+
+    def clear(self):
+        msgs = models.Log.objects.filter(process_id=self.pid)
+        for obj in msgs:
+            obj.delete()
\ No newline at end of file
diff --git a/distributed-jmeter/cloudscale/tasks.py b/distributed-jmeter/cloudscale/tasks.py
index cc94ba7..5e03039 100644
--- a/distributed-jmeter/cloudscale/tasks.py
+++ b/distributed-jmeter/cloudscale/tasks.py
@@ -1,25 +1,24 @@
 from __future__ import absolute_import
 from celery import shared_task, task
-import time, threading
 import os, subprocess
 import logging
-import time
-import sys
 from cloudscale.aws_distributed_jmeter import CreateInstance
 from cloudscale.aws_distributed_jmeter import read_config
-from cloudscale.models import Log
+from cloudscale.openstack_distributed_jmeter import OpenStackDistributedJmeter
 logger = logging.getLogger(__name__)
 
 @shared_task
 def run_tests(scenario_path):
-    # sys.path.append("{0}/../../scripts/aws/".format(os.path.abspath(os.path.dirname(__file__))))
-    # print sys.path
-    # import run_test
-    #redis_instance = redis.Redis()
-    # logger.info("Calling program ...")
+#    run_aws_test(scenario_path)
+    run_openstack_test(scenario_path)
+
+def run_openstack_test(scenario_path):
+    OpenStackDistributedJmeter('10.32.11.102', ['10.32.11.103:8557', '10.32.11.104:8557'], scenario_path)
+
+def run_aws_test(scenario_path):
     basedir = os.path.abspath(os.path.dirname(__file__))
     config_path = '%s/../conf/config.ini' % basedir
     cfg = read_config(config_path)
     key_name = cfg.get('EC2', 'key_name')
     key_pair = cfg.get('EC2', 'key_pair')
-    CreateInstance(config_path, cfg, key_pair, key_name, scenario_path, 2)
\ No newline at end of file
+    CreateInstance(config_path, cfg, key_pair, key_name, scenario_path, 2)
diff --git a/distributed-jmeter/webapp/local_settings.py.production b/distributed-jmeter/webapp/local_settings.py.production
index f2b2fbc..3842808 100644
--- a/distributed-jmeter/webapp/local_settings.py.production
+++ b/distributed-jmeter/webapp/local_settings.py.production
@@ -6,7 +6,7 @@ DATABASES = {
         'ENGINE': 'django.db.backends.mysql',
         'NAME': 'load_test',
         'USER': 'user',
-        'PASSWORD': 'password',
+        'PASSWORD': 'pass',
         'HOST': 'localhost',
         'PORT': '3306',
     }
@@ -22,8 +22,8 @@ INSTALLED_APPS = (
     'cloudscale',
     'gunicorn',
 )
-FORCE_SCRIPT_NAME='/distributed-jmeter/'
-URL_PREFIX = '/distributed-jmeter'
+FORCE_SCRIPT_NAME=''
+URL_PREFIX = ''
 MEDIA_ROOT = '{0}/../media/'.format(BASE_DIR)
 STATIC_ROOT = '{0}/../static/'.format(BASE_DIR)
 STATIC_URL = '{0}/static/'.format(URL_PREFIX)