Package Ganga :: Package Utility :: Package AMGAServerTools :: Module groupManagement
[hide private]
[frames] | no frames]

Source Code for Module Ganga.Utility.AMGAServerTools.groupManagement

  1  #!/bin/env python 
  2  #---------------------------------------------------------------------------- 
  3  # Name:         groupManagement.py 
  4  # Purpose:      utility to manage user groups 
  5  # 
  6  # Author:       Alexander Soroko 
  7  # 
  8  # Created:      21/03/2006 
  9  #---------------------------------------------------------------------------- 
 10   
 11  import sys 
 12  import os 
 13  import re 
 14  from certificate import getGridProxyPath 
 15  from mdclient import MDClient 
 16  from mdinterface import CommandException 
 17   
 18  DEBUG = False 
 19  #DEBUG = True 
 20   
 21  #--------------------------------------------------------------------------- 
22 -class Groups:
23 """Represents interface for manipulating user groups""" 24
25 - def __init__(self, 26 host = 'gangamd.cern.ch', 27 port = 8822, 28 login = 'root', 29 password = '', 30 keepalive = False, 31 reqSSL = True, 32 **kwds):
33 34 self._client = MDClient(host = host, 35 port = port, 36 login = login, 37 password = password, 38 keepalive = keepalive) 39 40 if reqSSL: 41 fn = getGridProxyPath() 42 key = kwds.get('key') 43 if not key: 44 key = fn 45 cert = kwds.get('cert') 46 if not cert: 47 cert = fn 48 49 self._client.requireSSL(key, cert) 50 self._client.connect()
51 52 #-----------------------------------------------------------------------
53 - def grpCreate(self, groupname):
54 """Creates a new group with name groupname. 55 It is not possible to create groups beloning to others.""" 56 res = [] 57 cmd = 'grp_create ' + groupname 58 self._client.execute(cmd)
59 60 #-----------------------------------------------------------------------
61 - def grpDelete(self, groupname):
62 """Deletes a group with name groupname (user:groupname). 63 Only root can delete groups of other users""" 64 cmd = 'grp_delete ' + groupname 65 self._client.execute(cmd)
66 67 #-----------------------------------------------------------------------
68 - def grpShow(self, groupname):
69 """Shows all the members belonging to group gropname.""" 70 res = [] 71 cmd = 'grp_show ' + groupname 72 self._client.execute(cmd) 73 while not self._client.eot(): 74 row = self._client.fetchRow() 75 if DEBUG: 76 print row 77 res.append(row) 78 return res
79 80 #-----------------------------------------------------------------------
81 - def grpAddUser(self, groupname, user):
82 """Adds a user to a group. 83 Only owners of a group or root can change group membership""" 84 cmd = 'grp_adduser ' + groupname + ' ' + user 85 self._client.execute(cmd)
86 87 #-----------------------------------------------------------------------
88 - def grpRemoveUser(self, groupname, user):
89 """Removes a user from a group. 90 Only owners of a group or root can change group membership""" 91 cmd = 'grp_removeuser ' + groupname + ' ' + user 92 self._client.execute(cmd)
93 94 #-----------------------------------------------------------------------
95 - def grpMember(self, user = ''):
96 """Shows to which groups a user belongs""" 97 res = [] 98 cmd = 'grp_member' 99 if user: 100 cmd += ' ' + user 101 self._client.execute(cmd) 102 while not self._client.eot(): 103 row = self._client.fetchRow() 104 if DEBUG: 105 print row 106 res.append(row) 107 return res
108 109 #-----------------------------------------------------------------------
110 - def grpList(self, user = ''):
111 """Shows the groups owned by user, by default the current user""" 112 res = [] 113 cmd = 'grp_list' 114 if user: 115 cmd += ' ' + user 116 self._client.execute(cmd) 117 while not self._client.eot(): 118 row = self._client.fetchRow() 119 if DEBUG: 120 print row 121 res.append(row) 122 return res
123 124 125 ################################################################################ 126 usage = """ 127 """ 128