Hi, Attached are fixes for ldap.LDAPObject.add_s(self, dn, modlist) uses which now don't pass 'make-lint' on Fedora 16/Rawhide.
-- / Alexander Bokovoy
>From dd866262c98be779a094a617975145e2fb1e0dd1 Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy <[email protected]> Date: Mon, 28 Nov 2011 14:21:17 +0200 Subject: [PATCH] Be more explicit when passing Entry class to ldap.LDAPObject.add_s() ldap.LDAPObject.add_s(self, dn, modlist) requires two positional arguments. We used to pass our Entry class which implements dictionary access that gives proper way to pass the positional arguments, but PyLint in Fedora 16/Rawhide became more strict about that and can't infer dictionary interface through static checking. Thus, we need to explicitly annotate dictionary passing with **entry syntax. This has additional benefit to remind that we deal with multiple arguments here. --- ipaserver/install/adtrustinstance.py | 6 +++--- ipaserver/install/krbinstance.py | 4 ++-- ipaserver/install/replication.py | 14 +++++++------- ipaserver/install/service.py | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ipaserver/install/adtrustinstance.py b/ipaserver/install/adtrustinstance.py index 96f99dc9b76370c07b727e8e94ccabfe7afca074..2f6d75bb2921eca455e49cc970ddc68e21e1ce55 100644 --- a/ipaserver/install/adtrustinstance.py +++ b/ipaserver/install/adtrustinstance.py @@ -99,7 +99,7 @@ class ADTRUSTInstance(service.Service): entry.setValues("objectclass", ["account", "simplesecurityobject"]) entry.setValues("uid", "samba") entry.setValues("userPassword", self.smb_dn_pwd) - self.admin_conn.add_s(entry) + self.admin_conn.add_s(**entry) # And finally grant it permission to read NT passwords, we do not want # to support LM passwords so there is no need to allow access to them. @@ -188,7 +188,7 @@ class ADTRUSTInstance(service.Service): entry = ipaldap.Entry(self.trust_dn) entry.setValues("objectclass", ["nsContainer"]) entry.setValues("cn", "trusts") - self.admin_conn.add_s(entry) + self.admin_conn.add_s(**entry) entry = ipaldap.Entry(self.smb_dom_dn) entry.setValues("objectclass", ["sambaDomain", "nsContainer"]) @@ -196,7 +196,7 @@ class ADTRUSTInstance(service.Service): entry.setValues("sambaDomainName", self.netbios_name) entry.setValues("sambaSID", self.__gen_sid_string()) #TODO: which MAY attributes do we want to set ? - self.admin_conn.add_s(entry) + self.admin_conn.add_s(**entry) def __write_smb_conf(self): self.fstore.backup_file(self.smb_conf) diff --git a/ipaserver/install/krbinstance.py b/ipaserver/install/krbinstance.py index 6ed38516223a56e723bcc9cf643ac2b362200da4..72c22d7971a024f19e06c2eae8d4129f6f60cf1e 100644 --- a/ipaserver/install/krbinstance.py +++ b/ipaserver/install/krbinstance.py @@ -259,7 +259,7 @@ class KrbInstance(service.Service): entry.setValues("nsSaslMapFilterTemplate", '(krbPrincipalName=\\1@\\2)') try: - self.admin_conn.add_s(entry) + self.admin_conn.add_s(**entry) except ldap.ALREADY_EXISTS: root_logger.critical("failed to add Full Principal Sasl mapping") raise e @@ -272,7 +272,7 @@ class KrbInstance(service.Service): entry.setValues("nsSaslMapFilterTemplate", '(krbPrincipalName=&@%s)' % self.realm) try: - self.admin_conn.add_s(entry) + self.admin_conn.add_s(**entry) except ldap.ALREADY_EXISTS: root_logger.critical("failed to add Name Only Sasl mapping") raise e diff --git a/ipaserver/install/replication.py b/ipaserver/install/replication.py index a139fd0fbe7168193dcfa6ba5f4d19f20d395c52..7aaf959a3904916101b0454b6df502e2996f2771 100644 --- a/ipaserver/install/replication.py +++ b/ipaserver/install/replication.py @@ -227,7 +227,7 @@ class ReplicationManager(object): ent.setValues("sn", "replication manager pseudo user") try: - conn.add_s(ent) + conn.add_s(**ent) except ldap.ALREADY_EXISTS: conn.modify_s(dn, [(ldap.MOD_REPLACE, "userpassword", pw)]) pass @@ -277,7 +277,7 @@ class ReplicationManager(object): entry.setValues('nsds5replicabinddn', [replica_binddn]) entry.setValues('nsds5replicalegacyconsumer', "off") - conn.add_s(entry) + conn.add_s(**entry) def setup_changelog(self, conn): dn = "cn=changelog5, cn=config" @@ -287,7 +287,7 @@ class ReplicationManager(object): entry.setValues('cn', "changelog5") entry.setValues('nsslapd-changelogdir', dirpath) try: - conn.add_s(entry) + conn.add_s(**entry) except ldap.ALREADY_EXISTS: return @@ -310,7 +310,7 @@ class ReplicationManager(object): entry.setValues('nsmultiplexorbinddn', self.repl_man_dn) entry.setValues('nsmultiplexorcredentials', self.repl_man_passwd) - self.conn.add_s(entry) + conn.add_s(**entry) done = True except ldap.ALREADY_EXISTS: benum += 1 @@ -378,7 +378,7 @@ class ReplicationManager(object): entry.setValues("objectclass", ["account", "simplesecurityobject"]) entry.setValues("uid", "passsync") entry.setValues("userPassword", password) - conn.add_s(entry) + conn.add_s(**entry) # Add it to the list of users allowed to bypass password policy extop_dn = "cn=ipa_pwd_extop,cn=plugins,cn=config" @@ -476,7 +476,7 @@ class ReplicationManager(object): if iswinsync: self.setup_winsync_agmt(entry, win_subtree) - a_conn.add_s(entry) + a_conn.add_s(**entry) try: mod = [(ldap.MOD_ADD, 'nsDS5ReplicatedAttributeListTotal', @@ -765,7 +765,7 @@ class ReplicationManager(object): entry.setValues("ipaConfigString", "winsync:%s" % self.hostname) try: - self.conn.add_s(entry) + self.conn.add_s(**entry) except Exception, e: root_logger.info("Failed to create public entry for winsync replica") diff --git a/ipaserver/install/service.py b/ipaserver/install/service.py index 249727b15b6f3c879336c36d43410fc7234d9d9d..2211ba5946d8a1af99f33044d80e57be8a017992 100644 --- a/ipaserver/install/service.py +++ b/ipaserver/install/service.py @@ -289,7 +289,7 @@ class Service(object): "enabledService", "startOrder " + str(order)) try: - conn.add_s(entry) + conn.add_s(**entry) except ldap.ALREADY_EXISTS, e: root_logger.critical("failed to add %s Service startup entry" % name) raise e -- 1.7.7.3
_______________________________________________ Freeipa-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/freeipa-devel
