1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import os
20 import sys
21
22 import pulp.client.constants as constants
23 from pulp.client.core.basecore import BaseCore, systemExit
24 from pulp.client.connection import UserConnection, RestlibException
25 from pulp.client.logutil import getLogger
26 from pulp.client.repolib import RepoLib
27 from pulp.client.config import Config
28 CFG = Config()
29
30 import gettext
31 _ = gettext.gettext
32 log = getLogger(__name__)
33
34 -class user(BaseCore):
36 usage = "user [OPTIONS]"
37 shortdesc = "user specific actions to pulp server."
38 desc = ""
39 self.name = "user"
40 self.actions = {"create" : "Create a user",
41 "list" : "List available users",
42 "delete" : "Delete a user",}
43
44 BaseCore.__init__(self, "user", usage, shortdesc, desc)
45 self.repolib = RepoLib()
46
48 self.userconn = UserConnection(host=CFG.server.host or "localhost",
49 port=CFG.server.port or 443,
50 username=self.username,
51 password=self.password,
52 cert_file=self.cert_filename,
53 key_file=self.key_filename)
54
56 self.action = self._get_action()
57 if self.action == "create":
58 usage = "user create [OPTIONS]"
59 self.setup_option_parser(usage, "", True)
60 self.parser.add_option("--newusername", dest="newusername",
61 help="new username to create")
62 self.parser.add_option("--newpassword", dest="newpassword",
63 help="password for authentication")
64 self.parser.add_option("--name", dest="name",
65 help="name of user for display purposes")
66 if self.action == "delete":
67 usage = "user delete [OPTIONS]"
68 self.setup_option_parser(usage, "", True)
69 self.parser.add_option("--deleteusername", dest="deleteusername",
70 help="Username of user you wish to delete")
71 if self.action == "list":
72 usage = "user list [OPTIONS]"
73 self.setup_option_parser(usage, "", True)
74
75
83
85 if not self.options.newusername:
86 print("newusername required. Try --help")
87 sys.exit(0)
88 if not self.options.name:
89 self.options.name = ""
90 if not self.options.newpassword:
91 self.options.newpassword = ""
92 try:
93 user = self.userconn.create(self.options.newusername,
94 self.options.newpassword,
95 self.options.name)
96 print _(" Successfully created User [ %s ] with name [ %s ]" % \
97 (user['login'], user["name"]))
98 except RestlibException, re:
99 log.error("Error: %s" % re)
100 systemExit(re.code, re.msg)
101 except Exception, e:
102 log.error("Error: %s" % e)
103 raise
104
106 try:
107 users = self.userconn.users()
108 if not len(users):
109 print _("No users available to list")
110 sys.exit(0)
111 print "+-------------------------------------------+"
112 print " Available Users "
113 print "+-------------------------------------------+"
114 for user in users:
115 print constants.AVAILABLE_USERS_LIST % (user["login"], user["name"])
116 except RestlibException, re:
117 log.error("Error: %s" % re)
118 systemExit(re.code, re.msg)
119 except Exception, e:
120 log.error("Error: %s" % e)
121 raise
122
123
125 if not self.options.deleteusername:
126 print("User's login required. Try --help")
127 sys.exit(0)
128 user = self.userconn.user(login=self.options.deleteusername)
129 if not user:
130 print _(" User [ %s ] does not exist" % \
131 self.options.deleteusername)
132 sys.exit(-1)
133 try:
134 self.userconn.delete(login=self.options.deleteusername)
135 print _(" Successfully deleted User [ %s ] " % self.options.deleteusername)
136 except Exception, e:
137 print _(" Delete operation failed on User [ %s ]. " % \
138 self.options.login)
139 log.error("Error: %s" % e)
140 sys.exit(-1)
141