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 <aboko...@redhat.com>
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
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to