diff options
author | opensource-tnbt <sridhar.rao@spirent.com> | 2020-11-25 19:30:04 +0530 |
---|---|---|
committer | opensource-tnbt <sridhar.rao@spirent.com> | 2020-11-28 18:51:49 +0530 |
commit | 0bbc7e2674bd06921e9fe4a0b3318724327d3ff2 (patch) | |
tree | b8c5bbf7dadf8e6e06adc969bac1d75d5ff2f908 /xtesting/openstack/vsperfostack.py | |
parent | 54995886ec5135bca580cb81a3ed8fd2eb4bae3a (diff) |
[WIP]: VSPERF-Xtesting Integration Support.
This patch adds support for integrationg with Xtesting project
There are two variations - baremetal and openstack.
Update-1: Add Download-result feature to baremetal
Update-2: Update Dockerfile following successful compilations.
Update-3: Add Baremetal-Advanced to Migrate to driver version
Update-4: Remove Bashfeature approach of Baremetal.
Update-5: Update documentation, Baremetal container name and openstack.
Update-6: Update Openstack after successful testing
Signed-off-by: Sridhar K. N. Rao <sridhar.rao@spirent.com>
Change-Id: Idcf9f533a0cc6760ca3e56355e2ff60d41616f0f
Diffstat (limited to 'xtesting/openstack/vsperfostack.py')
-rwxr-xr-x | xtesting/openstack/vsperfostack.py | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/xtesting/openstack/vsperfostack.py b/xtesting/openstack/vsperfostack.py new file mode 100755 index 00000000..d4a14c06 --- /dev/null +++ b/xtesting/openstack/vsperfostack.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 + +# Copyright 2020 Spirent Communications. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""VSPERF-Xtesting-Openstack Control script. +""" + +import os +import subprocess +import sys +import time + +from xtesting.core import testcase + + +class VsperfOstack(testcase.TestCase): + """ + Implement Xtesting's testcase class + """ + def run(self, **kwargs): + """ + Main Run. + """ + custom_conffile = '/vswitchperf/conf/99_xtesting.conf' + try: + test_params = {} + for key in kwargs: + test_params[key] = kwargs[key] + # Make results directory - Xtesting Requirement + os.makedirs(self.res_dir, exist_ok=True) + # Start the timer + self.start_time = time.time() + + # Get the parameter + if 'conf_file' in test_params.keys(): + conffile = os.path.join('/', test_params['conf_file']) + else: + conffile = '/vsperfostack.conf' + + # Remove customfile if it exists. + if os.path.exists(custom_conffile): + os.remove(custom_conffile) + + # Write custom configuration. + with open(custom_conffile, 'a+') as fil: + fil.writelines("LOG_DIR='{}'".format(self.res_dir)) + fil.close() + # Start the vsperf command + if('deploy_tgen' in test_params.keys() and + test_params['deploy_tgen']): + output = subprocess.check_output(['vsperf', + '--conf-file', + conffile, + '--openstack', + '--load-env', + '--tests', + self.case_name]) + else: + output = subprocess.check_output(['vsperf', + '--conf-file', + conffile, + '--load-env', + '--mode', + 'traffigen', + '--tests', + self.case_name]) + print(output) + self.result = 100 + self.stop_time = time.time() + except Exception: # pylint: disable=broad-except + print("Unexpected error:", sys.exc_info()[0]) + self.result = 0 + self.stop_time = time.time() |