summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-06-17 13:38:40 +0300
committerLars Wirzenius <liw@liw.fi>2017-06-18 15:55:04 +0300
commit0d7a471bb90436f05fa06fd886b37f211ece5d4c (patch)
tree0b4069d6296753823beaaa039eb14b8a5bf4a315
parent37e8867e81581902e3f9e465407606bdef4ec7c4 (diff)
downloadvmdb2-0d7a471bb90436f05fa06fd886b37f211ece5d4c.tar.gz
Add: Run apt under eatmydata, for speed
-rw-r--r--vmdb/plugins/apt_plugin.py19
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)