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_MINOR=82
|
||||
# Last change: amisnyov - automember nowait add
|
||||
IPA_API_VERSION_MINOR=83
|
||||
# Last change: jcholast - add 'primary_key_types' capability
|
||||
|
@ -45,6 +45,9 @@ capabilities = dict(
|
||||
# permissions2: Reworked permission system
|
||||
# http://www.freeipa.org/page/V3/Permissions_V2
|
||||
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)
|
||||
flag = flags.get(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
|
||||
if isinstance(value, dict):
|
||||
if frontend.entry_count(value) == 0:
|
||||
|
@ -439,12 +439,9 @@ class Command(HasParam):
|
||||
and 'summary' in self.output
|
||||
and 'summary' not in ret
|
||||
):
|
||||
if self.msg_summary:
|
||||
ret['summary'] = self.msg_summary % ret
|
||||
else:
|
||||
ret['summary'] = None
|
||||
ret['summary'] = self.get_summary_default(ret)
|
||||
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
|
||||
|
||||
def soft_validate(self, values):
|
||||
@ -918,7 +915,7 @@ class Command(HasParam):
|
||||
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.
|
||||
"""
|
||||
@ -947,7 +944,7 @@ class Command(HasParam):
|
||||
nice, o.name, o.type, type(value), value)
|
||||
)
|
||||
if callable(o.validate):
|
||||
o.validate(self, value)
|
||||
o.validate(self, value, version)
|
||||
|
||||
def get_output_params(self):
|
||||
for param in self._get_param_iterable('output_params', verb='has'):
|
||||
@ -959,6 +956,10 @@ class Command(HasParam):
|
||||
continue
|
||||
yield param
|
||||
|
||||
def get_summary_default(self, output):
|
||||
if self.msg_summary:
|
||||
return self.msg_summary % output
|
||||
|
||||
def log_messages(self, output, logger):
|
||||
logger_functions = dict(
|
||||
debug=logger.debug,
|
||||
|
@ -24,6 +24,7 @@ Simple description of return values.
|
||||
from inspect import getdoc
|
||||
from types import NoneType
|
||||
from plugable import ReadOnly, lock
|
||||
from capabilities import client_has_capability
|
||||
from text import _
|
||||
|
||||
|
||||
@ -99,7 +100,7 @@ class ListOfEntries(Output):
|
||||
type = (list, tuple)
|
||||
doc = _('A list of LDAP entries')
|
||||
|
||||
def validate(self, cmd, entries):
|
||||
def validate(self, cmd, entries, version):
|
||||
assert isinstance(entries, self.type)
|
||||
for (i, entry) in enumerate(entries):
|
||||
if not isinstance(entry, dict):
|
||||
@ -107,6 +108,47 @@ class ListOfEntries(Output):
|
||||
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'))
|
||||
|
||||
@ -114,7 +156,7 @@ summary = Output('summary', (unicode, NoneType),
|
||||
_('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"),
|
||||
flags=['no_display'],
|
||||
)
|
||||
@ -140,6 +182,12 @@ standard_delete = (
|
||||
value,
|
||||
)
|
||||
|
||||
standard_multi_delete = (
|
||||
summary,
|
||||
Output('result', dict, _('List of deletions that failed')),
|
||||
ListOfPrimaryKeys('value', flags=['no_display']),
|
||||
)
|
||||
|
||||
standard_boolean = (
|
||||
summary,
|
||||
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 _, ngettext
|
||||
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.dn import DN
|
||||
|
||||
@ -557,7 +557,7 @@ class aci_add(crud.Create):
|
||||
result = _aci_to_kw(ldap, newaci, kw.get('test', False))
|
||||
return dict(
|
||||
result=result,
|
||||
value=aciname,
|
||||
value=pkey_to_value(aciname, kw),
|
||||
)
|
||||
|
||||
|
||||
@ -598,7 +598,7 @@ class aci_del(crud.Delete):
|
||||
|
||||
return dict(
|
||||
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)
|
||||
return dict(
|
||||
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)
|
||||
return dict(
|
||||
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)
|
||||
return dict(
|
||||
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):
|
||||
result = super(automember_add, self).execute(*keys, **options)
|
||||
result['value'] = keys[-1]
|
||||
result['value'] = pkey_to_value(keys[-1], options)
|
||||
return result
|
||||
|
||||
|
||||
@ -389,7 +389,7 @@ class automember_add_condition(LDAPUpdate):
|
||||
result = {'result': getattr(context, 'entry_attrs'), 'value': keys[-1]}
|
||||
result['failed'] = getattr(context, 'failed')
|
||||
result['completed'] = getattr(context, 'completed')
|
||||
result['value'] = keys[-1]
|
||||
result['value'] = pkey_to_value(keys[-1], options)
|
||||
return result
|
||||
|
||||
|
||||
@ -476,7 +476,7 @@ class automember_remove_condition(LDAPUpdate):
|
||||
result = {'result': getattr(context, 'entry_attrs'), 'value': keys[-1]}
|
||||
result['failed'] = getattr(context, 'failed')
|
||||
result['completed'] = getattr(context, 'completed')
|
||||
result['value'] = keys[-1]
|
||||
result['value'] = pkey_to_value(keys[-1], options)
|
||||
return result
|
||||
|
||||
|
||||
@ -491,7 +491,7 @@ class automember_mod(LDAPUpdate):
|
||||
|
||||
def execute(self, *keys, **options):
|
||||
result = super(automember_mod, self).execute(*keys, **options)
|
||||
result['value'] = keys[-1]
|
||||
result['value'] = pkey_to_value(keys[-1], options)
|
||||
return result
|
||||
|
||||
|
||||
@ -506,7 +506,7 @@ class automember_del(LDAPDelete):
|
||||
|
||||
def execute(self, *keys, **options):
|
||||
result = super(automember_del, self).execute(*keys, **options)
|
||||
result['value'] = keys[-1]
|
||||
result['value'] = pkey_to_value([keys[-1]], options)
|
||||
return result
|
||||
|
||||
|
||||
@ -540,7 +540,7 @@ class automember_show(LDAPRetrieve):
|
||||
|
||||
def execute(self, *keys, **options):
|
||||
result = super(automember_show, self).execute(*keys, **options)
|
||||
result['value'] = keys[-1]
|
||||
result['value'] = pkey_to_value(keys[-1], options)
|
||||
return result
|
||||
|
||||
|
||||
@ -568,7 +568,7 @@ class automember_default_group_set(LDAPUpdate):
|
||||
|
||||
def execute(self, *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
|
||||
|
||||
|
||||
@ -602,7 +602,7 @@ class automember_default_group_remove(LDAPUpdate):
|
||||
|
||||
def execute(self, *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
|
||||
|
||||
|
||||
@ -626,7 +626,7 @@ class automember_default_group_show(LDAPRetrieve):
|
||||
|
||||
def execute(self, *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
|
||||
|
||||
|
||||
@ -777,4 +777,4 @@ class automember_rebuild(Command):
|
||||
return dict(
|
||||
result=result,
|
||||
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['add_operation'] = True
|
||||
result = super(automountkey_add, self).execute(*keys, **options)
|
||||
result['value'] = options['automountkey']
|
||||
result['value'] = pkey_to_value(options['automountkey'], options)
|
||||
return result
|
||||
|
||||
api.register(automountkey_add)
|
||||
@ -923,7 +923,7 @@ class automountkey_del(LDAPDelete):
|
||||
options['automountkey'],
|
||||
options.get('automountinformation', None))
|
||||
result = super(automountkey_del, self).execute(*keys, **options)
|
||||
result['value'] = options['automountkey']
|
||||
result['value'] = pkey_to_value([options['automountkey']], options)
|
||||
return result
|
||||
|
||||
api.register(automountkey_del)
|
||||
@ -982,7 +982,7 @@ class automountkey_mod(LDAPUpdate):
|
||||
options['rename'] = new_rdn
|
||||
|
||||
result = super(automountkey_mod, self).execute(*keys, **options)
|
||||
result['value'] = options['automountkey']
|
||||
result['value'] = pkey_to_value(options['automountkey'], options)
|
||||
return result
|
||||
|
||||
api.register(automountkey_mod)
|
||||
@ -1026,7 +1026,7 @@ class automountkey_show(LDAPRetrieve):
|
||||
options.get('automountinformation', None))
|
||||
|
||||
result = super(automountkey_show, self).execute(*keys, **options)
|
||||
result['value'] = options['automountkey']
|
||||
result['value'] = pkey_to_value(options['automountkey'], options)
|
||||
return result
|
||||
|
||||
api.register(automountkey_show)
|
||||
|
@ -32,7 +32,9 @@ from ipalib.cli import to_cli
|
||||
from ipalib import output
|
||||
from ipalib.text import _
|
||||
from ipalib.util import json_serialize, validate_hostname
|
||||
from ipalib.capabilities import client_has_capability
|
||||
from ipapython.dn import DN, RDN
|
||||
from ipapython.version import API_VERSION
|
||||
|
||||
DNA_MAGIC = -1
|
||||
|
||||
@ -240,6 +242,20 @@ def entry_to_dict(entry, **options):
|
||||
result['dn'] = entry.dn
|
||||
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):
|
||||
"""
|
||||
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={})
|
||||
|
||||
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):
|
||||
"""
|
||||
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['dn'] = dn
|
||||
|
||||
if self.obj.primary_key and keys[-1] is not None:
|
||||
return dict(result=entry_attrs, value=keys[-1])
|
||||
return dict(result=entry_attrs, value=u'')
|
||||
if self.obj.primary_key:
|
||||
pkey = keys[-1]
|
||||
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):
|
||||
assert isinstance(dn, DN)
|
||||
@ -1227,9 +1252,12 @@ class LDAPRetrieve(LDAPQuery):
|
||||
entry_attrs = entry_to_dict(entry_attrs, **options)
|
||||
entry_attrs['dn'] = dn
|
||||
|
||||
if self.obj.primary_key and keys[-1] is not None:
|
||||
return dict(result=entry_attrs, value=keys[-1])
|
||||
return dict(result=entry_attrs, value=u'')
|
||||
if self.obj.primary_key:
|
||||
pkey = keys[-1]
|
||||
else:
|
||||
pkey = None
|
||||
|
||||
return dict(result=entry_attrs, value=pkey_to_value(pkey, options))
|
||||
|
||||
def pre_callback(self, ldap, dn, attrs_list, *keys, **options):
|
||||
assert isinstance(dn, DN)
|
||||
@ -1363,9 +1391,12 @@ class LDAPUpdate(LDAPQuery, crud.Update):
|
||||
|
||||
entry_attrs = entry_to_dict(entry_attrs, **options)
|
||||
|
||||
if self.obj.primary_key and keys[-1] is not None:
|
||||
return dict(result=entry_attrs, value=keys[-1])
|
||||
return dict(result=entry_attrs, value=u'')
|
||||
if self.obj.primary_key:
|
||||
pkey = keys[-1]
|
||||
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):
|
||||
assert isinstance(dn, DN)
|
||||
@ -1386,7 +1417,7 @@ class LDAPDelete(LDAPMultiQuery):
|
||||
"""
|
||||
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
|
||||
|
||||
@ -1433,28 +1464,28 @@ class LDAPDelete(LDAPMultiQuery):
|
||||
|
||||
return result
|
||||
|
||||
if not self.obj.primary_key or not isinstance(keys[-1], (list, tuple)):
|
||||
pkeyiter = (keys[-1], )
|
||||
else:
|
||||
if self.obj.primary_key and isinstance(keys[-1], (list, tuple)):
|
||||
pkeyiter = keys[-1]
|
||||
elif keys[-1] is not None:
|
||||
pkeyiter = [keys[-1]]
|
||||
else:
|
||||
pkeyiter = []
|
||||
|
||||
deleted = []
|
||||
failed = []
|
||||
result = True
|
||||
for pkey in pkeyiter:
|
||||
try:
|
||||
if not delete_entry(pkey):
|
||||
result = False
|
||||
delete_entry(pkey)
|
||||
except errors.ExecutionError:
|
||||
if not options.get('continue', False):
|
||||
raise
|
||||
failed.append(pkey)
|
||||
else:
|
||||
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=u','.join(failed)), value=u','.join(deleted))
|
||||
return dict(result=dict(failed=u''), value=u'')
|
||||
return dict(result=dict(failed=failed), value=deleted)
|
||||
|
||||
def pre_callback(self, ldap, dn, *keys, **options):
|
||||
assert isinstance(dn, DN)
|
||||
|
@ -24,7 +24,7 @@ from ipalib.request import context
|
||||
from ipalib import api, crud, errors
|
||||
from ipalib import output
|
||||
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__ = _("""
|
||||
Group to Group Delegation
|
||||
@ -141,7 +141,7 @@ class delegation_add(crud.Create):
|
||||
|
||||
return dict(
|
||||
result=result,
|
||||
value=aciname,
|
||||
value=pkey_to_value(aciname, kw),
|
||||
)
|
||||
|
||||
api.register(delegation_add)
|
||||
@ -159,7 +159,7 @@ class delegation_del(crud.Delete):
|
||||
self.obj.postprocess_result(result)
|
||||
return dict(
|
||||
result=True,
|
||||
value=aciname,
|
||||
value=pkey_to_value(aciname, kw),
|
||||
)
|
||||
|
||||
api.register(delegation_del)
|
||||
@ -178,7 +178,7 @@ class delegation_mod(crud.Update):
|
||||
|
||||
return dict(
|
||||
result=result,
|
||||
value=aciname,
|
||||
value=pkey_to_value(aciname, kw),
|
||||
)
|
||||
|
||||
api.register(delegation_mod)
|
||||
@ -220,7 +220,7 @@ class delegation_show(crud.Retrieve):
|
||||
self.obj.postprocess_result(result)
|
||||
return dict(
|
||||
result=result,
|
||||
value=aciname,
|
||||
value=pkey_to_value(aciname, kw),
|
||||
)
|
||||
|
||||
api.register(delegation_show)
|
||||
|
@ -2012,7 +2012,7 @@ class dnszone_disable(LDAPQuery):
|
||||
except errors.EmptyModlist:
|
||||
pass
|
||||
|
||||
return dict(result=True, value=keys[-1])
|
||||
return dict(result=True, value=pkey_to_value(keys[-1], options))
|
||||
|
||||
api.register(dnszone_disable)
|
||||
|
||||
@ -2036,7 +2036,7 @@ class dnszone_enable(LDAPQuery):
|
||||
except errors.EmptyModlist:
|
||||
pass
|
||||
|
||||
return dict(result=True, value=keys[-1])
|
||||
return dict(result=True, value=pkey_to_value(keys[-1], options))
|
||||
|
||||
api.register(dnszone_enable)
|
||||
|
||||
@ -2073,7 +2073,7 @@ class dnszone_add_permission(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=permission_name,
|
||||
value=pkey_to_value(permission_name, options),
|
||||
)
|
||||
|
||||
api.register(dnszone_add_permission)
|
||||
@ -2106,7 +2106,7 @@ class dnszone_remove_permission(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=permission_name,
|
||||
value=pkey_to_value(permission_name, options),
|
||||
)
|
||||
|
||||
api.register(dnszone_remove_permission)
|
||||
@ -2957,7 +2957,7 @@ api.register(dnsrecord_delentry)
|
||||
class dnsrecord_del(LDAPUpdate):
|
||||
__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'\
|
||||
"Command help may be consulted for all supported record types.")
|
||||
@ -3045,6 +3045,7 @@ class dnsrecord_del(LDAPUpdate):
|
||||
return result
|
||||
|
||||
result = super(dnsrecord_del, self).execute(*keys, **options)
|
||||
result['value'] = pkey_to_value([keys[-1]], options)
|
||||
|
||||
if getattr(context, 'del_all', False) and not \
|
||||
self.obj.is_pkey_zone_record(*keys):
|
||||
@ -3223,7 +3224,7 @@ class dns_is_enabled(Command):
|
||||
except Exception, e:
|
||||
pass
|
||||
|
||||
return dict(result=dns_enabled, value=u'')
|
||||
return dict(result=dns_enabled, value=pkey_to_value(None, options))
|
||||
|
||||
api.register(dns_is_enabled)
|
||||
|
||||
|
@ -589,7 +589,7 @@ class group_detach(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=keys[0],
|
||||
value=pkey_to_value(keys[0], options),
|
||||
)
|
||||
|
||||
api.register(group_detach)
|
||||
|
@ -324,7 +324,7 @@ class hbacrule_enable(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=cn,
|
||||
value=pkey_to_value(cn, options),
|
||||
)
|
||||
|
||||
api.register(hbacrule_enable)
|
||||
@ -354,7 +354,7 @@ class hbacrule_disable(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=cn,
|
||||
value=pkey_to_value(cn, options),
|
||||
)
|
||||
|
||||
api.register(hbacrule_disable)
|
||||
|
@ -1011,7 +1011,7 @@ class host_disable(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=keys[0],
|
||||
value=pkey_to_value(keys[0], 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)
|
||||
|
||||
if keys[-1] is not None:
|
||||
return dict(result=entry_attrs, value=keys[-1])
|
||||
return dict(result=entry_attrs, value=u'')
|
||||
return dict(result=entry_attrs, value=pkey_to_value(keys[-1], options))
|
||||
|
||||
api.register(krbtpolicy_reset)
|
||||
|
@ -23,7 +23,7 @@ from ipalib.request import context
|
||||
from ipalib import api, crud, errors
|
||||
from ipalib import output
|
||||
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__ = _("""
|
||||
Self-service Permissions
|
||||
@ -135,7 +135,7 @@ class selfservice_add(crud.Create):
|
||||
|
||||
return dict(
|
||||
result=result,
|
||||
value=aciname,
|
||||
value=pkey_to_value(aciname, kw),
|
||||
)
|
||||
|
||||
api.register(selfservice_add)
|
||||
@ -153,7 +153,7 @@ class selfservice_del(crud.Delete):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=aciname,
|
||||
value=pkey_to_value(aciname, kw),
|
||||
)
|
||||
|
||||
api.register(selfservice_del)
|
||||
@ -175,7 +175,7 @@ class selfservice_mod(crud.Update):
|
||||
|
||||
return dict(
|
||||
result=result,
|
||||
value=aciname,
|
||||
value=pkey_to_value(aciname, kw),
|
||||
)
|
||||
|
||||
api.register(selfservice_mod)
|
||||
@ -218,7 +218,7 @@ class selfservice_show(crud.Retrieve):
|
||||
self.obj.postprocess_result(result)
|
||||
return dict(
|
||||
result=result,
|
||||
value=aciname,
|
||||
value=pkey_to_value(aciname, kw),
|
||||
)
|
||||
|
||||
api.register(selfservice_show)
|
||||
|
@ -425,7 +425,7 @@ class selinuxusermap_enable(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=cn,
|
||||
value=pkey_to_value(cn, options),
|
||||
)
|
||||
|
||||
api.register(selinuxusermap_enable)
|
||||
@ -455,7 +455,7 @@ class selinuxusermap_disable(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=cn,
|
||||
value=pkey_to_value(cn, options),
|
||||
)
|
||||
|
||||
api.register(selinuxusermap_disable)
|
||||
|
@ -661,7 +661,7 @@ class service_disable(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=keys[0],
|
||||
value=pkey_to_value(keys[0], options),
|
||||
)
|
||||
|
||||
api.register(service_disable)
|
||||
|
@ -699,7 +699,7 @@ class sudorule_add_option(LDAPQuery):
|
||||
|
||||
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):
|
||||
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)
|
||||
|
||||
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):
|
||||
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_existing = _('Re-established trust to domain "%(value)s"')
|
||||
has_output_params = LDAPCreate.has_output_params + trust_output_params
|
||||
|
||||
def execute(self, *keys, **options):
|
||||
@ -640,11 +641,6 @@ sides.
|
||||
except errors.NotFound:
|
||||
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
|
||||
# generate random trustdom password to do work on both sides
|
||||
if full_join:
|
||||
@ -685,10 +681,13 @@ sides.
|
||||
error=_('Unable to verify write permissions to the AD'))
|
||||
|
||||
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']
|
||||
)
|
||||
ret['summary'] = summary % ret
|
||||
if dn:
|
||||
ret['summary'] = self.msg_summary_existing % ret
|
||||
return ret
|
||||
|
||||
|
||||
@ -702,10 +701,13 @@ sides.
|
||||
options['trust_secret']
|
||||
)
|
||||
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']
|
||||
)
|
||||
ret['summary'] = summary % ret
|
||||
if dn:
|
||||
ret['summary'] = self.msg_summary_existing % ret
|
||||
return ret
|
||||
raise errors.ValidationError(name=_('AD Trust setup'),
|
||||
error=_('Not enough arguments specified to perform trust setup'))
|
||||
@ -915,7 +917,7 @@ class trustconfig_mod(LDAPUpdate):
|
||||
|
||||
def execute(self, *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
|
||||
|
||||
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
||||
@ -932,7 +934,7 @@ class trustconfig_show(LDAPRetrieve):
|
||||
|
||||
def execute(self, *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
|
||||
|
||||
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
||||
@ -1216,7 +1218,7 @@ class trustdomain_del(LDAPDelete):
|
||||
except errors.AlreadyActive:
|
||||
pass
|
||||
result = super(trustdomain_del, self).execute(*keys, **options)
|
||||
result['value'] = u','.join(keys[1])
|
||||
result['value'] = pkey_to_value(keys[1], options)
|
||||
return result
|
||||
|
||||
|
||||
@ -1346,7 +1348,7 @@ class trustdomain_enable(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=keys[1],
|
||||
value=pkey_to_value(keys[1], options),
|
||||
)
|
||||
|
||||
api.register(trustdomain_enable)
|
||||
@ -1386,7 +1388,7 @@ class trustdomain_disable(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=keys[1],
|
||||
value=pkey_to_value(keys[1], options),
|
||||
)
|
||||
|
||||
api.register(trustdomain_disable)
|
||||
|
@ -832,7 +832,7 @@ class user_disable(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=keys[0],
|
||||
value=pkey_to_value(keys[0], options),
|
||||
)
|
||||
|
||||
api.register(user_disable)
|
||||
@ -854,7 +854,7 @@ class user_enable(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=keys[0],
|
||||
value=pkey_to_value(keys[0], options),
|
||||
)
|
||||
|
||||
api.register(user_enable)
|
||||
@ -883,7 +883,7 @@ class user_unlock(LDAPQuery):
|
||||
|
||||
return dict(
|
||||
result=True,
|
||||
value=keys[0],
|
||||
value=pkey_to_value(keys[0], options),
|
||||
)
|
||||
|
||||
api.register(user_unlock)
|
||||
|
@ -25,6 +25,7 @@ from ipatests.util import raises, ClassChecker
|
||||
from ipalib import output
|
||||
from ipalib.frontend import Command
|
||||
from ipalib import _
|
||||
from ipapython.version import API_VERSION
|
||||
|
||||
class test_Output(ClassChecker):
|
||||
"""
|
||||
@ -78,12 +79,14 @@ class test_ListOfEntries(ClassChecker):
|
||||
okay = dict(foo='bar')
|
||||
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 % (
|
||||
'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 % (
|
||||
'example', 'ListOfEntries', 'stuff', 0, dict, tuple, nope
|
||||
)
|
||||
|
@ -242,7 +242,7 @@ class test_automember(Declarative):
|
||||
desc='Rebuild membership for hostgroups',
|
||||
command=('automember_rebuild', [], dict(type=u'hostgroup')),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=fuzzy_automember_message,
|
||||
result=dict()
|
||||
),
|
||||
@ -252,7 +252,7 @@ class test_automember(Declarative):
|
||||
desc='Rebuild membership for hostgroups asynchronously',
|
||||
command=('automember_rebuild', [], dict(type=u'hostgroup',no_wait=True)),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=u'Automember rebuild membership task started',
|
||||
result=dict(
|
||||
dn=fuzzy_automember_dn
|
||||
@ -361,7 +361,7 @@ class test_automember(Declarative):
|
||||
desc='Rebuild membership for host: %s' % fqdn1,
|
||||
command=('automember_rebuild', [], dict(hosts=fqdn1)),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=fuzzy_automember_message,
|
||||
result=dict()
|
||||
),
|
||||
@ -371,7 +371,7 @@ class test_automember(Declarative):
|
||||
desc='Rebuild membership for host: %s asynchronously' % fqdn1,
|
||||
command=('automember_rebuild', [], dict(hosts=fqdn1, no_wait=True)),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=u'Automember rebuild membership task started',
|
||||
result=dict(
|
||||
dn=fuzzy_automember_dn
|
||||
@ -398,9 +398,9 @@ class test_automember(Declarative):
|
||||
desc='Delete host: %r' % fqdn1,
|
||||
command=('host_del', [fqdn1], dict()),
|
||||
expected=dict(
|
||||
value=fqdn1,
|
||||
value=[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,
|
||||
command=('hostgroup_del', [hostgroup1], dict()),
|
||||
expected=dict(
|
||||
value=hostgroup1,
|
||||
value=[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,
|
||||
command=('automember_del', [hostgroup1], dict(type=u'hostgroup')),
|
||||
expected=dict(
|
||||
value=hostgroup1,
|
||||
value=[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',
|
||||
command=('automember_rebuild', [], dict(type=u'group')),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=fuzzy_automember_message,
|
||||
result=dict()
|
||||
),
|
||||
@ -553,7 +553,7 @@ class test_automember(Declarative):
|
||||
desc='Rebuild membership for groups asynchronously',
|
||||
command=('automember_rebuild', [], dict(type=u'group', no_wait=True)),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=u'Automember rebuild membership task started',
|
||||
result=dict(
|
||||
dn=fuzzy_automember_dn
|
||||
@ -620,7 +620,7 @@ class test_automember(Declarative):
|
||||
desc='Rebuild membership for user: %s' % user1,
|
||||
command=('automember_rebuild', [], dict(users=user1)),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=fuzzy_automember_message,
|
||||
result=dict()
|
||||
),
|
||||
@ -630,7 +630,7 @@ class test_automember(Declarative):
|
||||
desc='Rebuild membership for user: %s asynchronously' % user1,
|
||||
command=('automember_rebuild', [], dict(users=user1, no_wait=True)),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=u'Automember rebuild membership task started',
|
||||
result=dict(
|
||||
dn=fuzzy_automember_dn
|
||||
@ -658,9 +658,9 @@ class test_automember(Declarative):
|
||||
desc='Delete user: %r' % user1,
|
||||
command=('user_del', [user1], dict()),
|
||||
expected=dict(
|
||||
value=user1,
|
||||
value=[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,
|
||||
command=('user_del', [manager1], dict()),
|
||||
expected=dict(
|
||||
value=manager1,
|
||||
value=[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,
|
||||
command=('group_del', [group1], dict()),
|
||||
expected=dict(
|
||||
value=group1,
|
||||
value=[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,
|
||||
command=('automember_del', [group1], dict(type=u'group')),
|
||||
expected=dict(
|
||||
value=group1,
|
||||
value=[group1],
|
||||
summary=u'Deleted automember rule "%s"' % group1,
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
),
|
||||
),
|
||||
|
||||
|
@ -100,7 +100,7 @@ class AutomountTest(XMLRPC_test):
|
||||
finally:
|
||||
res = api.Command['automountlocation_del'](self.locname)['result']
|
||||
assert res
|
||||
assert_attr_equal(res, 'failed', '')
|
||||
assert not res['failed']
|
||||
|
||||
# Success; delete the temporary directory
|
||||
shutil.rmtree(conf_directory)
|
||||
@ -285,7 +285,7 @@ class test_automount(AutomountTest):
|
||||
delkey_kw={'automountkey': self.keyname_rename, 'automountinformation' : self.newinfo}
|
||||
res = api.Command['automountkey_del'](self.locname, self.mapname, **delkey_kw)['result']
|
||||
assert res
|
||||
assert_attr_equal(res, 'failed', '')
|
||||
assert not res['failed']
|
||||
|
||||
# Verify that it is gone
|
||||
with assert_raises(errors.NotFound):
|
||||
@ -297,7 +297,7 @@ class test_automount(AutomountTest):
|
||||
"""
|
||||
res = api.Command['automountlocation_del'](self.locname)['result']
|
||||
assert res
|
||||
assert_attr_equal(res, 'failed', '')
|
||||
assert not res['failed']
|
||||
|
||||
# Verify that it is gone
|
||||
with assert_raises(errors.NotFound):
|
||||
@ -367,7 +367,7 @@ class test_automount_direct(AutomountTest):
|
||||
"""
|
||||
res = api.Command['automountlocation_del'](self.locname)['result']
|
||||
assert res
|
||||
assert_attr_equal(res, 'failed', '')
|
||||
assert not res['failed']
|
||||
|
||||
# Verity that it is gone
|
||||
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']
|
||||
assert res
|
||||
assert_attr_equal(res, 'failed', '')
|
||||
assert not res['failed']
|
||||
|
||||
# Verify that it is gone
|
||||
with assert_raises(errors.NotFound):
|
||||
@ -455,7 +455,7 @@ class test_automount_indirect(AutomountTest):
|
||||
"""
|
||||
res = api.Command['automountmap_del'](self.locname, self.mapname)['result']
|
||||
assert res
|
||||
assert_attr_equal(res, 'failed', '')
|
||||
assert not res['failed']
|
||||
|
||||
# Verify that it is gone
|
||||
with assert_raises(errors.NotFound):
|
||||
@ -467,7 +467,7 @@ class test_automount_indirect(AutomountTest):
|
||||
"""
|
||||
res = api.Command['automountlocation_del'](self.locname)['result']
|
||||
assert res
|
||||
assert_attr_equal(res, 'failed', '')
|
||||
assert not res['failed']
|
||||
|
||||
# Verity that it is gone
|
||||
with assert_raises(errors.NotFound):
|
||||
@ -551,7 +551,7 @@ class test_automount_indirect_no_parent(AutomountTest):
|
||||
delkey_kw={'automountkey': self.keyname, 'automountinformation': self.mapname}
|
||||
res = api.Command['automountkey_del'](self.locname, self.parentmap, **delkey_kw)['result']
|
||||
assert res
|
||||
assert_attr_equal(res, 'failed', '')
|
||||
assert not res['failed']
|
||||
|
||||
# Verify that it is gone
|
||||
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']
|
||||
assert res
|
||||
assert_attr_equal(res, 'failed', '')
|
||||
assert not res['failed']
|
||||
|
||||
# Verify that it is gone
|
||||
with assert_raises(errors.NotFound):
|
||||
@ -575,7 +575,7 @@ class test_automount_indirect_no_parent(AutomountTest):
|
||||
"""
|
||||
res = api.Command['automountlocation_del'](self.locname)['result']
|
||||
assert res
|
||||
assert_attr_equal(res, 'failed', '')
|
||||
assert not res['failed']
|
||||
|
||||
# Verity that it is gone
|
||||
with assert_raises(errors.NotFound):
|
||||
|
@ -104,8 +104,8 @@ class test_batch(Declarative):
|
||||
error=None),
|
||||
dict(
|
||||
summary=u'Deleted group "%s"' % group1,
|
||||
result=dict(failed=u''),
|
||||
value=group1,
|
||||
result=dict(failed=[]),
|
||||
value=[group1],
|
||||
error=None),
|
||||
),
|
||||
),
|
||||
|
@ -37,7 +37,7 @@ class test_config(Declarative):
|
||||
dict(addattr=u'ipauserobjectclasses=ipahost')),
|
||||
expected=dict(
|
||||
result=lambda d: 'ipahost' in d['ipauserobjectclasses'],
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
),
|
||||
),
|
||||
@ -48,7 +48,7 @@ class test_config(Declarative):
|
||||
dict(delattr=u'ipauserobjectclasses=ipahost')),
|
||||
expected=dict(
|
||||
result=lambda d: 'ipahost' not in d['ipauserobjectclasses'],
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
),
|
||||
),
|
||||
@ -123,7 +123,7 @@ class test_config(Declarative):
|
||||
command=('config_mod', [], dict(ipauserauthtype=u'password')),
|
||||
expected=dict(
|
||||
result=lambda d: d['ipauserauthtype'] == (u'password',),
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
),
|
||||
),
|
||||
@ -133,7 +133,7 @@ class test_config(Declarative):
|
||||
command=('config_show', [], {}),
|
||||
expected=dict(
|
||||
result=lambda d: d['ipauserauthtype'] == (u'password',),
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
),
|
||||
),
|
||||
@ -143,7 +143,7 @@ class test_config(Declarative):
|
||||
command=('config_mod', [], dict(ipauserauthtype=None)),
|
||||
expected=dict(
|
||||
result=lambda d: 'ipauserauthtype' not in d,
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
),
|
||||
),
|
||||
|
@ -451,9 +451,9 @@ class test_dns(Declarative):
|
||||
desc='Delete reverse zone %r' % revzone1,
|
||||
command=('dnszone_del', [revzone1], {}),
|
||||
expected={
|
||||
'value': revzone1,
|
||||
'value': [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),
|
||||
command=('dnsrecord_del', [zone1, name1], {'arecord': arec2}),
|
||||
expected={
|
||||
'value': name1,
|
||||
'value': [name1],
|
||||
'summary': None,
|
||||
'result': {
|
||||
'idnsname': [name1],
|
||||
@ -897,9 +897,9 @@ class test_dns(Declarative):
|
||||
desc='Delete zone %r' % zone2,
|
||||
command=('dnszone_del', [zone2], {}),
|
||||
expected={
|
||||
'value': zone2,
|
||||
'value': [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),
|
||||
command=('dnsrecord_del', [zone1, name1_renamed], {'del_all': True }),
|
||||
expected={
|
||||
'value': name1_renamed,
|
||||
'value': [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',
|
||||
command=('dnsconfig_mod', [], {'idnsforwarders' : [fwd_ip],}),
|
||||
expected={
|
||||
'value': u'',
|
||||
'value': None,
|
||||
'summary': None,
|
||||
'result': {
|
||||
'idnsforwarders': [fwd_ip],
|
||||
@ -1406,9 +1406,9 @@ class test_dns(Declarative):
|
||||
desc='Delete zone %r' % zone1,
|
||||
command=('dnszone_del', [zone1], {}),
|
||||
expected={
|
||||
'value': zone1,
|
||||
'value': [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,
|
||||
command=('dnszone_del', [zone1], {}),
|
||||
expected={
|
||||
'value': zone1,
|
||||
'value': [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):
|
||||
zone = response['value']
|
||||
if isinstance(zone, (tuple, list)):
|
||||
zone = zone[0]
|
||||
|
||||
r = api.Command['realmdomains_show']()
|
||||
assert zone not in r['result']['associateddomain']
|
||||
@ -159,9 +161,9 @@ class test_dns_realmdomains_integration(Declarative):
|
||||
'during dnszone_del',
|
||||
command=('dnszone_del', [dnszone_1], {}),
|
||||
expected={
|
||||
'value': dnszone_1,
|
||||
'value': [dnszone_1],
|
||||
'summary': u'Deleted DNS zone "%s"' % dnszone_1,
|
||||
'result': {'failed': u''},
|
||||
'result': {'failed': []},
|
||||
},
|
||||
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),
|
||||
command=('group_del', [group3], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=group3,
|
||||
result=dict(failed=[]),
|
||||
value=[group3],
|
||||
summary=u'Deleted group "testgroup3"',
|
||||
),
|
||||
),
|
||||
@ -693,8 +693,8 @@ class test_group(Declarative):
|
||||
desc='Delete %r' % group1,
|
||||
command=('group_del', [group1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=group1,
|
||||
result=dict(failed=[]),
|
||||
value=[group1],
|
||||
summary=u'Deleted group "testgroup1"',
|
||||
)
|
||||
),
|
||||
@ -728,8 +728,8 @@ class test_group(Declarative):
|
||||
desc='Delete %r' % group2,
|
||||
command=('group_del', [group2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=group2,
|
||||
result=dict(failed=[]),
|
||||
value=[group2],
|
||||
summary=u'Deleted group "testgroup2"',
|
||||
)
|
||||
),
|
||||
@ -859,8 +859,8 @@ class test_group(Declarative):
|
||||
desc='Now delete the unmanaged group %r' % user1,
|
||||
command=('group_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=user1,
|
||||
result=dict(failed=[]),
|
||||
value=[user1],
|
||||
summary=u'Deleted group "%s"' % user1,
|
||||
)
|
||||
),
|
||||
@ -875,9 +875,9 @@ class test_group(Declarative):
|
||||
desc='Delete %r' % user1,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "tuser1"',
|
||||
value=user1,
|
||||
value=[user1],
|
||||
),
|
||||
),
|
||||
|
||||
@ -1004,9 +1004,9 @@ class test_group(Declarative):
|
||||
desc='Delete %r' % user1,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user1,
|
||||
value=user1,
|
||||
value=[user1],
|
||||
),
|
||||
),
|
||||
|
||||
|
@ -236,9 +236,9 @@ class test_hbacsvcgroup(Declarative):
|
||||
desc='Delete %r' % hbacsvcgroup1,
|
||||
command=('hbacsvcgroup_del', [hbacsvcgroup1], {}),
|
||||
expected=dict(
|
||||
value=hbacsvcgroup1,
|
||||
value=[hbacsvcgroup1],
|
||||
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,
|
||||
command=('hbacsvc_del', [hbacsvc1], {}),
|
||||
expected=dict(
|
||||
value=hbacsvc1,
|
||||
value=[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,
|
||||
command=('host_del', [fqdn1], {}),
|
||||
expected=dict(
|
||||
value=fqdn1,
|
||||
value=[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,
|
||||
command=('host_del', [short1], {}),
|
||||
expected=dict(
|
||||
value=short1,
|
||||
value=[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,
|
||||
command=('host_del', [fqdn3], {}),
|
||||
expected=dict(
|
||||
value=fqdn3,
|
||||
value=[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,
|
||||
command=('hostgroup_del', [hostgroup1], {}),
|
||||
expected=dict(
|
||||
value=hostgroup1,
|
||||
value=[hostgroup1],
|
||||
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,
|
||||
command=('hostgroup_del', [hostgroup_single], {}),
|
||||
expected=dict(
|
||||
value=hostgroup_single,
|
||||
value=[hostgroup_single],
|
||||
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,
|
||||
command=('host_del', [fqdn1], {}),
|
||||
expected=dict(
|
||||
value=fqdn1,
|
||||
value=[fqdn1],
|
||||
summary=u'Deleted host "%s"' % fqdn1,
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
),
|
||||
)
|
||||
|
||||
|
@ -42,7 +42,7 @@ class test_krbtpolicy(Declarative):
|
||||
'krbtpolicy_reset', [], {}
|
||||
),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
result=dict(
|
||||
krbmaxticketlife=[u'86400'],
|
||||
@ -58,7 +58,7 @@ class test_krbtpolicy(Declarative):
|
||||
'krbtpolicy_show', [], {}
|
||||
),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
result=dict(
|
||||
dn=DN(('cn',api.env.domain),('cn','kerberos'),
|
||||
@ -76,7 +76,7 @@ class test_krbtpolicy(Declarative):
|
||||
'krbtpolicy_mod', [], dict(krbmaxticketlife=3600)
|
||||
),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
result=dict(
|
||||
krbmaxticketlife=[u'3600'],
|
||||
|
@ -200,9 +200,9 @@ class test_netgroup(Declarative):
|
||||
desc='Delete %r' % netgroup_single,
|
||||
command=('netgroup_del', [netgroup_single], {}),
|
||||
expected=dict(
|
||||
value=netgroup_single,
|
||||
value=[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,
|
||||
command=('netgroup_del', [netgroup1], {}),
|
||||
expected=dict(
|
||||
value=netgroup1,
|
||||
value=[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,
|
||||
command=('permission_del', [permission1_renamed_ucase], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=permission1_renamed_ucase,
|
||||
result=dict(failed=[]),
|
||||
value=[permission1_renamed_ucase],
|
||||
summary=u'Deleted permission "%s"' % permission1_renamed_ucase,
|
||||
)
|
||||
),
|
||||
@ -1253,8 +1253,8 @@ class test_permission(Declarative):
|
||||
desc='Delete %r' % permission2,
|
||||
command=('permission_del', [permission2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=permission2,
|
||||
result=dict(failed=[]),
|
||||
value=[permission2],
|
||||
summary=u'Deleted permission "%s"' % permission2,
|
||||
)
|
||||
),
|
||||
@ -1277,8 +1277,8 @@ class test_permission(Declarative):
|
||||
desc='Delete %r' % privilege1,
|
||||
command=('privilege_del', [privilege1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=privilege1,
|
||||
result=dict(failed=[]),
|
||||
value=[privilege1],
|
||||
summary=u'Deleted privilege "%s"' % privilege1,
|
||||
)
|
||||
),
|
||||
@ -1410,8 +1410,8 @@ class test_permission(Declarative):
|
||||
desc='Delete %r' % permission1,
|
||||
command=('permission_del', [permission1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=permission1,
|
||||
result=dict(failed=[]),
|
||||
value=[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,
|
||||
command=('permission_del', [permission1], {'force': True}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=permission1,
|
||||
result=dict(failed=[]),
|
||||
value=[permission1],
|
||||
summary=u'Deleted permission "%s"' % permission1,
|
||||
),
|
||||
),
|
||||
@ -3571,8 +3571,8 @@ class test_managed_permissions(Declarative):
|
||||
desc='Delete %r with --force' % permission1,
|
||||
command=('permission_del', [permission1], {'force': True}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=permission1,
|
||||
result=dict(failed=[]),
|
||||
value=[permission1],
|
||||
summary=u'Deleted permission "%s"' % permission1,
|
||||
),
|
||||
),
|
||||
@ -3826,8 +3826,8 @@ class test_permission_filters(Declarative):
|
||||
desc='Delete %r' % permission1,
|
||||
command=('permission_del', [permission1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=permission1,
|
||||
result=dict(failed=[]),
|
||||
value=[permission1],
|
||||
summary=u'Deleted permission "%s"' % permission1,
|
||||
)
|
||||
),
|
||||
|
@ -410,8 +410,8 @@ class test_privilege(Declarative):
|
||||
desc='Delete %r' % privilege1,
|
||||
command=('privilege_del', [privilege1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=privilege1,
|
||||
result=dict(failed=[]),
|
||||
value=[privilege1],
|
||||
summary=u'Deleted privilege "%s"' % privilege1,
|
||||
)
|
||||
),
|
||||
|
@ -373,9 +373,9 @@ class test_raduisproxy(Declarative):
|
||||
desc='Delete %r' % radius1,
|
||||
command=('radiusproxy_del', [radius1], {}),
|
||||
expected=dict(
|
||||
value=radius1,
|
||||
value=[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,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=user1,
|
||||
result=dict(failed=[]),
|
||||
value=[user1],
|
||||
summary=u'Deleted user "%s"' % user1,
|
||||
),
|
||||
),
|
||||
@ -334,8 +334,8 @@ class test_range(Declarative):
|
||||
desc='Delete group %r' % group1,
|
||||
command=('group_del', [group1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=group1,
|
||||
result=dict(failed=[]),
|
||||
value=[group1],
|
||||
summary=u'Deleted group "%s"' % group1,
|
||||
),
|
||||
),
|
||||
@ -345,8 +345,8 @@ class test_range(Declarative):
|
||||
desc='Delete ID range %r' % testrange1,
|
||||
command=('idrange_del', [testrange1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=testrange1,
|
||||
result=dict(failed=[]),
|
||||
value=[testrange1],
|
||||
summary=u'Deleted ID range "%s"' % testrange1,
|
||||
),
|
||||
),
|
||||
@ -442,8 +442,8 @@ class test_range(Declarative):
|
||||
desc='Delete ID range %r' % testrange2,
|
||||
command=('idrange_del', [testrange2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=testrange2,
|
||||
result=dict(failed=[]),
|
||||
value=[testrange2],
|
||||
summary=u'Deleted ID range "%s"' % testrange2,
|
||||
),
|
||||
),
|
||||
@ -476,8 +476,8 @@ class test_range(Declarative):
|
||||
desc='Delete ID range %r' % testrange8,
|
||||
command=('idrange_del', [testrange8], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=testrange8,
|
||||
result=dict(failed=[]),
|
||||
value=[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,
|
||||
command=('idrange_del', [testrange9], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=testrange9,
|
||||
result=dict(failed=[]),
|
||||
value=[testrange9],
|
||||
summary=u'Deleted ID range "%s"' % testrange9,
|
||||
),
|
||||
),
|
||||
|
@ -45,7 +45,7 @@ class test_realmdomains(Declarative):
|
||||
desc='Retrieve realm domains',
|
||||
command=('realmdomains_show', [], {}),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
result=dict(
|
||||
dn=dn,
|
||||
@ -57,7 +57,7 @@ class test_realmdomains(Declarative):
|
||||
desc='Retrieve realm domains - print all attributes',
|
||||
command=('realmdomains_show', [], {'all': True}),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
result=dict(
|
||||
dn=dn,
|
||||
@ -80,7 +80,7 @@ class test_realmdomains(Declarative):
|
||||
desc='Replace list of realm domains with "%s"' % [our_domain, new_domain_1],
|
||||
command=('realmdomains_mod', [], {'associateddomain': [our_domain, new_domain_1]}),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
result=dict(
|
||||
associateddomain=[our_domain, new_domain_1],
|
||||
@ -91,7 +91,7 @@ class test_realmdomains(Declarative):
|
||||
desc='Add domain "%s" to list' % new_domain_2,
|
||||
command=('realmdomains_mod', [], {'add_domain': new_domain_2}),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
result=dict(
|
||||
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,
|
||||
command=('realmdomains_mod', [], {'del_domain': new_domain_2}),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
result=dict(
|
||||
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),
|
||||
command=('realmdomains_mod', [], {'add_domain': new_domain_2, 'del_domain': new_domain_1}),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
result=dict(
|
||||
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,
|
||||
command=('realmdomains_mod', [], {'add_domain': bad_domain, 'force': True}),
|
||||
expected=dict(
|
||||
value=u'',
|
||||
value=None,
|
||||
summary=None,
|
||||
result=dict(
|
||||
associateddomain=[our_domain, new_domain_2, bad_domain],
|
||||
|
@ -468,8 +468,8 @@ class test_role(Declarative):
|
||||
desc='Delete %r' % group1,
|
||||
command=('group_del', [group1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=group1,
|
||||
result=dict(failed=[]),
|
||||
value=[group1],
|
||||
summary=u'Deleted group "testgroup1"',
|
||||
)
|
||||
),
|
||||
@ -554,8 +554,8 @@ class test_role(Declarative):
|
||||
desc='Delete %r' % role1,
|
||||
command=('role_del', [role1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=role1,
|
||||
result=dict(failed=[]),
|
||||
value=[role1],
|
||||
summary=u'Deleted role "%s"' % role1,
|
||||
)
|
||||
),
|
||||
@ -604,8 +604,8 @@ class test_role(Declarative):
|
||||
desc='Delete %r' % role2,
|
||||
command=('role_del', [role2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=role2,
|
||||
result=dict(failed=[]),
|
||||
value=[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,
|
||||
command=('hbacrule_del', [hbacrule2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=hbacrule2,
|
||||
result=dict(failed=[]),
|
||||
value=[hbacrule2],
|
||||
summary=u'Deleted HBAC rule "%s"' % hbacrule2,
|
||||
)
|
||||
),
|
||||
@ -584,8 +584,8 @@ class test_selinuxusermap(Declarative):
|
||||
desc='Delete %r' % rule1,
|
||||
command=('selinuxusermap_del', [rule1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=rule1,
|
||||
result=dict(failed=[]),
|
||||
value=[rule1],
|
||||
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
||||
)
|
||||
),
|
||||
@ -780,8 +780,8 @@ class test_selinuxusermap(Declarative):
|
||||
desc='Delete %r' % rule1,
|
||||
command=('selinuxusermap_del', [rule1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=rule1,
|
||||
result=dict(failed=[]),
|
||||
value=[rule1],
|
||||
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
||||
)
|
||||
),
|
||||
@ -823,8 +823,8 @@ class test_selinuxusermap(Declarative):
|
||||
desc='Delete %r' % rule1,
|
||||
command=('selinuxusermap_del', [rule1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=rule1,
|
||||
result=dict(failed=[]),
|
||||
value=[rule1],
|
||||
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
||||
)
|
||||
),
|
||||
@ -865,8 +865,8 @@ class test_selinuxusermap(Declarative):
|
||||
desc='Delete %r' % rule1,
|
||||
command=('selinuxusermap_del', [rule1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=rule1,
|
||||
result=dict(failed=[]),
|
||||
value=[rule1],
|
||||
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
||||
)
|
||||
),
|
||||
@ -899,8 +899,8 @@ class test_selinuxusermap(Declarative):
|
||||
desc='Delete %r' % rule1,
|
||||
command=('selinuxusermap_del', [rule1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=rule1,
|
||||
result=dict(failed=[]),
|
||||
value=[rule1],
|
||||
summary=u'Deleted SELinux User Map "%s"' % rule1,
|
||||
)
|
||||
),
|
||||
|
@ -543,9 +543,9 @@ class test_service(Declarative):
|
||||
desc='Delete %r' % service1,
|
||||
command=('service_del', [service1], {}),
|
||||
expected=dict(
|
||||
value=service1,
|
||||
value=[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,
|
||||
command=('sudocmd_del', [sudocmd1], {}),
|
||||
expected=dict(
|
||||
value=sudocmd1,
|
||||
value=[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,
|
||||
command=('sudocmdgroup_del', [sudocmdgroup1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=sudocmdgroup1,
|
||||
result=dict(failed=[]),
|
||||
value=[sudocmdgroup1],
|
||||
summary=u'Deleted Sudo Command Group "testsudocmdgroup1"',
|
||||
)
|
||||
),
|
||||
@ -638,8 +638,8 @@ class test_sudocmdgroup(Declarative):
|
||||
desc='Delete %r' % sudocmdgroup2,
|
||||
command=('sudocmdgroup_del', [sudocmdgroup2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=sudocmdgroup2,
|
||||
result=dict(failed=[]),
|
||||
value=[sudocmdgroup2],
|
||||
summary=u'Deleted Sudo Command Group "testsudocmdgroup2"',
|
||||
)
|
||||
),
|
||||
@ -676,8 +676,8 @@ class test_sudocmdgroup(Declarative):
|
||||
desc='Now delete the sudo command %r' % sudocmd1,
|
||||
command=('sudocmd_del', [sudocmd1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
value=sudocmd1,
|
||||
result=dict(failed=[]),
|
||||
value=[sudocmd1],
|
||||
summary=u'Deleted Sudo Command "%s"' % sudocmd1,
|
||||
)
|
||||
),
|
||||
|
@ -519,9 +519,9 @@ class test_user(Declarative):
|
||||
desc='Delete "%s"' % user1,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user1,
|
||||
value=user1,
|
||||
value=[user1],
|
||||
),
|
||||
),
|
||||
|
||||
@ -574,9 +574,9 @@ class test_user(Declarative):
|
||||
desc='Delete "%s"' % user1,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
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),
|
||||
command=('user_del', [user1, user2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
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,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user1,
|
||||
value=user1,
|
||||
value=[user1],
|
||||
),
|
||||
),
|
||||
|
||||
@ -811,9 +811,9 @@ class test_user(Declarative):
|
||||
desc='Delete "%s"' % user1,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user1,
|
||||
value=user1,
|
||||
value=[user1],
|
||||
),
|
||||
),
|
||||
|
||||
@ -849,9 +849,9 @@ class test_user(Declarative):
|
||||
desc='Delete "%s"' % user2,
|
||||
command=('user_del', [user2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user2,
|
||||
value=user2,
|
||||
value=[user2],
|
||||
),
|
||||
),
|
||||
|
||||
@ -892,9 +892,9 @@ class test_user(Declarative):
|
||||
desc='Delete "%s"' % user1,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user1,
|
||||
value=user1,
|
||||
value=[user1],
|
||||
),
|
||||
),
|
||||
|
||||
@ -932,9 +932,9 @@ class test_user(Declarative):
|
||||
desc='Delete "%s"' % user1,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user1,
|
||||
value=user1,
|
||||
value=[user1],
|
||||
),
|
||||
),
|
||||
|
||||
@ -971,9 +971,9 @@ class test_user(Declarative):
|
||||
desc='Delete "%s"' % user1,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user1,
|
||||
value=user1,
|
||||
value=[user1],
|
||||
),
|
||||
),
|
||||
|
||||
@ -1008,9 +1008,9 @@ class test_user(Declarative):
|
||||
desc='Delete "%s"' % user2,
|
||||
command=('user_del', [user2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user2,
|
||||
value=user2,
|
||||
value=[user2],
|
||||
),
|
||||
),
|
||||
|
||||
@ -1116,9 +1116,9 @@ class test_user(Declarative):
|
||||
desc='Delete %r' % renameduser1,
|
||||
command=('user_del', [renameduser1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % renameduser1,
|
||||
value=renameduser1,
|
||||
value=[renameduser1],
|
||||
),
|
||||
),
|
||||
|
||||
@ -1255,9 +1255,9 @@ class test_user(Declarative):
|
||||
desc='Delete 2nd admin "%s"' % admin2,
|
||||
command=('user_del', [admin2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % admin2,
|
||||
value=admin2,
|
||||
value=[admin2],
|
||||
),
|
||||
),
|
||||
|
||||
@ -1324,9 +1324,9 @@ class test_user(Declarative):
|
||||
desc='Delete "%s"' % user2,
|
||||
command=('user_del', [user2], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user2,
|
||||
value=user2,
|
||||
value=[user2],
|
||||
),
|
||||
),
|
||||
|
||||
@ -1362,9 +1362,9 @@ class test_user(Declarative):
|
||||
desc='Delete "%s"' % user1,
|
||||
command=('user_del', [user1], {}),
|
||||
expected=dict(
|
||||
result=dict(failed=u''),
|
||||
result=dict(failed=[]),
|
||||
summary=u'Deleted user "%s"' % user1,
|
||||
value=user1,
|
||||
value=[user1],
|
||||
),
|
||||
),
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user