)]}'
{"nova/objects/cell_mapping.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"46366c1687ccb2b22333031c7b241ddb6f62aa95","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":35,"context_line":"        \u0027transport_url\u0027: fields.StringField(),"},{"line_number":36,"context_line":"        \u0027database_connection\u0027: fields.StringField(),"},{"line_number":37,"context_line":"        \u0027disabled\u0027: fields.BooleanField()"},{"line_number":38,"context_line":"    }"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_f758a031","line":37,"updated":"2018-03-14 22:03:44.000000000","message":"We should consider setting the default\u003dFalse on this field. Ask Dan.","commit_id":"589d42d364f75a45ff6efc4784577005b9300137"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"35b190cf629fbd73c30543c45397ae1c5ea39599","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":43,"context_line":"        if target_version \u003c (1, 1):"},{"line_number":44,"context_line":"            if \u0027disabled\u0027 in primitive:"},{"line_number":45,"context_line":"                del primitive[\u0027disabled\u0027]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @property"},{"line_number":48,"context_line":"    def identity(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"df7087c5_b88159c6","line":45,"updated":"2018-03-19 14:36:35.000000000","message":"I can\u0027t see a test for this anywhere?\n\nAn example is:\nhttps://github.com/openstack/nova/blob/37b4f77b5ed2c3606ebeae42ae2b1aedb0eda775/nova/tests/unit/objects/test_build_request.py#L166","commit_id":"22bd16dd7ca3bf6e69c9dbf221d558efe1e166ee"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"9d3c6cd7472ff7cbedb1633a9f634e8e1d74f0e3","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":43,"context_line":"        if target_version \u003c (1, 1):"},{"line_number":44,"context_line":"            if \u0027disabled\u0027 in primitive:"},{"line_number":45,"context_line":"                del primitive[\u0027disabled\u0027]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @property"},{"line_number":48,"context_line":"    def identity(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"df7087c5_1b2aa4e6","line":45,"in_reply_to":"df7087c5_b88159c6","updated":"2018-03-20 11:40:09.000000000","message":"Done","commit_id":"22bd16dd7ca3bf6e69c9dbf221d558efe1e166ee"}],"nova/tests/fixtures.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2331ab9078fca05a5dee394be7e79f1f420785d9","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                 \u0027name\u0027: \u0027onlycell\u0027,"},{"line_number":348,"context_line":"                 \u0027transport_url\u0027: \u0027fake://nowhere/\u0027,"},{"line_number":349,"context_line":"                 \u0027database_connection\u0027: \u0027sqlite:///\u0027,"},{"line_number":350,"context_line":"                 \u0027disabled\u0027: 0}]"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    @contextmanager"},{"line_number":353,"context_line":"    def _fake_target_cell(self, context, target_cell):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_f70ae01d","line":350,"range":{"start_line":350,"start_character":29,"end_line":350,"end_character":30},"updated":"2018-03-14 22:02:11.000000000","message":"this should be a boolean","commit_id":"eaf29f46c92ac54ac76b65b72d6df5b07d1928e8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"46366c1687ccb2b22333031c7b241ddb6f62aa95","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                 \u0027name\u0027: \u0027onlycell\u0027,"},{"line_number":348,"context_line":"                 \u0027transport_url\u0027: \u0027fake://nowhere/\u0027,"},{"line_number":349,"context_line":"                 \u0027database_connection\u0027: \u0027sqlite:///\u0027,"},{"line_number":350,"context_line":"                 \u0027disabled\u0027: 0}]"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    @contextmanager"},{"line_number":353,"context_line":"    def _fake_target_cell(self, context, target_cell):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_772fb087","line":350,"range":{"start_line":350,"start_character":29,"end_line":350,"end_character":30},"updated":"2018-03-14 22:03:44.000000000","message":"False","commit_id":"589d42d364f75a45ff6efc4784577005b9300137"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b155de2a8fd86350eed367bebc1a179a64f02885","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                 \u0027name\u0027: \u0027onlycell\u0027,"},{"line_number":348,"context_line":"                 \u0027transport_url\u0027: \u0027fake://nowhere/\u0027,"},{"line_number":349,"context_line":"                 \u0027database_connection\u0027: \u0027sqlite:///\u0027,"},{"line_number":350,"context_line":"                 \u0027disabled\u0027: False}]"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    @contextmanager"},{"line_number":353,"context_line":"    def _fake_target_cell(self, context, target_cell):"}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_24cf4480","line":350,"updated":"2018-03-20 14:03:55.000000000","message":"Is this actually needed? The DB column and CellMapping.disabled fields both default to False already.","commit_id":"f3e3eca4f2c32cfb2ed3e0d184bb2a1621035496"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"7f15058642d5b59e6fac7103ff69e6ce7d2246f3","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                 \u0027name\u0027: \u0027onlycell\u0027,"},{"line_number":348,"context_line":"                 \u0027transport_url\u0027: \u0027fake://nowhere/\u0027,"},{"line_number":349,"context_line":"                 \u0027database_connection\u0027: \u0027sqlite:///\u0027,"},{"line_number":350,"context_line":"                 \u0027disabled\u0027: False}]"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    @contextmanager"},{"line_number":353,"context_line":"    def _fake_target_cell(self, context, target_cell):"}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_c41c4879","line":350,"in_reply_to":"df7087c5_24cf4480","updated":"2018-03-20 14:21:00.000000000","message":"This is the only test failing if I don\u0027t add this - nova.tests.unit.test_fixtures.TestSingleCellSimpleFixture.test_single_cell","commit_id":"f3e3eca4f2c32cfb2ed3e0d184bb2a1621035496"}],"nova/tests/unit/db/test_sqlalchemy_migration.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2cab214d31a59f1d9f10d7a4fe4c980a2dbd4ff7","unresolved":false,"context_lines":[{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def setUp(self):"},{"line_number":360,"context_line":"        super(TestNewtonCellsCheck, self).setUp()"},{"line_number":361,"context_line":"        self.useFixture(nova_fixtures.DatabaseAtVersion(53, \u0027api\u0027))"},{"line_number":362,"context_line":"        self.context \u003d context.get_admin_context()"},{"line_number":363,"context_line":"        self.migration \u003d importlib.import_module("},{"line_number":364,"context_line":"            \u0027nova.db.sqlalchemy.api_migrations.migrate_repo.versions.\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_b47466d0","line":361,"updated":"2018-03-14 21:53:57.000000000","message":"You need to undo this.","commit_id":"eaf29f46c92ac54ac76b65b72d6df5b07d1928e8"}],"nova/tests/unit/objects/test_cell_mapping.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2331ab9078fca05a5dee394be7e79f1f420785d9","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            \u0027database_connection\u0027: \u0027sqlite:///\u0027,"},{"line_number":30,"context_line":"            \u0027created_at\u0027: None,"},{"line_number":31,"context_line":"            \u0027updated_at\u0027: None,"},{"line_number":32,"context_line":"            \u0027disabled\u0027: 0"},{"line_number":33,"context_line":"    }"},{"line_number":34,"context_line":"    db_mapping.update(updates)"},{"line_number":35,"context_line":"    return db_mapping"}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_b710e84f","line":32,"range":{"start_line":32,"start_character":24,"end_line":32,"end_character":25},"updated":"2018-03-14 22:02:11.000000000","message":"False","commit_id":"eaf29f46c92ac54ac76b65b72d6df5b07d1928e8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"46366c1687ccb2b22333031c7b241ddb6f62aa95","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            \u0027database_connection\u0027: \u0027sqlite:///\u0027,"},{"line_number":30,"context_line":"            \u0027created_at\u0027: None,"},{"line_number":31,"context_line":"            \u0027updated_at\u0027: None,"},{"line_number":32,"context_line":"            \u0027disabled\u0027: 0"},{"line_number":33,"context_line":"    }"},{"line_number":34,"context_line":"    db_mapping.update(updates)"},{"line_number":35,"context_line":"    return db_mapping"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_1750b40a","line":32,"range":{"start_line":32,"start_character":24,"end_line":32,"end_character":25},"updated":"2018-03-14 22:03:44.000000000","message":"False","commit_id":"589d42d364f75a45ff6efc4784577005b9300137"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b155de2a8fd86350eed367bebc1a179a64f02885","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        fake_cell_mapping_copy \u003d dict(get_db_mapping())"},{"line_number":123,"context_line":"        self.assertIn(\u0027disabled\u0027, fake_cell_mapping_copy)"},{"line_number":124,"context_line":"        cell_mapping_obj.obj_make_compatible(fake_cell_mapping_copy, \u00271.0\u0027)"},{"line_number":125,"context_line":"        self.assertNotIn(\u0027disabled\u0027, fake_cell_mapping_copy)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"class TestCellMappingObject(test_objects._LocalTest,"}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_24942444","line":125,"range":{"start_line":125,"start_character":37,"end_line":125,"end_character":59},"updated":"2018-03-20 14:03:55.000000000","message":"Before asserting that \u0027disabled\u0027 is not in this, can we assert that something we expect to be in it actually is, like \u0027uuid\u0027? See how this caught me:\n\nhttps://review.openstack.org/#/c/515423/10/nova/tests/unit/objects/test_migrate_data.py@272","commit_id":"f3e3eca4f2c32cfb2ed3e0d184bb2a1621035496"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"7f15058642d5b59e6fac7103ff69e6ce7d2246f3","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        fake_cell_mapping_copy \u003d dict(get_db_mapping())"},{"line_number":123,"context_line":"        self.assertIn(\u0027disabled\u0027, fake_cell_mapping_copy)"},{"line_number":124,"context_line":"        cell_mapping_obj.obj_make_compatible(fake_cell_mapping_copy, \u00271.0\u0027)"},{"line_number":125,"context_line":"        self.assertNotIn(\u0027disabled\u0027, fake_cell_mapping_copy)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"class TestCellMappingObject(test_objects._LocalTest,"}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_4408382c","line":125,"range":{"start_line":125,"start_character":37,"end_line":125,"end_character":59},"in_reply_to":"df7087c5_24942444","updated":"2018-03-20 14:21:00.000000000","message":"Done","commit_id":"f3e3eca4f2c32cfb2ed3e0d184bb2a1621035496"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"30130a5a999c5f0d982e2b8cc61f56e8498a601f","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        cell_mapping_obj \u003d cell_mapping.CellMapping(context\u003dself.context)"},{"line_number":122,"context_line":"        fake_cell_mapping_copy \u003d dict(get_db_mapping())"},{"line_number":123,"context_line":"        self.assertIn(\u0027disabled\u0027, fake_cell_mapping_copy)"},{"line_number":124,"context_line":"        cell_mapping_obj.obj_make_compatible(fake_cell_mapping_copy, \u00271.0\u0027)"},{"line_number":125,"context_line":"        self.assertIn(\u0027uuid\u0027, fake_cell_mapping_copy)"},{"line_number":126,"context_line":"        self.assertNotIn(\u0027disabled\u0027, fake_cell_mapping_copy)"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"df7087c5_c1cdcd30","line":124,"updated":"2018-03-22 20:01:16.000000000","message":"This isn\u0027t quite the right way to do this, as it\u0027s working on a DB object and not really an object primitive. They\u0027re the same right now, but they might not always be.\n\nWhat you want is something like:\n\n obj \u003d cell_mapping.CellMapping()\n obj.uuid \u003d uuids.cell\n obj.disabled \u003d False\n obj2 \u003d obj_base.obj_from_primitive(obj.obj_to_primitive(target_version\u003d\u00271.0\u0027))\n self.assertEqual(uuids.cell, obj2.uuid)\n self.assertNotIn(\u0027disabled\u0027, obj2)\n\nThat serializes a real object at a given target version (which calls obj_to_primitive on the actually-generated primitive).","commit_id":"9377127eb887d263ba1c80990f93329fda3c19bc"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"757d860ddc85114ba2f21ef990bb9aad5c9bacb0","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        cell_mapping_obj \u003d cell_mapping.CellMapping(context\u003dself.context)"},{"line_number":122,"context_line":"        fake_cell_mapping_copy \u003d dict(get_db_mapping())"},{"line_number":123,"context_line":"        self.assertIn(\u0027disabled\u0027, fake_cell_mapping_copy)"},{"line_number":124,"context_line":"        cell_mapping_obj.obj_make_compatible(fake_cell_mapping_copy, \u00271.0\u0027)"},{"line_number":125,"context_line":"        self.assertIn(\u0027uuid\u0027, fake_cell_mapping_copy)"},{"line_number":126,"context_line":"        self.assertNotIn(\u0027disabled\u0027, fake_cell_mapping_copy)"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"df7087c5_0a166c56","line":124,"in_reply_to":"df7087c5_c1cdcd30","updated":"2018-03-23 10:00:03.000000000","message":"Yes will fix this.\n\nNote to self: You are using a db object (fake_cell_mapping_copy) when you should be using the primitive object. Fix this.","commit_id":"9377127eb887d263ba1c80990f93329fda3c19bc"}]}
