accounts2 PgToLDAP.py,1.1,1.2
Tom Lynema (lyz)
fedora-extras-commits at redhat.com
Thu Nov 30 03:02:01 UTC 2006
- Previous message (by thread): accounts2 fedoraGroup.schema, 1.2, 1.3 fedoraPerson.schema, 1.4, 1.5 fedoraMembership.schema, 1.2, NONE
- Next message (by thread): rpms/gaim-gaym/FC-6 gaim-gaym.spec,1.4,1.5 sources,1.5,1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: lyz
Update of /cvs/fedora/accounts2
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv12219
Modified Files:
PgToLDAP.py
Log Message:
Mathes new schema now
Index: PgToLDAP.py
===================================================================
RCS file: /cvs/fedora/accounts2/PgToLDAP.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PgToLDAP.py 22 Nov 2006 00:25:45 -0000 1.1
+++ PgToLDAP.py 30 Nov 2006 03:02:00 -0000 1.2
@@ -22,7 +22,7 @@
import ldap, ldif, pgdb, ldap.modlist
from optparse import OptionParser
-version = "0.11"
+version = "0.111"
def parseArgs():
parser = OptionParser(version="%prog " + version)
@@ -189,13 +189,15 @@
ldifWriter = openLdifFile(options.outFile)
# Copy all users from db to ldap/ldif
+ # this will to queries and mappings
+
try:
if verbose:
print "Selecting all users from Postgres Database"
userCursor = dbConn.cursor()
userCursor.execute ("SELECT * FROM person")
- #id, username, email, human_name, gpg_keyid, ssh_key, password, comments, postal_address, telephone, facsimile, affiliation, creation, approval_status, internal_comments, wiki_prefs, ircnick
+ #id, username, email 2, human_name 3, gpg_keyid 4, ssh_key 5, password 6, comments 7, postal_address 8, telephone 9, facsimile 10, affiliation 11, creation 12, approval_status 13, internal_comments 14, wiki_prefs 15, ircnick 16
except:
print "Error selecting users from db"
raise
@@ -211,10 +213,9 @@
else:
print "Adding ldif info for " + user[3] + "."
- #userLdif = {"objectClass" : ["fedoraPerson"] , "displayName": [user[1],"Tom"] , "mail": [user[2]] , "givenName" : [user[3]] , "userCertificate" : [user[4]] , "userPassword" : [user[6]] , "o":["fedoraproject"] , "postalAddress" : [user[8]] , "telephoneNumber" : [user[9]] , "fax" : [user [10]]}
- userLdif = [["objectClass",["fedoraPerson"]] , [ "displayName",[ user[1] ] ]]
+ userLdif = [["objectClass",["fedoraPerson","organizationalUnit"]] , [ "displayName",[ user[1] ] ] ]
userLdif.append(["mail",[str(user[2])]])
- userLdif.append(["bugzillaMail",[str(user[2])]])
+ userLdif.append(["fedoraPersonBugzillaMail",[str(user[2])]])
userLdif.append(["cn",[str(user[3])]])
userLdif.append(["givenName",[str(user[3])]])
userLdif.append(["userCertificate",[str(user[4])]])
@@ -223,11 +224,12 @@
userLdif.append(["postalAddress",[str(user[8])]])
userLdif.append(["telephoneNumber",[str(user[9])]])
userLdif.append(["fax",[str(user[10])]])
- userLdif.append(["o",[str(user[11])]]) # affiliation is set to the o
- userLdif.append(["personCreationDate",[str(user[12])]])
- userLdif.append(["approvalStatus",[str(user[13])]])
+ userLdif.append(["o",[str(user[11])]]) # affiliation is set to the o -- another stretch ??
+ userLdif.append(["fedoraPersonCreationDate",[str(user[12])]])
+ userLdif.append(["fedoraPersonApprovalStatus",[str(user[13])]])
userLdif.append(["description",[str(user[14])]]) #this one may be a streach -- original field was internal comments
- userLdif.append(["ircNick",[str(user[16])]])
+ userLdif.append(["fedoraPersonIrcNick",[str(user[16])]])
+ userLdif.append(["ou",["roles"]])
print userLdif
#for userKey in userLdif.keys():
@@ -241,20 +243,23 @@
ldifWriter.unparse("cn=" + str(user[3]) +",ou=People,dc=fedoraproject,dc=org" , userLdif )
#ldifWriter.unparse("dc=fedoraproject,dc=org, cn=" + user[3] , [ ['ano',['domini']],['uances',['od']] ])
- time.sleep (2)
+ #time.sleep (2)
#ldapConn.add_s(dn, entry)
userCursor.close()
-
+
# Select all groups from the DB
+
try:
if verbose:
print "Selecting all groups from Postgres Database"
groupCursor = dbConn.cursor()
groupCursor.execute ("SELECT * FROM project_group")
- #id, name, owner_id, group_type, needs_sponsor, user_can_remove, prerequisite_id, joinmsg
+
+
+
except:
print "Error selecting groups from db"
raise
@@ -271,11 +276,38 @@
#ldapConn.add_s(dn, entry)
print "Adding group info for " + group[1] + "."
+ #id0, name1, owner_id2, group_type3, needs_sponsor4, user_can_remove5, prerequisite_id6, joinmsg7
+ uidLookupCursor = dbConn.cursor()
+ uidLookupCursor.execute ("SELECT username FROM person where id =" + str(group[2]) )
+ owner = uidLookupCursor.fetchone()
+ if str(group[6]) != "None" :
+ uidLookupCursor.execute ("SELECT name FROM project_group where id =" + str(group[6]) )
+ prereq = uidLookupCursor.fetchone()
+ print prereq
+ else:
+ prereq=["None"]
+ print owner
+
+
+ #id0, name1, owner_id2, group_type3, needs_sponsor4, user_can_remove5, prerequisite_id6, joinmsg7
+ userLdif = [["objectClass",["fedoraGroup"]] ]
+ userLdif.append(["cn",[str(group[1])]])
+ userLdif.append(["fedoraGroupOwner",owner]) # need to get a cn for this not just the id
+ #userLdif.append(["groupOwner",[str(group[2])]]) # need to get a cn for this not just the id
+ userLdif.append(["fedoraGroupType",[str(group[3])]])
+ userLdif.append(["fedoraGroupNeedsSponsor",[str(group[4])]]) #need to convert to bool
+ userLdif.append(["fedoraGroupUserCanRemove",[str(group[5])]])
+ #userLdif.append(["groupPrerequisite",[str(group[6])]])
+ #userLdif.append(["groupPrerequisite",prereq]) not currently in the schema
+ userLdif.append(["fedoraGroupJoinMsg",[str(group[7])]])
+ ldifWriter.unparse("cn=" + str(group[1]) +",ou=fedoraGroups,dc=fedoraproject,dc=org" , userLdif )
- userCursor.close()
+ groupCursor.close()
+
# Select all roles from the DB
+
try:
if verbose:
print "Selecting all roles from Postgres Database"
@@ -296,8 +328,44 @@
ldifWriter.unparse(dn, entry)
else:
#ldapConn.add_s(dn, entry)
- print "Adding role info for " + role[4] + "for user" + str(role[1]) + "."
- userCursor.close()
+ #person_id0, group_project_id1, role_type2, role_domain3, role_status4, internal_comments5, sponsor_id6, creation7, approval8
+
+
+ uidRoleCursor = dbConn.cursor()
+ uidRoleCursor.execute ("SELECT username FROM person where id =" + str(role[0]) )
+ username = uidRoleCursor.fetchone()
+ uidRoleCursor.execute ("SELECT name FROM project_group where id =" + str(role[1]) )
+ group = uidRoleCursor.fetchone()
+ if str(role[6]) != "None" :
+ uidRoleCursor.execute ("SELECT username FROM person where id =" + str(role[6]) )
+ sponsor = uidRoleCursor.fetchone()
+ else:
+ sponsor = ["None"]
+
+ print "Adding " + str(role[4]) + " role info for " + group[0] + " for user " + username[0] + "."
+ #if str(group[6]) != "None" :
+ # uidLookupCursor.execute ("SELECT name FROM project_group where id =" + str(group[6]) )
+ # prereq = uidLookupCursor.fetchone()
+ # print prereq
+ #else:
+ # prereq=["None"]
+ #print owner
+
+ #person_id0, group_project_id1, role_type2, role_domain3, role_status4, internal_comments5, sponsor_id6, creation7, approval8
+
+ roleLdif = [["objectClass",["fedoraRole"]] ]
+ #roleLdif.append(["cn",[str(role[1]),str(role[2])]]) #Fix me
+ roleLdif.append(["fedoraRoleType",[str(role[2])]])
+ roleLdif.append(["fedoraRoleDomain",[str(role[3])]])
+ roleLdif.append(["fedoraRoleStatus",[str(role[4])]])
+ roleLdif.append(["fedoraRoleSponsor",sponsor])
+ roleLdif.append(["fedoraRoleCreationDate",[str(role[7])]])
+ roleLdif.append(["fedoraRoleApprovalDate",[str(role[8])]])
+
+ ldifWriter.unparse("cn=" + group[0] + ",cn=" + str(role[2]) +",cn=" + username[0] + " ou=Roles, ou=fedoraGroups,dc=fedoraproject,dc=org" , roleLdif )
+
+ roleCursor.close()
+
sys.exit(1)
if __name__ == "__main__":
main()
- Previous message (by thread): accounts2 fedoraGroup.schema, 1.2, 1.3 fedoraPerson.schema, 1.4, 1.5 fedoraMembership.schema, 1.2, NONE
- Next message (by thread): rpms/gaim-gaym/FC-6 gaim-gaym.spec,1.4,1.5 sources,1.5,1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list