r26614: Fix options parsing for credentials in Python.
authorJelmer Vernooij <jelmer@samba.org>
Fri, 28 Dec 2007 05:31:42 +0000 (23:31 -0600)
committerStefan Metzmacher <metze@samba.org>
Thu, 27 Dec 2007 23:36:05 +0000 (17:36 -0600)
(This used to be commit 9ef3b7de6baadeb2240ef9d24c55be9dc4cccf1e)

source4/scripting/python/samba/getopt.py

index 8143dcafdb42f27cfd1f5d8c7a5e4869f6b5e19f..3335c55bc68337bafb0382335785a5c10f2ef32e 100644 (file)
@@ -35,12 +35,24 @@ class VersionOptions(optparse.OptionGroup):
 class CredentialsOptions(optparse.OptionGroup):
     def __init__(self, parser):
         optparse.OptionGroup.__init__(self, parser, "Credentials Options")
-        self.add_option("--simple-bind-dn", type="string", metavar="DN",
+        self.add_option("--simple-bind-dn", metavar="DN", action="callback",
+                        callback=self.set_simple_bind_dn, type=str,
                         help="DN to use for a simple bind")
-        self.add_option("--password", type="string", metavar="PASSWORD",
-                        help="Password")
+        self.add_option("--password", metavar="PASSWORD", action="callback",
+                        help="Password", type=str, callback=self.set_password)
+        self.add_option("-U", "--username", metavar="USERNAME", 
+                        action="callback", type=str,
+                        help="username", callback=self.parse_username)
+        self.creds = Credentials()
+
+    def parse_username(self, option, opt_str, arg, parser):
+        self.creds.parse_string(arg)
+
+    def set_password(self, option, opt_str, arg, parser):
+        self.creds.set_password(arg)
+
+    def set_simple_bind_dn(self, option, opt_str, arg, parser):
+        self.creds.set_simple_bind_dn(arg)
 
     def get_credentials(self):
-        creds = Credentials()
-        # FIXME: Update
-        return creds
+        return self.creds