)]}'
{"nova/db/sqlalchemy/migrate_repo/versions/348_add_pci_devices_uuid.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"16dc9a3e95c422ecaacc30607ec375aec432dd98","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        pci_devices.create_column(uuid_col.copy())"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    shadow_pci_devices \u003d utils.get_table(migrate_engine,"},{"line_number":34,"context_line":"                                        shadow_prefix + \u0027pci_devices\u0027)"},{"line_number":35,"context_line":"    if not hasattr(shadow_pci_devices.c, \u0027uuid\u0027):"},{"line_number":36,"context_line":"        shadow_pci_devices.create_column(uuid_col.copy())"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_7f42cd11","line":34,"updated":"2017-01-04 13:22:19.000000000","message":"formatting nit?","commit_id":"9a6f03a1c14995f2468fcd16be3b3f140cbd4a9e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"135fd697d1dc00cd5d327c3ab417c1912d28c455","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        pci_devices.create_column(uuid_col.copy())"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    shadow_pci_devices \u003d utils.get_table(migrate_engine,"},{"line_number":34,"context_line":"                                        shadow_prefix + \u0027pci_devices\u0027)"},{"line_number":35,"context_line":"    if not hasattr(shadow_pci_devices.c, \u0027uuid\u0027):"},{"line_number":36,"context_line":"        shadow_pci_devices.create_column(uuid_col.copy())"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_47c35e57","line":34,"in_reply_to":"ba5201f7_7f42cd11","updated":"2017-01-11 21:33:55.000000000","message":"Done","commit_id":"9a6f03a1c14995f2468fcd16be3b3f140cbd4a9e"}],"nova/objects/pci_device.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"16dc9a3e95c422ecaacc30607ec375aec432dd98","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        pci_device.obj_reset_changes()"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        # TODO(jaypipes): Remove in 2.0 version of object. This does an inline"},{"line_number":197,"context_line":"        # migration to populate the uuid field."},{"line_number":198,"context_line":"        if db_dev[\u0027uuid\u0027] is None:"},{"line_number":199,"context_line":"            pci_device.uuid \u003d uuidutils.generate_uuid()"},{"line_number":200,"context_line":"            pci_device.save()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_bfa435a6","line":197,"updated":"2017-01-04 13:22:19.000000000","message":"You might consider making a comment referencing the similar change in save() as knowing that\u0027s there helps remove/clear concerns about either recursion or the context object being a reader when it is supposed to be a writer. I know that latter issue is more a concern with the objects that do their own database calls (e.g., resource providers) rather than calling the db module, but it did make me stop and think for a bit.","commit_id":"9a6f03a1c14995f2468fcd16be3b3f140cbd4a9e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"135fd697d1dc00cd5d327c3ab417c1912d28c455","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        pci_device.obj_reset_changes()"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        # TODO(jaypipes): Remove in 2.0 version of object. This does an inline"},{"line_number":197,"context_line":"        # migration to populate the uuid field."},{"line_number":198,"context_line":"        if db_dev[\u0027uuid\u0027] is None:"},{"line_number":199,"context_line":"            pci_device.uuid \u003d uuidutils.generate_uuid()"},{"line_number":200,"context_line":"            pci_device.save()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_878e262c","line":197,"in_reply_to":"ba5201f7_bfa435a6","updated":"2017-01-11 21:33:55.000000000","message":"Done","commit_id":"9a6f03a1c14995f2468fcd16be3b3f140cbd4a9e"}],"nova/tests/unit/db/test_sqlalchemy_migration.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a4970572529a7a24f85bc906146d3cb3aa7fdc8","unresolved":false,"context_lines":[{"line_number":270,"context_line":"                          self.migration.upgrade, self.engine)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def test_pci_device_not_migrated(self):"},{"line_number":273,"context_line":"        # NOTE(jaypipes): We cannot use db_api.pci_device_update() here because"},{"line_number":274,"context_line":"        # newer models of PciDevice contain fields (uuid) that are not present"},{"line_number":275,"context_line":"        # in the older Newton DB schema and pci_device_update() uses the"},{"line_number":276,"context_line":"        # SQLAlchemy ORM model_query().update() form which will produce an"},{"line_number":277,"context_line":"        # UPDATE SQL statement that contains those new fields, resulting in an"},{"line_number":278,"context_line":"        # OperationalError about table pci_devices has no such column uuid."},{"line_number":279,"context_line":"        engine \u003d db_api.get_engine()"},{"line_number":280,"context_line":"        tbl \u003d models.PciDevice.__table__"},{"line_number":281,"context_line":"        with engine.connect() as conn:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a57fde8_272505ab","line":278,"range":{"start_line":273,"start_character":0,"end_line":278,"end_character":75},"updated":"2017-01-12 14:21:12.000000000","message":"This will go away in a future release though, right? Perhaps a TODO would help?","commit_id":"63c7b17ca2c9ab40c545e5b59c16af2d875e791d"}]}
