aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2014-01-10 22:39:40 +0000
committerRob Austein <sra@hactrn.net>2014-01-10 22:39:40 +0000
commit419c3b84c02bd6ab89a36be953136736fc92bdc2 (patch)
treefa8a2b8ec00f7577292f0651166a027ef0de0858 /scripts
parent13d6be442c0d07397d9b7383a0c53fe9e7d2dd93 (diff)
Even more getopt -> argparse.
svn path=/trunk/; revision=5627
Diffstat (limited to 'scripts')
-rw-r--r--scripts/extract-key.py70
1 files changed, 21 insertions, 49 deletions
diff --git a/scripts/extract-key.py b/scripts/extract-key.py
index 402d65d8..b85c3d55 100644
--- a/scripts/extract-key.py
+++ b/scripts/extract-key.py
@@ -1,17 +1,19 @@
# $Id$
-#
-# Copyright (C) 2008 American Registry for Internet Numbers ("ARIN")
+
+# Copyright (C) 2014 Dragon Research Labs ("DRL")
+# Portions copyright (C) 2008 American Registry for Internet Numbers ("ARIN")
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
+# copyright notices and this permission notice appear in all copies.
#
-# THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS. IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT,
-# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# THE SOFTWARE IS PROVIDED "AS IS" AND DRL AND AND ARIN DISCLAIM ALL
+# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DRL OR
+# ARIN BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
+# OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
"""
@@ -24,20 +26,11 @@ MySQL. This script is just a convenience, it doesn't enable anything
that couldn't be done via the mysql command line tool.
While we're at this we also extract the corresponding certificate.
-
-Usage: python extract-key.py [ { -s | --self } self_handle ]
- [ { -b | --bsc } bsc_handle ]
- [ { -u | --user } mysql_user_id ]
- [ { -d | --db } mysql_database ]
- [ { -p | --password } mysql_password ]
- [ { -h | --help } ]
-
-Default for both user and db is "rpki".
"""
import os
import time
-import getopt
+import argparse
import sys
import MySQLdb
import rpki.x509
@@ -45,36 +38,15 @@ import rpki.x509
os.environ["TZ"] = "UTC"
time.tzset()
-def usage(code):
- print __doc__
- sys.exit(code)
-
-self_handle = None
-bsc_handle = None
-
-user = "rpki"
-passwd = "fnord"
-db = "rpki"
-
-opts, argv = getopt.getopt(sys.argv[1:], "s:b:u:p:d:h?",
- ["self=", "bsc=", "user=", "password=", "db=", "help"])
-for o, a in opts:
- if o in ("-h", "--help", "-?"):
- usage(0)
- elif o in ("-s", "--self"):
- self_handle = a
- elif o in ("-b", "--bsc"):
- bsc_handle = a
- elif o in ("-u", "--user"):
- user = a
- elif o in ("-p", "--password"):
- passwd = a
- elif o in ("-d", "--db"):
- db = a
-if argv:
- usage(1)
+parser = argparse.ArgumentParser(description = __doc__)
+parser.add_argument("-s", "--self", required = True, help = "self handle")
+parser.add_argument("-b", "--bsc", required = True, help = "BSC handle")
+parser.add_argument("-u", "--user", required = True, help = "MySQL user name")
+parser.add_argument("-d", "--db", required = True, help = "MySQL database name")
+parser.add_argument("-p", "--password", required = True, help = "MySQL password")
+args = parser.parse_args()
-cur = MySQLdb.connect(user = user, db = db, passwd = passwd).cursor()
+cur = MySQLdb.connect(user = args.user, db = args.db, passwd = args.password).cursor()
cur.execute(
"""
@@ -82,7 +54,7 @@ cur.execute(
FROM bsc, self
WHERE self.self_handle = %s AND self.self_id = bsc.self_id AND bsc_handle = %s
""",
- (self_handle, bsc_handle))
+ (args.self, args.bsc))
key, cer = cur.fetchone()