From cd14868d4db8eaa7e9421e1d5fe8653294ac1e38 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Thu, 27 Jun 2013 10:36:17 -0400 Subject: Options: migrated tools to new parser --- tools/upgrade/1.4/README | 3 +++ tools/upgrade/1.4/convert_bundles.py | 32 ++++++++++++++++++++++++++++++++ tools/upgrade/1.4/migrate_decisions.py | 12 ++++++------ 3 files changed, 41 insertions(+), 6 deletions(-) create mode 100755 tools/upgrade/1.4/convert_bundles.py (limited to 'tools/upgrade/1.4') diff --git a/tools/upgrade/1.4/README b/tools/upgrade/1.4/README index b6ff8d8c8..58786966b 100644 --- a/tools/upgrade/1.4/README +++ b/tools/upgrade/1.4/README @@ -4,3 +4,6 @@ to 1.4. migrate_decisions.py - Convert old group- and host-specific whitelist and blacklist files into structured XML + +remove_bundle_names.py + - Remove deprecated explicit bundle names diff --git a/tools/upgrade/1.4/convert_bundles.py b/tools/upgrade/1.4/convert_bundles.py new file mode 100755 index 000000000..b9cb483f2 --- /dev/null +++ b/tools/upgrade/1.4/convert_bundles.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +import os +import sys +import lxml.etree +import Bcfg2.Options + + +def main(): + parser = Bcfg2.Options.get_parser("Tool to remove bundle names") + parser.add_options([Bcfg2.Options.Common.repository]) + parser.parse() + + bundler_dir = os.path.join(Bcfg2.Options.setup.repository, "Bundler") + if os.path.exists(bundler_dir): + for root, _, files in os.walk(bundler_dir): + for fname in files: + bpath = os.path.join(root, fname) + newpath = bpath + if newpath.endswith(".genshi"): + newpath = newpath[:-6] + "xml" + print("Converting %s to %s" % (bpath, newpath)) + else: + print("Converting %s" % bpath) + xroot = lxml.etree.parse(bpath) + xdata = xroot.getroot() + if 'name' in xdata.attrib: + del xdata.attrib['name'] + xroot.write(bpath) + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tools/upgrade/1.4/migrate_decisions.py b/tools/upgrade/1.4/migrate_decisions.py index f7072783a..d0915f202 100755 --- a/tools/upgrade/1.4/migrate_decisions.py +++ b/tools/upgrade/1.4/migrate_decisions.py @@ -6,7 +6,6 @@ import sys import glob import lxml.etree import Bcfg2.Options -from Bcfg2.Server import XMLParser SPECIFIC = re.compile(r'.*\/(white|black)list' @@ -56,12 +55,13 @@ def convert(files, xdata): def main(): - opts = dict(repo=Bcfg2.Options.SERVER_REPOSITORY, - configfile=Bcfg2.Options.CFILE) - setup = Bcfg2.Options.load_option_parser(opts) - setup.parse(sys.argv[1:]) + parser = Bcfg2.Options.get_parser( + description="Migrate from Bcfg2 1.3 Decisions list format to 1.4 " + "format") + parser.add_options([Bcfg2.Options.Common.repository]) + parser.parse() - datadir = os.path.join(setup['repo'], 'Decisions') + datadir = os.path.join(Bcfg2.Options.setup.repository, 'Decisions') whitelist = lxml.etree.Element("Decisions") blacklist = lxml.etree.Element("Decisions") if os.path.exists(datadir): -- cgit v1.2.3-1-g7c22