Package pulp :: Package client :: Package core :: Module core_user
[hide private]
[frames] | no frames]

Source Code for Module pulp.client.core.core_user

  1  #!/usr/bin/python 
  2  # 
  3  # Pulp Repo management module 
  4  # 
  5  # Copyright (c) 2010 Red Hat, Inc. 
  6   
  7  # This software is licensed to you under the GNU General Public License, 
  8  # version 2 (GPLv2). There is NO WARRANTY for this software, express or 
  9  # implied, including the implied warranties of MERCHANTABILITY or FITNESS 
 10  # FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 
 11  # along with this software; if not, see 
 12  # http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. 
 13  # 
 14  # Red Hat trademarks are not licensed under GPLv2. No permission is 
 15  # granted to use or replicate Red Hat trademarks that are incorporated 
 16  # in this software or its documentation. 
 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):
35 - def __init__(self):
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
47 - def load_server(self):
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
55 - def generate_options(self):
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
76 - def _do_core(self):
77 if self.action == "create": 78 self._create() 79 if self.action == "list": 80 self._list() 81 if self.action == "delete": 82 self._delete()
83
84 - def _create(self):
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
105 - def _list(self):
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
124 - def _delete(self):
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