diff options
author | Lars Wirzenius <liw@liw.fi> | 2017-06-17 13:38:40 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2017-06-18 15:55:04 +0300 |
commit | 0d7a471bb90436f05fa06fd886b37f211ece5d4c (patch) | |
tree | 0b4069d6296753823beaaa039eb14b8a5bf4a315 | |
parent | 37e8867e81581902e3f9e465407606bdef4ec7c4 (diff) | |
download | vmdb2-0d7a471bb90436f05fa06fd886b37f211ece5d4c.tar.gz |
Add: Run apt under eatmydata, for speed
-rw-r--r-- | vmdb/plugins/apt_plugin.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/vmdb/plugins/apt_plugin.py b/vmdb/plugins/apt_plugin.py index d40f4cd..a2e6232 100644 --- a/vmdb/plugins/apt_plugin.py +++ b/vmdb/plugins/apt_plugin.py @@ -17,9 +17,7 @@ -import logging import os -import sys import cliapp @@ -42,13 +40,20 @@ class AptStepRunner(vmdb.StepRunnerInterface): fstag = step['fs-tag'] mount_point = state.mounts[fstag] + if not self.got_eatmydata(state): + self.install_package(mount_point, [], 'eatmydata') + state.got_eatmydata = True + self.install_package(mount_point, ['eatmydata'], package) + + def got_eatmydata(self, state): + return hasattr(state, 'got_eatmydata') and getattr(state, 'got_eatmydata') + + def install_package(self, mount_point, argv_prefix, package): env = os.environ.copy() env['DEBIAN_FRONTEND'] = 'noninteractive' - vmdb.progress( - 'Install package {} to filesystem at {} ({})'.format( - package, mount_point, fstag)) vmdb.runcmd( - ['chroot', mount_point, - 'apt-get', '-y', '--no-show-progress', 'install', package], + ['chroot', mount_point] + + argv_prefix + + ['apt-get', '-y', '--no-show-progress', 'install', package], env=env) |