import os
import yaml
+import json
+import time
+from pyroute2 import IPDB
+import utils.infra_setup.runner.docker_env as docker_env
class Parser():
cls.bottlenecks_config["fetch_os"] = common_config["fetch_os_file"]
cls.bottlenecks_config["log_dir"] = common_config['log_dir']
cls.bottlenecks_config["rc_dir"] = common_config['rc_dir']
+ cls.bottlenecks_config["pod_info"] = common_config['pod_info']
+ cls.bottlenecks_config["yardstick_rc_dir"] = \
+ common_config['yardstick_rc_dir']
cls.config_dir_check(cls.bottlenecks_config["log_dir"])
@classmethod
cls.test_dir,
testcase,
'testsuite_story',
- story_name)
+ story_name + '.yaml')
with open(story_dir) as file:
story_parser = yaml.load(file)
for case_name in story_parser['testcase']:
- Parser.testcase_read(cls, testcase, case_name)
+ Parser.testcase_read(testcase, case_name)
return cls.bottlenecks_test
if not os.path.exists(dirname):
os.makedirs(dirname)
+ @classmethod
+ def testcase_out_dir(cls, testcase):
+ file_name = os.getenv("OUTPUT_FILE")
+ if file_name is None:
+ file_suffix = time.strftime('%H_%M', time.localtime(time.time()))
+ suffix_name = "_" + str(file_suffix)
+ out_name = cls.bottlenecks_config["log_dir"] + testcase
+ outfile_name = out_name + suffix_name + ".out"
+ else:
+ out_name = str(file_name)
+ outfile_name = cls.bottlenecks_config["log_dir"] + out_name
+ return outfile_name
+
@staticmethod
def config_parser(testcase_cfg, parameters):
test_cfg = testcase_cfg['test_config']
# TO-DO add cli parameters to stack_config.
return test_cfg, stack_cfg
+ @staticmethod
+ def convert_docker_env(config, ip_type):
+ if ip_type is "dashboard":
+ config["contexts"]["dashboard_ip"] = \
+ docker_env.ELK_info["ip"] + ":9200"
+ elif ip_type is "yardstick":
+ config["contexts"]["yardstick_ip"] = \
+ docker_env.yardstick_info["ip"] + ":8888"
+
+ @staticmethod
+ def ip_parser(ip_type):
+ with IPDB() as ip:
+ GATEWAY_IP = ip.routes['default'].gateway
+ if ip_type is "dashboard":
+ TEST_IP = GATEWAY_IP + ":9200"
+ elif ip_type is "yardstick_test_ip":
+ TEST_IP = GATEWAY_IP + ":8888"
+ return TEST_IP
+
+ @staticmethod
+ def result_to_file(data, file_name):
+ with open(file_name, "a") as f:
+ f.write(json.dumps(data, f))
+ f.write("\n")
+
+ @staticmethod
+ def str_to_list(str_org):
+ try:
+ data = str_org.split(',')
+ except AttributeError:
+ data = []
+ data.append(str_org)
+ return data
+
class HeatTemplate_Parser():
"""parser a Heat template and a method to deploy template to a stack"""
def get_template_date(self):
return self.heat_date
-