X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-vnc-client.git/blobdiff_plain/bc0b69cd9c8df639a2d25fddb90c5f12a50caf0e..HEAD:/debian/invirt-update-vnc-cert diff --git a/debian/invirt-update-vnc-cert b/debian/invirt-update-vnc-cert index 33db30d..177c39a 100755 --- a/debian/invirt-update-vnc-cert +++ b/debian/invirt-update-vnc-cert @@ -1,28 +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(): - subprocess.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 = subprocess.Popen(['remctl', config.remote.hostname, 'web', - 'vnccert', host.hostname], - stdout=PIPE) - cert.wait() - subprocess.call(['keytool', '-import', '-noprompt', '-alias', - host.hostname, '-keystore', keystore, '-storepass', - 'foobar'], stdin=cert.stdout) + cert = Popen(['remctl', config.remote.hostname, 'web', 'vnccert', host.hostname], + stdout=PIPE) + check_wait(cert) + check_call(['keytool', '-import', '-noprompt', '-alias', host.hostname, + '-keystore', keystore, '-storepass', 'foobar'], + stdin=cert.stdout) - subprocess.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)