From a0f8561380f5d854ce532a5df076bc12014d5b48 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 30 Dec 2017 16:39:45 +0200 Subject: Add: support "where: chroot" for pipeline actions --- worker_manager | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'worker_manager') 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__': -- cgit v1.2.1