Esempio n. 1
0
 def test_wildcard_excluded_events(self):
     event_cfg = ['*', '!a']
     self._set_pipeline_cfg('events', event_cfg)
     self._build_and_set_new_pipeline()
     pipeline_manager = event.EventPipelineManager(self.CONF)
     pipe = pipeline_manager.pipelines[0]
     self.assertFalse(pipe.source.support_event('a'))
Esempio n. 2
0
 def test_wildcard_and_excluded_wildcard_events(self):
     event_cfg = ['*', '!compute.*']
     self._set_pipeline_cfg('events', event_cfg)
     self._build_and_set_new_pipeline()
     pipeline_manager = event.EventPipelineManager(self.CONF)
     pipe = pipeline_manager.pipelines[0]
     self.assertFalse(
         pipe.source.support_event('compute.instance.create.start'))
     self.assertTrue(pipe.source.support_event('identity.user.create'))
Esempio n. 3
0
 def test_wildcard_excluded_events_not_excluded(self):
     event_cfg = ['*', '!b']
     self._set_pipeline_cfg('events', event_cfg)
     self._build_and_set_new_pipeline()
     pipeline_manager = event.EventPipelineManager(self.CONF)
     with pipeline_manager.publisher() as p:
         p([self.test_event])
     publisher = pipeline_manager.pipelines[0].publishers[0]
     self.assertEqual(1, len(publisher.events))
     self.assertEqual('a', getattr(publisher.events[0], 'event_type'))
Esempio n. 4
0
    def test_multiple_publisher_isolation(self):
        self._reraise_exception = False
        self._set_pipeline_cfg('publishers', ['except://', 'new://'])
        self._build_and_set_new_pipeline()
        pipeline_manager = event.EventPipelineManager(self.CONF)
        with pipeline_manager.publisher() as p:
            p([self.test_event])

        publisher = pipeline_manager.pipelines[0].publishers[1]
        self.assertEqual(1, len(publisher.events))
        self.assertEqual('a', getattr(publisher.events[0], 'event_type'))
Esempio n. 5
0
    def test_event_non_match(self):
        event_cfg = ['nomatch']
        self._set_pipeline_cfg('events', event_cfg)
        self._build_and_set_new_pipeline()
        pipeline_manager = event.EventPipelineManager(self.CONF)
        with pipeline_manager.publisher() as p:
            p([self.test_event])

        publisher = pipeline_manager.pipelines[0].publishers[0]
        self.assertEqual(0, len(publisher.events))
        self.assertEqual(0, publisher.calls)
Esempio n. 6
0
    def test_multiple_pipeline(self):
        self._augment_pipeline_cfg()
        self._build_and_set_new_pipeline()
        pipeline_manager = event.EventPipelineManager(self.CONF)
        with pipeline_manager.publisher() as p:
            p([self.test_event, self.test_event2])

        publisher = pipeline_manager.pipelines[0].publishers[0]
        self.assertEqual(1, len(publisher.events))
        self.assertEqual(1, publisher.calls)
        self.assertEqual('a', getattr(publisher.events[0], 'event_type'))
        new_publisher = pipeline_manager.pipelines[1].publishers[0]
        self.assertEqual(1, len(new_publisher.events))
        self.assertEqual(1, new_publisher.calls)
        self.assertEqual('b', getattr(new_publisher.events[0], 'event_type'))
Esempio n. 7
0
    def test_multiple_included_events(self):
        event_cfg = ['a', 'b']
        self._set_pipeline_cfg('events', event_cfg)
        self._build_and_set_new_pipeline()
        pipeline_manager = event.EventPipelineManager(self.CONF)

        with pipeline_manager.publisher() as p:
            p([self.test_event])

        publisher = pipeline_manager.pipelines[0].publishers[0]
        self.assertEqual(1, len(publisher.events))

        with pipeline_manager.publisher() as p:
            p([self.test_event2])

        self.assertEqual(2, len(publisher.events))
        self.assertEqual('a', getattr(publisher.events[0], 'event_type'))
        self.assertEqual('b', getattr(publisher.events[1], 'event_type'))
Esempio n. 8
0
    def _setup_pipeline(self, publishers):
        ev_pipeline = yaml.dump({
            'sources': [{
                'name': 'test_event',
                'events': ['test.test'],
                'sinks': ['test_sink']
            }],
            'sinks': [{
                'name': 'test_sink',
                'publishers': publishers
            }]
        })

        ev_pipeline = ev_pipeline.encode('utf-8')
        ev_pipeline_cfg_file = fileutils.write_to_tempfile(
            content=ev_pipeline, prefix="event_pipeline", suffix="yaml")
        self.CONF.set_override('event_pipeline_cfg_file', ev_pipeline_cfg_file)

        ev_pipeline_mgr = event_pipe.EventPipelineManager(self.CONF)
        return ev_pipeline_mgr
Esempio n. 9
0
    def test_event_pipeline_endpoint_requeue_on_failure(self):
        self.CONF.set_override("ack_on_event_error", False,
                               group="notification")
        self.CONF.set_override("telemetry_secret", "not-so-secret",
                               group="publisher")
        test_data = {
            'message_id': uuid.uuid4(),
            'event_type': 'a',
            'generated': '2013-08-08 21:06:37.803826',
            'traits': [
                {'name': 't_text',
                 'value': 1,
                 'dtype': 'text_trait'
                 }
            ],
            'raw': {'status': 'started'}
        }
        message_sign = utils.compute_signature(test_data, 'not-so-secret')
        test_data['message_signature'] = message_sign

        fake_publisher = mock.Mock()
        self.useFixture(fixtures.MockPatch(
            'ceilometer.publisher.test.TestPublisher',
            return_value=fake_publisher))

        self._build_and_set_new_pipeline()
        pipeline_manager = event.EventPipelineManager(self.CONF)
        pipe = pipeline_manager.pipelines[0]
        event_pipeline_endpoint = event.InterimEventEndpoint(
            self.CONF, pipeline.PublishContext([pipe]), pipe.name)

        fake_publisher.publish_events.side_effect = Exception
        ret = event_pipeline_endpoint.sample([
            {'ctxt': {}, 'publisher_id': 'compute.vagrant-precise',
             'event_type': 'a', 'payload': [test_data], 'metadata': {}}])
        self.assertEqual(oslo_messaging.NotificationResult.REQUEUE, ret)
Esempio n. 10
0
 def test_name(self):
     self._build_and_set_new_pipeline()
     pipeline_manager = event.EventPipelineManager(self.CONF)
     for pipe in pipeline_manager.pipelines:
         self.assertTrue(pipe.name.startswith('event:'))