summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipalib/errors.py17
-rw-r--r--ipalib/plugins/batch.py2
2 files changed, 19 insertions, 0 deletions
diff --git a/ipalib/errors.py b/ipalib/errors.py
index f48ad55aa..6883cbdab 100644
--- a/ipalib/errors.py
+++ b/ipalib/errors.py
@@ -1471,6 +1471,23 @@ class NotRegisteredError(ExecutionError):
format = _('Not registered yet')
+class BatchRequestLimitError(ExecutionError):
+ """
+ **4307** Raised when a batch request contains too many commands
+
+ For example:
+ >>> raise BatchRequestLimitError(limit=128)
+ Traceback (most recent call last):
+ ...
+ BatchRequestLimitError: Too many commands in request, limit is 128
+
+ """
+
+ errno = 4307
+ format = _('Too many commands in request, limit is %(limit)s')
+
+
+
##############################################################################
# 5000 - 5999: Generic errors
diff --git a/ipalib/plugins/batch.py b/ipalib/plugins/batch.py
index a5907791d..5455340b2 100644
--- a/ipalib/plugins/batch.py
+++ b/ipalib/plugins/batch.py
@@ -80,6 +80,8 @@ class batch(Command):
def execute(self, *args, **options):
results=[]
+ if len(args[0]) > 256:
+ raise errors.BatchRequestLimitError(limit=256)
for arg in args[0]:
try:
a = arg['params'][0]