python/uptodateness: cope with unknown invocation ID
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Thu, 20 Dec 2018 02:57:35 +0000 (15:57 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 19 Jan 2019 18:21:19 +0000 (19:21 +0100)
This can happen if a server has been replaced

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/uptodateness.py

index 3964bd7d6dbef42fd5abd42ae1c28004c57ca361..711407e56417153b0f7122b30a5f87fc60254cf1 100644 (file)
@@ -83,8 +83,13 @@ def get_utdv(samdb, dn):
                            expression=("(&(invocationId=%s)"
                                        "(objectClass=nTDSDSA))" % inv_id),
                            attrs=["distinguishedName", "invocationId"])
-        settings_dn = str(res[0]["distinguishedName"][0])
-        prefix, dsa_dn = settings_dn.split(',', 1)
+        try:
+            settings_dn = str(res[0]["distinguishedName"][0])
+            prefix, dsa_dn = settings_dn.split(',', 1)
+        except IndexError as e:
+            print("Unknown invocation ID %s" % inv_id,
+                  file=sys.stderr)
+            continue
         if prefix != 'CN=NTDS Settings':
             raise CommandError("Expected NTDS Settings DN, got %s" %
                                settings_dn)