samba-tool: improved error handling in user setexpiry
authorAndrew Tridgell <tridge@samba.org>
Wed, 1 Jun 2011 04:46:04 +0000 (14:46 +1000)
committerAndrew Tridgell <tridge@samba.org>
Wed, 1 Jun 2011 07:24:36 +0000 (17:24 +1000)
source4/scripting/python/samba/netcmd/user.py
source4/scripting/python/samba/samdb.py

index 15be4bb87fa8c0e2bbd8d162bba76031a1658c27..6acf52d790f5651346c82dcff55e8d8af5e4c8f7 100644 (file)
@@ -151,7 +151,11 @@ class cmd_user_setexpiry(Command):
         samdb = SamDB(url=H, session_info=system_session(),
             credentials=creds, lp=lp)
 
-        samdb.setexpiry(filter, days*24*3600, no_expiry_req=noexpiry)
+        try:
+            samdb.setexpiry(filter, days*24*3600, no_expiry_req=noexpiry)
+        except Exception, msg:
+            raise CommandError("Failed to set expiry for user %s: %s" % (username or filter, msg))
+        print("Set expiry for user %s to %u days" % (username or filter, days))
 
 class cmd_user(SuperCommand):
     """User management [server connection needed]"""
index 2cea198e6bfb7b0022174631c52e15ac9c38b506..a5c627e5b5e48dc78d66e838c90b070590da94ea 100644 (file)
@@ -108,6 +108,8 @@ userAccountControl: %u
         """
         res = self.search(base=self.domain_dn(), scope=ldb.SCOPE_SUBTREE,
                           expression=search_filter, attrs=[])
+        if len(res) == 0:
+                raise Exception('Unable to find user "%s"' % search_filter)
         assert(len(res) == 1)
         user_dn = res[0].dn
 
@@ -411,6 +413,8 @@ unicodePwd:: %s
             res = self.search(base=self.domain_dn(), scope=ldb.SCOPE_SUBTREE,
                           expression=search_filter,
                           attrs=["userAccountControl", "accountExpires"])
+            if len(res) == 0:
+                raise Exception('Unable to find user "%s"' % search_filter)
             assert(len(res) == 1)
             user_dn = res[0].dn