18
18
# All rights reserved.
19
19
#
20
20
21
- from __future__ import absolute_import
22
- from __future__ import print_function
23
-
24
- import getopt
21
+ import argparse
25
22
import logging
26
23
import sys
27
24
28
- from lxml import etree
29
-
30
25
import pki .cli
31
26
import pki .nssdb
32
27
import pki .server .instance
@@ -40,7 +35,25 @@ class MigrateCLI(pki.cli.CLI):
40
35
def __init__ (self ):
41
36
super ().__init__ ('migrate' , 'Migrate system' )
42
37
43
- self .parser = etree .XMLParser (remove_blank_text = True )
38
+ self .parser = argparse .ArgumentParser (
39
+ prog = self .name ,
40
+ add_help = False )
41
+ self .parser .add_argument (
42
+ '-i' ,
43
+ '--instance' )
44
+ self .parser .add_argument (
45
+ '-v' ,
46
+ '--verbose' ,
47
+ action = 'store_true' )
48
+ self .parser .add_argument (
49
+ '--debug' ,
50
+ action = 'store_true' )
51
+ self .parser .add_argument (
52
+ '--help' ,
53
+ action = 'store_true' )
54
+ self .parser .add_argument (
55
+ 'instance_name' ,
56
+ nargs = '?' )
44
57
45
58
def print_help (self ):
46
59
print ('Usage: pki-server migrate [OPTIONS] [<instance ID>]' )
@@ -52,39 +65,23 @@ def print_help(self):
52
65
print ()
53
66
54
67
def execute (self , argv ):
55
- try :
56
- opts , args = getopt .gnu_getopt (argv , 'i:v' , [
57
- 'instance=' ,
58
- 'verbose' , 'debug' , 'help' ])
59
-
60
- except getopt .GetoptError as e :
61
- logger .error (e )
62
- self .print_help ()
63
- sys .exit (1 )
64
-
65
- instance_name = None
66
68
67
- for o , a in opts :
68
- if o in ('-i' , '--instance' ):
69
- instance_name = a
69
+ args = self .parser .parse_args (args = argv )
70
70
71
- elif o == '--debug' :
72
- logging .getLogger ().setLevel (logging .DEBUG )
73
-
74
- elif o in ('-v' , '--verbose' ):
75
- logging .getLogger ().setLevel (logging .INFO )
71
+ if args .help :
72
+ self .print_help ()
73
+ return
76
74
77
- elif o == '--help' :
78
- self .print_help ()
79
- sys .exit ()
75
+ if args .debug :
76
+ logging .getLogger ().setLevel (logging .DEBUG )
80
77
81
- else :
82
- logger .error ('Unknown option: %s' , o )
83
- self .print_help ()
84
- sys .exit (1 )
78
+ elif args .verbose :
79
+ logging .getLogger ().setLevel (logging .INFO )
85
80
86
- if len (args ) > 0 :
87
- instance_name = args [0 ]
81
+ if args .instance_name :
82
+ instance_name = args .instance_name
83
+ else :
84
+ instance_name = args .instance
88
85
89
86
if instance_name :
90
87
0 commit comments