diff options
author | Gary Wu <gary.i.wu@huawei.com> | 2018-09-27 10:38:50 -0700 |
---|---|---|
committer | Gary Wu <gary.i.wu@huawei.com> | 2018-09-27 10:39:43 -0700 |
commit | 9abb61ca2cea1907cab2cec312d6dca6e53a93cd (patch) | |
tree | c8ff0718b6626832efd3ff3acc48590dbd6cb64c /scripts/multicloud-ocata/generic_sim/log_parser.py | |
parent | a328a3e2e531240ea4a9ed2ce4a284af1be5e225 (diff) |
Move CSIT to integration/csit repo
To facilite branching of CSIT tests, all CSIT test
code and scripts are relocated to the integration/csit
repo.
Change-Id: I1e4c0eff44691f73f8098b3c52764107f6b8b8df
Issue-ID: INT-671
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
Diffstat (limited to 'scripts/multicloud-ocata/generic_sim/log_parser.py')
-rw-r--r-- | scripts/multicloud-ocata/generic_sim/log_parser.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/scripts/multicloud-ocata/generic_sim/log_parser.py b/scripts/multicloud-ocata/generic_sim/log_parser.py new file mode 100644 index 00000000..1334e608 --- /dev/null +++ b/scripts/multicloud-ocata/generic_sim/log_parser.py @@ -0,0 +1,61 @@ +import argparse + +import yaml + + +def _find_aai_response_content(inp): + return inp.split("||||")[1].split("with response content = ")[1] + +def _find_openstack_url(inp): + return inp.split("||||")[1].split("making request with URI:")[1] + +def _find_openstack_response_content(inp): + return inp.split("||||")[1].split("with content:")[1].replace("u'", "'") + +def _add_response(all_responses, url, http_verb, body, status_code=200, content_type="application/json"): + if url not in all_responses.keys(): + all_responses[url] = { + http_verb: { + "status_code": status_code, + "content_type": content_type, + "body": body + } + } + elif http_verb not in all_responses[url].keys(): + all_responses[url][http_verb] = { + "status_code": status_code, + "content_type": content_type, + "body": body + } + +def parse_lines(content, aai_ip): + aai_pattern = "https://%s:30233/" % aai_ip + openstack_pattern = "making request with URI:" + + openstack_responses = {} + aai_responses = {} + for i, line in enumerate(content): + current_line = line.strip() + if aai_pattern in current_line and "DEBUG" not in current_line: + url = current_line.split(" ")[8][:-1].replace(aai_pattern, "") + _add_response(aai_responses, url, current_line.split(" ")[9][:-1], + _find_aai_response_content(content[i + 3])) + elif openstack_pattern in current_line: + _add_response(openstack_responses, + _find_openstack_url(current_line), "get", + _find_openstack_response_content(content[i + 2])) + + return [ + { "file": "nova.yml", "responses": openstack_responses }, + { "file": "aai.yml", "responses": aai_responses } + ] + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description='Convert logs to responses YAML tree file.') + parser.add_argument('--log-file', type=argparse.FileType('r'), help="Log file to be parsed", required=True) + parser.add_argument('--aai-ip', help="A&AI IP Address", required=True) + args = parser.parse_args() + + for mock_responses in parse_lines(args.log_file.readlines(), args.aai_ip): + with open(mock_responses["file"], 'w') as yaml_file: + yaml.dump(mock_responses["responses"], yaml_file, default_flow_style=False) |