X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=utils%2Fparser.py;h=2cdec57b2db1b804accbfc267608b71df9facbdd;hb=1ddde70db2f49fcdd80078e7cfc0300b1e0964cc;hp=7b1f4e2e2df379bcf0859174506d10d643417c33;hpb=fd7583e843493495e5e15f62b5f7d9ca484bf167;p=bottlenecks.git diff --git a/utils/parser.py b/utils/parser.py index 7b1f4e2e..2cdec57b 100644 --- a/utils/parser.py +++ b/utils/parser.py @@ -14,6 +14,10 @@ Second is reading config file.''' import os import yaml +import json +import time +from pyroute2 import IPDB +import utils.infra_setup.runner.docker_env as docker_env class Parser(): @@ -38,6 +42,8 @@ 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["yardstick_rc_dir"] = \ + common_config['yardstick_rc_dir'] cls.config_dir_check(cls.bottlenecks_config["log_dir"]) @classmethod @@ -46,11 +52,11 @@ class Parser(): 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 @@ -75,6 +81,19 @@ class Parser(): 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'] @@ -82,6 +101,31 @@ class Parser(): # 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") + class HeatTemplate_Parser(): """parser a Heat template and a method to deploy template to a stack""" @@ -282,4 +326,3 @@ class HeatTemplate_Parser(): def get_template_date(self): return self.heat_date -