samba.hostconfig: Move samba.shares into samba.hostconfig.
authorJelmer Vernooij <jelmer@samba.org>
Sun, 28 Nov 2010 12:39:12 +0000 (13:39 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Sun, 28 Nov 2010 16:23:27 +0000 (17:23 +0100)
source4/scripting/python/samba/hostconfig.py
source4/scripting/python/samba/shares.py [deleted file]
source4/scripting/python/samba/tests/hostconfig.py [moved from source4/scripting/python/samba/tests/shares.py with 100% similarity]
source4/selftest/tests.py

index 6eee6cf2b28bf599b4c3ae42c10015bea66ef448..3e6dc6b1ddd296be7fe35f641366d56b7d08d8cc 100644 (file)
@@ -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 (file)
index 17780cf..0000000
+++ /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
index 180f0896426a8270ae0d97bc7fd66033bb5dac1a..bf63c9765534a6a8b9e8e3c9ade843431b590a60 100755 (executable)
@@ -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")