From 4f3cf88623cedb293530927b083a1e3a154e4490 Mon Sep 17 00:00:00 2001 From: Alexis Gavoty Date: Thu, 29 Nov 2012 14:45:06 +0100 Subject: [PATCH] Domain functions with arguments in a namespace --- action_map.yml | 4 ++-- yunohost_domain.py | 33 +++++++++++++++++---------------- yunohost_user.py | 4 ++-- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/action_map.yml b/action_map.yml index 300cfd45..22ad571f 100644 --- a/action_map.yml +++ b/action_map.yml @@ -171,7 +171,7 @@ domain: add: action_help: Create a custom domain arguments: - domain: + domains: help: Domain name to add nargs: '*' ask: "New domain" @@ -181,7 +181,7 @@ domain: remove: action_help: Delete domains arguments: - domain: + domains: help: Domain(s) to delete nargs: "*" ask: "Domain to remove" diff --git a/yunohost_domain.py b/yunohost_domain.py index 5c5856b3..929d31a3 100644 --- a/yunohost_domain.py +++ b/yunohost_domain.py @@ -7,24 +7,25 @@ import re from urllib import urlopen from yunohost import YunoHostError, YunoHostLDAP, win_msg, colorize, validate, get_required_args -def domain_list(args): +def domain_list(filter=None, limit=None, offset=None): """ List YunoHost domains Keyword argument: - args -- Dictionnary of values (can be empty) + filter -- LDAP filter to search with + limit + offset Returns: Dict """ with YunoHostLDAP() as yldap: result_dict = {} - if args['offset']: offset = int(args['offset']) + if offset: offset = int(offset) else: offset = 0 - if args['limit']: limit = int(args['limit']) + if limit: limit = int(limit) else: limit = 1000 - if args['filter']: filter = args['filter'] - else: filter = 'virtualdomain=*' + if not filter: filter = 'virtualdomain=*' result = yldap.search('ou=domains,dc=yunohost,dc=org', filter, attrs=['virtualdomain']) @@ -40,12 +41,12 @@ def domain_list(args): return result_dict -def domain_add(args): +def domain_add(domains): """ Add one or more domains Keyword argument: - args -- Dictionnary of values (can be empty) + domains -- List of domains to add Returns: Dict @@ -57,10 +58,10 @@ def domain_add(args): timestamp = str(now.year) + str(now.month) + str(now.day) result = [] - if not isinstance(args['domain'], list): - args['domain'] = [ args['domain'] ] + if not isinstance(domains, list): + domains = [ domains ] - for domain in args['domain']: + for domain in domains: yldap.validate_uniqueness({ 'virtualdomain' : domain }) attr_dict['virtualdomain'] = domain @@ -109,12 +110,12 @@ def domain_add(args): return { 'Domains' : result } -def domain_remove(args): +def domain_remove(domains): """ Remove domain from LDAP Keyword argument: - args -- Dictionnary of values + domains -- List of domains to remove Returns: Dict @@ -122,10 +123,10 @@ def domain_remove(args): with YunoHostLDAP() as yldap: result = [] - if not isinstance(args['domain'], list): - args['domain'] = [ args['domain'] ] + if not isinstance(domains, list): + domains = [ domains ] - for domain in args['domain']: + for domain in domains: if yldap.remove('virtualdomain=' + domain + ',ou=domains'): try: os.remove('/var/lib/bind/'+ domain +'.zone') diff --git a/yunohost_user.py b/yunohost_user.py index 101536cc..94ef4084 100644 --- a/yunohost_user.py +++ b/yunohost_user.py @@ -65,7 +65,7 @@ def user_list(fields=None, filter=None, limit=None, offset=None): return result_dict -def user_create(username=None, firstname=None, lastname=None, mail=None, password=None): +def user_create(username, firstname, lastname, mail, password): """ Add user to LDAP @@ -134,7 +134,7 @@ def user_create(username=None, firstname=None, lastname=None, mail=None, passwor raise YunoHostError(169, _("An error occured during user creation")) -def user_delete(users=None, purge=None): +def user_delete(users, purge=None): """ Remove user from LDAP