diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2010-11-28 13:39:12 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2010-11-28 17:23:27 +0100 |
commit | ca495e67b2c2c8b50e16c5bcfcafdc5c2ae5bc72 (patch) | |
tree | c7f62b3b01b9590e805e25465fc0ce248c4e0a08 /source4/scripting | |
parent | 979d298b0d6e5692f606a5bfe21a64d1ecce5613 (diff) | |
download | samba-ca495e67b2c2c8b50e16c5bcfcafdc5c2ae5bc72.tar.gz samba-ca495e67b2c2c8b50e16c5bcfcafdc5c2ae5bc72.tar.bz2 samba-ca495e67b2c2c8b50e16c5bcfcafdc5c2ae5bc72.zip |
samba.hostconfig: Move samba.shares into samba.hostconfig.
Diffstat (limited to 'source4/scripting')
-rw-r--r-- | source4/scripting/python/samba/hostconfig.py | 64 | ||||
-rw-r--r-- | source4/scripting/python/samba/shares.py | 61 | ||||
-rw-r--r-- | source4/scripting/python/samba/tests/hostconfig.py (renamed from source4/scripting/python/samba/tests/shares.py) | 0 |
3 files changed, 57 insertions, 68 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 |