[Cluster-devel] conga/luci/utils luci_admin
rmccabe at sourceware.org
rmccabe at sourceware.org
Thu Aug 3 15:55:55 UTC 2006
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2006-08-03 15:55:55
Modified files:
luci/utils : luci_admin
Log message:
restore additional user info, nitpicking
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/utils/luci_admin.diff?cvsroot=cluster&r1=1.36&r2=1.37
--- conga/luci/utils/luci_admin 2006/08/03 12:26:38 1.36
+++ conga/luci/utils/luci_admin 2006/08/03 15:55:54 1.37
@@ -73,8 +73,9 @@
inituser = file(INITUSER_FILE_PATH, 'w')
try: os.chmod(INITUSER_FILE_PATH, 0600)
except OSError, e:
- print 'An error occurred while saving',user,'password:',e
- try: os.unlink(INITUSER_FILE_PATH)
+ sys.stderr.write('An error occurred while saving user' + user + '\'s password: ' + e + '\n')
+ try:
+ os.unlink(INITUSER_FILE_PATH)
except: pass
inituser.close()
return -1
@@ -260,6 +261,7 @@
import ImageFile
import Products.PluggableAuthService.plugins.ZODBUserManager
import BTrees.OOBTree
+ from DateTime import DateTime
ImageFile.ImageFile.__init__ = lambda x,y,z:None
sys.stderr = orig_stderr
@@ -344,23 +346,25 @@
for u in userList:
id = u.getAttribute('id')
if not id:
+ transaction.abort()
sys.stderr.write('Missing ID for user\n')
- continue
+ return -1
id = str(id)
passwd = u.getAttribute('passwd')
if not passwd:
+ transaction.abort()
sys.stderr.write('Missing password for user \"' + id + '\"\n')
- continue
+ return -1
passwd = str(passwd)
if id == 'admin':
try:
acl_users._user_passwords['admin'] = passwd
- transaction.commit()
except:
+ transaction.abort()
sys.stderr.write('Unable to restore admin password.')
- continue
+ return -1
else:
email = u.getAttribute('email')
if not email:
@@ -372,9 +376,24 @@
'username': id,
'roles': [ 'Member' ],
'domains': [],
- 'email': email
+ 'email': email,
+ 'must_change_password': False
}
+ login_time = u.getAttribute('login_time')
+ if login_time:
+ props['login_time'] = DateTime(str(login_time))
+
+ last_login_time = u.getAttribute('last_login_time')
+ if last_login_time:
+ props['last_login_time'] = DateTime(str(last_login_time))
+
+ must_change_passwd = u.getAttribute('must_change_password')
+ if must_change_passwd:
+ must_change_passwd = str(must_change_passwd)
+ if must_change_passwd == 'True' or '1':
+ props['must_change_password'] = True
+
portal_reg.addMember(id, passwd, props)
member = portal_mem.getMemberById(id)
@@ -392,16 +411,17 @@
except:
transaction.abort()
sys.stderr.write('An error occurred while restoring the password for user \"' + id + '\"\n')
+ return -1
verbose.write('Added user \"' + id + '\"\n')
- transaction.commit()
+ transaction.commit()
try:
x = app.luci.systems.storage
if not x:
raise
except:
- sys.stderr.write('Cannot find the Luci storage systems directory. Your Luci installation may be corrupt.\n')
transaction.abort()
+ sys.stderr.write('Cannot find the Luci storage systems directory. Your Luci installation may be corrupt.\n')
return -1
systemList = node.getElementsByTagName('systemList')
@@ -415,8 +435,8 @@
for s in systemList:
id = s.getAttribute('id')
if not id:
- sys.stderr.write('Missing ID for storage system. Your backup may be corrupt.\n')
transaction.abort()
+ sys.stderr.write('Missing ID for storage system. Your backup may be corrupt.\n')
return -1
id = str(id)
try:
@@ -432,8 +452,8 @@
new_system.manage_acquiredPermissions([])
new_system.manage_role('View', ['Access contents information','View'])
except:
- sys.stderr.write('An error occurred while restoring storage system \"' + id + '\"\n')
transaction.abort()
+ sys.stderr.write('An error occurred while restoring storage system \"' + id + '\"\n')
return -1
userPerms = s.getElementsByTagName('permList')
@@ -459,8 +479,8 @@
if not x:
raise
except:
- sys.stderr.write('Cannot find the Luci cluster directory. Your Luci installation may be corrupt.\n')
transaction.abort()
+ sys.stderr.write('Cannot find the Luci cluster directory. Your Luci installation may be corrupt.\n')
return -1
clusterList = node.getElementsByTagName('clusterList')
@@ -474,8 +494,8 @@
for c in clusterList:
id = c.getAttribute('id')
if not id:
- sys.stderr.write('Cluster element is missing id\n')
transaction.abort()
+ sys.stderr.write('Cluster element is missing id\n')
return -1
id = str(id)
@@ -494,8 +514,8 @@
new_cluster.manage_acquiredPermissions([])
new_cluster.manage_role('View', ['Access contents information','View'])
except:
- sys.stderr.write('An error occurred while restoring the cluster \"' + id + '\"\n')
transaction.abort()
+ sys.stderr.write('An error occurred while restoring the cluster \"' + id + '\"\n')
return -1
viewperm = list()
@@ -524,8 +544,10 @@
for i in clusterSystems:
newsys = i.getAttribute('id')
if not newsys:
+ transaction.abort()
sys.stderr.write('Storage system missing name for cluster \"' + id + '\"\n')
- continue
+ return -1
+
newsys = str(newsys)
stitle = i.getAttribute('title')
if not stitle:
@@ -541,8 +563,8 @@
newcs.manage_acquiredPermissions([])
newcs.manage_role('View', ['Access contents information','View'])
except:
- sys.stderr.write('An error occurred while restoring the storage system \"' + newsys + '\" for cluster \"' + id + '\"\n')
transaction.abort()
+ sys.stderr.write('An error occurred while restoring the storage system \"' + newsys + '\" for cluster \"' + id + '\"\n')
return -1
transaction.commit()
@@ -551,10 +573,12 @@
newcs.manage_setLocalRoles(i, ['View'])
verbose.write('Added view permission to cluster system \"' + newsys + '\" for \"' + i + '\"\n')
except:
- sys.stderr.write('An error occurred while restoring permissions for cluster system \"' + newsys + '\" in cluster \"' + id + '\" for user \"' + i + '\"\n')
transaction.abort()
+ sys.stderr.write('An error occurred while restoring permissions for cluster system \"' + newsys + '\" in cluster \"' + id + '\" for user \"' + i + '\"\n')
return -1
+
verbose.write('Added storage system \"' + newsys + '\" for cluster \"' + id + '\"\n')
+
verbose.write('Added cluster \"' + id + '\"\n')
transaction.commit()
@@ -707,14 +731,13 @@
sys.stderr.write('An error occurred while saving user information.')
return -1
- save_member_properties = [ 'login_time', 'last_login_time', 'must_change_password', 'email' ]
try:
membertool = getToolByName(app.luci, 'portal_membership')
if not membertool:
raise
for mem in membertool.listMembers():
try:
- for i in save_member_properties:
+ for i in [ 'login_time', 'last_login_time', 'must_change_password', 'email' ]:
prop = mem.getProperty(i)
if prop != '':
users[mem.id][i] = str(prop)
@@ -770,6 +793,7 @@
csystem_hash['title'] = '__luci__:csystem:' + cluster_name
clusters[cluster_name]['csystemList'][csystem[0]] = csystem_hash
+ transaction.commit()
conn.close()
db.pack()
db.close()
@@ -884,7 +908,7 @@
try:
(pid, status) = os.waitpid(childpid, 0)
except OSError, (errno, msg):
- print __name__, "waitpid:", msg
+ sys.stderr.write(__name__ + 'waitpid: ' + msg + '\n')
if os.WIFEXITED(status):
status = os.WEXITSTATUS(status)
@@ -939,9 +963,7 @@
-
-def generate_password():
- password = raw_input('Enter password: ')
+def generate_password_hash(password):
salt_choices = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789./")
@@ -964,22 +986,22 @@
def init(argv):
if luci_initialized():
- print 'Luci site has been already initialized'
- print 'If you want to reset admin password, execute'
- print argv[0] + ' password'
+ sys.stderr.write('Luci site has been already initialized.\n')
+ sys.stderr.write('If you want to reset admin password, execute\n')
+ sys.stderr.write('\t' + argv[0] + ' password\n')
sys.exit(1)
- pass
- print 'Initializing Luci site'
+ print 'Initializing the Luci server'
print
print 'Generating SSL certificates...'
if generate_ssl_certs() == False:
- print 'failed. exiting ...'
+ sys.stderr.write('failed. exiting ...\n')
sys.exit(1)
print
- print 'Creating \'admin\' user'
- save_password('admin', generate_password())
- print 'Luci server has been successfully initialized'
+ print 'Creating the \'admin\' user'
+ password = raw_input('Enter password: ')
+ save_password('admin', generate_password_hash(password))
+ print 'The Luci server has been successfully initialized'
restart_message()
@@ -988,17 +1010,16 @@
def password(argv):
if not luci_initialized():
- print 'Luci site has not yet been initialized'
- print 'To initialize it, execute'
- print argv[0] + ' init'
+ sys.stderr.write('The Luci site has not been initialized.\n')
+ sys.stderr.write('To initialize it, execute\n')
+ sys.stderr.write('\t' + argv[0] + ' init\n')
sys.exit(1)
- pass
- print 'Reseting admin password'
+ print 'Resetting the admin user\'s password'
print
password = raw_input('Enter password: ')
if not set_zope_passwd('admin', password):
- print 'admin password has been successfully reset'
+ print 'The admin password has been successfully reset.'
restart_message()
@@ -1007,20 +1028,21 @@
def backup(argv):
if not luci_initialized():
- print 'Luci site has not yet been initialized'
- print 'To initialize it, execute'
- print argv[0] + ' init'
+ sys.stderr.write('The Luci server has not yet been initialized\n')
+ sys.stderr.write('To initialize it, execute\n')
+ sys.stderr.write('\t' + argv[0] + ' init\n')
sys.exit(1)
print 'Backing up the Luci server...'
- try: os.umask(077)
+ try:
+ os.umask(077)
except: pass
doc = luci_backup(argv[2:])
restore_luci_fsattr()
if not doc:
- sys.stderr.write('The Luci backup failed.\n')
+ sys.stderr.write('The Luci backup failed. Exiting.\n')
sys.exit(1)
try:
@@ -1075,7 +1097,7 @@
if luci_restore(argv[2:]):
ret = False
- print 'The Luci restore failed. Try reinstalling Luci, then restoring again.'
+ sys.stderr.write('The Luci restore failed. Try reinstalling Luci, then restoring again.\n')
else:
ret = True
print 'Restore was successful.'
@@ -1103,15 +1125,13 @@
if len(argv) != 2:
luci_help(argv)
sys.exit(1)
- pass
# only root can modify Luci server
if os.getuid() != 0:
- print 'Only root can modify Luci server.'
- print 'Try again with root privileges.'
+ sys.stderr.write('Only root can modify Luci server.\n')
+ sys.stderr.write('Try again with root privileges.\n')
sys.exit(2)
- pass
if 'init' in argv:
@@ -1125,8 +1145,7 @@
elif 'help' in argv:
luci_help(argv)
else:
- print 'Unknown command'
- print
+ sys.stderr.write('Unknown command\n\n')
luci_help(argv)
sys.exit(1)
More information about the Cluster-devel
mailing list