summaryrefslogtreecommitdiff
path: root/worker_manager
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-12-30 16:39:45 +0200
committerLars Wirzenius <liw@liw.fi>2017-12-30 17:38:59 +0200
commita0f8561380f5d854ce532a5df076bc12014d5b48 (patch)
tree4b8918169db0e46bd88fe56a6d5a9f0daaa6144a /worker_manager
parentd4c8e565f590522f8bed92e2c0242a84497e9c3d (diff)
downloadick2-a0f8561380f5d854ce532a5df076bc12014d5b48.tar.gz
Add: support "where: chroot" for pipeline actions
Diffstat (limited to 'worker_manager')
-rwxr-xr-xworker_manager11
1 files changed, 10 insertions, 1 deletions
diff --git a/worker_manager b/worker_manager
index 24214bd..8642036 100755
--- a/worker_manager
+++ b/worker_manager
@@ -295,6 +295,11 @@ class WorkerBase:
params = work.get('parameters', {})
params_text = self.params64(params)
argv = self.get_argv(work, params_text)
+ if self.where(work) == 'chroot':
+ logging.debug('CHROOT REQUESTED')
+ argv = ['sudo', 'chroot', self._workspace] + argv
+ else:
+ logging.debug('NOT IN CHROOT')
logging.debug('running: %r', argv)
exit_code, _, _ = cliapp.runcmd_unchecked(
argv,
@@ -310,6 +315,10 @@ class WorkerBase:
as_base64 = base64.b64encode(as_bytes)
return as_base64.decode('UTF-8')
+ def where(self, work):
+ step = work.get('step', {})
+ return step.get('where')
+
def get_argv(self, work, params_text):
raise NotImplementedError()
@@ -350,7 +359,7 @@ class DebootstrapWorker(WorkerBase):
class WorkspaceCleaner(WorkerBase):
def get_argv(self, work, params_text):
- return ['find', '.', '-delete']
+ return ['sudo', 'find', '.', '-delete']
if __name__ == '__main__':