diff options
-rw-r--r-- | ryu/services/protocols/bgp/api/base.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/ryu/services/protocols/bgp/api/base.py b/ryu/services/protocols/bgp/api/base.py index 525723d9..9624e7be 100644 --- a/ryu/services/protocols/bgp/api/base.py +++ b/ryu/services/protocols/bgp/api/base.py @@ -152,6 +152,8 @@ class RegisterWithArgChecks(object): 2) no extra/un-known arguments are passed 3) checks if validator for required arguments is available 4) validates required arguments + 5) if validator for optional arguments is registered, + validates optional arguments. Raises exception if no validator can be found for required args. """ # Check if we are missing arguments. @@ -182,8 +184,8 @@ class RegisterWithArgChecks(object): # Validate required value. validator = get_validator(req_arg) if not validator: - raise ValueError('No validator registered for function %s' - ' and arg. %s' % (func, req_arg)) + raise ValueError('No validator registered for function=%s' + ' and arg=%s' % (func, req_arg)) validator(req_value) req_values.append(req_value) @@ -191,6 +193,12 @@ class RegisterWithArgChecks(object): opt_items = {} for opt_arg, opt_value in kwargs.items(): if opt_arg in self._opt_args: + # Validate optional value. + # Note: If no validator registered for optional value, + # skips validation. + validator = get_validator(opt_arg) + if validator: + validator(opt_value) opt_items[opt_arg] = opt_value # Call actual function |