Signed-off-by: Cleber Rosa <[email protected]>
---
 database/migrate.py | 71 +++++++++++++++++++++++++++++++----------------------
 1 file changed, 41 insertions(+), 30 deletions(-)

diff --git a/database/migrate.py b/database/migrate.py
index 0e81f62..d39ac79 100755
--- a/database/migrate.py
+++ b/database/migrate.py
@@ -1,12 +1,16 @@
 #!/usr/bin/python -u
 
-import os, sys, re, subprocess, tempfile
-from optparse import OptionParser
+import os
+import sys
+import re
+import tempfile
+import optparse
+
 try:
     import autotest.common as common
 except ImportError:
     import common
-import MySQLdb, MySQLdb.constants.ER
+
 from autotest.client.shared import global_config, utils
 from autotest.database import database_connection
 
@@ -319,26 +323,41 @@ class MigrationManager(object):
         os.remove(dump_file)
 
 
-USAGE = """\
-%s [options] sync|test|simulate|safesync [version]
-Options:
-    -d --database   Which database to act on
-    -a --action     Which action to perform"""\
-    % sys.argv[0]
+class OptionParser(optparse.OptionParser):
+
+    ACTIONS = ['sync', 'test', 'simulate', 'safesync']
+
+    def __init__(self):
+        actions_info = '  <action>\t\tOne of: %s\n' % ', '.join(self.ACTIONS)
+        usage_info = 'Usage: %prog [options] <action>'
+
+        if sys.version_info[0:2] < (2, 6):
+            optparse.OptionParser.__init__(self, usage=usage_info,
+                                           description=actions_info)
+        else:
+            optparse.OptionParser.__init__(self, usage=usage_info,
+                                           epilog=actions_info)
+
+        self.add_option("-d", "--database", default="AUTOTEST_WEB",
+                        help="which database to act on (defaults to %default)")
+
+        self.add_option("-f", "--force", action="store_true",
+                        help="don't ask for confirmation")
+
+        self.add_option('--debug', action='store_true',
+                        help='print all DB queries')
+
+
+def get_migration_manager(db_name, debug, force):
+    database = database_connection.DatabaseConnection(db_name)
+    database.debug = debug
+    database.reconnect_enabled = False
+    database.connect()
+    return MigrationManager(database, force=force)
 
 
 def main():
     parser = OptionParser()
-    parser.add_option("-d", "--database",
-                      help="which database to act on",
-                      dest="database",
-                      default="AUTOTEST_WEB")
-    parser.add_option("-a", "--action", help="what action to perform",
-                      dest="action")
-    parser.add_option("-f", "--force", help="don't ask for confirmation",
-                      action="store_true")
-    parser.add_option('--debug', help='print all DB queries',
-                      action='store_true')
     (options, args) = parser.parse_args()
     manager = get_migration_manager(db_name=options.database,
                                     debug=options.debug, force=options.force)
@@ -357,25 +376,17 @@ def main():
             manager.simulate=True
             manager.simulate_sync_db(version)
         elif args[0] == 'safesync':
-            print 'Simluating migration'
+            print 'Simulating migration'
             manager.simulate=True
             manager.simulate_sync_db(version)
             print 'Performing real migration'
             manager.simulate=False
             manager.do_sync_db(version)
         else:
-            print USAGE
+            parser.print_help()
         return
 
-    print USAGE
-
-
-def get_migration_manager(db_name, debug, force):
-    database = database_connection.DatabaseConnection(db_name)
-    database.debug = debug
-    database.reconnect_enabled = False
-    database.connect()
-    return MigrationManager(database, force=force)
+    parser.print_help()
 
 
 if __name__ == '__main__':
-- 
1.7.11.7

_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel

Reply via email to