)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"18d5273f677e44e4343c3b55e372abc381b292f3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove internal_id attribute from instances table"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"internal_id attribute column from instances table is no"},{"line_number":10,"context_line":"longer used. This commit removes internal_id from object"},{"line_number":11,"context_line":"layer and from database schema."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a8bc5a2_f8462322","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":11},"updated":"2016-09-22 20:00:15.000000000","message":"Apparently this was added to the models here:\n\nhttps://review.openstack.org/#/c/38522/\n\nThat was back in havana. I\u0027d like to know what DB migration had internal_id in it so we can figure out why it was added.","commit_id":"6d53110782696a62a164a625efd435804611ab69"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d3572d02f2f947e201501a32dcc9a9a0b5307e33","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove internal_id attribute from instances table"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"internal_id attribute column from instances table is no"},{"line_number":10,"context_line":"longer used. This commit removes internal_id from object"},{"line_number":11,"context_line":"layer and from database schema."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a8bc5a2_f8b0e3f6","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":11},"in_reply_to":"5a8bc5a2_f8462322","updated":"2016-09-22 20:05:00.000000000","message":"I guess this goes way back to Austin, the original release:\n\nhttps://github.com/openstack/nova/blob/essex-eol/nova/db/sqlalchemy/migrate_repo/versions/001_austin.py#L130\n\nIt looks like it was used for some ec2 cloud API stuff, for storing an image/snapshot id, something like that.","commit_id":"6d53110782696a62a164a625efd435804611ab69"}],"nova/db/sqlalchemy/migrate_repo/versions/335_remove_internal_id_column.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b8b11625fb52b97dcc709622314b24b906e29587","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    shadow_instances \u003d Table(\u0027shadow_instances\u0027, meta, autoload\u003dTrue)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    if hasattr(instances.c, column_name):"},{"line_number":26,"context_line":"        instances.drop_column(instances.c[column_name])"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    if hasattr(shadow_instances.c, column_name):"},{"line_number":29,"context_line":"        shadow_instances.drop_column(shadow_instances.c[column_name])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_e39e7455","line":26,"updated":"2016-09-22 20:21:34.000000000","message":"You can\u0027t do this because the column is still in the model. You can remove it from the model in Ocata and then actually drop it from the DB in Pike, but that\u0027s the earliest.\n\nSQLA queries models by specifying every column explicitly. If you drop this, then anything not running the matching model will break. That kills our ability to apply DB schema from N+1 to a running N deployment.","commit_id":"6d53110782696a62a164a625efd435804611ab69"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1147458864deb4839bc0b92dbb394b4761a92e05","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    shadow_instances \u003d Table(\u0027shadow_instances\u0027, meta, autoload\u003dTrue)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    if hasattr(instances.c, column_name):"},{"line_number":26,"context_line":"        instances.drop_column(instances.c[column_name])"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    if hasattr(shadow_instances.c, column_name):"},{"line_number":29,"context_line":"        shadow_instances.drop_column(shadow_instances.c[column_name])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_e3bbd470","line":26,"in_reply_to":"5a8bc5a2_e39e7455","updated":"2016-09-22 20:29:54.000000000","message":"This is explained here:\n\nhttp://docs.openstack.org/developer/nova/upgrade.html?highlight\u003dupgrade#migration-policy\n\nI totally missed it and asked for the schema migration in the same patch, my mistake.","commit_id":"6d53110782696a62a164a625efd435804611ab69"}],"nova/db/sqlalchemy/models.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b8b11625fb52b97dcc709622314b24b906e29587","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    # OpenStack compute cell name.  This will only be set at the top of"},{"line_number":338,"context_line":"    # the cells tree and it\u0027ll be a full cell name such as \u0027api!hop1!hop2\u0027"},{"line_number":339,"context_line":"    cell_name \u003d Column(String(255))"},{"line_number":340,"context_line":"    internal_id \u003d Column(Integer)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    # Records whether an instance has been deleted from disk"},{"line_number":343,"context_line":"    cleaned \u003d Column(Integer, default\u003d0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_83a130ac","side":"PARENT","line":340,"updated":"2016-09-22 20:21:34.000000000","message":"You can\u0027t remove this and the column from the","commit_id":"1c4167d9453a9754f76587c4b744bfaef678bac5"}],"nova/tests/unit/db/test_migrations.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"002df74655cb997bd08cbc22376acd9ed7551ea7","unresolved":false,"context_lines":[{"line_number":765,"context_line":"        def removed_column(element):"},{"line_number":766,"context_line":"            # Define a whitelist of columns that would be removed from the"},{"line_number":767,"context_line":"            # DB at a later release."},{"line_number":768,"context_line":"            column_whitelist \u003d {\u0027instances\u0027: [\u0027scheduled_at\u0027, \u0027internal_id\u0027]}"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"            if element[0] !\u003d \u0027remove_column\u0027:"},{"line_number":771,"context_line":"                return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_78b68edd","line":768,"updated":"2016-09-22 22:04:07.000000000","message":"I think you can remove scheduled_at now, right?","commit_id":"94d5c886ba2b19288276e517317fcd74cc8e4592"},{"author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"change_message_id":"c7f5a848c66b02cf1958a548e74fe60fb06c828b","unresolved":false,"context_lines":[{"line_number":765,"context_line":"        def removed_column(element):"},{"line_number":766,"context_line":"            # Define a whitelist of columns that would be removed from the"},{"line_number":767,"context_line":"            # DB at a later release."},{"line_number":768,"context_line":"            column_whitelist \u003d {\u0027instances\u0027: [\u0027scheduled_at\u0027, \u0027internal_id\u0027]}"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"            if element[0] !\u003d \u0027remove_column\u0027:"},{"line_number":771,"context_line":"                return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_d1aa1dd4","line":768,"in_reply_to":"5a8bc5a2_78b68edd","updated":"2016-09-22 23:33:20.000000000","message":"Yes, we can remove scheduled_at in this release. It has got introduced/removed in https://github.com/openstack/nova/commit/5e9df4baf97fd1f495b81d3b8b612e24f344b325","commit_id":"94d5c886ba2b19288276e517317fcd74cc8e4592"},{"author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"change_message_id":"698f8054affe48a27b624e991f868a6e2216b63d","unresolved":false,"context_lines":[{"line_number":765,"context_line":"        def removed_column(element):"},{"line_number":766,"context_line":"            # Define a whitelist of columns that would be removed from the"},{"line_number":767,"context_line":"            # DB at a later release."},{"line_number":768,"context_line":"            column_whitelist \u003d {\u0027instances\u0027: [\u0027scheduled_at\u0027, \u0027internal_id\u0027]}"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"            if element[0] !\u003d \u0027remove_column\u0027:"},{"line_number":771,"context_line":"                return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_71822954","line":768,"in_reply_to":"5a8bc5a2_d1aa1dd4","updated":"2016-09-22 23:34:13.000000000","message":"I think we can address this in follow up patch.","commit_id":"94d5c886ba2b19288276e517317fcd74cc8e4592"}]}
