summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2016-02-16 22:38:30 +0200
committerLars Wirzenius <liw@liw.fi>2016-02-16 23:07:59 +0200
commitde583a71bb0675c0b8cc9d6a5856a37db748a36f (patch)
tree330806f3c8e255601dddcc48abb558e601ca2cd3
parent5adf083b2fde5e20d5bd7b9ce63bb24ecbc13ccc (diff)
downloadick-de583a71bb0675c0b8cc9d6a5856a37db748a36f.tar.gz
Collect Debian info about targets only once
-rw-r--r--NEWS2
-rw-r--r--icklib/project.py11
2 files changed, 10 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index c54aa85..529b5ba 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,8 @@ NEWS for Ick
Version 0.13+git, not yet released
----------------------------------
+* Ick now collects information about target Debian systems only once
+ per target, rather than once per target and pipeline.
Version 0.13, released 2016-02-16
----------------------------------
diff --git a/icklib/project.py b/icklib/project.py
index a09da23..771bb8f 100644
--- a/icklib/project.py
+++ b/icklib/project.py
@@ -17,6 +17,7 @@
import glob
+import logging
import os
import re
import StringIO
@@ -515,17 +516,21 @@ class RunLocalShellCommands(icklib.BuildStep):
class CollectDebianInfoAboutTargets(icklib.BuildStep):
def build(self):
+ wanted = ['debian_arch', 'debian_codename', 'debian_release']
if getattr(self.run_state, 'collect_debian_info', False):
for target in self.targets:
- target.debian_arch = self._get_debian_arch(target)
- os_release = self._get_os_release(target)
- self._collect_from_os_release(target, os_release)
+ if not all(getattr(target, x, None) for x in wanted):
+ target.debian_arch = self._get_debian_arch(target)
+ os_release = self._get_os_release(target)
+ self._collect_from_os_release(target, os_release)
def _get_debian_arch(self, target):
+ logging.info('Finding Debian arch for %s', target.name)
output = target.ssh_runcmd(['dpkg', '--print-architecture'])
return output.strip()
def _get_os_release(self, target):
+ logging.info('Finding os-release for %s', target.name)
pbuilder_argv = [
'sudo',
'pbuilder',