From e4c05b340922b23d3dd0772d7baa5eef29c49ee7 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Mon, 10 Aug 2015 21:07:36 -0700 Subject: [PATCH] Capture venv install/create output Change-Id: Ic079e5c9887a5ef6a0abd647e9090f59818b2ac1 --- anvil/packaging/venv.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/anvil/packaging/venv.py b/anvil/packaging/venv.py index f86294b5..c6aa9027 100644 --- a/anvil/packaging/venv.py +++ b/anvil/packaging/venv.py @@ -66,6 +66,7 @@ class VenvDependencyHandler(base.DependencyHandler): prior_groups) self.cache_dir = sh.joinpths(self.root_dir, "pip-cache") self.jobs = max(0, int(opts.get('jobs', 0))) + self.install_counters = {} def _venv_directory_for(self, instance): return sh.joinpths(instance.get_option('component_dir'), 'venv') @@ -97,7 +98,10 @@ class VenvDependencyHandler(base.DependencyHandler): else: for req in requirements: cmd.append(str(req)) - sh.execute(cmd, env_overrides=env_overrides) + count = self.install_counters.get(instance.name, 0) + self.install_counters[instance.name] = count + 1 + out_filename = sh.joinpths(self.log_dir, "venv-install-%s-%s.log" % (instance.name, count)) + sh.execute_save_output(cmd, out_filename, env_overrides=env_overrides) def _is_buildable(self, instance): app_dir = instance.get_option('app_dir') @@ -164,6 +168,7 @@ class VenvDependencyHandler(base.DependencyHandler): def package_start(self): super(VenvDependencyHandler, self).package_start() + self.install_counters.clear() base_cmd = env.get_key('VENV_CMD', default_value='virtualenv') for instance in self.instances: if not self._is_buildable(instance): @@ -173,7 +178,8 @@ class VenvDependencyHandler(base.DependencyHandler): sh.mkdirslist(venv_dir, tracewriter=self.tracewriter) cmd = [base_cmd, '--clear', venv_dir] LOG.info("Creating virtualenv at %s", colorizer.quote(venv_dir)) - sh.execute(cmd) + out_filename = sh.joinpths(self.log_dir, "venv-create-%s.log" % (instance.name)) + sh.execute_save_output(cmd, out_filename) self._install_into_venv(instance, self.PREREQUISITE_PKGS) self._install_into_venv(instance, self.PREREQUISITE_UPGRADE_PKGS,