cloudstore-developers
Changes
.gitignore 1(+1 -0)
application/README.md 4(+4 -0)
deployment-scripts/software/showcase/src/main/resources/database/database.aws.hibernate.properties 6(+3 -3)
distributed-jmeter/cloudscale/tasks.py 19(+9 -10)
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
application/README.md 4(+4 -0)
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
distributed-jmeter/cloudscale/tasks.py 19(+9 -10)
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)