)]}'
{"mistral/db/sqlalchemy/migration/alembic_migrations/versions/012_add_event_triggers_v2_table.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"69bb5140df9fe98c80d7b66265a2e32a66dadfc3","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            [u\u0027workflow_definitions_v2.id\u0027],"},{"line_number":54,"context_line":"        ),"},{"line_number":55,"context_line":"        sa.PrimaryKeyConstraint(\u0027id\u0027),"},{"line_number":56,"context_line":"        sa.UniqueConstraint("},{"line_number":57,"context_line":"            \u0027exchange\u0027,"},{"line_number":58,"context_line":"            \u0027topic\u0027,"},{"line_number":59,"context_line":"            \u0027event\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_8ad72c4a","line":56,"range":{"start_line":56,"start_character":11,"end_line":56,"end_character":27},"updated":"2016-07-06 11:43:59.000000000","message":"Why do have this unique constraint? I wonder if we can have multiple different triggers on the exact same event starting exact same workflow. Seems like why not? What do you think?","commit_id":"3cae20131e87c1f620e9c5a4a3750842de275998"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"7bf34690e70eb7b7580ca65d55e00ce42758440a","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            [u\u0027workflow_definitions_v2.id\u0027],"},{"line_number":54,"context_line":"        ),"},{"line_number":55,"context_line":"        sa.PrimaryKeyConstraint(\u0027id\u0027),"},{"line_number":56,"context_line":"        sa.UniqueConstraint("},{"line_number":57,"context_line":"            \u0027exchange\u0027,"},{"line_number":58,"context_line":"            \u0027topic\u0027,"},{"line_number":59,"context_line":"            \u0027event\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_cedbcc7a","line":56,"range":{"start_line":56,"start_character":11,"end_line":56,"end_character":27},"in_reply_to":"1aa78d24_8ad72c4a","updated":"2016-07-07 09:59:47.000000000","message":"From users\u0027 perspective, I don\u0027t think it makes sense that users define the same workflow for the same event, actually, I think for one event, the right way is to define only one workflow which should be appropriately designed.","commit_id":"3cae20131e87c1f620e9c5a4a3750842de275998"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"ab51a5b98368965ce319dc8d7d0e570fadca334d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            [u\u0027workflow_definitions_v2.id\u0027],"},{"line_number":54,"context_line":"        ),"},{"line_number":55,"context_line":"        sa.PrimaryKeyConstraint(\u0027id\u0027),"},{"line_number":56,"context_line":"        sa.UniqueConstraint("},{"line_number":57,"context_line":"            \u0027exchange\u0027,"},{"line_number":58,"context_line":"            \u0027topic\u0027,"},{"line_number":59,"context_line":"            \u0027event\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_f12949e7","line":56,"range":{"start_line":56,"start_character":11,"end_line":56,"end_character":27},"in_reply_to":"1aa78d24_cedbcc7a","updated":"2016-07-07 10:19:22.000000000","message":"Yes, it makes sense. I was just thinking about possibility to run same workflow but with different inputs. However, we can easily emulate it by running subworkflows. Ok, thanks.","commit_id":"3cae20131e87c1f620e9c5a4a3750842de275998"}],"mistral/db/v2/api.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"69bb5140df9fe98c80d7b66265a2e32a66dadfc3","unresolved":false,"context_lines":[{"line_number":509,"context_line":""},{"line_number":510,"context_line":"# Event triggers."},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"def get_event_trigger(id, insecure\u003dFalse):"},{"line_number":513,"context_line":"    return IMPL.get_event_trigger(id, insecure)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_ca9c945f","line":512,"range":{"start_line":512,"start_character":26,"end_line":512,"end_character":34},"updated":"2016-07-06 11:43:59.000000000","message":"What is \"insecure\" for?","commit_id":"3cae20131e87c1f620e9c5a4a3750842de275998"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"9fe0f5c4a684c508b4471f5db82d427d3aae35ca","unresolved":false,"context_lines":[{"line_number":509,"context_line":""},{"line_number":510,"context_line":"# Event triggers."},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"def get_event_trigger(id, insecure\u003dFalse):"},{"line_number":513,"context_line":"    return IMPL.get_event_trigger(id, insecure)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_4551b7d7","line":512,"range":{"start_line":512,"start_character":26,"end_line":512,"end_character":34},"in_reply_to":"1aa78d24_ca9c945f","updated":"2016-07-06 11:45:45.000000000","message":"Ooh, I got it. Yes, this is for internal usage when we don\u0027t need to apply \"project, scope\" filter. Ok.","commit_id":"3cae20131e87c1f620e9c5a4a3750842de275998"}],"mistral/db/v2/sqlalchemy/api.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"69bb5140df9fe98c80d7b66265a2e32a66dadfc3","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    # NOTE(kong): Include IN_ predicate in query filter only if shared_res_ids"},{"line_number":130,"context_line":"    # is not empty to avoid sqlalchemy SAWarning and wasting a db call."},{"line_number":131,"context_line":"    if shared_res_ids:"},{"line_number":132,"context_line":"        query_criterion \u003d sa.or_("},{"line_number":133,"context_line":"            query_criterion,"},{"line_number":134,"context_line":"            model.id.in_(shared_res_ids)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_aa066883","line":131,"range":{"start_line":131,"start_character":7,"end_line":131,"end_character":21},"updated":"2016-07-06 11:43:59.000000000","message":"Good change!","commit_id":"3cae20131e87c1f620e9c5a4a3750842de275998"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"69bb5140df9fe98c80d7b66265a2e32a66dadfc3","unresolved":false,"context_lines":[{"line_number":441,"context_line":"        )"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    event_triggers \u003d get_event_triggers(insecure\u003dTrue, workflow_id\u003dwf_def.id)"},{"line_number":444,"context_line":"    if event_triggers:"},{"line_number":445,"context_line":"        raise exc.DBError("},{"line_number":446,"context_line":"            \"Can\u0027t delete workflow that has event triggers associated. \""},{"line_number":447,"context_line":"            \"[workflow_identifier\u003d%s], [event_trigger_id(s)\u003d%s]\" %"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_4ae1c499","line":444,"range":{"start_line":444,"start_character":7,"end_line":444,"end_character":21},"updated":"2016-07-06 11:43:59.000000000","message":"Soft: put a blank line before \"if\"","commit_id":"3cae20131e87c1f620e9c5a4a3750842de275998"}]}
