python/samdb: fetch specific error if there are more than one search results
authorBjörn Baumbach <bb@sernet.de>
Wed, 18 Dec 2019 16:15:13 +0000 (17:15 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 21 Jan 2020 14:38:46 +0000 (14:38 +0000)
There can be more than one contact with the same name.

Signed-off-by: Björn Baumbach <bb@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
python/samba/samdb.py

index 6d716b07c2950bea3e5f1e5aead286d466b84c1b..ec4affa24b7e3b9a073c2598f3ff422aa2a7e84a 100644 (file)
@@ -334,6 +334,12 @@ changetype: modify
                                            expression="%s" % filter,
                                            attrs=[])
 
+                if len(targetmember) > 1:
+                    memberlist_str = ""
+                    for msg in targetmember:
+                        memberlist_str += "%s\n" % msg.get("dn")
+                    raise Exception('Found multiple results for "%s":\n%s' %
+                                    (member, memberlist_str))
                 if len(targetmember) == 0 and foreign_msg is not None:
                     targetmember = [foreign_msg]
                 if len(targetmember) != 1: