mirror of https://github.com/docker/compose.git
process_errors handle both schemas
Now the schema has been split into two, we need to modify the process_errors function to accomodate. Previously if an error.path was empty then it meant they were root errors. Now that service_schema checks after the service has been resolved, our service name is a key within the dictionary and so our root error logic check is no longer true. Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
This commit is contained in:
parent
950577d60f
commit
9fa6e42f55
|
@ -125,7 +125,7 @@ def process_errors(errors):
|
||||||
|
|
||||||
for error in errors:
|
for error in errors:
|
||||||
# handle root level errors
|
# handle root level errors
|
||||||
if len(error.path) == 0:
|
if len(error.path) == 0 and not error.instance.get('name'):
|
||||||
if error.validator == 'type':
|
if error.validator == 'type':
|
||||||
msg = "Top level object needs to be a dictionary. Check your .yml file that you have defined a service at the top level."
|
msg = "Top level object needs to be a dictionary. Check your .yml file that you have defined a service at the top level."
|
||||||
root_msgs.append(msg)
|
root_msgs.append(msg)
|
||||||
|
@ -137,11 +137,13 @@ def process_errors(errors):
|
||||||
root_msgs.append(_clean_error_message(error.message))
|
root_msgs.append(_clean_error_message(error.message))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# handle service level errors
|
try:
|
||||||
service_name = error.path[0]
|
# field_schema errors will have service name on the path
|
||||||
|
service_name = error.path[0]
|
||||||
# pop the service name off our path
|
error.path.popleft()
|
||||||
error.path.popleft()
|
except IndexError:
|
||||||
|
# service_schema errors will have the name in the instance
|
||||||
|
service_name = error.instance.get('name')
|
||||||
|
|
||||||
if error.validator == 'additionalProperties':
|
if error.validator == 'additionalProperties':
|
||||||
invalid_config_key = _parse_key_from_error_msg(error)
|
invalid_config_key = _parse_key_from_error_msg(error)
|
||||||
|
|
Loading…
Reference in New Issue