Merge "Improve volumes format check of yaml-validate.py"

This commit is contained in:
Zuul 2022-11-28 11:41:53 +00:00 committed by Gerrit Code Review
commit dfbcf7aa83
2 changed files with 15 additions and 24 deletions

View File

@ -254,7 +254,7 @@ outputs:
config_image: *mysql_config_image
volumes:
list_concat:
- - /var/lib/mysql:/var/lib/mysql/:rw
- - /var/lib/mysql:/var/lib/mysql:rw
- /var/log/containers/mysql:/var/log/mariadb
- /var/lib/config-data/puppet-generated/mysql/root:/root:rw #provides .my.cnf for puppet, changed on password update
- if:

View File

@ -785,30 +785,21 @@ def validate_ct_volumes(data):
def check_volumes(volumes):
if not volumes:
return 0
result = 0
if isinstance(volumes, list):
for vol in volumes:
if isinstance(vol, dict):
# Avoid 'if', 'get_*' etc
continue
elif isinstance(vol, list):
for item in vol:
result += check_volumes(item)
elif isinstance(vol, str):
vol_def = vol.split(':')
try:
if vol_def[0][-1] == '/' or vol_def[1][-1] == '/':
print('ERROR: trailing "/" detected'
' for {}'.format(vol))
return 1
except IndexError:
# Not a volume definition, ignore it
continue
elif isinstance(volumes, list):
return sum([check_volumes(item) for item in volumes])
elif isinstance(volumes, dict):
# Step into 'list_concat', 'map_*' etc.
for item in volumes.values():
result += check_volumes(item)
return result
return sum([check_volumes(item) for item in volumes.values()])
elif isinstance(volumes, str):
vol_def = volumes.split(':')
try:
if vol_def[0][-1] == '/' or vol_def[1][-1] == '/':
print('ERROR: trailing "/" detected'
' for {}'.format(volumes))
return 1
except IndexError:
# Not a volume definition, ignore it
pass
return 0
if not data:
return 0