1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-27 03:21:53 +03:00
samba-mirror/python/samba/netcmd/main.py
Björn Baumbach 3f10c8f25c samba-tool: implement contact management commands
Usage: samba-tool contact <subcommand>

Contact management.

Available subcommands:
  create  - Create a new contact.
  delete  - Delete a contact.
  edit    - Modify a contact.
  list    - List all contacts.
  move    - Move a contact object to an organizational unit or container.
  show    - Display a contact.

Signed-off-by: Björn Baumbach <bb@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2019-07-04 02:07:21 +00:00

84 lines
2.6 KiB
Python

# Unix SMB/CIFS implementation.
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2011
#
# 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/>.
#
"""The main samba-tool command implementation."""
from samba import getopt as options
from samba.netcmd import SuperCommand
class cache_loader(dict):
"""
We only load subcommand tools if they are actually used.
This significantly reduces the amount of time spent starting up
samba-tool
"""
def __getitem__(self, attr):
item = dict.__getitem__(self, attr)
if item is None:
package = 'nettime' if attr == 'time' else attr
self[attr] = getattr(__import__('samba.netcmd.%s' % package,
fromlist=['cmd_%s' % attr]),
'cmd_%s' % attr)()
return dict.__getitem__(self, attr)
def get(self, attr, default=None):
try:
return self[attr]
except KeyError:
return default
def items(self):
for key in self:
yield (key, self[key])
class cmd_sambatool(SuperCommand):
"""Main samba administration tool."""
takes_optiongroups = {
"versionopts": options.VersionOptions,
}
subcommands = cache_loader()
subcommands["computer"] = None
subcommands["contact"] = None
subcommands["dbcheck"] = None
subcommands["delegation"] = None
subcommands["dns"] = None
subcommands["domain"] = None
subcommands["drs"] = None
subcommands["dsacl"] = None
subcommands["forest"] = None
subcommands["fsmo"] = None
subcommands["gpo"] = None
subcommands["group"] = None
subcommands["ldapcmp"] = None
subcommands["ntacl"] = None
subcommands["rodc"] = None
subcommands["schema"] = None
subcommands["sites"] = None
subcommands["spn"] = None
subcommands["testparm"] = None
subcommands["time"] = None
subcommands["user"] = None
subcommands["ou"] = None
subcommands["processes"] = None
subcommands["visualize"] = None