)]}'
{"nova/db/sqlalchemy/api_migrations/migrate_repo/versions/042_remove_can_host.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9034e2260d54f7a9c8bd61cf952ebca97ae10569","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    resource_providers \u003d Table(\u0027resource_providers\u0027, meta, autoload\u003dTrue)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    if hasattr(resource_providers.c, column_name):"},{"line_number":26,"context_line":"        resource_providers.drop_column(resource_providers.c[column_name])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ff73747_fa215bb5","line":26,"updated":"2017-05-01 23:44:01.000000000","message":"You can\u0027t do this until a cycle after it\u0027s gone from the model. Otherwise people can\u0027t apply their schema migrations ahead of time. You can do the rest of this patch, and then land this in R.","commit_id":"4622c59fdcbf19b6ddef81bac77db3ce6714de28"}],"nova/tests/functional/db/api/test_migrations.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"be6c31de9a1237d6d8bebb5fa334cdc1b124048c","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        self.assertTrue(db_utils.column_exists(engine, table_name, column),"},{"line_number":191,"context_line":"                \u0027Column %s.%s does not exist\u0027 % (table_name, column))"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def assertColumnNotExists(self, engine, table_name, column):"},{"line_number":194,"context_line":"        self.assertFalse(db_utils.column_exists(engine, table_name, column),"},{"line_number":195,"context_line":"                \u0027Column %s.%s does not exist\u0027 % (table_name, column))"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f044301_fbc5798f","line":193,"updated":"2017-05-07 19:36:29.000000000","message":"Where is this used?","commit_id":"dc18f9f3c8241b739724ced91e2783a5beeec60b"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"d6f87114da49909d7750392fbb14903047781dcd","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        self.assertTrue(db_utils.column_exists(engine, table_name, column),"},{"line_number":191,"context_line":"                \u0027Column %s.%s does not exist\u0027 % (table_name, column))"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def assertColumnNotExists(self, engine, table_name, column):"},{"line_number":194,"context_line":"        self.assertFalse(db_utils.column_exists(engine, table_name, column),"},{"line_number":195,"context_line":"                \u0027Column %s.%s does not exist\u0027 % (table_name, column))"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f044301_1eb92979","line":193,"in_reply_to":"3f044301_fbc5798f","updated":"2017-05-08 12:21:42.000000000","message":"Ah, this was added for the migration test for when the can_host column was removed from the database. Since we aren\u0027t removing it, I can delete this method.","commit_id":"dc18f9f3c8241b739724ced91e2783a5beeec60b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"be6c31de9a1237d6d8bebb5fa334cdc1b124048c","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def assertColumnNotExists(self, engine, table_name, column):"},{"line_number":194,"context_line":"        self.assertFalse(db_utils.column_exists(engine, table_name, column),"},{"line_number":195,"context_line":"                \u0027Column %s.%s does not exist\u0027 % (table_name, column))"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def assertIndexExists(self, engine, table_name, index):"},{"line_number":198,"context_line":"        self.assertTrue(db_utils.index_exists(engine, table_name, index),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f044301_dbd75d4f","line":195,"range":{"start_line":195,"start_character":30,"end_line":195,"end_character":44},"updated":"2017-05-07 19:36:29.000000000","message":"Should be \"does exist\" ?","commit_id":"dc18f9f3c8241b739724ced91e2783a5beeec60b"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"d6f87114da49909d7750392fbb14903047781dcd","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def assertColumnNotExists(self, engine, table_name, column):"},{"line_number":194,"context_line":"        self.assertFalse(db_utils.column_exists(engine, table_name, column),"},{"line_number":195,"context_line":"                \u0027Column %s.%s does not exist\u0027 % (table_name, column))"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def assertIndexExists(self, engine, table_name, index):"},{"line_number":198,"context_line":"        self.assertTrue(db_utils.index_exists(engine, table_name, index),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f044301_3ec2a5ea","line":195,"range":{"start_line":195,"start_character":30,"end_line":195,"end_character":44},"in_reply_to":"3f044301_dbd75d4f","updated":"2017-05-08 12:21:42.000000000","message":"Yup. Coppa/pasta error.","commit_id":"dc18f9f3c8241b739724ced91e2783a5beeec60b"}]}
