diff options
-rw-r--r-- | pykolab/cli/cmd_add_domain.py | 33 | ||||
-rw-r--r-- | pykolab/cli/cmd_delete_domain.py | 58 | ||||
-rw-r--r-- | pykolab/cli/cmd_find_domain.py | 58 | ||||
-rw-r--r-- | pykolab/cli/commands.py | 2 |
4 files changed, 123 insertions, 28 deletions
diff --git a/pykolab/cli/cmd_add_domain.py b/pykolab/cli/cmd_add_domain.py index 16c3da8..92aab7c 100644 --- a/pykolab/cli/cmd_add_domain.py +++ b/pykolab/cli/cmd_add_domain.py @@ -35,16 +35,16 @@ def __init__(): def cli_options(): my_option_group = conf.add_cli_parser_option_group(_("CLI Options")) my_option_group.add_option( - '--alias-for', - dest = "parent_domain", - action = "store", - default = None, - help = _("Add domain as alias for DOMAIN"), + '--alias', + dest = "domains", + action = "append", + default = [], + help = _("Add alias domain."), metavar = "DOMAIN", ) def description(): - return _("Add a new domain or domain alias.") + return _("Add a new domain.") def execute(*args, **kw): from pykolab import wap_client @@ -58,31 +58,12 @@ def execute(*args, **kw): sys.exit(1) wap_client.authenticate(username=username) - domains = wap_client.domains_list() dna = conf.get('ldap', 'domain_name_attribute') - if not conf.parent_domain == None: - parent_found = False - if isinstance(domains['list'], dict): - for _domain in domains['list'].keys(): - if parent_found: - continue - - if isinstance(domains['list'][_domain][dna], basestring): - if conf.parent_domain == domains['list'][_domain][dna]: - parent_found = True - elif isinstance(domains['list'][_domain], list): - if conf.parent_domain in domains['list'][_domain][dna]: - parent_found = True - - if not parent_found: - log.error(_("Invalid parent domain")) - sys.exit(1) - try: domain = conf.cli_args.pop(0) except IndexError, errmsg: domain = utils.ask_question(_("Domain name")) - wap_client.domain_add(domain, conf.parent_domain) + wap_client.domain_add(domain, conf.domains) diff --git a/pykolab/cli/cmd_delete_domain.py b/pykolab/cli/cmd_delete_domain.py new file mode 100644 index 0000000..6856aec --- /dev/null +++ b/pykolab/cli/cmd_delete_domain.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Copyright 2010-2013 Kolab Systems AG (http://www.kolabsys.com) +# +# Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen a kolabsys.com> +# +# 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; version 3 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 Library General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + +import sys + +import commands + +import pykolab + +from pykolab import utils +from pykolab.translate import _ + +log = pykolab.getLogger('pykolab.cli') +conf = pykolab.getConf() + +def __init__(): + commands.register('delete_domain', execute, description=description()) + +def description(): + return _("Delete a domain.") + +def execute(*args, **kw): + from pykolab import wap_client + + # Use uber-administrative privileges + username = conf.get('ldap', 'bind_dn') + if username == None: + log.error(_("Could not find credentials with sufficient permissions" + \ + "to add a domain name space.")) + + sys.exit(1) + + wap_client.authenticate(username=username) + + dna = conf.get('ldap', 'domain_name_attribute') + + try: + domain = conf.cli_args.pop(0) + except IndexError, errmsg: + domain = utils.ask_question(_("Domain name")) + + wap_client.domain_delete(domain) diff --git a/pykolab/cli/cmd_find_domain.py b/pykolab/cli/cmd_find_domain.py new file mode 100644 index 0000000..0486fee --- /dev/null +++ b/pykolab/cli/cmd_find_domain.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Copyright 2010-2013 Kolab Systems AG (http://www.kolabsys.com) +# +# Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen a kolabsys.com> +# +# 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; version 3 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 Library General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + +import sys + +import commands + +import pykolab + +from pykolab import utils +from pykolab.translate import _ + +log = pykolab.getLogger('pykolab.cli') +conf = pykolab.getConf() + +def __init__(): + commands.register('find_domain', execute, description=description()) + +def description(): + return _("Find a domain.") + +def execute(*args, **kw): + from pykolab import wap_client + + # Use uber-administrative privileges + username = conf.get('ldap', 'bind_dn') + if username == None: + log.error(_("Could not find credentials with sufficient permissions" + \ + "to add a domain name space.")) + + sys.exit(1) + + wap_client.authenticate(username=username) + + dna = conf.get('ldap', 'domain_name_attribute') + + try: + domain = conf.cli_args.pop(0) + except IndexError, errmsg: + domain = utils.ask_question(_("Domain name")) + + wap_client.domain_find(domain) diff --git a/pykolab/cli/commands.py b/pykolab/cli/commands.py index 56520fd..cb57160 100644 --- a/pykolab/cli/commands.py +++ b/pykolab/cli/commands.py @@ -62,8 +62,6 @@ def __init__(): register('add_group', not_yet_implemented, description="Not yet implemented") register('delete_group', not_yet_implemented, description="Not yet implemented") - register('delete_domain', not_yet_implemented, description="Not yet implemented") - def list_commands(*args, **kw): """ List commands |