Example #1
0
    def __init__(self, definition_cfg, trait_plugin_mgr, raw_levels):
        self._included_types = []
        self._excluded_types = []
        self.traits = dict()
        self.cfg = definition_cfg
        self.raw_levels = raw_levels

        try:
            event_type = definition_cfg['event_type']
            traits = definition_cfg['traits']
        except KeyError as err:
            raise declarative.EventDefinitionException(
                _("Required field %s not specified") % err.args[0], self.cfg)

        if isinstance(event_type, six.string_types):
            event_type = [event_type]

        for t in event_type:
            if t.startswith('!'):
                self._excluded_types.append(t[1:])
            else:
                self._included_types.append(t)

        if self._excluded_types and not self._included_types:
            self._included_types.append('*')

        for trait_name in self.DEFAULT_TRAITS:
            self.traits[trait_name] = TraitDefinition(
                trait_name, self.DEFAULT_TRAITS[trait_name], trait_plugin_mgr)
        for trait_name in traits:
            self.traits[trait_name] = TraitDefinition(trait_name,
                                                      traits[trait_name],
                                                      trait_plugin_mgr)
Example #2
0
 def __init__(self, name, trait_cfg, plugin_manager):
     super(TraitDefinition, self).__init__(name, trait_cfg, plugin_manager)
     type_name = (trait_cfg.get('type', 'text')
                  if isinstance(trait_cfg, dict) else 'text')
     self.trait_type = models.Trait.get_type_by_name(type_name)
     if self.trait_type is None:
         raise declarative.EventDefinitionException(
             _("Invalid trait type '%(type)s' for trait %(trait)s")
             % dict(type=type_name, trait=name), self.cfg)