diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index d4a6c55311b5be0399a413a8b949c4e41cfda1d5..51e3941e6ad6cd12303f08a29663a444ccaf8663 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -9668,15 +9668,13 @@ class LUTestDelay(NoHooksLU):
     ("duration", _TFloat),
     ("on_master", _TBool),
     ("on_nodes", _TListOf(_TNonEmptyString)),
+    ("repeat", _TPositiveInt)
+    ]
+  _OP_DEFS = [
+    ("repeat", 0),
     ]
   REQ_BGL = False
 
-  def CheckArguments(self):
-    # TODO: convert to the type system
-    self.op.repeat = getattr(self.op, "repeat", 0)
-    if self.op.repeat < 0:
-      raise errors.OpPrereqError("Repetition count cannot be negative")
-
   def ExpandNames(self):
     """Expand names and set required locks.