in marketplace/deployer_util/config_helper.py [0:0]
def __init__(self, dictionary):
self._description = dictionary.get('description', None)
self._roles = dictionary.get('roles', [])
for role in self._roles:
if role.get('rulesType') == 'PREDEFINED':
if role.get('rules'):
raise InvalidSchema('rules can only be used with rulesType CUSTOM')
if not role.get('rulesFromRoleName'):
raise InvalidSchema('Missing rulesFromRoleName for PREDEFINED role')
elif role.get('rulesType') == 'CUSTOM':
if role.get('rulesFromRoleName'):
raise InvalidSchema(
'rulesFromRoleName can only be used with rulesType PREDEFINED')
if not role.get('rules'):
raise InvalidSchema('Missing rules for CUSTOM role')
for rule in role.get('rules', []):
if rule.get('nonResourceURLs'):
raise InvalidSchema(
'Only attributes for resourceRules are supported in rules')
if not rule.get('apiGroups'):
raise InvalidSchema("Missing apiGroups in rules. "
"Did you mean [\"\"] (only core APIs)"
"or [\"*\"] (all)?")
if not [x for x in rule.get('resources', []) if x]:
raise InvalidSchema('Missing or empty resources in rules.')
if not [x for x in rule.get('verbs', []) if x]:
raise InvalidSchema('Missing or empty verbs in rules.')
else:
raise InvalidSchema('rulesType must be one of PREDEFINED or CUSTOM')