cloudstore-memoizeit
Details
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/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/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)