summaryrefslogtreecommitdiff
path: root/ick2/actions.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-09-17 08:51:58 +0300
committerLars Wirzenius <liw@liw.fi>2018-09-17 08:51:58 +0300
commite61c54196ead96b7efcdc0794ced2314de26d030 (patch)
treecd1eb6aefae89da0a70ff648fa185b614995a406 /ick2/actions.py
parent4519bdb40920bdec5d2d09084da52e37ea4d570d (diff)
downloadick2-e61c54196ead96b7efcdc0794ced2314de26d030.tar.gz
Change: worker-manager gets APT server from controller
Diffstat (limited to 'ick2/actions.py')
-rw-r--r--ick2/actions.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/ick2/actions.py b/ick2/actions.py
index daab0e5..0c4aa7f 100644
--- a/ick2/actions.py
+++ b/ick2/actions.py
@@ -597,11 +597,28 @@ class DputAction(Action): # pragma: no cover
env = self.get_env()
workspace = env.get_workspace_directory()
- argv = ['sh', '-c', 'dput ick *.changes']
+ apt_server = self._cc.get_apt_server()
+ config = self.configure_dput(apt_server)
+ argv = ['sh', '-c', 'dput -c {} ick *.changes'.format(config)]
exit_code = env.host_runcmd(argv, cwd=workspace)
env.report(exit_code, 'dput finished (exit code %d)\n' % exit_code)
+ os.remove(config)
return exit_code
+ def configure_dput(self, apt_server):
+ fd, filename = tempfile.mkstemp()
+ os.close(fd)
+ with open(filename, 'w') as f:
+ f.write('[ick]\n')
+ f.write('login = incoming\n')
+ f.write('fqdn = {}\n'.format(apt_server))
+ f.write('method = scp\n')
+ f.write('incoming = /srv/apt/incoming\n')
+ f.write('allow_unsigned_uploads = 1\n')
+ f.write('check_version = 0\n')
+ f.write('run_dinstall = 0\n')
+ return filename
+
class NotifyAction(Action): # pragma: no cover