svn commit: samba r26629 - in branches/SAMBA_4_0: .
source/scripting/python/samba
jelmer at samba.org
jelmer at samba.org
Sat Dec 29 18:14:19 GMT 2007
Author: jelmer
Date: 2007-12-29 18:14:18 +0000 (Sat, 29 Dec 2007)
New Revision: 26629
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26629
Log:
python: Improve documentation in various places.
Modified:
branches/SAMBA_4_0/
branches/SAMBA_4_0/source/scripting/python/samba/getopt.py
branches/SAMBA_4_0/source/scripting/python/samba/provision.py
branches/SAMBA_4_0/source/scripting/python/samba/samba3.py
Changeset:
Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...
Modified: branches/SAMBA_4_0/source/scripting/python/samba/getopt.py
===================================================================
--- branches/SAMBA_4_0/source/scripting/python/samba/getopt.py 2007-12-29 18:14:15 UTC (rev 26628)
+++ branches/SAMBA_4_0/source/scripting/python/samba/getopt.py 2007-12-29 18:14:18 UTC (rev 26629)
@@ -36,28 +36,28 @@
def __init__(self, parser):
optparse.OptionGroup.__init__(self, parser, "Credentials Options")
self.add_option("--simple-bind-dn", metavar="DN", action="callback",
- callback=self.set_simple_bind_dn, type=str,
+ callback=self._set_simple_bind_dn, type=str,
help="DN to use for a simple bind")
self.add_option("--password", metavar="PASSWORD", action="callback",
- help="Password", type=str, callback=self.set_password)
+ 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)
+ help="Username", callback=self._parse_username)
self.add_option("-W", "--workgroup", metavar="WORKGROUP",
action="callback", type=str,
- help="Workgroup", callback=self.parse_workgroup)
+ help="Workgroup", callback=self._parse_workgroup)
self.creds = Credentials()
- def parse_username(self, option, opt_str, arg, parser):
+ def _parse_username(self, option, opt_str, arg, parser):
self.creds.parse_string(arg)
- def parse_workgroup(self, option, opt_str, arg, parser):
+ def _parse_workgroup(self, option, opt_str, arg, parser):
self.creds.set_domain(arg)
- def set_password(self, option, opt_str, arg, parser):
+ 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):
+ def _set_simple_bind_dn(self, option, opt_str, arg, parser):
self.creds.set_bind_dn(arg)
def get_credentials(self):
Modified: branches/SAMBA_4_0/source/scripting/python/samba/provision.py
===================================================================
--- branches/SAMBA_4_0/source/scripting/python/samba/provision.py 2007-12-29 18:14:15 UTC (rev 26628)
+++ branches/SAMBA_4_0/source/scripting/python/samba/provision.py 2007-12-29 18:14:18 UTC (rev 26629)
@@ -23,6 +23,7 @@
from ldb import Dn, SCOPE_SUBTREE, SCOPE_ONELEVEL, SCOPE_BASE, LdbError, \
LDB_ERR_NO_SUCH_OBJECT, timestring, CHANGETYPE_MODIFY, CHANGETYPE_NONE
+"""Functions for setting up a Samba configuration."""
DEFAULTSITE = "Default-First-Site-Name"
@@ -53,7 +54,12 @@
def install_ok(lp, session_info, credentials):
- """Check whether the current install seems ok."""
+ """Check whether the current install seems ok.
+
+ :param lp: Loadparm context
+ :param session_info: Session information
+ :param credentials: Credentials
+ """
if lp.get("realm") == "":
return False
ldb = Ldb(lp.get("sam database"), session_info=session_info,
Modified: branches/SAMBA_4_0/source/scripting/python/samba/samba3.py
===================================================================
--- branches/SAMBA_4_0/source/scripting/python/samba/samba3.py 2007-12-29 18:14:15 UTC (rev 26628)
+++ branches/SAMBA_4_0/source/scripting/python/samba/samba3.py 2007-12-29 18:14:18 UTC (rev 26629)
@@ -26,7 +26,7 @@
import tdb
-class TdbDatabase:
+class TdbDatabase(object):
"""Simple Samba 3 TDB database reader."""
def __init__(self, file):
"""Open a file.
@@ -228,6 +228,7 @@
class SecretsDatabase(TdbDatabase):
+ """Samba 3 Secrets database reader."""
def get_auth_password(self):
return self.tdb.get("SECRETS/AUTH_PASSWORD")
@@ -246,6 +247,10 @@
yield k[len("SECRETS/LDAP_BIND_PW/"):].rstrip("\0")
def domains(self):
+ """Iterate over domains in this database.
+
+ :return: Iterator over the names of domains in this database.
+ """
for k in self.tdb.keys():
if k.startswith("SECRETS/SID/"):
yield k[len("SECRETS/SID/"):].rstrip("\0")
@@ -287,10 +292,15 @@
SHARE_DATABASE_VERSION_V2 = 2
class ShareInfoDatabase(TdbDatabase):
+ """Samba 3 Share Info database reader."""
def _check_version(self):
assert self.tdb.fetch_int32("INFO/version\0") in (SHARE_DATABASE_VERSION_V1, SHARE_DATABASE_VERSION_V2)
def get_secdesc(self, name):
+ """Obtain the security descriptor on a particular share.
+
+ :param name: Name of the share
+ """
secdesc = self.tdb.get("SECDESC/%s" % name)
# FIXME: Run ndr_pull_security_descriptor
return secdesc
@@ -302,9 +312,11 @@
self.shareinfo = shareinfo
def __len__(self):
+ """Number of shares."""
return len(self.lp) - 1
def __iter__(self):
+ """Iterate over the share names."""
return self.lp.__iter__()
@@ -329,7 +341,7 @@
ACB_NO_AUTH_DATA_REQD = 0x00080000
acb_info_mapping = {
- 'N': ACB_PWNOTREQ, # 'N'o password.
+ 'N': ACB_PWNOTREQ, # 'N'o password.
'D': ACB_DISABLED, # 'D'isabled.
'H': ACB_HOMDIRREQ, # 'H'omedir required.
'T': ACB_TEMPDUP, # 'T'emp account.
@@ -344,6 +356,11 @@
}
def decode_acb(text):
+ """Decode a ACB field.
+
+ :param text: ACB text
+ :return: integer with flags set.
+ """
assert not "[" in text and not "]" in text
ret = 0
for x in text:
@@ -352,6 +369,10 @@
class SAMUser:
+ """Samba 3 SAM User.
+
+ :note: Unknown or unset fields are set to None.
+ """
def __init__(self, name, uid=None, lm_password=None, nt_password=None, acct_ctrl=None,
last_change_time=None, nt_username=None, fullname=None, logon_time=None, logoff_time=None,
acct_desc=None, group_rid=None, bad_password_count=None, logon_count=None,
@@ -398,6 +419,7 @@
return self.__dict__ == other.__dict__
class SmbpasswdFile:
+ """Samba 3 smbpasswd file reader."""
def __init__(self, file):
self.users = {}
f = open(file, 'r')
@@ -458,13 +480,14 @@
class LdapSam:
+ """Samba 3 LDAP passdb backend reader."""
def __init__(self, url):
self.ldap_url = ldap_url
-class TdbSam:
- def __init__(self, file):
- self.tdb = tdb.Tdb(file, flags=os.O_RDONLY)
+class TdbSam(TdbDatabase):
+ """Samba 3 TDB passdb backend reader."""
+ def _check_version(self):
self.version = self.tdb.fetch_uint32("INFO/version\0") or 0
assert self.version in (0, 1, 2)
@@ -555,10 +578,7 @@
assert len(data) == 0
return user
- def close(self):
- self.tdb.close()
-
def shellsplit(text):
"""Very simple shell-like line splitting.
@@ -582,6 +602,7 @@
class WinsDatabase:
+ """Samba 3 WINS database reader."""
def __init__(self, file):
self.entries = {}
f = open(file, 'r')
@@ -618,7 +639,13 @@
pass
class Samba3:
+ """Samba 3 configuration and state data reader."""
def __init__(self, libdir, smbconfpath):
+ """Open the configuration and data for a Samba 3 installation.
+
+ :param libdir: Library directory
+ :param smbconfpath: Path to the smb.conf file.
+ """
self.smbconfpath = smbconfpath
self.libdir = libdir
import param
More information about the samba-cvs
mailing list