diff options
author | Mark Beierl <mark.beierl@dell.com> | 2018-07-19 13:53:20 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2018-07-19 13:53:20 +0000 |
commit | 5d833fe6b704cc8c26ebf57100d62d2f916fe3f6 (patch) | |
tree | db3a2082d1776beb7dcf5cb936da0f37c8aaeb94 /docker/storperf-master/storperf | |
parent | 65e7aa6e9e02a8bd1339fd11ca12ba4e000cebc9 (diff) | |
parent | 6441c0c76523201e62768087b9a0255cdddb6756 (diff) |
Merge "Allow user to specify stack name on stack create"
Diffstat (limited to 'docker/storperf-master/storperf')
-rw-r--r-- | docker/storperf-master/storperf/resources/hot/agent-group.yaml | 7 | ||||
-rw-r--r-- | docker/storperf-master/storperf/storperf_master.py | 37 | ||||
-rw-r--r-- | docker/storperf-master/storperf/test_executor.py | 3 |
3 files changed, 35 insertions, 12 deletions
diff --git a/docker/storperf-master/storperf/resources/hot/agent-group.yaml b/docker/storperf-master/storperf/resources/hot/agent-group.yaml index b4e3b6f..c82ae17 100644 --- a/docker/storperf-master/storperf/resources/hot/agent-group.yaml +++ b/docker/storperf-master/storperf/resources/hot/agent-group.yaml @@ -48,6 +48,9 @@ parameters: subnet_CIDR: type: string default: '172.16.0.0/16' + keypair_name: + type: string + default: storperf_agent_keypair resources: slaves: @@ -74,8 +77,6 @@ resources: storperf_network: type: OS::Neutron::Net - properties: - name: storperf-network storperf_subnet: type: OS::Neutron::Subnet @@ -99,7 +100,7 @@ resources: type: OS::Nova::KeyPair properties: save_private_key: true - name: storperf_agent_keypair + name: { get_param: keypair_name} storperf_open_security_group: type: OS::Neutron::SecurityGroup diff --git a/docker/storperf-master/storperf/storperf_master.py b/docker/storperf-master/storperf/storperf_master.py index a50dcc6..0c7e559 100644 --- a/docker/storperf-master/storperf/storperf_master.py +++ b/docker/storperf-master/storperf/storperf_master.py @@ -25,6 +25,7 @@ from snaps.thread_utils import worker_pool from storperf.db.job_db import JobDB from storperf.test_executor import TestExecutor import json +import uuid class ParameterError(Exception): @@ -37,9 +38,9 @@ class StorPerfMaster(object): self.logger = logging.getLogger(__name__) self.job_db = JobDB() - + self._stack_name = 'StorPerfAgentGroup' self.stack_settings = StackConfig( - name='StorPerfAgentGroup', + name=self.stack_name, template_path='storperf/resources/hot/agent-group.yaml') self.os_creds = OSCreds( @@ -120,6 +121,17 @@ class StorPerfMaster(object): self._volume_type = value @property + def stack_name(self): + return self._stack_name + + @stack_name.setter + def stack_name(self, value): + self._stack_name = value + self.stack_settings.name = self.stack_name + self.stack_id = None + self._last_snaps_check_time = None + + @property def subnet_CIDR(self): return self._subnet_CIDR @@ -411,7 +423,8 @@ class StorPerfMaster(object): self._test_executor.job_id)) if (self.stack_id is None): - raise ParameterError("ERROR: Stack does not exist") + raise ParameterError("ERROR: Stack %s does not exist" % + self.stack_name) self._test_executor = TestExecutor() self._test_executor.register(self.executor_event) @@ -437,16 +450,22 @@ class StorPerfMaster(object): self._test_executor.slaves = slaves self._test_executor.volume_count = self.volume_count - params = metadata params['agent_count'] = self.agent_count + params['agent_flavor'] = self.agent_flavor + params['agent_image'] = self.agent_image + params['agent_info'] = json.dumps(self.slave_info) + params['avaiability_zone'] = self.availability_zone + params['block_sizes'] = self.block_sizes + params['deadline'] = self.deadline params['public_network'] = self.public_network + params['stack_name'] = self.stack_name + params['steady_state_samples'] = self.steady_state_samples + params['subnet_CIDR'] = self.subnet_CIDR + params['target'] = self.filename params['volume_count'] = self.volume_count params['volume_size'] = self.volume_size - params['subnet_CIDR'] = self.subnet_CIDR - params['agent_info'] = json.dumps(self.slave_info) - if self.volume_type is not None: - params['volume_type'] = self.volume_type + params['volume_type'] = self.volume_type if self.username and self.password: params['username'] = self.username params['password'] = self.password @@ -586,11 +605,13 @@ class StorPerfMaster(object): logger.error(line) def _make_parameters(self): + random_str = uuid.uuid4().hex[:6].upper() heat_parameters = {} heat_parameters['public_network'] = self.public_network heat_parameters['agent_count'] = self.agent_count heat_parameters['volume_count'] = self.volume_count heat_parameters['volume_size'] = self.volume_size + heat_parameters['keypair_name'] = 'storperf_agent_keypair' + random_str heat_parameters['subnet_CIDR'] = self.subnet_CIDR if self.volume_type is not None: heat_parameters['volume_type'] = self.volume_type diff --git a/docker/storperf-master/storperf/test_executor.py b/docker/storperf-master/storperf/test_executor.py index 7853375..f7b577e 100644 --- a/docker/storperf-master/storperf/test_executor.py +++ b/docker/storperf-master/storperf/test_executor.py @@ -222,8 +222,8 @@ class TestExecutor(object): except Exception as e: self.terminate() raise e - self.job_db.record_workload_params(metadata) self._setup_metadata(metadata) + self.job_db.record_workload_params(metadata) self._workload_thread = Thread(target=self.execute_workloads, args=(), name="Workload thread") @@ -263,6 +263,7 @@ class TestExecutor(object): def _execute_workload(self, current_workload, workload, parse_only=False): workload.options['iodepth'] = str(current_workload['queue-depth']) workload.options['bs'] = str(current_workload['blocksize']) + self._workload_executors = [] slave_threads = [] thread_pool = ThreadPool(processes=len(self.slaves) * self.volume_count) |