diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2005-09-27 20:10:03 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2005-09-27 20:10:03 +0000 |
commit | 3bd03498bfebbf45d0d8afcb2e4cea3758111e5a (patch) | |
tree | 9dd440c15b35b5f114aaa8104fc6f9cf8f778693 /tools | |
parent | 3e7edf541dcb3466b64d771afa16c92918aa687c (diff) | |
download | bcfg2-3bd03498bfebbf45d0d8afcb2e4cea3758111e5a.tar.gz bcfg2-3bd03498bfebbf45d0d8afcb2e4cea3758111e5a.tar.bz2 bcfg2-3bd03498bfebbf45d0d8afcb2e4cea3758111e5a.zip |
(Logical change 1.322)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@1312 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'tools')
-rw-r--r-- | tools/upgrade.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tools/upgrade.py b/tools/upgrade.py index e69de29bb..7c705fbe0 100644 --- a/tools/upgrade.py +++ b/tools/upgrade.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python + +'''This script updates to fully qualified hostnames for 0.6.11''' +__revision__ = '$Revision:$' + +from ConfigParser import ConfigParser +from elementtree.ElementTree import XML, tostring +from socket import gethostbyname +from sys import argv +from glob import glob +from os import system + +if __name__ == '__main__': + hostcache = {} + if len(argv) > 1: + domainlist = argv[-1].split(':') + else: + domainlist = ['mcs.anl.gov'] + cf = ConfigParser() + cf.read(['/etc/bcfg2.conf']) + metadata = XML(open(cf.get('server', 'metadata') + '/metadata.xml').read()) + for client in metadata.findall('.//Client'): + if client.get('name').count('.') == 0: + for dom in domainlist: + print "resolving name %s.%s..." % (client.get('name'), dom), + try: + hostinfo = gethostbyname(client.get('name') + '.' + dom) + hostcache[client.get('name')] = dom + client.set('name', "%s.%s" % (client.get('name'), dom)) + print "" + break + except: + print "FAILED" + continue + print hostinfo + + open(cf.get('server', 'metadata') + '/metadata.xml.new'), 'w').write(tostring(metadata)) + + sshdir = cf.get('server', 'repository') + '/SSHbase/' + for key in glob(sshdir + "*key.H_*"): + hostname = key.split('.H_')[1] + if not hostcache.has_key(hostname): + for dom in domainlist: + try: + hostinfo = gethostbyname(hostname + '.' + dom) + hostcache[hostname] = dom + break + except: + continue + if hostcache.has_key(hostname): + system("mv %s %s.%s" % (key, key, hostcache[hostname])) |