summaryrefslogtreecommitdiffstats
path: root/storperf/storperf_master.py
diff options
context:
space:
mode:
Diffstat (limited to 'storperf/storperf_master.py')
-rw-r--r--storperf/storperf_master.py35
1 files changed, 33 insertions, 2 deletions
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,