server/move-devel-to-release | 69 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
New commits:
commit 8775d06a595d91d2baceb0b02f58b5e3a5aa77da
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Wed Nov 9 10:52:54 2011 -0600
add move-devel-to-release script
diff --git a/server/move-devel-to-release b/server/move-devel-to-release
new file mode 100644
index 0000000..1725406
--- /dev/null
+++ b/server/move-devel-to-release
@@ -0,0 +1,69 @@
+#!/usr/bin/python
+__requires__ = 'TurboGears[future]'
+import pkg_resources
+pkg_resources.require("TurboGears")
+
+from sqlobject import *
+import turbogears
+from mirrormanager.model import *
+from optparse import OptionParser
+import sys, re, os
+
+from turbogears.database import PackageHub
+hub = __connection__ = None
+
+options = None
+
+# moving repository pointers from pub/fedora/linux/development/14/x86_64/os to pub/fedora/linux/releases/14/Everything/x86_64/os
+# This assumes you are moving the pointers within the same category, not across categories.
+
+
+def doit():
+ global options
+ c = Category.byName(options.category)
+ topdir = c.topdir.name
+ oldpattern = os.path.join('development', options.version)
+ newpattern = os.path.join('releases', options.version, 'Everything')
+ oldRe = re.compile(oldpattern)
+ for d in c.directories:
+ if oldRe.search(d.name):
+ r = d.repository
+ if r is not None:
+ t = d.name.replace(oldpattern, newpattern)
+ try:
+ new_d = Directory.byName(t)
+ r.directory = new_d
+ r.sync()
+ print "%s => %s" % (d.name, t)
+ except:
+ raise
+
+def main():
+ global options
+ parser = OptionParser(usage=sys.argv[0] + " [options]")
+ parser.add_option("-c", "--config",
+ dest="config", default='/etc/mirrormanager/prod.cfg',
+ help="TurboGears config file to use (default=/etc/mirrormanager/prod.cfg)")
+ parser.add_option("-v", "--version",
+ dest="version", action="store", type="string", help="OS version to move (e.g. '14') [required]", default=None)
+ parser.add_option("--category",
+ dest="category", action="store", type="string", help="MM Category (e.g. 'Fedora Linux')", default=u'Fedora Linux')
+
+ (options, args) = parser.parse_args()
+ if options.version is None:
+ parser.print_help()
+ sys.exit(1)
+
+ turbogears.update_config(configfile=options.config,
+ modulename="mirrormanager.config")
+ global hub
+ global __connection__
+ hub = PackageHub("mirrormanager")
+ __connection__ = hub
+
+ doit()
+ return 0
+
+if __name__ == "__main__":
+ sys.exit(main())
+