Esempio n. 1
0
    def __init__(self, trigger_rule_type, configuration):
        """Creates an ingest trigger from the given configuration

        :param trigger_rule_type: The trigger rule type
        :type trigger_rule_type: str
        :param configuration: The ingest trigger configuration
        :type configuration: dict

        :raises trigger.configuration.exceptions.InvalidTriggerRule: If the configuration is invalid
        """

        super(IngestTriggerRuleConfiguration,
              self).__init__(trigger_rule_type, configuration)

        try:
            validate(configuration, INGEST_TRIGGER_SCHEMA)
        except ValidationError as validation_error:
            raise InvalidTriggerRule(validation_error)

        self._populate_default_values()

        version = self._dict['version']
        if version != '1.0':
            raise InvalidTriggerRule('%s is an unsupported version number' %
                                     version)
Esempio n. 2
0
    def __init__(self, trigger_rule_type, configuration):
        """Creates an ingest trigger from the given configuration

        :param trigger_rule_type: The trigger rule type
        :type trigger_rule_type: str
        :param configuration: The ingest trigger configuration
        :type configuration: dict

        :raises trigger.configuration.exceptions.InvalidTriggerRule: If the configuration is invalid
        """

        super(IngestTriggerRuleConfiguration,
              self).__init__(trigger_rule_type, configuration)

        try:
            validate(configuration, INGEST_TRIGGER_SCHEMA)
        except ValidationError as validation_error:
            raise InvalidTriggerRule(validation_error)

        if 'version' not in self._dict:
            self._dict['version'] = SCHEMA_VERSION

        if self._dict['version'] != SCHEMA_VERSION:
            self.convert_ingest_trigger_rule_config()

        self._populate_default_values()
        self._validate_data_types()
Esempio n. 3
0
    def validate(self):
        '''See :meth:`trigger.configuration.trigger_rule.TriggerRuleConfiguration.validate`
        '''

        workspace_name = self.get_workspace_name()

        if Workspace.objects.filter(name=workspace_name).count() == 0:
            raise InvalidTriggerRule('%s is an invalid workspace name' % workspace_name)
Esempio n. 4
0
 def _validate_data_types(self):
     """Cross-checks each of the three data_type lists to ensure no rules contradict one another.
     """
     inclusive_data_tags = set(self._dict['condition']['data_types'] +
                               self._dict['condition']['any_of_data_types'])
     for exclude_tag in self._dict['condition']['not_data_types']:
         if exclude_tag in inclusive_data_tags:
             raise InvalidTriggerRule(
                 "The provided data_type rules for tag `%s` contain a contradiction"
                 % exclude_tag)
Esempio n. 5
0
    def validate(self):
        """Validates the trigger rule configuration. This is a more thorough validation than the basic schema checks
        performed in trigger rule constructors and may include database queries.

        :raises trigger.configuration.exceptions.InvalidTriggerRule: If the configuration is invalid
        """

        workspace_name = self.get_workspace_name()
        if Workspace.objects.filter(name=workspace_name).count() == 0:
            raise InvalidTriggerRule('%s is an invalid workspace name' % workspace_name)