blob: 2be832a7156e7172f34485b5737a23c4f97f1e85 [file] [log] [blame]
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 found
"""
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