From: rmccabe@sourceware.org <rmccabe@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga/luci/utils luci_admin
Date: 16 Jun 2006 17:44:17 -0000 [thread overview]
Message-ID: <20060616174417.446.qmail@sourceware.org> (raw)
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2006-06-16 17:44:17
Modified files:
luci/utils : luci_admin
Log message:
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/utils/luci_admin.diff?cvsroot=cluster&r1=1.8&r2=1.9
--- conga/luci/utils/luci_admin 2006/06/16 05:35:22 1.8
+++ conga/luci/utils/luci_admin 2006/06/16 17:44:17 1.9
@@ -74,45 +74,50 @@
try:
node = xml.dom.minidom.parse(backupfn)
except:
- stderr.write('Unable to open the luci backup file \"' + backupfn + '\"\n')
+ stderr.write('Unable to open the luci backup file \"'+ backupfn +'\"\n')
sys.exit(1)
- if node.firstChild.nodeName != 'luci':
- 'The backup file \"' + backupfn + '\" is not in the expected format (expected <luci>)\n'
+ node = node.getElementsByName('luci')
+ if not node:
+ sys.stderr.write('Backup file is missing the \'luci\' tag\n')
sys.exit(1)
- if not node.getElementsByTagName('backupData'):
- 'The backup file \"' + backupfn + '\" is not in the expected format (expected <luci>)\n'
+ node = node.getElementsByName('backupData')
+ if not node:
+ sys.stderr.write('Backup file is missing the \'backupData\' tag\n')
sys.exit(1)
tempuser = AccessControl.User.UnrestrictedUser('admin', '',
('manage','Manager', 'Owner', 'View', 'Authenticated'), [])
+
newSecurityManager(None, tempuser)
app = conn.root()['Application']
AppInitializer(app).initialize()
portal_mem = app.unrestrictedTraverse('/luci/portal_membership')
+
userList = node.getElementsByTagName('user')
for u in userList:
id = u.getAttribute('id')
if not id:
- sys.stderr.write('Missing ID for user')
+ sys.stderr.write('Missing ID for user\n')
continue
id = str(id)
passwd = u.getAttribute('passwd')
if not passwd:
- sys.stderr.write('Missing password for user \"' + id + '\"')
+ sys.stderr.write('Missing password for user \"' + id + '\"\n')
continue
passwd = str(passwd)
- email = u.getAttribute('email')
- if not email:
- email = id + '@luci.example.org'
- else:
- email = str(email)
if id != 'admin':
+ email = u.getAttribute('email')
+ if not email:
+ email = id + '@luci.example.org'
+ else:
+ email = str(email)
+
props = {
'username': id,
'roles': [ 'Member' ],
@@ -126,22 +131,37 @@
member = portal_mem.getMemberById(id)
if not member:
transaction.abort()
- sys.stderr.write('Error adding user \"' + id + '\"')
- #transaction.commit()
+ sys.stderr.write('Error adding user \"' + id + '\"\n')
+ #transaction.commit()
x = app.unrestrictedTraverse('/luci/systems/storage')
- systemList = node.getElementsByTagName('system')
+ systemList = node.getElementsByTagName('systemList')
+ if not systemList:
+ sys.write.stderr('No storage systems to add')
+ else:
+ systemList = systemList.getElementsByTagName('system')
for s in systemList:
id = s.getAttribute('id')
if not id:
+ sys.stderr.write('Missing ID for storage system')
continue
id = str(id)
title = str(s.getAttribute('title'))
x.manage_addFolder(id)
- new_system = app.unrestrictedTraverse('/luci/systems/storage/' + id)
+ try:
+ new_system = app.unrestrictedTraverse('/luci/systems/storage/' + id)
+ if not new_system:
+ raise
+ except:
+ sys.stderr.write('Unable to add system \"' + id + '\"\n')
+ transaction.abort()
+ sys.exit(1)
- userPerms = s.getElementsByTagName('permList')[0].childNodes
+ userPerms = s.getElementsByTagName('permList')
+ if not userPerms:
+ continue
+ userPerms = userPerms.getElementsByTagName('ref')
for i in userPerms:
if i.nodeType != xml.dom.Node.ELEMENT_NODE:
continue
@@ -149,7 +169,6 @@
if not newuser:
continue
new_system.setLocalRoles(newuser, ['View'])
-
#transaction.commit()
x = app.unrestrictedTraverse('/luci/systems/cluster')
@@ -157,17 +176,24 @@
for c in clusterList:
id = c.getAttribute('id')
if not id:
+ sys.stderr.write('Cluster element is missing id\n')
continue
id = str(id)
title = str(c.getAttribute('title'))
- new_cluster = app.unrestrictedTraverse('/luci/systems/cluster/' + id)
- if not new_cluster:
- print 'error adding cluster',id
+ try:
+ new_cluster = app.unrestrictedTraverse('/luci/systems/cluster/'+ id)
+ if not new_cluster:
+ raise
+ except:
+ sys.stderr.write('Error adding cluster \"' + id + '\"\n')
tranaction.abort()
sys.exit(1)
- userPerms = c.getElementsByTagName('permList')[0].childNodes
+ userPerms = c.getElementsByTagName('permList')
+ if not userPerms:
+ continue
+ userPerms = userPerms.getElementsByTagName('ref')
for i in userPerms:
if i.nodeType != xml.dom.Node.ELEMENT_NODE:
continue
@@ -176,15 +202,19 @@
continue
new_cluster.setLocalRoles(newuser, ['View'])
- clusterSystems = c.getElementsByTagName('systemsList')[0].childNodes
+ clusterSystems = c.getElementsByTagName('systemsList')
+ if not clusterSystems:
+ sys.stderr.write('No cluster storage systems to add\n')
+ continue
+ clusterSystems = clusterSystems.getElementsByTagName('ref')
for i in clusterSystems:
- if i.nodeType != xml.dom.Node.ELEMENT_NODE:
- continue
newsys = i.getAttribute('name')
if not newsys:
+ sys.stderr.write('Cluster system element missing name tag\n')
continue
newsys = str(newsys)
x.manage_addFolder(newsys)
+ #transaction.commit()
transaction.abort()
conn.close()
next reply other threads:[~2006-06-16 17:44 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-16 17:44 rmccabe [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-03-25 20:14 [Cluster-devel] conga/luci/utils luci_admin rmccabe
2007-09-19 5:17 rmccabe
2007-08-10 18:36 rmccabe
2007-08-10 18:33 rmccabe
2007-08-10 18:32 rmccabe
2007-08-07 20:22 rmccabe
2006-10-13 6:56 kupcevic
2006-08-18 18:03 rmccabe
2006-08-04 19:19 rmccabe
2006-08-04 18:37 rmccabe
2006-08-03 22:58 kupcevic
2006-08-03 21:19 rmccabe
2006-08-03 21:11 rmccabe
2006-08-03 16:32 rmccabe
2006-08-03 15:55 rmccabe
2006-08-03 12:26 rmccabe
2006-08-03 3:58 rmccabe
2006-08-03 3:30 rmccabe
2006-08-02 23:29 rmccabe
2006-08-02 20:52 rmccabe
2006-08-02 20:45 rmccabe
2006-07-26 1:17 rmccabe
2006-07-25 22:36 rmccabe
2006-07-11 18:46 rmccabe
2006-07-11 14:51 rmccabe
2006-06-29 18:04 rmccabe
2006-06-29 17:51 rmccabe
2006-06-27 19:50 rmccabe
2006-06-27 19:40 rmccabe
2006-06-27 18:19 rmccabe
2006-06-26 22:30 rmccabe
2006-06-26 20:01 rmccabe
2006-06-21 23:06 rmccabe
2006-06-21 17:41 rmccabe
2006-06-21 17:06 rmccabe
2006-06-18 15:02 rmccabe
2006-06-18 12:50 rmccabe
2006-06-18 3:26 rmccabe
2006-06-16 23:19 rmccabe
2006-06-16 19:35 rmccabe
2006-06-16 18:17 rmccabe
2006-06-16 5:35 rmccabe
2006-06-13 18:42 rmccabe
2006-06-13 17:36 rmccabe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060616174417.446.qmail@sourceware.org \
--to=rmccabe@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).