mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Allow primary keys to use different type than unicode.
Also return list of primary keys instead of a single unicode CSV value from LDAPDelete-based commands. This introduces a new capability 'primary_key_types' for backward compatibility with old clients. Reviewed-By: Tomas Babej <tbabej@redhat.com>
This commit is contained in:
parent
c644b47492
commit
4314d02fbf
4
VERSION
4
VERSION
@ -89,5 +89,5 @@ IPA_DATA_VERSION=20100614120000
|
|||||||
# #
|
# #
|
||||||
########################################################
|
########################################################
|
||||||
IPA_API_VERSION_MAJOR=2
|
IPA_API_VERSION_MAJOR=2
|
||||||
IPA_API_VERSION_MINOR=82
|
IPA_API_VERSION_MINOR=83
|
||||||
# Last change: amisnyov - automember nowait add
|
# Last change: jcholast - add 'primary_key_types' capability
|
||||||
|
@ -45,6 +45,9 @@ capabilities = dict(
|
|||||||
# permissions2: Reworked permission system
|
# permissions2: Reworked permission system
|
||||||
# http://www.freeipa.org/page/V3/Permissions_V2
|
# http://www.freeipa.org/page/V3/Permissions_V2
|
||||||
permissions2=u'2.69',
|
permissions2=u'2.69',
|
||||||
|
|
||||||
|
# primary_key_types: Non-unicode primary keys in command output
|
||||||
|
primary_key_types=u'2.83',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -363,7 +363,8 @@ class textui(backend.Backend):
|
|||||||
label = labels.get(key, key)
|
label = labels.get(key, key)
|
||||||
flag = flags.get(key, [])
|
flag = flags.get(key, [])
|
||||||
value = entry[key]
|
value = entry[key]
|
||||||
if 'suppress_empty' in flag and value in [u'', '', [], None]:
|
if ('suppress_empty' in flag and
|
||||||
|
value in [u'', '', (), [], None]):
|
||||||
continue
|
continue
|
||||||
if isinstance(value, dict):
|
if isinstance(value, dict):
|
||||||
if frontend.entry_count(value) == 0:
|
if frontend.entry_count(value) == 0:
|
||||||
|
@ -439,12 +439,9 @@ class Command(HasParam):
|
|||||||
and 'summary' in self.output
|
and 'summary' in self.output
|
||||||
and 'summary' not in ret
|
and 'summary' not in ret
|
||||||
):
|
):
|
||||||
if self.msg_summary:
|
ret['summary'] = self.get_summary_default(ret)
|
||||||
ret['summary'] = self.msg_summary % ret
|
|
||||||
else:
|
|
||||||
ret['summary'] = None
|
|
||||||
if self.use_output_validation and (self.output or ret is not None):
|
if self.use_output_validation and (self.output or ret is not None):
|
||||||
self.validate_output(ret)
|
self.validate_output(ret, options.get('version', API_VERSION))
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def soft_validate(self, values):
|
def soft_validate(self, values):
|
||||||
@ -918,7 +915,7 @@ class Command(HasParam):
|
|||||||
flags=['no_option', 'no_output'],
|
flags=['no_option', 'no_output'],
|
||||||
)
|
)
|
||||||
|
|
||||||
def validate_output(self, output):
|
def validate_output(self, output, version=API_VERSION):
|
||||||
"""
|
"""
|
||||||
Validate the return value to make sure it meets the interface contract.
|
Validate the return value to make sure it meets the interface contract.
|
||||||
"""
|
"""
|
||||||
@ -947,7 +944,7 @@ class Command(HasParam):
|
|||||||
nice, o.name, o.type, type(value), value)
|
nice, o.name, o.type, type(value), value)
|
||||||
)
|
)
|
||||||
if callable(o.validate):
|
if callable(o.validate):
|
||||||
o.validate(self, value)
|
o.validate(self, value, version)
|
||||||
|
|
||||||
def get_output_params(self):
|
def get_output_params(self):
|
||||||
for param in self._get_param_iterable('output_params', verb='has'):
|
for param in self._get_param_iterable('output_params', verb='has'):
|
||||||
@ -959,6 +956,10 @@ class Command(HasParam):
|
|||||||
continue
|
continue
|
||||||
yield param
|
yield param
|
||||||
|
|
||||||
|
def get_summary_default(self, output):
|
||||||
|
if self.msg_summary:
|
||||||
|
return self.msg_summary % output
|
||||||
|
|
||||||
def log_messages(self, output, logger):
|
def log_messages(self, output, logger):
|
||||||
logger_functions = dict(
|
logger_functions = dict(
|
||||||
debug=logger.debug,
|
debug=logger.debug,
|
||||||
|
@ -24,6 +24,7 @@ Simple description of return values.
|
|||||||
from inspect import getdoc
|
from inspect import getdoc
|
||||||
from types import NoneType
|
from types import NoneType
|
||||||
from plugable import ReadOnly, lock
|
from plugable import ReadOnly, lock
|
||||||
|
from capabilities import client_has_capability
|
||||||
from text import _
|
from text import _
|
||||||
|
|
||||||
|
|
||||||
@ -99,7 +100,7 @@ class ListOfEntries(Output):
|
|||||||
type = (list, tuple)
|
type = (list, tuple)
|
||||||
doc = _('A list of LDAP entries')
|
doc = _('A list of LDAP entries')
|
||||||
|
|
||||||
def validate(self, cmd, entries):
|
def validate(self, cmd, entries, version):
|
||||||
assert isinstance(entries, self.type)
|
assert isinstance(entries, self.type)
|
||||||
for (i, entry) in enumerate(entries):
|
for (i, entry) in enumerate(entries):
|
||||||
if not isinstance(entry, dict):
|
if not isinstance(entry, dict):
|
||||||
@ -107,6 +108,47 @@ class ListOfEntries(Output):
|
|||||||
self.name, i, dict, type(entry), entry)
|
self.name, i, dict, type(entry), entry)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class PrimaryKey(Output):
|
||||||
|
def validate(self, cmd, value, version):
|
||||||
|
if client_has_capability(version, 'primary_key_types'):
|
||||||
|
if hasattr(cmd, 'obj') and cmd.obj and cmd.obj.primary_key:
|
||||||
|
types = cmd.obj.primary_key.allowed_types
|
||||||
|
else:
|
||||||
|
types = (unicode,)
|
||||||
|
types = types + (NoneType,)
|
||||||
|
else:
|
||||||
|
types = (unicode,)
|
||||||
|
if not isinstance(value, types):
|
||||||
|
raise TypeError(
|
||||||
|
"%s.validate_output() => %s.validate():\n"
|
||||||
|
" output[%r]: need %r; got %r: %r" % (
|
||||||
|
cmd.name, self.__class__.__name__, self.name,
|
||||||
|
types[0], type(value), value))
|
||||||
|
|
||||||
|
class ListOfPrimaryKeys(Output):
|
||||||
|
def validate(self, cmd, values, version):
|
||||||
|
if client_has_capability(version, 'primary_key_types'):
|
||||||
|
types = (tuple, list)
|
||||||
|
else:
|
||||||
|
types = (unicode,)
|
||||||
|
if not isinstance(values, types):
|
||||||
|
raise TypeError(
|
||||||
|
"%s.validate_output() => %s.validate():\n"
|
||||||
|
" output[%r]: need %r; got %r: %r" % (
|
||||||
|
cmd.name, self.__class__.__name__, self.name,
|
||||||
|
types[0], type(values), values))
|
||||||
|
|
||||||
|
if client_has_capability(version, 'primary_key_types'):
|
||||||
|
if hasattr(cmd, 'obj') and cmd.obj and cmd.obj.primary_key:
|
||||||
|
types = cmd.obj.primary_key.allowed_types
|
||||||
|
else:
|
||||||
|
types = (unicode,)
|
||||||
|
for (i, value) in enumerate(values):
|
||||||
|
if not isinstance(value, types):
|
||||||
|
raise TypeError(emsg % (
|
||||||
|
cmd.name, self.__class__.__name__, i, self.name,
|
||||||
|
types[0], type(value), value))
|
||||||
|
|
||||||
|
|
||||||
result = Output('result', doc=_('All commands should at least have a result'))
|
result = Output('result', doc=_('All commands should at least have a result'))
|
||||||
|
|
||||||
@ -114,7 +156,7 @@ summary = Output('summary', (unicode, NoneType),
|
|||||||
_('User-friendly description of action performed')
|
_('User-friendly description of action performed')
|
||||||
)
|
)
|
||||||
|
|
||||||
value = Output('value', unicode,
|
value = PrimaryKey('value', None,
|
||||||
_("The primary_key value of the entry, e.g. 'jdoe' for a user"),
|
_("The primary_key value of the entry, e.g. 'jdoe' for a user"),
|
||||||
flags=['no_display'],
|
flags=['no_display'],
|
||||||
)
|
)
|
||||||
@ -140,6 +182,12 @@ standard_delete = (
|
|||||||
value,
|
value,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
standard_multi_delete = (
|
||||||
|
summary,
|
||||||
|
Output('result', dict, _('List of deletions that failed')),
|
||||||
|
ListOfPrimaryKeys('value', flags=['no_display']),
|
||||||
|
)
|
||||||
|
|
||||||
standard_boolean = (
|
standard_boolean = (
|
||||||
summary,
|
summary,
|
||||||
Output('result', bool, _('True means the operation was successful')),
|
Output('result', bool, _('True means the operation was successful')),
|
||||||
|
@ -126,7 +126,7 @@ from ipalib.aci import ACI
|
|||||||
from ipalib import output
|
from ipalib import output
|
||||||
from ipalib import _, ngettext
|
from ipalib import _, ngettext
|
||||||
from ipalib.plugable import Registry
|
from ipalib.plugable import Registry
|
||||||
from ipalib.plugins.baseldap import gen_pkey_only_option
|
from ipalib.plugins.baseldap import gen_pkey_only_option, pkey_to_value
|
||||||
from ipapython.ipa_log_manager import *
|
from ipapython.ipa_log_manager import *
|
||||||
from ipapython.dn import DN
|
from ipapython.dn import DN
|
||||||
|
|
||||||
@ -557,7 +557,7 @@ class aci_add(crud.Create):
|
|||||||
result = _aci_to_kw(ldap, newaci, kw.get('test', False))
|
result = _aci_to_kw(ldap, newaci, kw.get('test', False))
|
||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -598,7 +598,7 @@ class aci_del(crud.Delete):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, options),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -666,7 +666,7 @@ class aci_mod(crud.Update):
|
|||||||
result = _aci_to_kw(ldap, newaci)
|
result = _aci_to_kw(ldap, newaci)
|
||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -919,7 +919,7 @@ class aci_show(crud.Retrieve):
|
|||||||
result = _aci_to_kw(ldap, aci)
|
result = _aci_to_kw(ldap, aci)
|
||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -981,5 +981,5 @@ class aci_rename(crud.Update):
|
|||||||
result = _aci_to_kw(ldap, newaci)
|
result = _aci_to_kw(ldap, newaci)
|
||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
value=kw['newname'],
|
value=pkey_to_value(kw['newname'], kw),
|
||||||
)
|
)
|
||||||
|
@ -297,7 +297,7 @@ class automember_add(LDAPCreate):
|
|||||||
|
|
||||||
def execute(self, *keys, **options):
|
def execute(self, *keys, **options):
|
||||||
result = super(automember_add, self).execute(*keys, **options)
|
result = super(automember_add, self).execute(*keys, **options)
|
||||||
result['value'] = keys[-1]
|
result['value'] = pkey_to_value(keys[-1], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -389,7 +389,7 @@ class automember_add_condition(LDAPUpdate):
|
|||||||
result = {'result': getattr(context, 'entry_attrs'), 'value': keys[-1]}
|
result = {'result': getattr(context, 'entry_attrs'), 'value': keys[-1]}
|
||||||
result['failed'] = getattr(context, 'failed')
|
result['failed'] = getattr(context, 'failed')
|
||||||
result['completed'] = getattr(context, 'completed')
|
result['completed'] = getattr(context, 'completed')
|
||||||
result['value'] = keys[-1]
|
result['value'] = pkey_to_value(keys[-1], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -476,7 +476,7 @@ class automember_remove_condition(LDAPUpdate):
|
|||||||
result = {'result': getattr(context, 'entry_attrs'), 'value': keys[-1]}
|
result = {'result': getattr(context, 'entry_attrs'), 'value': keys[-1]}
|
||||||
result['failed'] = getattr(context, 'failed')
|
result['failed'] = getattr(context, 'failed')
|
||||||
result['completed'] = getattr(context, 'completed')
|
result['completed'] = getattr(context, 'completed')
|
||||||
result['value'] = keys[-1]
|
result['value'] = pkey_to_value(keys[-1], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -491,7 +491,7 @@ class automember_mod(LDAPUpdate):
|
|||||||
|
|
||||||
def execute(self, *keys, **options):
|
def execute(self, *keys, **options):
|
||||||
result = super(automember_mod, self).execute(*keys, **options)
|
result = super(automember_mod, self).execute(*keys, **options)
|
||||||
result['value'] = keys[-1]
|
result['value'] = pkey_to_value(keys[-1], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -506,7 +506,7 @@ class automember_del(LDAPDelete):
|
|||||||
|
|
||||||
def execute(self, *keys, **options):
|
def execute(self, *keys, **options):
|
||||||
result = super(automember_del, self).execute(*keys, **options)
|
result = super(automember_del, self).execute(*keys, **options)
|
||||||
result['value'] = keys[-1]
|
result['value'] = pkey_to_value([keys[-1]], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -540,7 +540,7 @@ class automember_show(LDAPRetrieve):
|
|||||||
|
|
||||||
def execute(self, *keys, **options):
|
def execute(self, *keys, **options):
|
||||||
result = super(automember_show, self).execute(*keys, **options)
|
result = super(automember_show, self).execute(*keys, **options)
|
||||||
result['value'] = keys[-1]
|
result['value'] = pkey_to_value(keys[-1], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -568,7 +568,7 @@ class automember_default_group_set(LDAPUpdate):
|
|||||||
|
|
||||||
def execute(self, *keys, **options):
|
def execute(self, *keys, **options):
|
||||||
result = super(automember_default_group_set, self).execute(*keys, **options)
|
result = super(automember_default_group_set, self).execute(*keys, **options)
|
||||||
result['value'] = options['type']
|
result['value'] = pkey_to_value(options['type'], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -602,7 +602,7 @@ class automember_default_group_remove(LDAPUpdate):
|
|||||||
|
|
||||||
def execute(self, *keys, **options):
|
def execute(self, *keys, **options):
|
||||||
result = super(automember_default_group_remove, self).execute(*keys, **options)
|
result = super(automember_default_group_remove, self).execute(*keys, **options)
|
||||||
result['value'] = options['type']
|
result['value'] = pkey_to_value(options['type'], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -626,7 +626,7 @@ class automember_default_group_show(LDAPRetrieve):
|
|||||||
|
|
||||||
def execute(self, *keys, **options):
|
def execute(self, *keys, **options):
|
||||||
result = super(automember_default_group_show, self).execute(*keys, **options)
|
result = super(automember_default_group_show, self).execute(*keys, **options)
|
||||||
result['value'] = options['type']
|
result['value'] = pkey_to_value(options['type'], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -777,4 +777,4 @@ class automember_rebuild(Command):
|
|||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
summary=unicode(summary),
|
summary=unicode(summary),
|
||||||
value=u'')
|
value=pkey_to_value(None, options))
|
||||||
|
@ -827,7 +827,7 @@ class automountkey_add(LDAPCreate):
|
|||||||
options[self.obj.primary_key.name] = self.obj.get_pk(key, info)
|
options[self.obj.primary_key.name] = self.obj.get_pk(key, info)
|
||||||
options['add_operation'] = True
|
options['add_operation'] = True
|
||||||
result = super(automountkey_add, self).execute(*keys, **options)
|
result = super(automountkey_add, self).execute(*keys, **options)
|
||||||
result['value'] = options['automountkey']
|
result['value'] = pkey_to_value(options['automountkey'], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
api.register(automountkey_add)
|
api.register(automountkey_add)
|
||||||
@ -923,7 +923,7 @@ class automountkey_del(LDAPDelete):
|
|||||||
options['automountkey'],
|
options['automountkey'],
|
||||||
options.get('automountinformation', None))
|
options.get('automountinformation', None))
|
||||||
result = super(automountkey_del, self).execute(*keys, **options)
|
result = super(automountkey_del, self).execute(*keys, **options)
|
||||||
result['value'] = options['automountkey']
|
result['value'] = pkey_to_value([options['automountkey']], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
api.register(automountkey_del)
|
api.register(automountkey_del)
|
||||||
@ -982,7 +982,7 @@ class automountkey_mod(LDAPUpdate):
|
|||||||
options['rename'] = new_rdn
|
options['rename'] = new_rdn
|
||||||
|
|
||||||
result = super(automountkey_mod, self).execute(*keys, **options)
|
result = super(automountkey_mod, self).execute(*keys, **options)
|
||||||
result['value'] = options['automountkey']
|
result['value'] = pkey_to_value(options['automountkey'], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
api.register(automountkey_mod)
|
api.register(automountkey_mod)
|
||||||
@ -1026,7 +1026,7 @@ class automountkey_show(LDAPRetrieve):
|
|||||||
options.get('automountinformation', None))
|
options.get('automountinformation', None))
|
||||||
|
|
||||||
result = super(automountkey_show, self).execute(*keys, **options)
|
result = super(automountkey_show, self).execute(*keys, **options)
|
||||||
result['value'] = options['automountkey']
|
result['value'] = pkey_to_value(options['automountkey'], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
api.register(automountkey_show)
|
api.register(automountkey_show)
|
||||||
|
@ -32,7 +32,9 @@ from ipalib.cli import to_cli
|
|||||||
from ipalib import output
|
from ipalib import output
|
||||||
from ipalib.text import _
|
from ipalib.text import _
|
||||||
from ipalib.util import json_serialize, validate_hostname
|
from ipalib.util import json_serialize, validate_hostname
|
||||||
|
from ipalib.capabilities import client_has_capability
|
||||||
from ipapython.dn import DN, RDN
|
from ipapython.dn import DN, RDN
|
||||||
|
from ipapython.version import API_VERSION
|
||||||
|
|
||||||
DNA_MAGIC = -1
|
DNA_MAGIC = -1
|
||||||
|
|
||||||
@ -240,6 +242,20 @@ def entry_to_dict(entry, **options):
|
|||||||
result['dn'] = entry.dn
|
result['dn'] = entry.dn
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def pkey_to_unicode(key):
|
||||||
|
if key is None:
|
||||||
|
key = []
|
||||||
|
elif not isinstance(key, (tuple, list)):
|
||||||
|
key = [key]
|
||||||
|
key = u','.join(unicode(k) for k in key)
|
||||||
|
return key
|
||||||
|
|
||||||
|
def pkey_to_value(key, options):
|
||||||
|
version = options.get('version', API_VERSION)
|
||||||
|
if client_has_capability(version, 'primary_key_types'):
|
||||||
|
return key
|
||||||
|
return pkey_to_unicode(key)
|
||||||
|
|
||||||
def wait_for_value(ldap, dn, attr, value):
|
def wait_for_value(ldap, dn, attr, value):
|
||||||
"""
|
"""
|
||||||
389-ds postoperation plugins are executed after the data has been
|
389-ds postoperation plugins are executed after the data has been
|
||||||
@ -768,6 +784,12 @@ last, after all sets and adds."""),
|
|||||||
|
|
||||||
_callback_registry = dict(pre={}, post={}, exc={}, interactive_prompt={})
|
_callback_registry = dict(pre={}, post={}, exc={}, interactive_prompt={})
|
||||||
|
|
||||||
|
def get_summary_default(self, output):
|
||||||
|
if 'value' in output:
|
||||||
|
output = dict(output)
|
||||||
|
output['value'] = pkey_to_unicode(output['value'])
|
||||||
|
return super(BaseLDAPCommand, self).get_summary_default(output)
|
||||||
|
|
||||||
def _convert_2_dict(self, ldap, attrs):
|
def _convert_2_dict(self, ldap, attrs):
|
||||||
"""
|
"""
|
||||||
Convert a string in the form of name/value pairs into a dictionary.
|
Convert a string in the form of name/value pairs into a dictionary.
|
||||||
@ -1103,9 +1125,12 @@ class LDAPCreate(BaseLDAPCommand, crud.Create):
|
|||||||
entry_attrs = entry_to_dict(entry_attrs, **options)
|
entry_attrs = entry_to_dict(entry_attrs, **options)
|
||||||
entry_attrs['dn'] = dn
|
entry_attrs['dn'] = dn
|
||||||
|
|
||||||
if self.obj.primary_key and keys[-1] is not None:
|
if self.obj.primary_key:
|
||||||
return dict(result=entry_attrs, value=keys[-1])
|
pkey = keys[-1]
|
||||||
return dict(result=entry_attrs, value=u'')
|
else:
|
||||||
|
pkey = None
|
||||||
|
|
||||||
|
return dict(result=entry_attrs, value=pkey_to_value(pkey, options))
|
||||||
|
|
||||||
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
|
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
|
||||||
assert isinstance(dn, DN)
|
assert isinstance(dn, DN)
|
||||||
@ -1227,9 +1252,12 @@ class LDAPRetrieve(LDAPQuery):
|
|||||||
entry_attrs = entry_to_dict(entry_attrs, **options)
|
entry_attrs = entry_to_dict(entry_attrs, **options)
|
||||||
entry_attrs['dn'] = dn
|
entry_attrs['dn'] = dn
|
||||||
|
|
||||||
if self.obj.primary_key and keys[-1] is not None:
|
if self.obj.primary_key:
|
||||||
return dict(result=entry_attrs, value=keys[-1])
|
pkey = keys[-1]
|
||||||
return dict(result=entry_attrs, value=u'')
|
else:
|
||||||
|
pkey = None
|
||||||
|
|
||||||
|
return dict(result=entry_attrs, value=pkey_to_value(pkey, options))
|
||||||
|
|
||||||
def pre_callback(self, ldap, dn, attrs_list, *keys, **options):
|
def pre_callback(self, ldap, dn, attrs_list, *keys, **options):
|
||||||
assert isinstance(dn, DN)
|
assert isinstance(dn, DN)
|
||||||
@ -1363,9 +1391,12 @@ class LDAPUpdate(LDAPQuery, crud.Update):
|
|||||||
|
|
||||||
entry_attrs = entry_to_dict(entry_attrs, **options)
|
entry_attrs = entry_to_dict(entry_attrs, **options)
|
||||||
|
|
||||||
if self.obj.primary_key and keys[-1] is not None:
|
if self.obj.primary_key:
|
||||||
return dict(result=entry_attrs, value=keys[-1])
|
pkey = keys[-1]
|
||||||
return dict(result=entry_attrs, value=u'')
|
else:
|
||||||
|
pkey = None
|
||||||
|
|
||||||
|
return dict(result=entry_attrs, value=pkey_to_value(pkey, options))
|
||||||
|
|
||||||
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
|
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
|
||||||
assert isinstance(dn, DN)
|
assert isinstance(dn, DN)
|
||||||
@ -1386,7 +1417,7 @@ class LDAPDelete(LDAPMultiQuery):
|
|||||||
"""
|
"""
|
||||||
Delete an LDAP entry and all of its direct subentries.
|
Delete an LDAP entry and all of its direct subentries.
|
||||||
"""
|
"""
|
||||||
has_output = output.standard_delete
|
has_output = output.standard_multi_delete
|
||||||
|
|
||||||
has_output_params = global_output_params
|
has_output_params = global_output_params
|
||||||
|
|
||||||
@ -1433,28 +1464,28 @@ class LDAPDelete(LDAPMultiQuery):
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
if not self.obj.primary_key or not isinstance(keys[-1], (list, tuple)):
|
if self.obj.primary_key and isinstance(keys[-1], (list, tuple)):
|
||||||
pkeyiter = (keys[-1], )
|
|
||||||
else:
|
|
||||||
pkeyiter = keys[-1]
|
pkeyiter = keys[-1]
|
||||||
|
elif keys[-1] is not None:
|
||||||
|
pkeyiter = [keys[-1]]
|
||||||
|
else:
|
||||||
|
pkeyiter = []
|
||||||
|
|
||||||
deleted = []
|
deleted = []
|
||||||
failed = []
|
failed = []
|
||||||
result = True
|
|
||||||
for pkey in pkeyiter:
|
for pkey in pkeyiter:
|
||||||
try:
|
try:
|
||||||
if not delete_entry(pkey):
|
delete_entry(pkey)
|
||||||
result = False
|
|
||||||
except errors.ExecutionError:
|
except errors.ExecutionError:
|
||||||
if not options.get('continue', False):
|
if not options.get('continue', False):
|
||||||
raise
|
raise
|
||||||
failed.append(pkey)
|
failed.append(pkey)
|
||||||
else:
|
else:
|
||||||
deleted.append(pkey)
|
deleted.append(pkey)
|
||||||
|
deleted = pkey_to_value(deleted, options)
|
||||||
|
failed = pkey_to_value(failed, options)
|
||||||
|
|
||||||
if self.obj.primary_key and pkeyiter[0] is not None:
|
return dict(result=dict(failed=failed), value=deleted)
|
||||||
return dict(result=dict(failed=u','.join(failed)), value=u','.join(deleted))
|
|
||||||
return dict(result=dict(failed=u''), value=u'')
|
|
||||||
|
|
||||||
def pre_callback(self, ldap, dn, *keys, **options):
|
def pre_callback(self, ldap, dn, *keys, **options):
|
||||||
assert isinstance(dn, DN)
|
assert isinstance(dn, DN)
|
||||||
|
@ -24,7 +24,7 @@ from ipalib.request import context
|
|||||||
from ipalib import api, crud, errors
|
from ipalib import api, crud, errors
|
||||||
from ipalib import output
|
from ipalib import output
|
||||||
from ipalib import Object, Command
|
from ipalib import Object, Command
|
||||||
from ipalib.plugins.baseldap import gen_pkey_only_option
|
from ipalib.plugins.baseldap import gen_pkey_only_option, pkey_to_value
|
||||||
|
|
||||||
__doc__ = _("""
|
__doc__ = _("""
|
||||||
Group to Group Delegation
|
Group to Group Delegation
|
||||||
@ -141,7 +141,7 @@ class delegation_add(crud.Create):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(delegation_add)
|
api.register(delegation_add)
|
||||||
@ -159,7 +159,7 @@ class delegation_del(crud.Delete):
|
|||||||
self.obj.postprocess_result(result)
|
self.obj.postprocess_result(result)
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(delegation_del)
|
api.register(delegation_del)
|
||||||
@ -178,7 +178,7 @@ class delegation_mod(crud.Update):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(delegation_mod)
|
api.register(delegation_mod)
|
||||||
@ -220,7 +220,7 @@ class delegation_show(crud.Retrieve):
|
|||||||
self.obj.postprocess_result(result)
|
self.obj.postprocess_result(result)
|
||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(delegation_show)
|
api.register(delegation_show)
|
||||||
|
@ -2012,7 +2012,7 @@ class dnszone_disable(LDAPQuery):
|
|||||||
except errors.EmptyModlist:
|
except errors.EmptyModlist:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return dict(result=True, value=keys[-1])
|
return dict(result=True, value=pkey_to_value(keys[-1], options))
|
||||||
|
|
||||||
api.register(dnszone_disable)
|
api.register(dnszone_disable)
|
||||||
|
|
||||||
@ -2036,7 +2036,7 @@ class dnszone_enable(LDAPQuery):
|
|||||||
except errors.EmptyModlist:
|
except errors.EmptyModlist:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return dict(result=True, value=keys[-1])
|
return dict(result=True, value=pkey_to_value(keys[-1], options))
|
||||||
|
|
||||||
api.register(dnszone_enable)
|
api.register(dnszone_enable)
|
||||||
|
|
||||||
@ -2073,7 +2073,7 @@ class dnszone_add_permission(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=permission_name,
|
value=pkey_to_value(permission_name, options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(dnszone_add_permission)
|
api.register(dnszone_add_permission)
|
||||||
@ -2106,7 +2106,7 @@ class dnszone_remove_permission(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=permission_name,
|
value=pkey_to_value(permission_name, options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(dnszone_remove_permission)
|
api.register(dnszone_remove_permission)
|
||||||
@ -2957,7 +2957,7 @@ api.register(dnsrecord_delentry)
|
|||||||
class dnsrecord_del(LDAPUpdate):
|
class dnsrecord_del(LDAPUpdate):
|
||||||
__doc__ = _('Delete DNS resource record.')
|
__doc__ = _('Delete DNS resource record.')
|
||||||
|
|
||||||
has_output = output.standard_delete
|
has_output = output.standard_multi_delete
|
||||||
|
|
||||||
no_option_msg = _('Neither --del-all nor options to delete a specific record provided.\n'\
|
no_option_msg = _('Neither --del-all nor options to delete a specific record provided.\n'\
|
||||||
"Command help may be consulted for all supported record types.")
|
"Command help may be consulted for all supported record types.")
|
||||||
@ -3045,6 +3045,7 @@ class dnsrecord_del(LDAPUpdate):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
result = super(dnsrecord_del, self).execute(*keys, **options)
|
result = super(dnsrecord_del, self).execute(*keys, **options)
|
||||||
|
result['value'] = pkey_to_value([keys[-1]], options)
|
||||||
|
|
||||||
if getattr(context, 'del_all', False) and not \
|
if getattr(context, 'del_all', False) and not \
|
||||||
self.obj.is_pkey_zone_record(*keys):
|
self.obj.is_pkey_zone_record(*keys):
|
||||||
@ -3223,7 +3224,7 @@ class dns_is_enabled(Command):
|
|||||||
except Exception, e:
|
except Exception, e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return dict(result=dns_enabled, value=u'')
|
return dict(result=dns_enabled, value=pkey_to_value(None, options))
|
||||||
|
|
||||||
api.register(dns_is_enabled)
|
api.register(dns_is_enabled)
|
||||||
|
|
||||||
|
@ -589,7 +589,7 @@ class group_detach(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=keys[0],
|
value=pkey_to_value(keys[0], options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(group_detach)
|
api.register(group_detach)
|
||||||
|
@ -324,7 +324,7 @@ class hbacrule_enable(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=cn,
|
value=pkey_to_value(cn, options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(hbacrule_enable)
|
api.register(hbacrule_enable)
|
||||||
@ -354,7 +354,7 @@ class hbacrule_disable(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=cn,
|
value=pkey_to_value(cn, options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(hbacrule_disable)
|
api.register(hbacrule_disable)
|
||||||
|
@ -1011,7 +1011,7 @@ class host_disable(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=keys[0],
|
value=pkey_to_value(keys[0], options),
|
||||||
)
|
)
|
||||||
|
|
||||||
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
||||||
|
@ -216,8 +216,6 @@ class krbtpolicy_reset(LDAPQuery):
|
|||||||
|
|
||||||
entry_attrs = entry_to_dict(entry_attrs, **options)
|
entry_attrs = entry_to_dict(entry_attrs, **options)
|
||||||
|
|
||||||
if keys[-1] is not None:
|
return dict(result=entry_attrs, value=pkey_to_value(keys[-1], options))
|
||||||
return dict(result=entry_attrs, value=keys[-1])
|
|
||||||
return dict(result=entry_attrs, value=u'')
|
|
||||||
|
|
||||||
api.register(krbtpolicy_reset)
|
api.register(krbtpolicy_reset)
|
||||||
|
@ -23,7 +23,7 @@ from ipalib.request import context
|
|||||||
from ipalib import api, crud, errors
|
from ipalib import api, crud, errors
|
||||||
from ipalib import output
|
from ipalib import output
|
||||||
from ipalib import Object, Command
|
from ipalib import Object, Command
|
||||||
from ipalib.plugins.baseldap import gen_pkey_only_option
|
from ipalib.plugins.baseldap import gen_pkey_only_option, pkey_to_value
|
||||||
|
|
||||||
__doc__ = _("""
|
__doc__ = _("""
|
||||||
Self-service Permissions
|
Self-service Permissions
|
||||||
@ -135,7 +135,7 @@ class selfservice_add(crud.Create):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(selfservice_add)
|
api.register(selfservice_add)
|
||||||
@ -153,7 +153,7 @@ class selfservice_del(crud.Delete):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(selfservice_del)
|
api.register(selfservice_del)
|
||||||
@ -175,7 +175,7 @@ class selfservice_mod(crud.Update):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(selfservice_mod)
|
api.register(selfservice_mod)
|
||||||
@ -218,7 +218,7 @@ class selfservice_show(crud.Retrieve):
|
|||||||
self.obj.postprocess_result(result)
|
self.obj.postprocess_result(result)
|
||||||
return dict(
|
return dict(
|
||||||
result=result,
|
result=result,
|
||||||
value=aciname,
|
value=pkey_to_value(aciname, kw),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(selfservice_show)
|
api.register(selfservice_show)
|
||||||
|
@ -425,7 +425,7 @@ class selinuxusermap_enable(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=cn,
|
value=pkey_to_value(cn, options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(selinuxusermap_enable)
|
api.register(selinuxusermap_enable)
|
||||||
@ -455,7 +455,7 @@ class selinuxusermap_disable(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=cn,
|
value=pkey_to_value(cn, options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(selinuxusermap_disable)
|
api.register(selinuxusermap_disable)
|
||||||
|
@ -661,7 +661,7 @@ class service_disable(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=keys[0],
|
value=pkey_to_value(keys[0], options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(service_disable)
|
api.register(service_disable)
|
||||||
|
@ -699,7 +699,7 @@ class sudorule_add_option(LDAPQuery):
|
|||||||
|
|
||||||
entry_attrs = entry_to_dict(entry_attrs, **options)
|
entry_attrs = entry_to_dict(entry_attrs, **options)
|
||||||
|
|
||||||
return dict(result=entry_attrs, value=cn)
|
return dict(result=entry_attrs, value=pkey_to_value(cn, options))
|
||||||
|
|
||||||
def output_for_cli(self, textui, result, cn, **options):
|
def output_for_cli(self, textui, result, cn, **options):
|
||||||
textui.print_dashed(_('Added option "%(option)s" to Sudo Rule "%(rule)s"') % \
|
textui.print_dashed(_('Added option "%(option)s" to Sudo Rule "%(rule)s"') % \
|
||||||
@ -755,7 +755,7 @@ class sudorule_remove_option(LDAPQuery):
|
|||||||
|
|
||||||
entry_attrs = entry_to_dict(entry_attrs, **options)
|
entry_attrs = entry_to_dict(entry_attrs, **options)
|
||||||
|
|
||||||
return dict(result=entry_attrs, value=cn)
|
return dict(result=entry_attrs, value=pkey_to_value(cn, options))
|
||||||
|
|
||||||
def output_for_cli(self, textui, result, cn, **options):
|
def output_for_cli(self, textui, result, cn, **options):
|
||||||
textui.print_dashed(_('Removed option "%(option)s" from Sudo Rule "%(rule)s"') % \
|
textui.print_dashed(_('Removed option "%(option)s" from Sudo Rule "%(rule)s"') % \
|
||||||
|
@ -434,6 +434,7 @@ sides.
|
|||||||
)
|
)
|
||||||
|
|
||||||
msg_summary = _('Added Active Directory trust for realm "%(value)s"')
|
msg_summary = _('Added Active Directory trust for realm "%(value)s"')
|
||||||
|
msg_summary_existing = _('Re-established trust to domain "%(value)s"')
|
||||||
has_output_params = LDAPCreate.has_output_params + trust_output_params
|
has_output_params = LDAPCreate.has_output_params + trust_output_params
|
||||||
|
|
||||||
def execute(self, *keys, **options):
|
def execute(self, *keys, **options):
|
||||||
@ -640,11 +641,6 @@ sides.
|
|||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
dn = None
|
dn = None
|
||||||
|
|
||||||
if dn:
|
|
||||||
summary = _('Re-established trust to domain "%(value)s"')
|
|
||||||
else:
|
|
||||||
summary = self.msg_summary
|
|
||||||
|
|
||||||
# 1. Full access to the remote domain. Use admin credentials and
|
# 1. Full access to the remote domain. Use admin credentials and
|
||||||
# generate random trustdom password to do work on both sides
|
# generate random trustdom password to do work on both sides
|
||||||
if full_join:
|
if full_join:
|
||||||
@ -685,10 +681,13 @@ sides.
|
|||||||
error=_('Unable to verify write permissions to the AD'))
|
error=_('Unable to verify write permissions to the AD'))
|
||||||
|
|
||||||
ret = dict(
|
ret = dict(
|
||||||
value=self.trustinstance.remote_domain.info['dns_domain'],
|
value=pkey_to_value(
|
||||||
|
self.trustinstance.remote_domain.info['dns_domain'],
|
||||||
|
options),
|
||||||
verified=result['verified']
|
verified=result['verified']
|
||||||
)
|
)
|
||||||
ret['summary'] = summary % ret
|
if dn:
|
||||||
|
ret['summary'] = self.msg_summary_existing % ret
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
@ -702,10 +701,13 @@ sides.
|
|||||||
options['trust_secret']
|
options['trust_secret']
|
||||||
)
|
)
|
||||||
ret = dict(
|
ret = dict(
|
||||||
value=self.trustinstance.remote_domain.info['dns_domain'],
|
value=pkey_to_value(
|
||||||
|
self.trustinstance.remote_domain.info['dns_domain'],
|
||||||
|
options),
|
||||||
verified=result['verified']
|
verified=result['verified']
|
||||||
)
|
)
|
||||||
ret['summary'] = summary % ret
|
if dn:
|
||||||
|
ret['summary'] = self.msg_summary_existing % ret
|
||||||
return ret
|
return ret
|
||||||
raise errors.ValidationError(name=_('AD Trust setup'),
|
raise errors.ValidationError(name=_('AD Trust setup'),
|
||||||
error=_('Not enough arguments specified to perform trust setup'))
|
error=_('Not enough arguments specified to perform trust setup'))
|
||||||
@ -915,7 +917,7 @@ class trustconfig_mod(LDAPUpdate):
|
|||||||
|
|
||||||
def execute(self, *keys, **options):
|
def execute(self, *keys, **options):
|
||||||
result = super(trustconfig_mod, self).execute(*keys, **options)
|
result = super(trustconfig_mod, self).execute(*keys, **options)
|
||||||
result['value'] = options['trust_type']
|
result['value'] = pkey_to_value(options['trust_type'], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
||||||
@ -932,7 +934,7 @@ class trustconfig_show(LDAPRetrieve):
|
|||||||
|
|
||||||
def execute(self, *keys, **options):
|
def execute(self, *keys, **options):
|
||||||
result = super(trustconfig_show, self).execute(*keys, **options)
|
result = super(trustconfig_show, self).execute(*keys, **options)
|
||||||
result['value'] = options['trust_type']
|
result['value'] = pkey_to_value(options['trust_type'], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
||||||
@ -1216,7 +1218,7 @@ class trustdomain_del(LDAPDelete):
|
|||||||
except errors.AlreadyActive:
|
except errors.AlreadyActive:
|
||||||
pass
|
pass
|
||||||
result = super(trustdomain_del, self).execute(*keys, **options)
|
result = super(trustdomain_del, self).execute(*keys, **options)
|
||||||
result['value'] = u','.join(keys[1])
|
result['value'] = pkey_to_value(keys[1], options)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -1346,7 +1348,7 @@ class trustdomain_enable(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=keys[1],
|
value=pkey_to_value(keys[1], options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(trustdomain_enable)
|
api.register(trustdomain_enable)
|
||||||
@ -1386,7 +1388,7 @@ class trustdomain_disable(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=keys[1],
|
value=pkey_to_value(keys[1], options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(trustdomain_disable)
|
api.register(trustdomain_disable)
|
||||||
|
@ -832,7 +832,7 @@ class user_disable(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=keys[0],
|
value=pkey_to_value(keys[0], options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(user_disable)
|
api.register(user_disable)
|
||||||
@ -854,7 +854,7 @@ class user_enable(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=keys[0],
|
value=pkey_to_value(keys[0], options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(user_enable)
|
api.register(user_enable)
|
||||||
@ -883,7 +883,7 @@ class user_unlock(LDAPQuery):
|
|||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=True,
|
result=True,
|
||||||
value=keys[0],
|
value=pkey_to_value(keys[0], options),
|
||||||
)
|
)
|
||||||
|
|
||||||
api.register(user_unlock)
|
api.register(user_unlock)
|
||||||
|
@ -25,6 +25,7 @@ from ipatests.util import raises, ClassChecker
|
|||||||
from ipalib import output
|
from ipalib import output
|
||||||
from ipalib.frontend import Command
|
from ipalib.frontend import Command
|
||||||
from ipalib import _
|
from ipalib import _
|
||||||
|
from ipapython.version import API_VERSION
|
||||||
|
|
||||||
class test_Output(ClassChecker):
|
class test_Output(ClassChecker):
|
||||||
"""
|
"""
|
||||||
@ -78,12 +79,14 @@ class test_ListOfEntries(ClassChecker):
|
|||||||
okay = dict(foo='bar')
|
okay = dict(foo='bar')
|
||||||
nope = ('aye', 'bee')
|
nope = ('aye', 'bee')
|
||||||
|
|
||||||
e = raises(TypeError, inst.validate, cmd, [okay, okay, nope])
|
e = raises(TypeError, inst.validate,
|
||||||
|
cmd, [okay, okay, nope], API_VERSION)
|
||||||
assert str(e) == output.emsg % (
|
assert str(e) == output.emsg % (
|
||||||
'example', 'ListOfEntries', 'stuff', 2, dict, tuple, nope
|
'example', 'ListOfEntries', 'stuff', 2, dict, tuple, nope
|
||||||
)
|
)
|
||||||
|
|
||||||
e = raises(TypeError, inst.validate, cmd, [nope, okay, nope])
|
e = raises(TypeError, inst.validate,
|
||||||
|
cmd, [nope, okay, nope], API_VERSION)
|
||||||
assert str(e) == output.emsg % (
|
assert str(e) == output.emsg % (
|
||||||
'example', 'ListOfEntries', 'stuff', 0, dict, tuple, nope
|
'example', 'ListOfEntries', 'stuff', 0, dict, tuple, nope
|
||||||
)
|
)
|
||||||
|
@ -242,7 +242,7 @@ class test_automember(Declarative):
|
|||||||
desc='Rebuild membership for hostgroups',
|
desc='Rebuild membership for hostgroups',
|
||||||
command=('automember_rebuild', [], dict(type=u'hostgroup')),
|
command=('automember_rebuild', [], dict(type=u'hostgroup')),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=fuzzy_automember_message,
|
summary=fuzzy_automember_message,
|
||||||
result=dict()
|
result=dict()
|
||||||
),
|
),
|
||||||
@ -252,7 +252,7 @@ class test_automember(Declarative):
|
|||||||
desc='Rebuild membership for hostgroups asynchronously',
|
desc='Rebuild membership for hostgroups asynchronously',
|
||||||
command=('automember_rebuild', [], dict(type=u'hostgroup',no_wait=True)),
|
command=('automember_rebuild', [], dict(type=u'hostgroup',no_wait=True)),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=u'Automember rebuild membership task started',
|
summary=u'Automember rebuild membership task started',
|
||||||
result=dict(
|
result=dict(
|
||||||
dn=fuzzy_automember_dn
|
dn=fuzzy_automember_dn
|
||||||
@ -361,7 +361,7 @@ class test_automember(Declarative):
|
|||||||
desc='Rebuild membership for host: %s' % fqdn1,
|
desc='Rebuild membership for host: %s' % fqdn1,
|
||||||
command=('automember_rebuild', [], dict(hosts=fqdn1)),
|
command=('automember_rebuild', [], dict(hosts=fqdn1)),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=fuzzy_automember_message,
|
summary=fuzzy_automember_message,
|
||||||
result=dict()
|
result=dict()
|
||||||
),
|
),
|
||||||
@ -371,7 +371,7 @@ class test_automember(Declarative):
|
|||||||
desc='Rebuild membership for host: %s asynchronously' % fqdn1,
|
desc='Rebuild membership for host: %s asynchronously' % fqdn1,
|
||||||
command=('automember_rebuild', [], dict(hosts=fqdn1, no_wait=True)),
|
command=('automember_rebuild', [], dict(hosts=fqdn1, no_wait=True)),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=u'Automember rebuild membership task started',
|
summary=u'Automember rebuild membership task started',
|
||||||
result=dict(
|
result=dict(
|
||||||
dn=fuzzy_automember_dn
|
dn=fuzzy_automember_dn
|
||||||
@ -398,9 +398,9 @@ class test_automember(Declarative):
|
|||||||
desc='Delete host: %r' % fqdn1,
|
desc='Delete host: %r' % fqdn1,
|
||||||
command=('host_del', [fqdn1], dict()),
|
command=('host_del', [fqdn1], dict()),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=fqdn1,
|
value=[fqdn1],
|
||||||
summary=u'Deleted host "%s"' % fqdn1,
|
summary=u'Deleted host "%s"' % fqdn1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -408,9 +408,9 @@ class test_automember(Declarative):
|
|||||||
desc='Delete hostgroup: %r' % hostgroup1,
|
desc='Delete hostgroup: %r' % hostgroup1,
|
||||||
command=('hostgroup_del', [hostgroup1], dict()),
|
command=('hostgroup_del', [hostgroup1], dict()),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=hostgroup1,
|
value=[hostgroup1],
|
||||||
summary=u'Deleted hostgroup "%s"' % hostgroup1,
|
summary=u'Deleted hostgroup "%s"' % hostgroup1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -418,9 +418,9 @@ class test_automember(Declarative):
|
|||||||
desc='Delete automember rule: %r' % hostgroup1,
|
desc='Delete automember rule: %r' % hostgroup1,
|
||||||
command=('automember_del', [hostgroup1], dict(type=u'hostgroup')),
|
command=('automember_del', [hostgroup1], dict(type=u'hostgroup')),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=hostgroup1,
|
value=[hostgroup1],
|
||||||
summary=u'Deleted automember rule "%s"' % hostgroup1,
|
summary=u'Deleted automember rule "%s"' % hostgroup1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -543,7 +543,7 @@ class test_automember(Declarative):
|
|||||||
desc='Rebuild membership for groups',
|
desc='Rebuild membership for groups',
|
||||||
command=('automember_rebuild', [], dict(type=u'group')),
|
command=('automember_rebuild', [], dict(type=u'group')),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=fuzzy_automember_message,
|
summary=fuzzy_automember_message,
|
||||||
result=dict()
|
result=dict()
|
||||||
),
|
),
|
||||||
@ -553,7 +553,7 @@ class test_automember(Declarative):
|
|||||||
desc='Rebuild membership for groups asynchronously',
|
desc='Rebuild membership for groups asynchronously',
|
||||||
command=('automember_rebuild', [], dict(type=u'group', no_wait=True)),
|
command=('automember_rebuild', [], dict(type=u'group', no_wait=True)),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=u'Automember rebuild membership task started',
|
summary=u'Automember rebuild membership task started',
|
||||||
result=dict(
|
result=dict(
|
||||||
dn=fuzzy_automember_dn
|
dn=fuzzy_automember_dn
|
||||||
@ -620,7 +620,7 @@ class test_automember(Declarative):
|
|||||||
desc='Rebuild membership for user: %s' % user1,
|
desc='Rebuild membership for user: %s' % user1,
|
||||||
command=('automember_rebuild', [], dict(users=user1)),
|
command=('automember_rebuild', [], dict(users=user1)),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=fuzzy_automember_message,
|
summary=fuzzy_automember_message,
|
||||||
result=dict()
|
result=dict()
|
||||||
),
|
),
|
||||||
@ -630,7 +630,7 @@ class test_automember(Declarative):
|
|||||||
desc='Rebuild membership for user: %s asynchronously' % user1,
|
desc='Rebuild membership for user: %s asynchronously' % user1,
|
||||||
command=('automember_rebuild', [], dict(users=user1, no_wait=True)),
|
command=('automember_rebuild', [], dict(users=user1, no_wait=True)),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=u'Automember rebuild membership task started',
|
summary=u'Automember rebuild membership task started',
|
||||||
result=dict(
|
result=dict(
|
||||||
dn=fuzzy_automember_dn
|
dn=fuzzy_automember_dn
|
||||||
@ -658,9 +658,9 @@ class test_automember(Declarative):
|
|||||||
desc='Delete user: %r' % user1,
|
desc='Delete user: %r' % user1,
|
||||||
command=('user_del', [user1], dict()),
|
command=('user_del', [user1], dict()),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=user1,
|
value=[user1],
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -668,9 +668,9 @@ class test_automember(Declarative):
|
|||||||
desc='Delete user: %r' % manager1,
|
desc='Delete user: %r' % manager1,
|
||||||
command=('user_del', [manager1], dict()),
|
command=('user_del', [manager1], dict()),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=manager1,
|
value=[manager1],
|
||||||
summary=u'Deleted user "%s"' % manager1,
|
summary=u'Deleted user "%s"' % manager1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -678,9 +678,9 @@ class test_automember(Declarative):
|
|||||||
desc='Delete group: %r' % group1,
|
desc='Delete group: %r' % group1,
|
||||||
command=('group_del', [group1], dict()),
|
command=('group_del', [group1], dict()),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=group1,
|
value=[group1],
|
||||||
summary=u'Deleted group "%s"' % group1,
|
summary=u'Deleted group "%s"' % group1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -688,9 +688,9 @@ class test_automember(Declarative):
|
|||||||
desc='Delete automember rule: %r' % group1,
|
desc='Delete automember rule: %r' % group1,
|
||||||
command=('automember_del', [group1], dict(type=u'group')),
|
command=('automember_del', [group1], dict(type=u'group')),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=group1,
|
value=[group1],
|
||||||
summary=u'Deleted automember rule "%s"' % group1,
|
summary=u'Deleted automember rule "%s"' % group1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ class AutomountTest(XMLRPC_test):
|
|||||||
finally:
|
finally:
|
||||||
res = api.Command['automountlocation_del'](self.locname)['result']
|
res = api.Command['automountlocation_del'](self.locname)['result']
|
||||||
assert res
|
assert res
|
||||||
assert_attr_equal(res, 'failed', '')
|
assert not res['failed']
|
||||||
|
|
||||||
# Success; delete the temporary directory
|
# Success; delete the temporary directory
|
||||||
shutil.rmtree(conf_directory)
|
shutil.rmtree(conf_directory)
|
||||||
@ -285,7 +285,7 @@ class test_automount(AutomountTest):
|
|||||||
delkey_kw={'automountkey': self.keyname_rename, 'automountinformation' : self.newinfo}
|
delkey_kw={'automountkey': self.keyname_rename, 'automountinformation' : self.newinfo}
|
||||||
res = api.Command['automountkey_del'](self.locname, self.mapname, **delkey_kw)['result']
|
res = api.Command['automountkey_del'](self.locname, self.mapname, **delkey_kw)['result']
|
||||||
assert res
|
assert res
|
||||||
assert_attr_equal(res, 'failed', '')
|
assert not res['failed']
|
||||||
|
|
||||||
# Verify that it is gone
|
# Verify that it is gone
|
||||||
with assert_raises(errors.NotFound):
|
with assert_raises(errors.NotFound):
|
||||||
@ -297,7 +297,7 @@ class test_automount(AutomountTest):
|
|||||||
"""
|
"""
|
||||||
res = api.Command['automountlocation_del'](self.locname)['result']
|
res = api.Command['automountlocation_del'](self.locname)['result']
|
||||||
assert res
|
assert res
|
||||||
assert_attr_equal(res, 'failed', '')
|
assert not res['failed']
|
||||||
|
|
||||||
# Verify that it is gone
|
# Verify that it is gone
|
||||||
with assert_raises(errors.NotFound):
|
with assert_raises(errors.NotFound):
|
||||||
@ -367,7 +367,7 @@ class test_automount_direct(AutomountTest):
|
|||||||
"""
|
"""
|
||||||
res = api.Command['automountlocation_del'](self.locname)['result']
|
res = api.Command['automountlocation_del'](self.locname)['result']
|
||||||
assert res
|
assert res
|
||||||
assert_attr_equal(res, 'failed', '')
|
assert not res['failed']
|
||||||
|
|
||||||
# Verity that it is gone
|
# Verity that it is gone
|
||||||
with assert_raises(errors.NotFound):
|
with assert_raises(errors.NotFound):
|
||||||
@ -443,7 +443,7 @@ class test_automount_indirect(AutomountTest):
|
|||||||
"""
|
"""
|
||||||
res = api.Command['automountkey_del'](self.locname, self.parentmap, **self.key_kw)['result']
|
res = api.Command['automountkey_del'](self.locname, self.parentmap, **self.key_kw)['result']
|
||||||
assert res
|
assert res
|
||||||
assert_attr_equal(res, 'failed', '')
|
assert not res['failed']
|
||||||
|
|
||||||
# Verify that it is gone
|
# Verify that it is gone
|
||||||
with assert_raises(errors.NotFound):
|
with assert_raises(errors.NotFound):
|
||||||
@ -455,7 +455,7 @@ class test_automount_indirect(AutomountTest):
|
|||||||
"""
|
"""
|
||||||
res = api.Command['automountmap_del'](self.locname, self.mapname)['result']
|
res = api.Command['automountmap_del'](self.locname, self.mapname)['result']
|
||||||
assert res
|
assert res
|
||||||
assert_attr_equal(res, 'failed', '')
|
assert not res['failed']
|
||||||
|
|
||||||
# Verify that it is gone
|
# Verify that it is gone
|
||||||
with assert_raises(errors.NotFound):
|
with assert_raises(errors.NotFound):
|
||||||
@ -467,7 +467,7 @@ class test_automount_indirect(AutomountTest):
|
|||||||
"""
|
"""
|
||||||
res = api.Command['automountlocation_del'](self.locname)['result']
|
res = api.Command['automountlocation_del'](self.locname)['result']
|
||||||
assert res
|
assert res
|
||||||
assert_attr_equal(res, 'failed', '')
|
assert not res['failed']
|
||||||
|
|
||||||
# Verity that it is gone
|
# Verity that it is gone
|
||||||
with assert_raises(errors.NotFound):
|
with assert_raises(errors.NotFound):
|
||||||
@ -551,7 +551,7 @@ class test_automount_indirect_no_parent(AutomountTest):
|
|||||||
delkey_kw={'automountkey': self.keyname, 'automountinformation': self.mapname}
|
delkey_kw={'automountkey': self.keyname, 'automountinformation': self.mapname}
|
||||||
res = api.Command['automountkey_del'](self.locname, self.parentmap, **delkey_kw)['result']
|
res = api.Command['automountkey_del'](self.locname, self.parentmap, **delkey_kw)['result']
|
||||||
assert res
|
assert res
|
||||||
assert_attr_equal(res, 'failed', '')
|
assert not res['failed']
|
||||||
|
|
||||||
# Verify that it is gone
|
# Verify that it is gone
|
||||||
with assert_raises(errors.NotFound):
|
with assert_raises(errors.NotFound):
|
||||||
@ -563,7 +563,7 @@ class test_automount_indirect_no_parent(AutomountTest):
|
|||||||
"""
|
"""
|
||||||
res = api.Command['automountmap_del'](self.locname, self.mapname)['result']
|
res = api.Command['automountmap_del'](self.locname, self.mapname)['result']
|
||||||
assert res
|
assert res
|
||||||
assert_attr_equal(res, 'failed', '')
|
assert not res['failed']
|
||||||
|
|
||||||
# Verify that it is gone
|
# Verify that it is gone
|
||||||
with assert_raises(errors.NotFound):
|
with assert_raises(errors.NotFound):
|
||||||
@ -575,7 +575,7 @@ class test_automount_indirect_no_parent(AutomountTest):
|
|||||||
"""
|
"""
|
||||||
res = api.Command['automountlocation_del'](self.locname)['result']
|
res = api.Command['automountlocation_del'](self.locname)['result']
|
||||||
assert res
|
assert res
|
||||||
assert_attr_equal(res, 'failed', '')
|
assert not res['failed']
|
||||||
|
|
||||||
# Verity that it is gone
|
# Verity that it is gone
|
||||||
with assert_raises(errors.NotFound):
|
with assert_raises(errors.NotFound):
|
||||||
|
@ -104,8 +104,8 @@ class test_batch(Declarative):
|
|||||||
error=None),
|
error=None),
|
||||||
dict(
|
dict(
|
||||||
summary=u'Deleted group "%s"' % group1,
|
summary=u'Deleted group "%s"' % group1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=group1,
|
value=[group1],
|
||||||
error=None),
|
error=None),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -37,7 +37,7 @@ class test_config(Declarative):
|
|||||||
dict(addattr=u'ipauserobjectclasses=ipahost')),
|
dict(addattr=u'ipauserobjectclasses=ipahost')),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=lambda d: 'ipahost' in d['ipauserobjectclasses'],
|
result=lambda d: 'ipahost' in d['ipauserobjectclasses'],
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -48,7 +48,7 @@ class test_config(Declarative):
|
|||||||
dict(delattr=u'ipauserobjectclasses=ipahost')),
|
dict(delattr=u'ipauserobjectclasses=ipahost')),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=lambda d: 'ipahost' not in d['ipauserobjectclasses'],
|
result=lambda d: 'ipahost' not in d['ipauserobjectclasses'],
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -123,7 +123,7 @@ class test_config(Declarative):
|
|||||||
command=('config_mod', [], dict(ipauserauthtype=u'password')),
|
command=('config_mod', [], dict(ipauserauthtype=u'password')),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=lambda d: d['ipauserauthtype'] == (u'password',),
|
result=lambda d: d['ipauserauthtype'] == (u'password',),
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -133,7 +133,7 @@ class test_config(Declarative):
|
|||||||
command=('config_show', [], {}),
|
command=('config_show', [], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=lambda d: d['ipauserauthtype'] == (u'password',),
|
result=lambda d: d['ipauserauthtype'] == (u'password',),
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -143,7 +143,7 @@ class test_config(Declarative):
|
|||||||
command=('config_mod', [], dict(ipauserauthtype=None)),
|
command=('config_mod', [], dict(ipauserauthtype=None)),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=lambda d: 'ipauserauthtype' not in d,
|
result=lambda d: 'ipauserauthtype' not in d,
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -451,9 +451,9 @@ class test_dns(Declarative):
|
|||||||
desc='Delete reverse zone %r' % revzone1,
|
desc='Delete reverse zone %r' % revzone1,
|
||||||
command=('dnszone_del', [revzone1], {}),
|
command=('dnszone_del', [revzone1], {}),
|
||||||
expected={
|
expected={
|
||||||
'value': revzone1,
|
'value': [revzone1],
|
||||||
'summary': u'Deleted DNS zone "%s"' % revzone1,
|
'summary': u'Deleted DNS zone "%s"' % revzone1,
|
||||||
'result': {'failed': u''},
|
'result': {'failed': []},
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -560,7 +560,7 @@ class test_dns(Declarative):
|
|||||||
desc='Remove A record from %r in zone %r' % (name1, zone1),
|
desc='Remove A record from %r in zone %r' % (name1, zone1),
|
||||||
command=('dnsrecord_del', [zone1, name1], {'arecord': arec2}),
|
command=('dnsrecord_del', [zone1, name1], {'arecord': arec2}),
|
||||||
expected={
|
expected={
|
||||||
'value': name1,
|
'value': [name1],
|
||||||
'summary': None,
|
'summary': None,
|
||||||
'result': {
|
'result': {
|
||||||
'idnsname': [name1],
|
'idnsname': [name1],
|
||||||
@ -897,9 +897,9 @@ class test_dns(Declarative):
|
|||||||
desc='Delete zone %r' % zone2,
|
desc='Delete zone %r' % zone2,
|
||||||
command=('dnszone_del', [zone2], {}),
|
command=('dnszone_del', [zone2], {}),
|
||||||
expected={
|
expected={
|
||||||
'value': zone2,
|
'value': [zone2],
|
||||||
'summary': u'Deleted DNS zone "%s"' % zone2,
|
'summary': u'Deleted DNS zone "%s"' % zone2,
|
||||||
'result': {'failed': u''},
|
'result': {'failed': []},
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -1026,9 +1026,9 @@ class test_dns(Declarative):
|
|||||||
desc='Delete record %r in zone %r' % (name1_renamed, zone1),
|
desc='Delete record %r in zone %r' % (name1_renamed, zone1),
|
||||||
command=('dnsrecord_del', [zone1, name1_renamed], {'del_all': True }),
|
command=('dnsrecord_del', [zone1, name1_renamed], {'del_all': True }),
|
||||||
expected={
|
expected={
|
||||||
'value': name1_renamed,
|
'value': [name1_renamed],
|
||||||
'summary': u'Deleted record "%s"' % name1_renamed,
|
'summary': u'Deleted record "%s"' % name1_renamed,
|
||||||
'result': {'failed': u''},
|
'result': {'failed': []},
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -1166,7 +1166,7 @@ class test_dns(Declarative):
|
|||||||
desc='Update global DNS settings',
|
desc='Update global DNS settings',
|
||||||
command=('dnsconfig_mod', [], {'idnsforwarders' : [fwd_ip],}),
|
command=('dnsconfig_mod', [], {'idnsforwarders' : [fwd_ip],}),
|
||||||
expected={
|
expected={
|
||||||
'value': u'',
|
'value': None,
|
||||||
'summary': None,
|
'summary': None,
|
||||||
'result': {
|
'result': {
|
||||||
'idnsforwarders': [fwd_ip],
|
'idnsforwarders': [fwd_ip],
|
||||||
@ -1406,9 +1406,9 @@ class test_dns(Declarative):
|
|||||||
desc='Delete zone %r' % zone1,
|
desc='Delete zone %r' % zone1,
|
||||||
command=('dnszone_del', [zone1], {}),
|
command=('dnszone_del', [zone1], {}),
|
||||||
expected={
|
expected={
|
||||||
'value': zone1,
|
'value': [zone1],
|
||||||
'summary': u'Deleted DNS zone "%s"' % zone1,
|
'summary': u'Deleted DNS zone "%s"' % zone1,
|
||||||
'result': {'failed': u''},
|
'result': {'failed': []},
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -1469,9 +1469,9 @@ class test_dns(Declarative):
|
|||||||
desc='Delete zone %r' % zone1,
|
desc='Delete zone %r' % zone1,
|
||||||
command=('dnszone_del', [zone1], {}),
|
command=('dnszone_del', [zone1], {}),
|
||||||
expected={
|
expected={
|
||||||
'value': zone1,
|
'value': [zone1],
|
||||||
'summary': u'Deleted DNS zone "%s"' % zone1,
|
'summary': u'Deleted DNS zone "%s"' % zone1,
|
||||||
'result': {'failed': u''},
|
'result': {'failed': []},
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -55,6 +55,8 @@ def assert_realmdomain_and_txt_record_present(response):
|
|||||||
|
|
||||||
def assert_realmdomain_and_txt_record_not_present(response):
|
def assert_realmdomain_and_txt_record_not_present(response):
|
||||||
zone = response['value']
|
zone = response['value']
|
||||||
|
if isinstance(zone, (tuple, list)):
|
||||||
|
zone = zone[0]
|
||||||
|
|
||||||
r = api.Command['realmdomains_show']()
|
r = api.Command['realmdomains_show']()
|
||||||
assert zone not in r['result']['associateddomain']
|
assert zone not in r['result']['associateddomain']
|
||||||
@ -159,9 +161,9 @@ class test_dns_realmdomains_integration(Declarative):
|
|||||||
'during dnszone_del',
|
'during dnszone_del',
|
||||||
command=('dnszone_del', [dnszone_1], {}),
|
command=('dnszone_del', [dnszone_1], {}),
|
||||||
expected={
|
expected={
|
||||||
'value': dnszone_1,
|
'value': [dnszone_1],
|
||||||
'summary': u'Deleted DNS zone "%s"' % dnszone_1,
|
'summary': u'Deleted DNS zone "%s"' % dnszone_1,
|
||||||
'result': {'failed': u''},
|
'result': {'failed': []},
|
||||||
},
|
},
|
||||||
extra_check=assert_realmdomain_and_txt_record_not_present,
|
extra_check=assert_realmdomain_and_txt_record_not_present,
|
||||||
),
|
),
|
||||||
|
@ -554,8 +554,8 @@ class test_group(Declarative):
|
|||||||
desc='Remove group %r with external membership' % (group3),
|
desc='Remove group %r with external membership' % (group3),
|
||||||
command=('group_del', [group3], {}),
|
command=('group_del', [group3], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=group3,
|
value=[group3],
|
||||||
summary=u'Deleted group "testgroup3"',
|
summary=u'Deleted group "testgroup3"',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -693,8 +693,8 @@ class test_group(Declarative):
|
|||||||
desc='Delete %r' % group1,
|
desc='Delete %r' % group1,
|
||||||
command=('group_del', [group1], {}),
|
command=('group_del', [group1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=group1,
|
value=[group1],
|
||||||
summary=u'Deleted group "testgroup1"',
|
summary=u'Deleted group "testgroup1"',
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -728,8 +728,8 @@ class test_group(Declarative):
|
|||||||
desc='Delete %r' % group2,
|
desc='Delete %r' % group2,
|
||||||
command=('group_del', [group2], {}),
|
command=('group_del', [group2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=group2,
|
value=[group2],
|
||||||
summary=u'Deleted group "testgroup2"',
|
summary=u'Deleted group "testgroup2"',
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -859,8 +859,8 @@ class test_group(Declarative):
|
|||||||
desc='Now delete the unmanaged group %r' % user1,
|
desc='Now delete the unmanaged group %r' % user1,
|
||||||
command=('group_del', [user1], {}),
|
command=('group_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=user1,
|
value=[user1],
|
||||||
summary=u'Deleted group "%s"' % user1,
|
summary=u'Deleted group "%s"' % user1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -875,9 +875,9 @@ class test_group(Declarative):
|
|||||||
desc='Delete %r' % user1,
|
desc='Delete %r' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "tuser1"',
|
summary=u'Deleted user "tuser1"',
|
||||||
value=user1,
|
value=[user1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -1004,9 +1004,9 @@ class test_group(Declarative):
|
|||||||
desc='Delete %r' % user1,
|
desc='Delete %r' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
value=user1,
|
value=[user1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -236,9 +236,9 @@ class test_hbacsvcgroup(Declarative):
|
|||||||
desc='Delete %r' % hbacsvcgroup1,
|
desc='Delete %r' % hbacsvcgroup1,
|
||||||
command=('hbacsvcgroup_del', [hbacsvcgroup1], {}),
|
command=('hbacsvcgroup_del', [hbacsvcgroup1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=hbacsvcgroup1,
|
value=[hbacsvcgroup1],
|
||||||
summary=u'Deleted HBAC service group "testhbacsvcgroup1"',
|
summary=u'Deleted HBAC service group "testhbacsvcgroup1"',
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -247,9 +247,9 @@ class test_hbacsvcgroup(Declarative):
|
|||||||
desc='Delete service %r' % hbacsvc1,
|
desc='Delete service %r' % hbacsvc1,
|
||||||
command=('hbacsvc_del', [hbacsvc1], {}),
|
command=('hbacsvc_del', [hbacsvc1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=hbacsvc1,
|
value=[hbacsvc1],
|
||||||
summary=u'Deleted HBAC service "%s"' % hbacsvc1,
|
summary=u'Deleted HBAC service "%s"' % hbacsvc1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -585,9 +585,9 @@ class test_host(Declarative):
|
|||||||
desc='Delete %r' % fqdn1,
|
desc='Delete %r' % fqdn1,
|
||||||
command=('host_del', [fqdn1], {}),
|
command=('host_del', [fqdn1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=fqdn1,
|
value=[fqdn1],
|
||||||
summary=u'Deleted host "%s"' % fqdn1,
|
summary=u'Deleted host "%s"' % fqdn1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -661,9 +661,9 @@ class test_host(Declarative):
|
|||||||
desc='Delete using host name %r' % short1,
|
desc='Delete using host name %r' % short1,
|
||||||
command=('host_del', [short1], {}),
|
command=('host_del', [short1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=short1,
|
value=[short1],
|
||||||
summary=u'Deleted host "%s"' % short1,
|
summary=u'Deleted host "%s"' % short1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -831,9 +831,9 @@ class test_host(Declarative):
|
|||||||
desc='Delete %r' % fqdn3,
|
desc='Delete %r' % fqdn3,
|
||||||
command=('host_del', [fqdn3], {}),
|
command=('host_del', [fqdn3], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=fqdn3,
|
value=[fqdn3],
|
||||||
summary=u'Deleted host "%s"' % fqdn3,
|
summary=u'Deleted host "%s"' % fqdn3,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -261,9 +261,9 @@ class test_hostgroup(Declarative):
|
|||||||
desc='Delete %r' % hostgroup1,
|
desc='Delete %r' % hostgroup1,
|
||||||
command=('hostgroup_del', [hostgroup1], {}),
|
command=('hostgroup_del', [hostgroup1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=hostgroup1,
|
value=[hostgroup1],
|
||||||
summary=u'Deleted hostgroup "testhostgroup1"',
|
summary=u'Deleted hostgroup "testhostgroup1"',
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -293,9 +293,9 @@ class test_hostgroup(Declarative):
|
|||||||
desc='Delete %r' % hostgroup_single,
|
desc='Delete %r' % hostgroup_single,
|
||||||
command=('hostgroup_del', [hostgroup_single], {}),
|
command=('hostgroup_del', [hostgroup_single], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=hostgroup_single,
|
value=[hostgroup_single],
|
||||||
summary=u'Deleted hostgroup "a"',
|
summary=u'Deleted hostgroup "a"',
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -304,9 +304,9 @@ class test_hostgroup(Declarative):
|
|||||||
desc='Delete host %r' % fqdn1,
|
desc='Delete host %r' % fqdn1,
|
||||||
command=('host_del', [fqdn1], {}),
|
command=('host_del', [fqdn1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=fqdn1,
|
value=[fqdn1],
|
||||||
summary=u'Deleted host "%s"' % fqdn1,
|
summary=u'Deleted host "%s"' % fqdn1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ class test_krbtpolicy(Declarative):
|
|||||||
'krbtpolicy_reset', [], {}
|
'krbtpolicy_reset', [], {}
|
||||||
),
|
),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
result=dict(
|
result=dict(
|
||||||
krbmaxticketlife=[u'86400'],
|
krbmaxticketlife=[u'86400'],
|
||||||
@ -58,7 +58,7 @@ class test_krbtpolicy(Declarative):
|
|||||||
'krbtpolicy_show', [], {}
|
'krbtpolicy_show', [], {}
|
||||||
),
|
),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
result=dict(
|
result=dict(
|
||||||
dn=DN(('cn',api.env.domain),('cn','kerberos'),
|
dn=DN(('cn',api.env.domain),('cn','kerberos'),
|
||||||
@ -76,7 +76,7 @@ class test_krbtpolicy(Declarative):
|
|||||||
'krbtpolicy_mod', [], dict(krbmaxticketlife=3600)
|
'krbtpolicy_mod', [], dict(krbmaxticketlife=3600)
|
||||||
),
|
),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
result=dict(
|
result=dict(
|
||||||
krbmaxticketlife=[u'3600'],
|
krbmaxticketlife=[u'3600'],
|
||||||
|
@ -200,9 +200,9 @@ class test_netgroup(Declarative):
|
|||||||
desc='Delete %r' % netgroup_single,
|
desc='Delete %r' % netgroup_single,
|
||||||
command=('netgroup_del', [netgroup_single], {}),
|
command=('netgroup_del', [netgroup_single], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=netgroup_single,
|
value=[netgroup_single],
|
||||||
summary=u'Deleted netgroup "%s"' % netgroup_single,
|
summary=u'Deleted netgroup "%s"' % netgroup_single,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -1281,9 +1281,9 @@ class test_netgroup(Declarative):
|
|||||||
desc='Delete %r' % netgroup1,
|
desc='Delete %r' % netgroup1,
|
||||||
command=('netgroup_del', [netgroup1], {}),
|
command=('netgroup_del', [netgroup1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=netgroup1,
|
value=[netgroup1],
|
||||||
summary=u'Deleted netgroup "%s"' % netgroup1,
|
summary=u'Deleted netgroup "%s"' % netgroup1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -1217,8 +1217,8 @@ class test_permission(Declarative):
|
|||||||
desc='Delete %r' % permission1_renamed_ucase,
|
desc='Delete %r' % permission1_renamed_ucase,
|
||||||
command=('permission_del', [permission1_renamed_ucase], {}),
|
command=('permission_del', [permission1_renamed_ucase], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=permission1_renamed_ucase,
|
value=[permission1_renamed_ucase],
|
||||||
summary=u'Deleted permission "%s"' % permission1_renamed_ucase,
|
summary=u'Deleted permission "%s"' % permission1_renamed_ucase,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -1253,8 +1253,8 @@ class test_permission(Declarative):
|
|||||||
desc='Delete %r' % permission2,
|
desc='Delete %r' % permission2,
|
||||||
command=('permission_del', [permission2], {}),
|
command=('permission_del', [permission2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=permission2,
|
value=[permission2],
|
||||||
summary=u'Deleted permission "%s"' % permission2,
|
summary=u'Deleted permission "%s"' % permission2,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -1277,8 +1277,8 @@ class test_permission(Declarative):
|
|||||||
desc='Delete %r' % privilege1,
|
desc='Delete %r' % privilege1,
|
||||||
command=('privilege_del', [privilege1], {}),
|
command=('privilege_del', [privilege1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=privilege1,
|
value=[privilege1],
|
||||||
summary=u'Deleted privilege "%s"' % privilege1,
|
summary=u'Deleted privilege "%s"' % privilege1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -1410,8 +1410,8 @@ class test_permission(Declarative):
|
|||||||
desc='Delete %r' % permission1,
|
desc='Delete %r' % permission1,
|
||||||
command=('permission_del', [permission1], {}),
|
command=('permission_del', [permission1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=permission1,
|
value=[permission1],
|
||||||
summary=u'Deleted permission "%s"' % permission1,
|
summary=u'Deleted permission "%s"' % permission1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -2697,8 +2697,8 @@ def _make_permission_flag_tests(flags, expected_message):
|
|||||||
desc='Delete %r with --force' % permission1,
|
desc='Delete %r with --force' % permission1,
|
||||||
command=('permission_del', [permission1], {'force': True}),
|
command=('permission_del', [permission1], {'force': True}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=permission1,
|
value=[permission1],
|
||||||
summary=u'Deleted permission "%s"' % permission1,
|
summary=u'Deleted permission "%s"' % permission1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -3571,8 +3571,8 @@ class test_managed_permissions(Declarative):
|
|||||||
desc='Delete %r with --force' % permission1,
|
desc='Delete %r with --force' % permission1,
|
||||||
command=('permission_del', [permission1], {'force': True}),
|
command=('permission_del', [permission1], {'force': True}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=permission1,
|
value=[permission1],
|
||||||
summary=u'Deleted permission "%s"' % permission1,
|
summary=u'Deleted permission "%s"' % permission1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -3826,8 +3826,8 @@ class test_permission_filters(Declarative):
|
|||||||
desc='Delete %r' % permission1,
|
desc='Delete %r' % permission1,
|
||||||
command=('permission_del', [permission1], {}),
|
command=('permission_del', [permission1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=permission1,
|
value=[permission1],
|
||||||
summary=u'Deleted permission "%s"' % permission1,
|
summary=u'Deleted permission "%s"' % permission1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
@ -410,8 +410,8 @@ class test_privilege(Declarative):
|
|||||||
desc='Delete %r' % privilege1,
|
desc='Delete %r' % privilege1,
|
||||||
command=('privilege_del', [privilege1], {}),
|
command=('privilege_del', [privilege1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=privilege1,
|
value=[privilege1],
|
||||||
summary=u'Deleted privilege "%s"' % privilege1,
|
summary=u'Deleted privilege "%s"' % privilege1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
@ -373,9 +373,9 @@ class test_raduisproxy(Declarative):
|
|||||||
desc='Delete %r' % radius1,
|
desc='Delete %r' % radius1,
|
||||||
command=('radiusproxy_del', [radius1], {}),
|
command=('radiusproxy_del', [radius1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=radius1,
|
value=[radius1],
|
||||||
summary=u'Deleted RADIUS proxy server "%s"' % radius1,
|
summary=u'Deleted RADIUS proxy server "%s"' % radius1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -323,8 +323,8 @@ class test_range(Declarative):
|
|||||||
desc='Delete user %r' % user1,
|
desc='Delete user %r' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=user1,
|
value=[user1],
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -334,8 +334,8 @@ class test_range(Declarative):
|
|||||||
desc='Delete group %r' % group1,
|
desc='Delete group %r' % group1,
|
||||||
command=('group_del', [group1], {}),
|
command=('group_del', [group1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=group1,
|
value=[group1],
|
||||||
summary=u'Deleted group "%s"' % group1,
|
summary=u'Deleted group "%s"' % group1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -345,8 +345,8 @@ class test_range(Declarative):
|
|||||||
desc='Delete ID range %r' % testrange1,
|
desc='Delete ID range %r' % testrange1,
|
||||||
command=('idrange_del', [testrange1], {}),
|
command=('idrange_del', [testrange1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=testrange1,
|
value=[testrange1],
|
||||||
summary=u'Deleted ID range "%s"' % testrange1,
|
summary=u'Deleted ID range "%s"' % testrange1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -442,8 +442,8 @@ class test_range(Declarative):
|
|||||||
desc='Delete ID range %r' % testrange2,
|
desc='Delete ID range %r' % testrange2,
|
||||||
command=('idrange_del', [testrange2], {}),
|
command=('idrange_del', [testrange2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=testrange2,
|
value=[testrange2],
|
||||||
summary=u'Deleted ID range "%s"' % testrange2,
|
summary=u'Deleted ID range "%s"' % testrange2,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -476,8 +476,8 @@ class test_range(Declarative):
|
|||||||
desc='Delete ID range %r' % testrange8,
|
desc='Delete ID range %r' % testrange8,
|
||||||
command=('idrange_del', [testrange8], {}),
|
command=('idrange_del', [testrange8], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=testrange8,
|
value=[testrange8],
|
||||||
summary=u'Deleted ID range "%s"' % testrange8,
|
summary=u'Deleted ID range "%s"' % testrange8,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -486,8 +486,8 @@ class test_range(Declarative):
|
|||||||
desc='Delete non-active AD trusted range %r' % testrange9,
|
desc='Delete non-active AD trusted range %r' % testrange9,
|
||||||
command=('idrange_del', [testrange9], {}),
|
command=('idrange_del', [testrange9], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=testrange9,
|
value=[testrange9],
|
||||||
summary=u'Deleted ID range "%s"' % testrange9,
|
summary=u'Deleted ID range "%s"' % testrange9,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -45,7 +45,7 @@ class test_realmdomains(Declarative):
|
|||||||
desc='Retrieve realm domains',
|
desc='Retrieve realm domains',
|
||||||
command=('realmdomains_show', [], {}),
|
command=('realmdomains_show', [], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
result=dict(
|
result=dict(
|
||||||
dn=dn,
|
dn=dn,
|
||||||
@ -57,7 +57,7 @@ class test_realmdomains(Declarative):
|
|||||||
desc='Retrieve realm domains - print all attributes',
|
desc='Retrieve realm domains - print all attributes',
|
||||||
command=('realmdomains_show', [], {'all': True}),
|
command=('realmdomains_show', [], {'all': True}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
result=dict(
|
result=dict(
|
||||||
dn=dn,
|
dn=dn,
|
||||||
@ -80,7 +80,7 @@ class test_realmdomains(Declarative):
|
|||||||
desc='Replace list of realm domains with "%s"' % [our_domain, new_domain_1],
|
desc='Replace list of realm domains with "%s"' % [our_domain, new_domain_1],
|
||||||
command=('realmdomains_mod', [], {'associateddomain': [our_domain, new_domain_1]}),
|
command=('realmdomains_mod', [], {'associateddomain': [our_domain, new_domain_1]}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
result=dict(
|
result=dict(
|
||||||
associateddomain=[our_domain, new_domain_1],
|
associateddomain=[our_domain, new_domain_1],
|
||||||
@ -91,7 +91,7 @@ class test_realmdomains(Declarative):
|
|||||||
desc='Add domain "%s" to list' % new_domain_2,
|
desc='Add domain "%s" to list' % new_domain_2,
|
||||||
command=('realmdomains_mod', [], {'add_domain': new_domain_2}),
|
command=('realmdomains_mod', [], {'add_domain': new_domain_2}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
result=dict(
|
result=dict(
|
||||||
associateddomain=[our_domain, new_domain_1, new_domain_2],
|
associateddomain=[our_domain, new_domain_1, new_domain_2],
|
||||||
@ -102,7 +102,7 @@ class test_realmdomains(Declarative):
|
|||||||
desc='Delete domain "%s" from list' % new_domain_2,
|
desc='Delete domain "%s" from list' % new_domain_2,
|
||||||
command=('realmdomains_mod', [], {'del_domain': new_domain_2}),
|
command=('realmdomains_mod', [], {'del_domain': new_domain_2}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
result=dict(
|
result=dict(
|
||||||
associateddomain=[our_domain, new_domain_1],
|
associateddomain=[our_domain, new_domain_1],
|
||||||
@ -113,7 +113,7 @@ class test_realmdomains(Declarative):
|
|||||||
desc='Add domain "%s" and delete domain "%s"' % (new_domain_2, new_domain_1),
|
desc='Add domain "%s" and delete domain "%s"' % (new_domain_2, new_domain_1),
|
||||||
command=('realmdomains_mod', [], {'add_domain': new_domain_2, 'del_domain': new_domain_1}),
|
command=('realmdomains_mod', [], {'add_domain': new_domain_2, 'del_domain': new_domain_1}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
result=dict(
|
result=dict(
|
||||||
associateddomain=[our_domain, new_domain_2],
|
associateddomain=[our_domain, new_domain_2],
|
||||||
@ -163,7 +163,7 @@ class test_realmdomains(Declarative):
|
|||||||
desc='Add an invalid domain "%s" with --force option' % bad_domain,
|
desc='Add an invalid domain "%s" with --force option' % bad_domain,
|
||||||
command=('realmdomains_mod', [], {'add_domain': bad_domain, 'force': True}),
|
command=('realmdomains_mod', [], {'add_domain': bad_domain, 'force': True}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=u'',
|
value=None,
|
||||||
summary=None,
|
summary=None,
|
||||||
result=dict(
|
result=dict(
|
||||||
associateddomain=[our_domain, new_domain_2, bad_domain],
|
associateddomain=[our_domain, new_domain_2, bad_domain],
|
||||||
|
@ -468,8 +468,8 @@ class test_role(Declarative):
|
|||||||
desc='Delete %r' % group1,
|
desc='Delete %r' % group1,
|
||||||
command=('group_del', [group1], {}),
|
command=('group_del', [group1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=group1,
|
value=[group1],
|
||||||
summary=u'Deleted group "testgroup1"',
|
summary=u'Deleted group "testgroup1"',
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -554,8 +554,8 @@ class test_role(Declarative):
|
|||||||
desc='Delete %r' % role1,
|
desc='Delete %r' % role1,
|
||||||
command=('role_del', [role1], {}),
|
command=('role_del', [role1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=role1,
|
value=[role1],
|
||||||
summary=u'Deleted role "%s"' % role1,
|
summary=u'Deleted role "%s"' % role1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -604,8 +604,8 @@ class test_role(Declarative):
|
|||||||
desc='Delete %r' % role2,
|
desc='Delete %r' % role2,
|
||||||
command=('role_del', [role2], {}),
|
command=('role_del', [role2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=role2,
|
value=[role2],
|
||||||
summary=u'Deleted role "%s"' % role2,
|
summary=u'Deleted role "%s"' % role2,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
@ -572,8 +572,8 @@ class test_selinuxusermap(Declarative):
|
|||||||
desc='Try to delete similarly named HBAC rule %r' % hbacrule2,
|
desc='Try to delete similarly named HBAC rule %r' % hbacrule2,
|
||||||
command=('hbacrule_del', [hbacrule2], {}),
|
command=('hbacrule_del', [hbacrule2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=hbacrule2,
|
value=[hbacrule2],
|
||||||
summary=u'Deleted HBAC rule "%s"' % hbacrule2,
|
summary=u'Deleted HBAC rule "%s"' % hbacrule2,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -584,8 +584,8 @@ class test_selinuxusermap(Declarative):
|
|||||||
desc='Delete %r' % rule1,
|
desc='Delete %r' % rule1,
|
||||||
command=('selinuxusermap_del', [rule1], {}),
|
command=('selinuxusermap_del', [rule1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=rule1,
|
value=[rule1],
|
||||||
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -780,8 +780,8 @@ class test_selinuxusermap(Declarative):
|
|||||||
desc='Delete %r' % rule1,
|
desc='Delete %r' % rule1,
|
||||||
command=('selinuxusermap_del', [rule1], {}),
|
command=('selinuxusermap_del', [rule1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=rule1,
|
value=[rule1],
|
||||||
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -823,8 +823,8 @@ class test_selinuxusermap(Declarative):
|
|||||||
desc='Delete %r' % rule1,
|
desc='Delete %r' % rule1,
|
||||||
command=('selinuxusermap_del', [rule1], {}),
|
command=('selinuxusermap_del', [rule1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=rule1,
|
value=[rule1],
|
||||||
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -865,8 +865,8 @@ class test_selinuxusermap(Declarative):
|
|||||||
desc='Delete %r' % rule1,
|
desc='Delete %r' % rule1,
|
||||||
command=('selinuxusermap_del', [rule1], {}),
|
command=('selinuxusermap_del', [rule1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=rule1,
|
value=[rule1],
|
||||||
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -899,8 +899,8 @@ class test_selinuxusermap(Declarative):
|
|||||||
desc='Delete %r' % rule1,
|
desc='Delete %r' % rule1,
|
||||||
command=('selinuxusermap_del', [rule1], {}),
|
command=('selinuxusermap_del', [rule1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=rule1,
|
value=[rule1],
|
||||||
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
@ -543,9 +543,9 @@ class test_service(Declarative):
|
|||||||
desc='Delete %r' % service1,
|
desc='Delete %r' % service1,
|
||||||
command=('service_del', [service1], {}),
|
command=('service_del', [service1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=service1,
|
value=[service1],
|
||||||
summary=u'Deleted service "%s"' % service1,
|
summary=u'Deleted service "%s"' % service1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -281,9 +281,9 @@ class test_sudocmd(Declarative):
|
|||||||
desc='Delete %r' % sudocmd1,
|
desc='Delete %r' % sudocmd1,
|
||||||
command=('sudocmd_del', [sudocmd1], {}),
|
command=('sudocmd_del', [sudocmd1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
value=sudocmd1,
|
value=[sudocmd1],
|
||||||
summary=u'Deleted Sudo Command "%s"' % sudocmd1,
|
summary=u'Deleted Sudo Command "%s"' % sudocmd1,
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -600,8 +600,8 @@ class test_sudocmdgroup(Declarative):
|
|||||||
desc='Delete %r' % sudocmdgroup1,
|
desc='Delete %r' % sudocmdgroup1,
|
||||||
command=('sudocmdgroup_del', [sudocmdgroup1], {}),
|
command=('sudocmdgroup_del', [sudocmdgroup1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=sudocmdgroup1,
|
value=[sudocmdgroup1],
|
||||||
summary=u'Deleted Sudo Command Group "testsudocmdgroup1"',
|
summary=u'Deleted Sudo Command Group "testsudocmdgroup1"',
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -638,8 +638,8 @@ class test_sudocmdgroup(Declarative):
|
|||||||
desc='Delete %r' % sudocmdgroup2,
|
desc='Delete %r' % sudocmdgroup2,
|
||||||
command=('sudocmdgroup_del', [sudocmdgroup2], {}),
|
command=('sudocmdgroup_del', [sudocmdgroup2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=sudocmdgroup2,
|
value=[sudocmdgroup2],
|
||||||
summary=u'Deleted Sudo Command Group "testsudocmdgroup2"',
|
summary=u'Deleted Sudo Command Group "testsudocmdgroup2"',
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@ -676,8 +676,8 @@ class test_sudocmdgroup(Declarative):
|
|||||||
desc='Now delete the sudo command %r' % sudocmd1,
|
desc='Now delete the sudo command %r' % sudocmd1,
|
||||||
command=('sudocmd_del', [sudocmd1], {}),
|
command=('sudocmd_del', [sudocmd1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
value=sudocmd1,
|
value=[sudocmd1],
|
||||||
summary=u'Deleted Sudo Command "%s"' % sudocmd1,
|
summary=u'Deleted Sudo Command "%s"' % sudocmd1,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
@ -519,9 +519,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user1,
|
desc='Delete "%s"' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
value=user1,
|
value=[user1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -574,9 +574,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user1,
|
desc='Delete "%s"' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
value=user1,
|
value=[user1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -646,9 +646,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s" and "%s" at the same time' % (user1, user2),
|
desc='Delete "%s" and "%s" at the same time' % (user1, user2),
|
||||||
command=('user_del', [user1, user2], {}),
|
command=('user_del', [user1, user2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "tuser1,tuser2"',
|
summary=u'Deleted user "tuser1,tuser2"',
|
||||||
value=u','.join((user1, user2)),
|
value=[user1, user2],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -782,9 +782,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user1,
|
desc='Delete "%s"' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
value=user1,
|
value=[user1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -811,9 +811,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user1,
|
desc='Delete "%s"' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
value=user1,
|
value=[user1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -849,9 +849,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user2,
|
desc='Delete "%s"' % user2,
|
||||||
command=('user_del', [user2], {}),
|
command=('user_del', [user2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user2,
|
summary=u'Deleted user "%s"' % user2,
|
||||||
value=user2,
|
value=[user2],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -892,9 +892,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user1,
|
desc='Delete "%s"' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
value=user1,
|
value=[user1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -932,9 +932,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user1,
|
desc='Delete "%s"' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
value=user1,
|
value=[user1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -971,9 +971,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user1,
|
desc='Delete "%s"' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
value=user1,
|
value=[user1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -1008,9 +1008,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user2,
|
desc='Delete "%s"' % user2,
|
||||||
command=('user_del', [user2], {}),
|
command=('user_del', [user2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user2,
|
summary=u'Deleted user "%s"' % user2,
|
||||||
value=user2,
|
value=[user2],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -1116,9 +1116,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete %r' % renameduser1,
|
desc='Delete %r' % renameduser1,
|
||||||
command=('user_del', [renameduser1], {}),
|
command=('user_del', [renameduser1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % renameduser1,
|
summary=u'Deleted user "%s"' % renameduser1,
|
||||||
value=renameduser1,
|
value=[renameduser1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -1255,9 +1255,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete 2nd admin "%s"' % admin2,
|
desc='Delete 2nd admin "%s"' % admin2,
|
||||||
command=('user_del', [admin2], {}),
|
command=('user_del', [admin2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % admin2,
|
summary=u'Deleted user "%s"' % admin2,
|
||||||
value=admin2,
|
value=[admin2],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -1324,9 +1324,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user2,
|
desc='Delete "%s"' % user2,
|
||||||
command=('user_del', [user2], {}),
|
command=('user_del', [user2], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user2,
|
summary=u'Deleted user "%s"' % user2,
|
||||||
value=user2,
|
value=[user2],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -1362,9 +1362,9 @@ class test_user(Declarative):
|
|||||||
desc='Delete "%s"' % user1,
|
desc='Delete "%s"' % user1,
|
||||||
command=('user_del', [user1], {}),
|
command=('user_del', [user1], {}),
|
||||||
expected=dict(
|
expected=dict(
|
||||||
result=dict(failed=u''),
|
result=dict(failed=[]),
|
||||||
summary=u'Deleted user "%s"' % user1,
|
summary=u'Deleted user "%s"' % user1,
|
||||||
value=user1,
|
value=[user1],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user