from multiprocessing import Pool
from tempfile import NamedTemporaryFile
from os.path import basename
+from os import environ
from robot.api import logger
from robot.libraries.BuiltIn import BuiltIn
def pack_framework_dir():
"""Pack the testing WS into temp file, return its name."""
- tmpfile = NamedTemporaryFile(suffix=".tgz", prefix="openvpp-testing-")
+ try:
+ directory = environ["TMPDIR"]
+ except Keyerror:
+ directory = None
+
+ if directory is not None:
+ tmpfile = NamedTemporaryFile(suffix=".tgz", prefix="openvpp-testing-",\
+ dir="{0}".format(directory))
+ else:
+ tmpfile = NamedTemporaryFile(suffix=".tgz", prefix="openvpp-testing-")
file_name = tmpfile.name
tmpfile.close()
else:
logger.console('Virtualenv created on {0}'.format(node['host']))
-
+#pylint: disable=broad-except
def setup_node(args):
"""Run all set-up methods for a node.
:param args: All parameters needed to setup one node.
:type args: tuple
:return: nothing
+ :return: True - success, False - error
+ :rtype: bool
"""
tarball, remote_tarball, node = args
- copy_tarball_to_node(tarball, node)
- extract_tarball_at_node(remote_tarball, node)
- if node['type'] == NodeType.TG:
- create_env_directory_at_node(node)
- logger.console('Setup of node {0} done'.format(node['host']))
-
+ try:
+ copy_tarball_to_node(tarball, node)
+ extract_tarball_at_node(remote_tarball, node)
+ if node['type'] == NodeType.TG:
+ create_env_directory_at_node(node)
+ except Exception as exc:
+ logger.error("Node setup failed, error:'{0}'".format(exc.message))
+ return False
+ else:
+ logger.console('Setup of node {0} done'.format(node['host']))
+ return True
def delete_local_tarball(tarball):
"""Delete local tarball to prevent disk pollution.
pool.close()
pool.join()
+ # Turn on logging
+ BuiltIn().set_log_level(log_level)
+
logger.info(
'Executed node setups in parallel, waiting for processes to end')
result.wait()
logger.info('Results: {0}'.format(result.get()))
- # Turn on logging
- BuiltIn().set_log_level(log_level)
logger.trace('Test framework copied to all topology nodes')
delete_local_tarball(tarball)
logger.console('All nodes are ready')