diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2014-11-11 23:13:03 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2014-11-12 15:56:30 +0100 |
commit | 53ec8afee9c963de5883b9b7ca9bd6537deef123 (patch) | |
tree | ae953982f85e211710ba75c90ed44eb0a1dd083d /tools/upgrade/1.3/migrate_sysv_simplename.py | |
parent | 174e54f8455f9f5372da6469c5b093353bcd50ee (diff) | |
parent | f6b3d6dc89e4ba5c2ec643931394db45b8c7f176 (diff) | |
download | bcfg2-53ec8afee9c963de5883b9b7ca9bd6537deef123.tar.gz bcfg2-53ec8afee9c963de5883b9b7ca9bd6537deef123.tar.bz2 bcfg2-53ec8afee9c963de5883b9b7ca9bd6537deef123.zip |
Merge branch 'maint'
Conflicts:
debian/changelog
doc/conf.py
doc/releases/index.txt
doc/server/database.txt
doc/server/plugins/generators/cfg.txt
doc/server/plugins/generators/sslca.txt
man/bcfg2.conf.5
misc/bcfg2-selinux.spec
misc/bcfg2.spec
osx/Makefile
osx/macports/Portfile
schemas/packages.xsd
solaris-ips/MANIFEST.bcfg2-server.header
solaris-ips/MANIFEST.bcfg2.header
solaris-ips/Makefile
solaris-ips/pkginfo.bcfg2
solaris-ips/pkginfo.bcfg2-server
solaris/Makefile
solaris/pkginfo.bcfg2
solaris/pkginfo.bcfg2-server
src/lib/Bcfg2/Client/Client.py
src/lib/Bcfg2/Client/Proxy.py
src/lib/Bcfg2/Client/Tools/APT.py
src/lib/Bcfg2/Client/Tools/Action.py
src/lib/Bcfg2/Client/Tools/SYSV.py
src/lib/Bcfg2/Client/Tools/YUM.py
src/lib/Bcfg2/Client/Tools/__init__.py
src/lib/Bcfg2/Options.py
src/lib/Bcfg2/Reporting/Collector.py
src/lib/Bcfg2/Reporting/templates/base.html
src/lib/Bcfg2/Server/Admin/__init__.py
src/lib/Bcfg2/Server/BuiltinCore.py
src/lib/Bcfg2/Server/Core.py
src/lib/Bcfg2/Server/Plugins/Packages/Apt.py
src/lib/Bcfg2/Server/Plugins/Probes.py
src/lib/Bcfg2/settings.py
src/lib/Bcfg2/version.py
testsuite/Testsrc/Testlib/TestClient/TestTools/Test_init.py
testsuite/Testsrc/test_code_checks.py
Diffstat (limited to 'tools/upgrade/1.3/migrate_sysv_simplename.py')
-rwxr-xr-x | tools/upgrade/1.3/migrate_sysv_simplename.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tools/upgrade/1.3/migrate_sysv_simplename.py b/tools/upgrade/1.3/migrate_sysv_simplename.py new file mode 100755 index 000000000..f6599756b --- /dev/null +++ b/tools/upgrade/1.3/migrate_sysv_simplename.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import lxml.etree +import Bcfg2.Options + +def main(): + opts = dict(repo=Bcfg2.Options.SERVER_REPOSITORY) + setup = Bcfg2.Options.OptionParser(opts) + setup.parse(sys.argv[1:]) + + files = [] + for plugin in ['Pkgmgr']: + files.extend(glob.glob(os.path.join(setup['repo'], plugin, "*"))) + + for bfile in files: + bdata = lxml.etree.parse(bfile) + changed = False + + if not bdata.xpath("//@type='sysv'"): + print("%s doesn't contain any sysv packages, skipping" % bfile) + continue + + pkglist = bdata.getroot() + if pkglist.tag != "PackageList": + print("%s doesn't look like a PackageList, skipping" % bfile) + continue + + for pkg in bdata.xpath("//Package"): + if "simplename" in pkg.attrib: + pkg.set("simplefile", pkg.get("simplename")) + del pkg.attrib["simplename"] + changed = True + + # if we switched to simplefile, we also need to switch to uri + if changed and "url" in pkglist.attrib: + pkglist.set("uri", pkglist.get("url")) + del pkglist.attrib["url"] + + if changed: + print("Writing %s" % bfile) + try: + open(bfile, "w").write(lxml.etree.tostring(bdata)) + except IOError: + err = sys.exc_info()[1] + print("Could not write %s: %s" % (bfile, err)) + +if __name__ == '__main__': + sys.exit(main()) |