1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 import os
19 import sys
20 from optparse import OptionParser
21 import pulp.client.utils as utils
22 import pulp.client.auth_utils as auth_utils
23
25 """ Base class for all sub-calls. """
26 - def __init__(self, name="cli", usage=None, shortdesc=None,
27 description=None):
28 self.shortdesc = shortdesc
29 if shortdesc is not None and description is None:
30 description = shortdesc
31 self.debug = 0
32 self.setup_option_parser(usage, description, False)
33 self.generate_options()
34 self._add_common_options()
35 self.name = name
36 self.username = None
37 self.password = None
38 self.cert_filename = None
39 self.key_filename = None
40
42 self.usage = "usage: %prog -u <username> -p <password> " + usage
43 self.parser = OptionParser(usage=self._usage_str(skip_actions),
44 description=description)
45
46
48 """ Common options to all modules. """
49 help = "username for access to Pulp."
50 help = help + " Default user admin is included with base install."
51 self.parser.add_option("-u", "--username", dest="username",
52 help=help)
53 help = "password for access to Pulp."
54 self.parser.add_option("-p", "--password", dest="password",
55 help=help)
56
57
59 """ Validate the arguments passed in and determine what action to take """
60 action = None
61 possiblecmd = utils.findSysvArgs(sys.argv)
62 if len(possiblecmd) > 2:
63 action = possiblecmd[2]
64 elif len(possiblecmd) == 2 and possiblecmd[1] == self.name:
65 self._usage()
66 sys.exit(0)
67 else:
68 return None
69 if action not in self.actions.keys():
70 self._usage()
71 sys.exit(0)
72 return action
73
76
78 retval = self.usage.replace("%prog", os.path.basename(sys.argv[0])) + "\n"
79 if (not skip_actions):
80 retval = retval + "Supported Actions:\n"
81 items = self.actions.items()
82 items.sort()
83 for (name, cmd) in items:
84 retval = retval + "\t%-14s %-25s\n" % (name, cmd)
85 return retval
86
88 print "\nUsage: %s MODULENAME ACTION [options] --help\n" % os.path.basename(sys.argv[0])
89 print "Supported Actions:\n"
90 items = self.actions.items()
91 items.sort()
92 for (name, cmd) in items:
93 print("\t%-14s %-25s" % (name, cmd))
94 print("")
95
98
102
106
108 (self.options, self.args) = self.parser.parse_args()
109 self.username = self.options.username
110 self.password = self.options.password
111
112
113
114 cert_filename, key_filename = auth_utils.admin_cert_paths()
115 if os.path.exists(cert_filename):
116 self.cert_filename = cert_filename
117 self.key_filename = key_filename
118
119 self.load_server()
120 self._do_core()
121
123 "Exit with a code and optional message(s). Saved a few lines of code."
124
125 if msgs:
126 if type(msgs) not in [type([]), type(())]:
127 msgs = (msgs, )
128 for msg in msgs:
129 sys.stderr.write(unicode(msg).encode("utf-8") + '\n')
130 sys.exit(code)
131