コード例 #1
0
    def test_put(self, mock_update, mock_rpc_client):
        client = mock.Mock()
        mock_rpc_client.return_value = client

        UPDATED_TRIGGER = models.EventTrigger()
        UPDATED_TRIGGER.update(trigger_values)
        UPDATED_TRIGGER.update({'name': 'new_name'})
        mock_update.return_value = UPDATED_TRIGGER

        resp = self.app.put_json(
            '/v2/event_triggers/09cc56a9-d15e-4494-a6e2-c4ec8bdaacae',
            {'name': 'new_name'})

        self.assertEqual(200, resp.status_int)
        self.assertEqual(1, client.update_event_trigger.call_count)

        self.assertDictEqual(UPDATED_TRIGGER.to_dict(),
                             client.update_event_trigger.call_args[0][0])
コード例 #2
0
def create_event_trigger(values, session=None):
    event_trigger = models.EventTrigger()

    event_trigger.update(values)

    try:
        event_trigger.save(session=session)
    except db_exc.DBDuplicateEntry as e:
        raise exc.DBDuplicateEntryError(
            "Duplicate entry for event trigger %s: %s" %
            (event_trigger.id, e.columns))
    # TODO(nmakhotkin): Remove this 'except' after fixing
    # https://bugs.launchpad.net/oslo.db/+bug/1458583.
    except db_exc.DBError as e:
        raise exc.DBDuplicateEntryError(
            "Duplicate entry for event trigger: %s" % e)

    return event_trigger
コード例 #3
0
    def test_delete(self, mock_delete, mock_rpc_client):
        client = mock.Mock()
        mock_rpc_client.return_value = client

        DELETE_TRIGGER = models.EventTrigger()
        DELETE_TRIGGER.update(trigger_values)
        DELETE_TRIGGER.update(
            {'trust_id': 'c30e50e8-ee7d-4f8a-9515-f0530d9dc54b'})
        mock_delete.return_value = DELETE_TRIGGER

        resp = self.app.delete(
            '/v2/event_triggers/09cc56a9-d15e-4494-a6e2-c4ec8bdaacae')

        self.assertEqual(204, resp.status_int)
        self.assertEqual(1, client.delete_event_trigger.call_count)

        self.assertDictEqual(DELETE_TRIGGER.to_dict(),
                             client.delete_event_trigger.call_args[0][0])
        self.assertListEqual([], client.delete_event_trigger.call_args[0][1])
コード例 #4
0
ファイル: api.py プロジェクト: bopopescu/OpenStack-Stein
def create_event_trigger(values, session=None):
    event_trigger = models.EventTrigger()

    event_trigger.update(values)

    try:
        event_trigger.save(session=session)
    except db_exc.DBDuplicateEntry:
        raise exc.DBDuplicateEntryError(
            "Duplicate entry for EventTrigger ['exchange', 'topic',"
            " 'event', 'workflow_id', 'project_id']:"
            " {}, {}, {}, {}, {}".format(event_trigger.exchange,
                                         event_trigger.topic,
                                         event_trigger.event,
                                         event_trigger.workflow_id,
                                         event_trigger.project_id))
    # TODO(nmakhotkin): Remove this 'except' after fixing
    # https://bugs.launchpad.net/oslo.db/+bug/1458583.
    except db_exc.DBError as e:
        raise exc.DBDuplicateEntryError(
            "Duplicate entry for event trigger: %s" % e)

    return event_trigger
コード例 #5
0
    'name': 'my_event_trigger',
    'workflow_id': '123e4567-e89b-12d3-a456-426655440000',
    'workflow_input': '{}',
    'workflow_params': '{}',
    'scope': 'private',
    'exchange': 'openstack',
    'topic': 'notification',
    'event': 'compute.instance.create.start'
}

trigger_values = copy.deepcopy(TRIGGER)
trigger_values['workflow_input'] = json.loads(trigger_values['workflow_input'])
trigger_values['workflow_params'] = json.loads(
    trigger_values['workflow_params'])

TRIGGER_DB = models.EventTrigger()
TRIGGER_DB.update(trigger_values)

MOCK_WF = mock.MagicMock(return_value=WF)
MOCK_TRIGGER = mock.MagicMock(return_value=TRIGGER_DB)
MOCK_TRIGGERS = mock.MagicMock(return_value=[TRIGGER_DB])
MOCK_NONE = mock.MagicMock(return_value=None)
MOCK_NOT_FOUND = mock.MagicMock(side_effect=exc.DBEntityNotFoundError())


class TestEventTriggerController(base.APITest):
    @mock.patch.object(db_api, "get_event_trigger", MOCK_TRIGGER)
    def test_get(self):
        resp = self.app.get(
            '/v2/event_triggers/09cc56a9-d15e-4494-a6e2-c4ec8bdaacae')