From f5121ffb1f3befd8ef85af512a8c6d11b785212b Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Sat, 21 Nov 2009 01:40:58 +0000 Subject: POSIX: Add script to help automate conversion of old configs Signed-off-by: Sol Jerome git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5591 ce84e21b-d406-0410-9b95-82705330c041 --- tools/posixunified.py | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 tools/posixunified.py diff --git a/tools/posixunified.py b/tools/posixunified.py new file mode 100644 index 000000000..45a998574 --- /dev/null +++ b/tools/posixunified.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python + +import lxml.etree +import os +import sys + +import Bcfg2.Options + +if __name__ == '__main__': + opts = { + 'repo': Bcfg2.Options.SERVER_REPOSITORY, + } + setup = Bcfg2.Options.OptionParser(opts) + setup.parse(sys.argv[1:]) + repo = setup['repo'] + + for plug in ['Base', 'Bundler']: + for root, dirs, files in os.walk('%s/%s' % (repo, plug)): + for filename in files: + if filename.startswith('new'): + continue + xdata = lxml.etree.parse(os.path.join(root, filename)) + # replace ConfigFile elements + for c in xdata.findall('//ConfigFile'): + parent = c.getparent() + oldc = c + c.set('type', 'file') + c.tag = 'Path' + parent.replace(oldc, c) + # replace Directory elements + for d in xdata.findall('//Directory'): + parent = d.getparent() + oldd = d + d.set('type', 'directory') + d.tag = 'Path' + parent.replace(oldd, d) + # replace Permissions elements + for p in xdata.findall('//Permissions'): + parent = p.getparent() + oldp = p + p.set('type', 'permissions') + p.tag = 'Path' + parent.replace(oldp, p) + # replace SymLink elements + for s in xdata.findall('//SymLink'): + parent = s.getparent() + olds = s + s.set('type', 'symlink') + s.tag = 'Path' + parent.replace(olds, s) + # write out the new bundle + try: + newbundle = open("%s/%s/new%s" % (repo, plug, filename), 'w') + except IOError: + print("Failed to write %s" % filename) + continue + newbundle.write(lxml.etree.tostring(xdata, pretty_print=True)) + newbundle.close() -- cgit v1.2.3-1-g7c22