def test_create_or_update_trigger_db_simple_triggers(self): test_fixtures = {"triggertypes": ["triggertype1.yaml"]} loader = FixturesLoader() fixtures = loader.save_fixtures_to_db(fixtures_pack="generic", fixtures_dict=test_fixtures) triggertypes = fixtures["triggertypes"] trigger_type_ref = ResourceReference.to_string_reference( name=triggertypes["triggertype1.yaml"]["name"], pack=triggertypes["triggertype1.yaml"]["pack"], ) trigger = { "name": triggertypes["triggertype1.yaml"]["name"], "pack": triggertypes["triggertype1.yaml"]["pack"], "type": trigger_type_ref, } trigger_service.create_or_update_trigger_db(trigger) triggers = Trigger.get_all() self.assertTrue( len(triggers) == 1, "Only one trigger should be created.") self.assertTrue( triggers[0]["name"] == triggertypes["triggertype1.yaml"]["name"]) # Try adding duplicate trigger_service.create_or_update_trigger_db(trigger) triggers = Trigger.get_all() self.assertTrue( len(triggers) == 1, "Only one trigger should be present.") self.assertTrue( triggers[0]["name"] == triggertypes["triggertype1.yaml"]["name"])
def test_create_or_update_trigger_db_simple_triggers(self): test_fixtures = { 'triggertypes': ['triggertype1.yaml'] } loader = FixturesLoader() fixtures = loader.save_fixtures_to_db(fixtures_pack='generic', fixtures_dict=test_fixtures) triggertypes = fixtures['triggertypes'] trigger_type_ref = ResourceReference.to_string_reference( name=triggertypes['triggertype1.yaml']['name'], pack=triggertypes['triggertype1.yaml']['pack']) trigger = { 'name': triggertypes['triggertype1.yaml']['name'], 'pack': triggertypes['triggertype1.yaml']['pack'], 'type': trigger_type_ref } trigger_service.create_or_update_trigger_db(trigger) triggers = Trigger.get_all() self.assertTrue(len(triggers) == 1, 'Only one trigger should be created.') self.assertTrue(triggers[0]['name'] == triggertypes['triggertype1.yaml']['name']) # Try adding duplicate trigger_service.create_or_update_trigger_db(trigger) triggers = Trigger.get_all() self.assertTrue(len(triggers) == 1, 'Only one trigger should be present.') self.assertTrue(triggers[0]['name'] == triggertypes['triggertype1.yaml']['name'])
def _create_shadow_trigger(triggertype_db): try: trigger_type_ref = triggertype_db.get_reference().ref trigger = { 'name': triggertype_db.name, 'pack': triggertype_db.pack, 'type': trigger_type_ref, 'parameters': {} } trigger_db = TriggerService.create_or_update_trigger_db(trigger) extra = {'trigger_db': trigger_db} LOG.audit( 'Trigger created for parameter-less TriggerType. Trigger.id=%s' % (trigger_db.id), extra=extra) except (ValidationError, ValueError) as e: LOG.exception('Validation failed for trigger data=%s.', trigger) # Not aborting as this is convenience. return except StackStormDBObjectConflictError as e: LOG.warn( 'Trigger creation of "%s" failed with uniqueness conflict. Exception: %s', trigger, str(e)) # Not aborting as this is convenience. return
def _create_shadow_trigger(triggertype_db): try: trigger_type_ref = triggertype_db.get_reference().ref trigger = { "name": triggertype_db.name, "pack": triggertype_db.pack, "type": trigger_type_ref, "parameters": {}, } trigger_db = TriggerService.create_or_update_trigger_db(trigger) extra = {"trigger_db": trigger_db} LOG.audit( "Trigger created for parameter-less TriggerType. Trigger.id=%s" % (trigger_db.id), extra=extra, ) except (ValidationError, ValueError): LOG.exception("Validation failed for trigger data=%s.", trigger) # Not aborting as this is convenience. return except StackStormDBObjectConflictError as e: LOG.warn( 'Trigger creation of "%s" failed with uniqueness conflict. Exception: %s', trigger, six.text_type(e), ) # Not aborting as this is convenience. return
def _create_trigger(trigger_type): """ :param trigger_type: TriggerType db object. :type trigger_type: :class:`TriggerTypeDB` """ if hasattr(trigger_type, 'parameters_schema') and not trigger_type['parameters_schema']: trigger_dict = { 'name': trigger_type.name, 'pack': trigger_type.pack, 'type': trigger_type.get_reference().ref } try: trigger_db = TriggerService.create_or_update_trigger_db( trigger=trigger_dict) except: LOG.exception('Validation failed for Trigger=%s.', trigger_dict) raise TriggerTypeRegistrationException( 'Unable to create Trigger for TriggerType=%s.' % trigger_type.name) else: return trigger_db else: LOG.debug( 'Won\'t create Trigger object as TriggerType %s expects ' + 'parameters.', trigger_type) return None
def _create_shadow_trigger(triggertype_db): try: trigger_type_ref = triggertype_db.get_reference().ref trigger = {'name': triggertype_db.name, 'pack': triggertype_db.pack, 'type': trigger_type_ref, 'parameters': {}} trigger_db = TriggerService.create_or_update_trigger_db(trigger) extra = {'trigger_db': trigger_db} LOG.audit('Trigger created for parameter-less TriggerType. Trigger.id=%s' % (trigger_db.id), extra=extra) except (ValidationError, ValueError) as e: LOG.exception('Validation failed for trigger data=%s.', trigger) # Not aborting as this is convenience. return except StackStormDBObjectConflictError as e: LOG.warn('Trigger creation of "%s" failed with uniqueness conflict. Exception: %s', trigger, str(e)) # Not aborting as this is convenience. return
def _create_trigger(trigger_type): """ :param trigger_type: TriggerType db object. :type trigger_type: :class:`TriggerTypeDB` """ if hasattr(trigger_type, 'parameters_schema') and not trigger_type['parameters_schema']: trigger_dict = { 'name': trigger_type.name, 'pack': trigger_type.pack, 'type': trigger_type.get_reference().ref } try: trigger_db = TriggerService.create_or_update_trigger_db(trigger=trigger_dict) except: LOG.exception('Validation failed for Trigger=%s.', trigger_dict) raise TriggerTypeRegistrationException( 'Unable to create Trigger for TriggerType=%s.' % trigger_type.name) else: return trigger_db else: LOG.debug('Won\'t create Trigger object as TriggerType %s expects ' + 'parameters.', trigger_type) return None