def launch(dryRun=True): sg = proj._shotgundb.sg sgOperatorList = sg.find("CustomNonProjectEntity01", [], fields=["sg_login", "sg_password", "sg_company"]) dbUserDict = proj._db.findNodes("username:/.*/", asDict=True, keyField="username") #pprint(dbUserDict) for sgOpe in sgOperatorList: sSgLogin = sgOpe["sg_login"] sSgPwd = sgOpe["sg_password"] sCompany = sgOpe["sg_company"]["name"] bExists = (sSgLogin in dbUserDict) #print sSgLogin, fromUtf8(sCompany), bExists, sSgPwd if not sSgPwd: if not bExists: logMsg("Cannot create '{}': No password defined.".format(sSgLogin)) continue elif len(sSgPwd) == 32: if not bExists: logMsg("Cannot create '{}': password already encrypted.".format(sSgLogin)) continue sMd5Pwd = sSgPwd else: h = hashlib.md5() h.update(sSgPwd) sMd5Pwd = h.hexdigest() userData = {"username":sSgLogin, "password": sMd5Pwd, "company":fromUtf8(sCompany), } #print userData if bExists: userNode = dbUserDict[sSgLogin] updData = dict((k, v) for k, v in userData.iteritems() if v != userNode.getField(k)) if updData: print "\n", "update user:"******"create user:\n" sMsg += "login: {}\n".format(sSgLogin) sMsg += "pwd: {}\n".format(sSgPwd) print "\n" + sMsg if not dryRun: proj._db.createNode(userData) if (not dryRun) and (sSgPwd != sMd5Pwd): proj.updateSgEntity(sgOpe, sg_password=sMd5Pwd)
def launch(dryRun=True): sg = proj._shotgundb.sg sgOperatorList = sg.find("CustomNonProjectEntity01", [], fields=["sg_login", "sg_password", "sg_company"]) dbUserList = proj._db.findNodes("username:/.*/") dbUserDict = dict((u.username, u) for u in dbUserList) for sgOp in sgOperatorList: sSgLogin, sSgPwd = sgOp["sg_login"], sgOp["sg_password"] sCompany = sgOp["sg_company"]["name"] #print sSgLogin, sSgPwd, toStr(sCompany) if not sSgPwd: continue sgData = { "username":sSgLogin, "password": sSgPwd, "company":fromUtf8(sCompany), } if sSgLogin in dbUserDict: userNode = dbUserDict[sSgLogin] updData = dict((k, v) for k, v in sgData.iteritems() if v != userNode.getField(k)) # updData = {} # for k, v in sgData.iteritems(): # print k, repr(v), repr(userNode.getField(k)) #print userNode._data if updData: print "update user:"******"create user:", sgData if not dryRun: print proj._db.createNode(sgData)