def __init__()

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')