| import yaml |
| import re |
| import os |
| from string import Template |
| from ssh import * |
| |
| |
| def save_tmp_yaml(name, data): |
| """ |
| Save a yaml file into a file to be declare in openvim |
| :param name: file name |
| :param data: |
| :return: |
| """ |
| with open(name, "w") as text_file: |
| text_file.write(data) |
| |
| |
| def delete_tmp_yaml(name): |
| """ |
| Delete yaml form Filesystem |
| :param name: File name |
| :return: |
| """ |
| execute_local('rm {}'.format(name)) |
| |
| |
| def search_host_in_env_var(): |
| """ |
| Search for OPENVIM_TEST_HOST_X env var declare by pre_create_host fixture with the host id after creation. |
| :return: All env vars founded |
| """ |
| return search('OPENVIM_TEST_HOST_') |
| |
| |
| def template_substitute(file_path, values): |
| """ |
| Modify a Yaml template with values. |
| :param file_path: template file |
| :param values: values to be substituted |
| :return: a string with the file content modified |
| """ |
| with open(file_path, 'r') as server_yaml: |
| template = Template(server_yaml.read()) |
| server_yaml = template.safe_substitute(values) |
| return server_yaml |
| |
| |
| def search(reg_ex): |
| """ |
| Search for environment vars. |
| :param reg_ex: regular expresion to be applied during the search |
| :return: return results |
| """ |
| result = {} |
| for key in os.environ: |
| if reg_ex in key: |
| result[key] = os.environ[key] |
| return result |
| |
| |
| def parse_uuid(data): |
| """ |
| Parse an UUID value from a string given. |
| :param data: String to be evaluated |
| :return: the uuid value |
| """ |
| match = re.compile(r'[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}', re.I).findall(data) |
| if match: |
| data = match[0].replace(' ', '') |
| data = data.replace('\n', '') |
| return data |
| else: |
| return [] |
| |
| |
| def get_config(data): |
| """ |
| Parse test config file |
| :param data: config file path |
| :return: config dict |
| """ |
| with open(data, 'r') as stream: |
| try: |
| return yaml.load(stream) |
| except yaml.YAMLError as exc: |
| print(exc) |
| |
| |
| def get_vm_ip(vm_id): |
| """ |
| Parse vm id IP from openvim client. |
| :param vm_id: vm id |
| :return: IP value |
| """ |
| openvim_path = os.path.join(os.environ['OPENVIM_ROOT_FOLDER'], 'openvim') |
| ip = execute_local("{} vm-list {} -vvv | grep ip_address:".format(openvim_path, vm_id)) |
| ip = ip.replace('ip_address:', '') |
| ip = ip.replace(' ', '') |
| return ip |
| |
| |
| def get_net_status(net_id): |
| """ |
| Parse a net status from openvim client |
| :param net_id: network id |
| :return: |
| """ |
| openvim_path = os.path.join(os.environ['OPENVIM_ROOT_FOLDER'], 'openvim') |
| net_status = execute_local("{} net-list {} -vvv | grep status:".format(openvim_path, net_id)) |
| net_status = net_status.replace('status:', '') |
| net_status = net_status.replace(' ', '') |
| return net_status |