)]}'
{"glance/db/migration.py":[{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"dc7da927a0abed49d0243bdf223444355c00c265","unresolved":false,"context_lines":[{"line_number":48,"context_line":"def db_sync(version\u003dNone, init_version\u003d0, engine\u003dNone):"},{"line_number":49,"context_line":"    \"\"\"Migrate the database to `version` or the most recent version.\"\"\""},{"line_number":50,"context_line":"    if engine is None:"},{"line_number":51,"context_line":"        engine \u003d db_api.get_engine()"},{"line_number":52,"context_line":"    return IMPL.db_sync(engine\u003dengine,"},{"line_number":53,"context_line":"                        abs_path\u003dMIGRATE_REPO_PATH,"},{"line_number":54,"context_line":"                        version\u003dversion,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ab29df4_b750e85f","line":51,"updated":"2014-08-13 18:52:50.000000000","message":"Instead could \u0027db_api.get_engine()\u0027 be assigned to engine as the default parameter instead of \u0027None\u0027?","commit_id":"4143824957e07ca53dbbcbb2ef11bac7fe23edce"},{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"a037c8c4a3b157251f0d410f19cba197802c5368","unresolved":false,"context_lines":[{"line_number":48,"context_line":"def db_sync(version\u003dNone, init_version\u003d0, engine\u003dNone):"},{"line_number":49,"context_line":"    \"\"\"Migrate the database to `version` or the most recent version.\"\"\""},{"line_number":50,"context_line":"    if engine is None:"},{"line_number":51,"context_line":"        engine \u003d db_api.get_engine()"},{"line_number":52,"context_line":"    return IMPL.db_sync(engine\u003dengine,"},{"line_number":53,"context_line":"                        abs_path\u003dMIGRATE_REPO_PATH,"},{"line_number":54,"context_line":"                        version\u003dversion,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ab29df4_179514e4","line":51,"in_reply_to":"9ab29df4_b750e85f","updated":"2014-08-13 18:54:30.000000000","message":"Mutable objects cannot be used as default parameters","commit_id":"4143824957e07ca53dbbcbb2ef11bac7fe23edce"}],"glance/tests/unit/test_migrations.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"0c8a14d745c4839bf1052597d28f55a01e05a3fb","unresolved":false,"context_lines":[{"line_number":1342,"context_line":"        images \u003d get_table(engine, \u0027images\u0027)"},{"line_number":1343,"context_line":"        self.assertNotIn(\u0027virtual_size\u0027, images.c)"},{"line_number":1344,"context_line":""},{"line_number":1345,"context_line":"    def _check_035(self, engine, data):"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"        inspector \u003d sqlalchemy.inspect(engine)"},{"line_number":1348,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_8820c2b1","line":1345,"updated":"2014-08-27 07:42:50.000000000","message":"I prefer to move this migration unit test to change #113916, and add a case for downgrade test.","commit_id":"15ed9af6878910c48e756cbfe094963f99ea9b9e"},{"author":{"_account_id":12363,"name":"Oleksii Chuprykov","email":"a.chuprikoff@gmail.com","username":"ochuprykov"},"change_message_id":"c25ba36deba3f3a5045abf2f76ad6760559e75ea","unresolved":false,"context_lines":[{"line_number":1342,"context_line":"        images \u003d get_table(engine, \u0027images\u0027)"},{"line_number":1343,"context_line":"        self.assertNotIn(\u0027virtual_size\u0027, images.c)"},{"line_number":1344,"context_line":""},{"line_number":1345,"context_line":"    def _check_035(self, engine, data):"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"        inspector \u003d sqlalchemy.inspect(engine)"},{"line_number":1348,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_3172b2ad","line":1345,"in_reply_to":"1abeadc6_8820c2b1","updated":"2014-08-27 13:32:46.000000000","message":"Done","commit_id":"15ed9af6878910c48e756cbfe094963f99ea9b9e"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"bcf0e98688b7b537d09ffec2f7cb64af4e30b392","unresolved":false,"context_lines":[{"line_number":1593,"context_line":"    def db_sync(self, engine):"},{"line_number":1594,"context_line":"        migration.db_sync(engine\u003dengine)"},{"line_number":1595,"context_line":""},{"line_number":1596,"context_line":"    def include_object(self, object_, name, type_, reflected, compare_to):"},{"line_number":1597,"context_line":"        if name in [\u0027migrate_version\u0027, \u0027metadef_objects\u0027, \u0027metadef_namespaces\u0027,"},{"line_number":1598,"context_line":"                    \u0027metadef_properties\u0027, \u0027metadef_resource_types\u0027,"},{"line_number":1599,"context_line":"                    \u0027metadef_namespace_resource_types\u0027] and type_ \u003d\u003d \u0027table\u0027:"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa98f980_b86dc834","line":1596,"updated":"2014-09-02 07:42:21.000000000","message":"please add a comment to explain, why do you skip all these tables.","commit_id":"14b15bd07df97c24f115b6d2e19d893d70a79e9b"},{"author":{"_account_id":12363,"name":"Oleksii Chuprykov","email":"a.chuprikoff@gmail.com","username":"ochuprykov"},"change_message_id":"866f64db975b8385c4febd61144fa41a273279e1","unresolved":false,"context_lines":[{"line_number":1593,"context_line":"    def db_sync(self, engine):"},{"line_number":1594,"context_line":"        migration.db_sync(engine\u003dengine)"},{"line_number":1595,"context_line":""},{"line_number":1596,"context_line":"    def include_object(self, object_, name, type_, reflected, compare_to):"},{"line_number":1597,"context_line":"        if name in [\u0027migrate_version\u0027, \u0027metadef_objects\u0027, \u0027metadef_namespaces\u0027,"},{"line_number":1598,"context_line":"                    \u0027metadef_properties\u0027, \u0027metadef_resource_types\u0027,"},{"line_number":1599,"context_line":"                    \u0027metadef_namespace_resource_types\u0027] and type_ \u003d\u003d \u0027table\u0027:"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa98f980_8ff511cd","line":1596,"in_reply_to":"fa98f980_b86dc834","updated":"2014-09-02 10:23:09.000000000","message":"Done","commit_id":"14b15bd07df97c24f115b6d2e19d893d70a79e9b"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"de044e1186cb46767446090c8e4d929041b64c01","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"    def include_object(self, object_, name, type_, reflected, compare_to):"},{"line_number":1597,"context_line":"        #we need to exclude tables that aren\u0027t in models.py and table that"},{"line_number":1598,"context_line":"        #contains migrate version"},{"line_number":1599,"context_line":"        if name in [\u0027migrate_version\u0027, \u0027metadef_objects\u0027, \u0027metadef_namespaces\u0027,"},{"line_number":1600,"context_line":"                    \u0027metadef_properties\u0027, \u0027metadef_resource_types\u0027,"},{"line_number":1601,"context_line":"                    \u0027metadef_namespace_resource_types\u0027] and type_ \u003d\u003d \u0027table\u0027:"},{"line_number":1602,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":18,"id":"fa98f980_63750863","line":1599,"updated":"2014-09-04 13:22:47.000000000","message":"well, so what about all these tables? Do you suppose to leave them untested?","commit_id":"87f3f08ea0f1f60728cd546375d0a10dfd3fb246"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"ff1b1bf1835b31150c8d19b7a88bd938f37f573f","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"    def include_object(self, object_, name, type_, reflected, compare_to):"},{"line_number":1597,"context_line":"        #we need to exclude tables that aren\u0027t in models.py and table that"},{"line_number":1598,"context_line":"        #contains migrate version"},{"line_number":1599,"context_line":"        if name in [\u0027migrate_version\u0027, \u0027metadef_objects\u0027, \u0027metadef_namespaces\u0027,"},{"line_number":1600,"context_line":"                    \u0027metadef_properties\u0027, \u0027metadef_resource_types\u0027,"},{"line_number":1601,"context_line":"                    \u0027metadef_namespace_resource_types\u0027] and type_ \u003d\u003d \u0027table\u0027:"},{"line_number":1602,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":18,"id":"fa98f980_75a857db","line":1599,"in_reply_to":"fa98f980_03e43cdf","updated":"2014-09-04 17:36:15.000000000","message":"So can you please add a test to check these tables also?","commit_id":"87f3f08ea0f1f60728cd546375d0a10dfd3fb246"},{"author":{"_account_id":12363,"name":"Oleksii Chuprykov","email":"a.chuprikoff@gmail.com","username":"ochuprykov"},"change_message_id":"11c792f753c8d74625873c74836cbb09965a151b","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"    def include_object(self, object_, name, type_, reflected, compare_to):"},{"line_number":1597,"context_line":"        #we need to exclude tables that aren\u0027t in models.py and table that"},{"line_number":1598,"context_line":"        #contains migrate version"},{"line_number":1599,"context_line":"        if name in [\u0027migrate_version\u0027, \u0027metadef_objects\u0027, \u0027metadef_namespaces\u0027,"},{"line_number":1600,"context_line":"                    \u0027metadef_properties\u0027, \u0027metadef_resource_types\u0027,"},{"line_number":1601,"context_line":"                    \u0027metadef_namespace_resource_types\u0027] and type_ \u003d\u003d \u0027table\u0027:"},{"line_number":1602,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":18,"id":"fa98f980_03e43cdf","line":1599,"in_reply_to":"fa98f980_63750863","updated":"2014-09-04 13:32:38.000000000","message":"I think they can be tested separately","commit_id":"87f3f08ea0f1f60728cd546375d0a10dfd3fb246"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"d0bc3023332923ad912c48962d30086ebb917782","unresolved":false,"context_lines":[{"line_number":1385,"context_line":"        # We need to exclude tables that aren\u0027t in models.py and table that"},{"line_number":1386,"context_line":"        # contains migrate version"},{"line_number":1387,"context_line":""},{"line_number":1388,"context_line":"        # TODO(ochuprykov): We need to include this tables back after merge of"},{"line_number":1389,"context_line":"        # models.py and models_metadef.py"},{"line_number":1390,"context_line":"        # (except \u0027migrate_version\u0027)"},{"line_number":1391,"context_line":"        if name in [\u0027migrate_version\u0027, \u0027metadef_objects\u0027, \u0027metadef_namespaces\u0027,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5a890539_8de462ad","line":1388,"updated":"2014-11-20 05:15:47.000000000","message":"it\u0027s time to include metadef* tables?","commit_id":"b133fa98b9e757d80865deb12373602dee03d2fa"},{"author":{"_account_id":12363,"name":"Oleksii Chuprykov","email":"a.chuprikoff@gmail.com","username":"ochuprykov"},"change_message_id":"e532e39c34f58f8f43a4248738537b6f761dc5af","unresolved":false,"context_lines":[{"line_number":1385,"context_line":"        # We need to exclude tables that aren\u0027t in models.py and table that"},{"line_number":1386,"context_line":"        # contains migrate version"},{"line_number":1387,"context_line":""},{"line_number":1388,"context_line":"        # TODO(ochuprykov): We need to include this tables back after merge of"},{"line_number":1389,"context_line":"        # models.py and models_metadef.py"},{"line_number":1390,"context_line":"        # (except \u0027migrate_version\u0027)"},{"line_number":1391,"context_line":"        if name in [\u0027migrate_version\u0027, \u0027metadef_objects\u0027, \u0027metadef_namespaces\u0027,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5a890539_e238873f","line":1388,"in_reply_to":"5a890539_8de462ad","updated":"2014-11-20 13:16:11.000000000","message":"please see needed by patch: https://review.openstack.org/#/c/119824/","commit_id":"b133fa98b9e757d80865deb12373602dee03d2fa"}],"test-requirements.txt":[{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"e4cd3f085d251fc3ee8b44758f8928d441d878d0","unresolved":false,"context_lines":[{"line_number":15,"context_line":"testrepository\u003e\u003d0.0.18"},{"line_number":16,"context_line":"testtools\u003e\u003d0.9.34"},{"line_number":17,"context_line":"psutil\u003e\u003d1.1.1,\u003c2.0.0"},{"line_number":18,"context_line":"oslotest"},{"line_number":19,"context_line":"# Optional packages that should be installed when testing"},{"line_number":20,"context_line":"MySQL-python"},{"line_number":21,"context_line":"psycopg2"}],"source_content_type":"text/plain","patch_set":9,"id":"1abeadc6_940c5e44","line":18,"updated":"2014-08-27 07:12:21.000000000","message":"oslotest version must be specified here","commit_id":"15ed9af6878910c48e756cbfe094963f99ea9b9e"},{"author":{"_account_id":12363,"name":"Oleksii Chuprykov","email":"a.chuprikoff@gmail.com","username":"ochuprykov"},"change_message_id":"c25ba36deba3f3a5045abf2f76ad6760559e75ea","unresolved":false,"context_lines":[{"line_number":15,"context_line":"testrepository\u003e\u003d0.0.18"},{"line_number":16,"context_line":"testtools\u003e\u003d0.9.34"},{"line_number":17,"context_line":"psutil\u003e\u003d1.1.1,\u003c2.0.0"},{"line_number":18,"context_line":"oslotest"},{"line_number":19,"context_line":"# Optional packages that should be installed when testing"},{"line_number":20,"context_line":"MySQL-python"},{"line_number":21,"context_line":"psycopg2"}],"source_content_type":"text/plain","patch_set":9,"id":"1abeadc6_713c2ac0","line":18,"in_reply_to":"1abeadc6_940c5e44","updated":"2014-08-27 13:32:46.000000000","message":"Done","commit_id":"15ed9af6878910c48e756cbfe094963f99ea9b9e"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"0c8a14d745c4839bf1052597d28f55a01e05a3fb","unresolved":false,"context_lines":[{"line_number":15,"context_line":"testrepository\u003e\u003d0.0.18"},{"line_number":16,"context_line":"testtools\u003e\u003d0.9.34"},{"line_number":17,"context_line":"psutil\u003e\u003d1.1.1,\u003c2.0.0"},{"line_number":18,"context_line":"oslotest"},{"line_number":19,"context_line":"# Optional packages that should be installed when testing"},{"line_number":20,"context_line":"MySQL-python"},{"line_number":21,"context_line":"psycopg2"}],"source_content_type":"text/plain","patch_set":9,"id":"1abeadc6_eb2690b9","line":18,"in_reply_to":"1abeadc6_940c5e44","updated":"2014-08-27 07:42:50.000000000","message":"yep https://github.com/openstack/requirements/blob/master/global-requirements.txt#L197","commit_id":"15ed9af6878910c48e756cbfe094963f99ea9b9e"}]}
