X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FSetupFramework.py;h=26a07c3a3869e5695c034821dbaad3c2afcb846e;hp=c27dbe08c29d74807f4c1f51e8a8bf3f1cf2a4f4;hb=1e5030b987404fb1cf1dfabe31a150092ff84a3d;hpb=80b2451e43972ef7a1a177b8632f3bf952f3a8c7 diff --git a/resources/libraries/python/SetupFramework.py b/resources/libraries/python/SetupFramework.py index c27dbe08c2..26a07c3a38 100644 --- a/resources/libraries/python/SetupFramework.py +++ b/resources/libraries/python/SetupFramework.py @@ -105,7 +105,7 @@ def extract_tarball_at_node(tarball, node): node, cmd, message=f"Failed to extract {tarball} at node {node[u'type']} " f"host {node[u'host']}, port {node[u'port']}", - timeout=30, include_reason=True + timeout=90, include_reason=True ) logger.console( f"Extracting tarball to {con.REMOTE_FW_DIR} on {node[u'type']} " @@ -116,9 +116,13 @@ def extract_tarball_at_node(tarball, node): def create_env_directory_at_node(node): """Create fresh virtualenv to a directory, install pip requirements. + Return stdout and stderr of the command, + so we see which installs are behaving weird (e.g. attempting download). + :param node: Node to create virtualenv on. :type node: dict - :returns: nothing + :returns: Stdout and stderr. + :rtype: str, str :raises RuntimeError: When failed to setup virtualenv. """ logger.console( @@ -129,7 +133,7 @@ def create_env_directory_at_node(node): f"-p $(which python3) --system-site-packages --never-download env " \ f"&& source env/bin/activate && ANSIBLE_SKIP_CONFLICT_CHECK=1 " \ f"pip3 install -r requirements.txt" - exec_cmd_no_error( + stdout, stderr = exec_cmd_no_error( node, cmd, timeout=100, include_reason=True, message=f"Failed install at node {node[u'type']} host {node[u'host']}, " f"port {node[u'port']}" @@ -138,6 +142,7 @@ def create_env_directory_at_node(node): f"Virtualenv setup on {node[u'type']} host {node[u'host']}, " f"port {node[u'port']} done." ) + return stdout, stderr def setup_node(node, tarball, remote_tarball, results=None, logs=None): @@ -160,7 +165,10 @@ def setup_node(node, tarball, remote_tarball, results=None, logs=None): copy_tarball_to_node(tarball, node) extract_tarball_at_node(remote_tarball, node) if node[u"type"] == NodeType.TG: - create_env_directory_at_node(node) + stdout, stderr = create_env_directory_at_node(node) + if isinstance(logs, list): + logs.append(f"{node[u'host']} Env stdout: {stdout}") + logs.append(f"{node[u'host']} Env stderr: {stderr}") except Exception: # any exception must result in result = False # since this runs in a thread and can't be caught anywhere else