X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-console.git/blobdiff_plain/0831546bfd6cbfa9ec41f6e82b28d9a84fcf1cec..ea990341e40f67e1998fed6a1e6a8455782db73c:/host/usr/sbin/invirt-update-conserver?ds=sidebyside diff --git a/host/usr/sbin/invirt-update-conserver b/host/usr/sbin/invirt-update-conserver new file mode 100755 index 0000000..9a7fd3c --- /dev/null +++ b/host/usr/sbin/invirt-update-conserver @@ -0,0 +1,32 @@ +#!/usr/bin/python + +import subprocess +import os +import socket +from invirt.config import structs as config + +def live_vms(): + p = subprocess.Popen(['/usr/sbin/xm', 'list'], stdout=subprocess.PIPE) + p.wait() + output = p.stdout.read() + vms = [x.split()[0][2:] for x in output.splitlines() if x.startswith('d_')] + return vms + +def reload_conserver(): + p = subprocess.Popen(['/usr/sbin/invoke-rc.d', 'conserver-server', 'reload'], stdout=subprocess.PIPE) + p.wait() + +if __name__ == '__main__': + hostname = socket.getfqdn().lower() + realm = config.authn[0].realm + principal = 'host/'+hostname+'@'+realm + conftext = '\n'.join('console %s { master %s; }' % (vm, hostname) + for vm in live_vms()) + f = open('/etc/conserver/invirt-consoles.cf', 'w') + f.write(conftext) + f.close() + reload_conserver() + subprocess.call(['/usr/bin/kinit', '-k', '-t', '/etc/krb5.keytab', + principal]) + subprocess.call(['/usr/bin/remctl', config.console.hostname, + 'console', 'update', conftext])