diff options
author | Lars Wirzenius <liw@liw.fi> | 2017-12-30 16:39:45 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2017-12-30 17:38:59 +0200 |
commit | a0f8561380f5d854ce532a5df076bc12014d5b48 (patch) | |
tree | 4b8918169db0e46bd88fe56a6d5a9f0daaa6144a /worker_manager | |
parent | d4c8e565f590522f8bed92e2c0242a84497e9c3d (diff) | |
download | ick2-a0f8561380f5d854ce532a5df076bc12014d5b48.tar.gz |
Add: support "where: chroot" for pipeline actions
Diffstat (limited to 'worker_manager')
-rwxr-xr-x | worker_manager | 11 |
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__': |