X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-vnc-client.git/blobdiff_plain/0d88c0c9bd61f710cba0a29af49397fbc1c4902c..72bd5ed6de8518646bb16e54b96ddc7f3a0f071b:/debian/invirt-update-vnc-cert?ds=inline diff --git a/debian/invirt-update-vnc-cert b/debian/invirt-update-vnc-cert index 8e634c0..177c39a 100755 --- a/debian/invirt-update-vnc-cert +++ b/debian/invirt-update-vnc-cert @@ -1,27 +1,41 @@ #!/usr/bin/python from invirt.config import structs as config -from subprocess import Popen, call, PIPE +from subprocess import Popen, check_call, PIPE, CalledProcessError import tempfile import os import sys import shutil +def check_wait(popen): + retcode = popen.wait() + if retcode != 0: + raise CalledProcessError(retcode, popen.pid) + return retcode + def main(): - call(['kinit', '-k', 'daemon/%s' % config.web.hostname]) + check_call(['kinit', '-k', 'daemon/%s' % config.web.hostname]) temp_dir = tempfile.mkdtemp() + + jarfile = os.path.join(temp_dir, 'VncViewer.jar') + + shutil.copy('/usr/share/invirt-vnc-client/VncViewer.src.jar', + jarfile) + keystore = os.path.join(temp_dir, 'trust.store') for host in config.hosts: cert = Popen(['remctl', config.remote.hostname, 'web', 'vnccert', host.hostname], stdout=PIPE) - cert.wait() - call(['keytool', '-import', '-noprompt', '-alias', host.hostname, - '-keystore', keystore, '-storepass', 'foobar'], - stdin=cert.stdout) + check_wait(cert) + check_call(['keytool', '-import', '-noprompt', '-alias', host.hostname, + '-keystore', keystore, '-storepass', 'foobar'], + stdin=cert.stdout) - call(['jar', 'uf', '/usr/share/invirt-vnc-client/VncViewer.jar', - '-C', temp_dir, 'trust.store']) + check_call(['jar', 'uf', jarfile, + '-C', temp_dir, 'trust.store']) + + shutil.move(jarfile, '/usr/share/invirt-vnc-client/VncViewer.jar') shutil.rmtree(temp_dir)