summaryrefslogtreecommitdiffstats
path: root/storperf
diff options
context:
space:
mode:
Diffstat (limited to 'storperf')
-rw-r--r--storperf/resources/hot/agent-group.yaml4
-rw-r--r--storperf/storperf_master.py35
2 files changed, 37 insertions, 2 deletions
diff --git a/storperf/resources/hot/agent-group.yaml b/storperf/resources/hot/agent-group.yaml
index 4a1df8e..4566f7a 100644
--- a/storperf/resources/hot/agent-group.yaml
+++ b/storperf/resources/hot/agent-group.yaml
@@ -17,6 +17,9 @@ parameters:
flavor:
type: string
default: "m1.small"
+ agent_image:
+ type: string
+ default: 'StorPerf Ubuntu 14.04'
key_name:
type: string
default: StorPerf
@@ -47,6 +50,7 @@ resources:
public_network: {get_param: public_network},
agent_network: {get_resource: storperf_network},
flavor: {get_param: flavor},
+ image: {get_param: agent_image},
storperf_open_security_group: {get_resource: storperf_open_security_group},
key_name: {get_param: key_name},
volume_size: {get_param: volume_size}
diff --git a/storperf/storperf_master.py b/storperf/storperf_master.py
index c7739da..b678bc8 100644
--- a/storperf/storperf_master.py
+++ b/storperf/storperf_master.py
@@ -7,6 +7,7 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+from datetime import datetime
from storperf.db.graphite_db import GraphiteDB
from threading import Thread
from time import sleep
@@ -56,6 +57,7 @@ class StorPerfMaster(object):
self._cinder_client = None
self._heat_client = None
self._test_executor = TestExecutor()
+ self._last_openstack_auth = datetime.now()
@property
def volume_size(self):
@@ -101,6 +103,28 @@ class StorPerfMaster(object):
value)
@property
+ def agent_image(self):
+ value = self.configuration_db.get_configuration_value(
+ 'stack',
+ 'agent_image')
+
+ if (value is None):
+ value = 'Ubuntu 14.04'
+ self.agent_image = value
+ return value
+
+ @agent_image.setter
+ def agent_image(self, value):
+ if (self.stack_id is not None):
+ raise ParameterError(
+ "ERROR: Cannot change agent image after stack is created")
+
+ self.configuration_db.set_configuration_value(
+ 'stack',
+ 'agent_image',
+ value)
+
+ @property
def public_network(self):
return self.configuration_db.get_configuration_value(
'stack',
@@ -357,17 +381,24 @@ class StorPerfMaster(object):
heat_parameters['public_network'] = self.public_network
heat_parameters['agent_count'] = self.agent_count
heat_parameters['volume_size'] = self.volume_size
+ heat_parameters['agent_image'] = self.agent_image
return heat_parameters
def _attach_to_openstack(self):
- if (self._cinder_client is None):
+ time_since_last_auth = datetime.now() - self._last_openstack_auth
+ print time_since_last_auth.total_seconds()
+ if (self._cinder_client is None or
+ time_since_last_auth.total_seconds() > 600):
+ self._last_openstack_auth = datetime.now()
+
+ self.logger.debug("Authenticating with OpenStack")
+
self._cinder_client = cinderclient.Client(
self._username, self._password, self._project_name,
self._auth_url, service_type='volumev2')
self._cinder_client.authenticate()
- if (self._heat_client is None):
self._keystone_client = ksclient.Client(
auth_url=self._auth_url,
username=self._username,