mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2026-08-13 06:25:00 -05:00
batch, schema: use Dict instead of Any
Add new Dict parameter class and use it in the batch and command_defaults plugins. https://fedorahosted.org/freeipa/ticket/4739 Reviewed-By: David Kupka <dkupka@redhat.com>
This commit is contained in:
@@ -49,7 +49,7 @@ import six
|
||||
|
||||
from ipalib import api, errors
|
||||
from ipalib import Command
|
||||
from ipalib.parameters import Str, Any
|
||||
from ipalib.parameters import Str, Dict
|
||||
from ipalib.output import Output
|
||||
from ipalib.text import _
|
||||
from ipalib.request import context
|
||||
@@ -66,7 +66,7 @@ class batch(Command):
|
||||
NO_CLI = True
|
||||
|
||||
takes_args = (
|
||||
Any('methods*',
|
||||
Dict('methods*',
|
||||
doc=_('Nested Methods to execute'),
|
||||
),
|
||||
)
|
||||
@@ -90,12 +90,6 @@ class batch(Command):
|
||||
def execute(self, methods=None, **options):
|
||||
results = []
|
||||
for arg in (methods or []):
|
||||
# As take_args = Any, no check is done before
|
||||
# Need to make sure that methods contain dict objects
|
||||
if not isinstance(arg, dict):
|
||||
raise errors.ConversionError(
|
||||
name='methods',
|
||||
error=_(u'must contain dict objects'))
|
||||
params = dict()
|
||||
name = None
|
||||
try:
|
||||
|
||||
@@ -12,7 +12,7 @@ from ipalib import errors
|
||||
from ipalib.crud import PKQuery, Retrieve, Search
|
||||
from ipalib.frontend import Command, Method, Object
|
||||
from ipalib.output import Entry, ListOfEntries, ListOfPrimaryKeys, PrimaryKey
|
||||
from ipalib.parameters import Any, Bool, Flag, Int, Str
|
||||
from ipalib.parameters import Bool, Dict, Flag, Int, Str
|
||||
from ipalib.plugable import Registry
|
||||
from ipalib.text import _
|
||||
from ipapython.version import API_VERSION
|
||||
@@ -216,18 +216,14 @@ class command_defaults(PKQuery):
|
||||
|
||||
takes_options = (
|
||||
Str('params*'),
|
||||
Any('kw?'),
|
||||
Dict('kw?'),
|
||||
)
|
||||
|
||||
def execute(self, name, **options):
|
||||
command = self.api.Command[name]
|
||||
|
||||
params = options.get('params', [])
|
||||
|
||||
kw = options.get('kw', {})
|
||||
if not isinstance(kw, dict):
|
||||
raise errors.ConversionError(name=name,
|
||||
error=_("must be a dictionary"))
|
||||
|
||||
result = command.get_default(params, **kw)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user