)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"9f5c5d53fcbcf49e8765b275624ef44f06ef9123","unresolved":false,"context_lines":[{"line_number":15,"context_line":"added to them."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I04bdc863d67e2228f34a05f588c2e9f562918114"},{"line_number":18,"context_line":"Closed-Bug: #1550027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3afc51ec_00c04d7a","line":18,"updated":"2016-03-15 02:38:35.000000000","message":"this is closes-bug","commit_id":"701d575d757540370f652d786c36ff8f84790cf0"},{"author":{"_account_id":7653,"name":"Zhengguang Ou","email":"zhengguangou@gmail.com","username":"Zhengguang"},"change_message_id":"9c880bc90bbf006a3d0d277c369718b3b9a8d703","unresolved":false,"context_lines":[{"line_number":15,"context_line":"added to them."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I04bdc863d67e2228f34a05f588c2e9f562918114"},{"line_number":18,"context_line":"Closed-Bug: #1550027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3afc51ec_6fe65db1","line":18,"in_reply_to":"3afc51ec_00c04d7a","updated":"2016-03-15 05:55:45.000000000","message":"Done","commit_id":"701d575d757540370f652d786c36ff8f84790cf0"}],"neutron/db/migration/__init__.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"6e8c5bce77c68e13b9f00967fe510a84d8670dd6","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"def create_foreign_keys(table, foreign_keys):"},{"line_number":161,"context_line":"    for fk in foreign_keys:"},{"line_number":162,"context_line":"        ondelete \u003d None"},{"line_number":163,"context_line":"        if \u0027ondelete\u0027 in fk[\u0027options\u0027].keys():"},{"line_number":164,"context_line":"            ondelete \u003d fk[\u0027options\u0027][\u0027ondelete\u0027]"},{"line_number":165,"context_line":"        op.create_foreign_key("},{"line_number":166,"context_line":"            constraint_name\u003dfk[\u0027name\u0027],"},{"line_number":167,"context_line":"            source_table\u003dtable,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_a365071f","line":164,"range":{"start_line":162,"start_character":8,"end_line":164,"end_character":48},"updated":"2016-03-03 08:24:07.000000000","message":"Lets make this in one line:\n\n    ondelete \u003d fk[\u0027options\u0027].get(\u0027ondelete\u0027)","commit_id":"8775e9d056f9044b5219c9d63a589c9fc2cad21e"},{"author":{"_account_id":7653,"name":"Zhengguang Ou","email":"zhengguangou@gmail.com","username":"Zhengguang"},"change_message_id":"a5b667687d1cd2c9146d2b75e5c7cc4a7e7dd5df","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"def create_foreign_keys(table, foreign_keys):"},{"line_number":161,"context_line":"    for fk in foreign_keys:"},{"line_number":162,"context_line":"        ondelete \u003d None"},{"line_number":163,"context_line":"        if \u0027ondelete\u0027 in fk[\u0027options\u0027].keys():"},{"line_number":164,"context_line":"            ondelete \u003d fk[\u0027options\u0027][\u0027ondelete\u0027]"},{"line_number":165,"context_line":"        op.create_foreign_key("},{"line_number":166,"context_line":"            constraint_name\u003dfk[\u0027name\u0027],"},{"line_number":167,"context_line":"            source_table\u003dtable,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_3cf8f848","line":164,"range":{"start_line":162,"start_character":8,"end_line":164,"end_character":48},"in_reply_to":"7af24918_a365071f","updated":"2016-03-03 08:58:13.000000000","message":"Done","commit_id":"8775e9d056f9044b5219c9d63a589c9fc2cad21e"}],"neutron/db/migration/alembic_migrations/versions/liberty/contract/2e5352a0ad4d_add_missing_foreign_keys.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"744e309fa00b4d66c7324ebd518fc4fd7ed18a8c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"def upgrade():"},{"line_number":38,"context_line":"    inspector \u003d reflection.Inspector.from_engine(op.get_bind())"},{"line_number":39,"context_line":"    fk_constraints \u003d inspector.get_foreign_keys(TABLE_NAME)"},{"line_number":40,"context_line":"    fk_constraints[\u0027options\u0027][\u0027ondelete\u0027] \u003d \u0027CASCADE\u0027"},{"line_number":41,"context_line":"    migration.remove_foreign_keys(TABLE_NAME, fk_constraints)"},{"line_number":42,"context_line":"    migration.create_foreign_keys(TABLE_NAME, fk_constraints)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_4db729f5","line":40,"range":{"start_line":40,"start_character":4,"end_line":40,"end_character":18},"updated":"2016-03-09 09:25:49.000000000","message":"fk_constraints is a list, so you should do that for all fks:\n\n   for fk in fk_constraints:\n      fk[\u0027options\u0027][\u0027ondelete\u0027] \u003d \u0027CASCADE\u0027","commit_id":"a2c17d513c462eeb968e04abaa46b24adc60a2ce"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"04114bd8fedbb9c6dfe7bcd6c41bdf838b661d8c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    inspector \u003d reflection.Inspector.from_engine(op.get_bind())"},{"line_number":39,"context_line":"    fk_constraints \u003d inspector.get_foreign_keys(TABLE_NAME)"},{"line_number":40,"context_line":"    for fk in fk_constraints:"},{"line_number":41,"context_line":"        fk[\u0027options\u0027][\u0027ondelete\u0027] \u003d \u0027CASCADE\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    migration.remove_foreign_keys(TABLE_NAME, fk_constraints)"},{"line_number":44,"context_line":"    migration.create_foreign_keys(TABLE_NAME, fk_constraints)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_80cbbda4","line":41,"updated":"2016-03-15 02:16:26.000000000","message":"isn\u0027t this migration already executed on existing deployments?","commit_id":"701d575d757540370f652d786c36ff8f84790cf0"},{"author":{"_account_id":7653,"name":"Zhengguang Ou","email":"zhengguangou@gmail.com","username":"Zhengguang"},"change_message_id":"9c880bc90bbf006a3d0d277c369718b3b9a8d703","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    inspector \u003d reflection.Inspector.from_engine(op.get_bind())"},{"line_number":39,"context_line":"    fk_constraints \u003d inspector.get_foreign_keys(TABLE_NAME)"},{"line_number":40,"context_line":"    for fk in fk_constraints:"},{"line_number":41,"context_line":"        fk[\u0027options\u0027][\u0027ondelete\u0027] \u003d \u0027CASCADE\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    migration.remove_foreign_keys(TABLE_NAME, fk_constraints)"},{"line_number":44,"context_line":"    migration.create_foreign_keys(TABLE_NAME, fk_constraints)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_cfe05199","line":41,"in_reply_to":"3afc51ec_80cbbda4","updated":"2016-03-15 05:55:45.000000000","message":"yes, it is.","commit_id":"701d575d757540370f652d786c36ff8f84790cf0"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"59467a54761f6526f9b4ecee5e332d65ad3829dd","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    inspector \u003d reflection.Inspector.from_engine(op.get_bind())"},{"line_number":39,"context_line":"    fk_constraints \u003d inspector.get_foreign_keys(TABLE_NAME)"},{"line_number":40,"context_line":"    for fk in fk_constraints:"},{"line_number":41,"context_line":"        fk[\u0027options\u0027][\u0027ondelete\u0027] \u003d \u0027CASCADE\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    migration.remove_foreign_keys(TABLE_NAME, fk_constraints)"},{"line_number":44,"context_line":"    migration.create_foreign_keys(TABLE_NAME, fk_constraints)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_b5a552a3","line":41,"in_reply_to":"3afc51ec_cf533138","updated":"2016-03-15 07:18:47.000000000","message":"This migration was created to set ondelete\u003dCASCADE for these foreign keys, so this change will make no difference in the way how this migration works. But the function create_foreign_keys will not set ondelete\u003dCASCADE unconditional now, so we need to add this here manually.","commit_id":"701d575d757540370f652d786c36ff8f84790cf0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"ae2da5beb3d2f33c6bbc0d02cf2e4feb66adc2b7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    inspector \u003d reflection.Inspector.from_engine(op.get_bind())"},{"line_number":39,"context_line":"    fk_constraints \u003d inspector.get_foreign_keys(TABLE_NAME)"},{"line_number":40,"context_line":"    for fk in fk_constraints:"},{"line_number":41,"context_line":"        fk[\u0027options\u0027][\u0027ondelete\u0027] \u003d \u0027CASCADE\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    migration.remove_foreign_keys(TABLE_NAME, fk_constraints)"},{"line_number":44,"context_line":"    migration.create_foreign_keys(TABLE_NAME, fk_constraints)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_cf533138","line":41,"in_reply_to":"3afc51ec_cfe05199","updated":"2016-03-15 06:04:38.000000000","message":"then how is that gonna fix the issue for those?","commit_id":"701d575d757540370f652d786c36ff8f84790cf0"}]}
