summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/scripting/python/samba/hostconfig.py64
-rw-r--r--source4/scripting/python/samba/shares.py61
-rw-r--r--source4/scripting/python/samba/tests/hostconfig.py (renamed from source4/scripting/python/samba/tests/shares.py)0
-rwxr-xr-xsource4/selftest/tests.py2
4 files changed, 58 insertions, 69 deletions
diff --git a/source4/scripting/python/samba/hostconfig.py b/source4/scripting/python/samba/hostconfig.py
index 6eee6cf2b2..3e6dc6b1dd 100644
--- a/source4/scripting/python/samba/hostconfig.py
+++ b/source4/scripting/python/samba/hostconfig.py
@@ -2,32 +2,82 @@
# Unix SMB/CIFS implementation.
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008
-#
+#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
-#
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+"""Local host configuration."""
+
from samdb import SamDB
class Hostconfig(object):
- """Aggregate object that contains all information about the configuration
+ """Aggregate object that contains all information about the configuration
of a Samba host."""
- def __init__(self, lp):
+ def __init__(self, lp):
self.lp = lp
+ def get_shares(self):
+ return SharesContainer(self.lp)
+
def get_samdb(self, session_info, credentials):
- return SamDB(url=self.lp.get("sam database"),
- session_info=session_info, credentials=credentials,
+ """Access the SamDB host.
+
+ :param session_info: Session info to use
+ :param credentials: Credentials to access the SamDB with
+ """
+ return SamDB(url=self.lp.get("sam database"),
+ session_info=session_info, credentials=credentials,
lp=self.lp)
+
+# TODO: Rather than accessing Loadparm directly here, we should really
+# have bindings to the param/shares.c and use those.
+
+
+class SharesContainer(object):
+ """A shares container."""
+
+ def __init__(self, lp):
+ self._lp = lp
+
+ def __getitem__(self, name):
+ if name == "global":
+ # [global] is not a share
+ raise KeyError
+ return Share(self._lp[name])
+
+ def __len__(self):
+ if "global" in self._lp.services():
+ return len(self._lp)-1
+ return len(self._lp)
+
+ def keys(self):
+ return [name for name in self._lp.services() if name != "global"]
+
+ def __iter__(self):
+ return iter(self.keys())
+
+
+class Share(object):
+ """A file share."""
+
+ def __init__(self, service):
+ self._service = service
+
+ def __getitem__(self, name):
+ return self._service[name]
+
+ def __setitem__(self, name, value):
+ self._service[name] = value
diff --git a/source4/scripting/python/samba/shares.py b/source4/scripting/python/samba/shares.py
deleted file mode 100644
index 17780cfd20..0000000000
--- a/source4/scripting/python/samba/shares.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python
-
-# Unix SMB/CIFS implementation.
-# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2009
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-"""Share management."""
-
-
-# TODO: Rather than accessing Loadparm directly here, we should really
-# have bindings to the param/shares.c and use those.
-
-
-class SharesContainer(object):
- """A shares container."""
-
- def __init__(self, lp):
- self._lp = lp
-
- def __getitem__(self, name):
- if name == "global":
- # [global] is not a share
- raise KeyError
- return Share(self._lp[name])
-
- def __len__(self):
- if "global" in self._lp.services():
- return len(self._lp)-1
- return len(self._lp)
-
- def keys(self):
- return [name for name in self._lp.services() if name != "global"]
-
- def __iter__(self):
- return iter(self.keys())
-
-
-class Share(object):
- """A file share."""
-
- def __init__(self, service):
- self._service = service
-
- def __getitem__(self, name):
- return self._service[name]
-
- def __setitem__(self, name, value):
- self._service[name] = value
diff --git a/source4/scripting/python/samba/tests/shares.py b/source4/scripting/python/samba/tests/hostconfig.py
index c01e63c798..c01e63c798 100644
--- a/source4/scripting/python/samba/tests/shares.py
+++ b/source4/scripting/python/samba/tests/hostconfig.py
diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py
index 180f089642..bf63c97655 100755
--- a/source4/selftest/tests.py
+++ b/source4/selftest/tests.py
@@ -477,7 +477,7 @@ planpythontestsuite("dc:local", "samba.tests.dcerpc.bare")
planpythontestsuite("dc:local", "samba.tests.dcerpc.unix")
planpythontestsuite("none", "samba.tests.dcerpc.rpc_talloc")
planpythontestsuite("none", "samba.tests.samdb")
-planpythontestsuite("none", "samba.tests.shares")
+planpythontestsuite("none", "samba.tests.hostconfig")
planpythontestsuite("none", "samba.tests.messaging")
planpythontestsuite("none", "samba.tests.samba3sam")
planpythontestsuite("none", "subunit")