)]}'
{"nova/db/sqlalchemy/migrate_repo/versions/330_enforce_mitaka_online_migrations.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9bb2895c39bcc2482896eace9c721961d610ab95","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            raise exception.ValidationError(detail\u003dmsg)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    pci_devices \u003d Table(\u0027pci_devices\u0027, meta, autoload\u003dTrue)"},{"line_number":42,"context_line":"    dev_type \u003d fields.PciDeviceType.SRIOV_VF"},{"line_number":43,"context_line":"    count \u003d select([func.count()]).select_from(pci_devices).where(and_("},{"line_number":44,"context_line":"        pci_devices.c.deleted \u003d\u003d 0,"},{"line_number":45,"context_line":"        pci_devices.c.parent_addr \u003d\u003d None,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_df5b1b52","line":42,"updated":"2017-04-12 21:59:11.000000000","message":"This is noble, but I think we should encode the actual enum value here. We\u0027ve had issues before where supposedly-timeless migrations get unintentionally altered because someone changes something far away from the database code that used it.","commit_id":"e4935738c3298642951ca9b53e4d81ad0cbbfa18"},{"author":{"_account_id":24777,"name":"Steven Webster","email":"steven.webster@windriver.com","username":"swebster"},"change_message_id":"7f13f741b2548e104045ba34dcd916ff5f3665d3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            raise exception.ValidationError(detail\u003dmsg)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    pci_devices \u003d Table(\u0027pci_devices\u0027, meta, autoload\u003dTrue)"},{"line_number":42,"context_line":"    dev_type \u003d fields.PciDeviceType.SRIOV_VF"},{"line_number":43,"context_line":"    count \u003d select([func.count()]).select_from(pci_devices).where(and_("},{"line_number":44,"context_line":"        pci_devices.c.deleted \u003d\u003d 0,"},{"line_number":45,"context_line":"        pci_devices.c.parent_addr \u003d\u003d None,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_dbaaef83","line":42,"in_reply_to":"9ff52f3f_df5b1b52","updated":"2017-04-13 17:13:30.000000000","message":"done","commit_id":"e4935738c3298642951ca9b53e4d81ad0cbbfa18"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"23ada334f47b84c66691b3a7f6e92dd2b3df5524","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    count \u003d select([func.count()]).select_from(pci_devices).where(and_("},{"line_number":42,"context_line":"        pci_devices.c.deleted \u003d\u003d 0,"},{"line_number":43,"context_line":"        pci_devices.c.parent_addr \u003d\u003d None,"},{"line_number":44,"context_line":"        pci_devices.c.dev_type \u003d\u003d \u0027type-VF\u0027)).execute().scalar()  # NOQA"},{"line_number":45,"context_line":"    if count \u003e 0:"},{"line_number":46,"context_line":"        msg \u003d WARNING_MSG % {"},{"line_number":47,"context_line":"            \u0027count\u0027: count,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ffa3b31_d53650b5","line":44,"range":{"start_line":44,"start_character":34,"end_line":44,"end_character":43},"updated":"2017-04-14 13:39:09.000000000","message":"Ugh, I get it, but perhaps a comment with dansmith\u0027s reasoning as to why we\u0027re *not* using the enum?","commit_id":"7a4d4fb57b070e83be1f6edb0fa50833057de6c8"},{"author":{"_account_id":24777,"name":"Steven Webster","email":"steven.webster@windriver.com","username":"swebster"},"change_message_id":"09971dd94c451d432593ab0ae624020a84f9d1e0","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    count \u003d select([func.count()]).select_from(pci_devices).where(and_("},{"line_number":42,"context_line":"        pci_devices.c.deleted \u003d\u003d 0,"},{"line_number":43,"context_line":"        pci_devices.c.parent_addr \u003d\u003d None,"},{"line_number":44,"context_line":"        pci_devices.c.dev_type \u003d\u003d \u0027type-VF\u0027)).execute().scalar()  # NOQA"},{"line_number":45,"context_line":"    if count \u003e 0:"},{"line_number":46,"context_line":"        msg \u003d WARNING_MSG % {"},{"line_number":47,"context_line":"            \u0027count\u0027: count,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ffa3b31_0142e510","line":44,"range":{"start_line":44,"start_character":34,"end_line":44,"end_character":43},"in_reply_to":"7ffa3b31_d53650b5","updated":"2017-04-18 21:57:44.000000000","message":"Hi Eric, sounds good.  It may prevent anybody else from changing back to the enum def in the future.","commit_id":"7a4d4fb57b070e83be1f6edb0fa50833057de6c8"}],"nova/tests/unit/db/test_sqlalchemy_migration.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9bb2895c39bcc2482896eace9c721961d610ab95","unresolved":false,"context_lines":[{"line_number":275,"context_line":"                                  \u0027address\u0027: \u0027foo:bar\u0027,"},{"line_number":276,"context_line":"                                  \u0027vendor_id\u0027: \u0027123\u0027,"},{"line_number":277,"context_line":"                                  \u0027product_id\u0027: \u0027456\u0027,"},{"line_number":278,"context_line":"                                  \u0027dev_type\u0027: \u0027type-VF\u0027,"},{"line_number":279,"context_line":"                                  \u0027label\u0027: \u0027foobar\u0027,"},{"line_number":280,"context_line":"                                  \u0027status\u0027: \u0027whatisthis?\u0027})"},{"line_number":281,"context_line":"        self.assertRaises(exception.ValidationError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_df20bbb3","line":278,"updated":"2017-04-12 21:59:11.000000000","message":"We might should have another new test that makes sure that things other than type-VF are ignored.","commit_id":"e4935738c3298642951ca9b53e4d81ad0cbbfa18"},{"author":{"_account_id":17814,"name":"fengzhr","email":"fengzhr@awcloud.com","username":"space"},"change_message_id":"82629e83dbc81c841d9485214d53620da02bdd6d","unresolved":false,"context_lines":[{"line_number":275,"context_line":"                                  \u0027address\u0027: \u0027foo:bar\u0027,"},{"line_number":276,"context_line":"                                  \u0027vendor_id\u0027: \u0027123\u0027,"},{"line_number":277,"context_line":"                                  \u0027product_id\u0027: \u0027456\u0027,"},{"line_number":278,"context_line":"                                  \u0027dev_type\u0027: \u0027type-VF\u0027,"},{"line_number":279,"context_line":"                                  \u0027label\u0027: \u0027foobar\u0027,"},{"line_number":280,"context_line":"                                  \u0027status\u0027: \u0027whatisthis?\u0027})"},{"line_number":281,"context_line":"        self.assertRaises(exception.ValidationError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_aea82777","line":278,"in_reply_to":"9ff52f3f_df20bbb3","updated":"2017-04-13 02:17:01.000000000","message":"+1, write another unit test for this, please.","commit_id":"e4935738c3298642951ca9b53e4d81ad0cbbfa18"},{"author":{"_account_id":24777,"name":"Steven Webster","email":"steven.webster@windriver.com","username":"swebster"},"change_message_id":"7f13f741b2548e104045ba34dcd916ff5f3665d3","unresolved":false,"context_lines":[{"line_number":275,"context_line":"                                  \u0027address\u0027: \u0027foo:bar\u0027,"},{"line_number":276,"context_line":"                                  \u0027vendor_id\u0027: \u0027123\u0027,"},{"line_number":277,"context_line":"                                  \u0027product_id\u0027: \u0027456\u0027,"},{"line_number":278,"context_line":"                                  \u0027dev_type\u0027: \u0027type-VF\u0027,"},{"line_number":279,"context_line":"                                  \u0027label\u0027: \u0027foobar\u0027,"},{"line_number":280,"context_line":"                                  \u0027status\u0027: \u0027whatisthis?\u0027})"},{"line_number":281,"context_line":"        self.assertRaises(exception.ValidationError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_9b946746","line":278,"in_reply_to":"9ff52f3f_df20bbb3","updated":"2017-04-13 17:13:30.000000000","message":"Agreed","commit_id":"e4935738c3298642951ca9b53e4d81ad0cbbfa18"}]}
