)]}'
{"nova/tests/unit/objects/test_objects.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"edcdae3f7f673e0d7b27f162fd73f5aa025acf3a","unresolved":false,"context_lines":[{"line_number":345,"context_line":"            context\u003dcontext)"},{"line_number":346,"context_line":"            if isinstance(result, base.NovaObject) else result)"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"    def object_class_action_versions(self, context, objname, objmethod,"},{"line_number":349,"context_line":"                                     object_versions, args, kwargs):"},{"line_number":350,"context_line":"        objname \u003d six.text_type(objname)"},{"line_number":351,"context_line":"        objmethod \u003d six.text_type(objmethod)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_09a51a03","line":348,"updated":"2015-11-16 22:36:24.000000000","message":"Is there a TODO on when we can remove this since it\u0027s duplicated from oslo_versionedobjects.fixture?","commit_id":"fa83f3b5a5d1b7a39232c55df263133bf83a0ed9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b2d594cd405e16df11795dcf30f3d3874896e4ca","unresolved":false,"context_lines":[{"line_number":345,"context_line":"            context\u003dcontext)"},{"line_number":346,"context_line":"            if isinstance(result, base.NovaObject) else result)"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"    def object_class_action_versions(self, context, objname, objmethod,"},{"line_number":349,"context_line":"                                     object_versions, args, kwargs):"},{"line_number":350,"context_line":"        objname \u003d six.text_type(objname)"},{"line_number":351,"context_line":"        objmethod \u003d six.text_type(objmethod)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_2946de23","line":348,"in_reply_to":"ba8a016a_09a51a03","updated":"2015-11-16 22:39:08.000000000","message":"Hmm, I don\u0027t get it. If this class inherits from FakeIndirectionAPI in oslo.versionedobjects.fixture, then why isn\u0027t it just using that?\n\nFrom here:\n\nhttps://review.openstack.org/#/c/224862/2/oslo_versionedobjects/fixture.py","commit_id":"fa83f3b5a5d1b7a39232c55df263133bf83a0ed9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a279d6be36776f378b258e5dd1249bae2438fae5","unresolved":false,"context_lines":[{"line_number":353,"context_line":"                           for o, v in object_versions.items()}"},{"line_number":354,"context_line":"        args, kwargs \u003d self._canonicalize_args(context, args, kwargs)"},{"line_number":355,"context_line":"        objver \u003d object_versions[objname]"},{"line_number":356,"context_line":"        cls \u003d base.NovaObject.obj_class_from_name(objname, objver)"},{"line_number":357,"context_line":"        with mock.patch(\u0027nova.objects.base.NovaObject.\u0027"},{"line_number":358,"context_line":"                        \u0027indirection_api\u0027, new\u003dNone):"},{"line_number":359,"context_line":"            result \u003d getattr(cls, objmethod)(context, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_693146a2","line":356,"updated":"2015-11-16 22:40:50.000000000","message":"Oh I see, in ovo this uses:\n\ncls \u003d base.VersionedObject.obj_class_from_name(objname, objver)\n\nSo subclassing doesn\u0027t work....","commit_id":"fa83f3b5a5d1b7a39232c55df263133bf83a0ed9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"661a3bcbd9a34572a77ae9df50d6cb5e6b287fcb","unresolved":false,"context_lines":[{"line_number":353,"context_line":"                           for o, v in object_versions.items()}"},{"line_number":354,"context_line":"        args, kwargs \u003d self._canonicalize_args(context, args, kwargs)"},{"line_number":355,"context_line":"        objver \u003d object_versions[objname]"},{"line_number":356,"context_line":"        cls \u003d base.NovaObject.obj_class_from_name(objname, objver)"},{"line_number":357,"context_line":"        with mock.patch(\u0027nova.objects.base.NovaObject.\u0027"},{"line_number":358,"context_line":"                        \u0027indirection_api\u0027, new\u003dNone):"},{"line_number":359,"context_line":"            result \u003d getattr(cls, objmethod)(context, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_29e25e04","line":356,"in_reply_to":"ba8a016a_693146a2","updated":"2015-11-16 22:41:45.000000000","message":"If we land this as a short term fix, we should probably have a TODO in here to create the fixture.FakeIndirectionAPI with the registry from nova.","commit_id":"fa83f3b5a5d1b7a39232c55df263133bf83a0ed9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"366b07ea59766604e9786e2d17607f0d050490e4","unresolved":false,"context_lines":[{"line_number":912,"context_line":"    @mock.patch(\u0027oslo_versionedobjects.base.obj_tree_get_versions\u0027)"},{"line_number":913,"context_line":"    def test_major_version_mismatch(self, mock_otgv):"},{"line_number":914,"context_line":"        mock_otgv.return_value \u003d {"},{"line_number":915,"context_line":"            \u0027MyObj\u0027: \u00272.0\u0027,"},{"line_number":916,"context_line":"        }"},{"line_number":917,"context_line":"        self.assertRaises(ovo_exc.IncompatibleObjectVersion,"},{"line_number":918,"context_line":"                          MyObj2.query, self.context)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_29ed7e8b","line":915,"updated":"2015-11-16 22:50:46.000000000","message":"Why isn\u0027t this MyObj2?","commit_id":"1b3fbfb087998633ea66db223c0f7c201f69e49a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3a91fc8aba9b2739c84058b823f26a64ad364178","unresolved":false,"context_lines":[{"line_number":912,"context_line":"    @mock.patch(\u0027oslo_versionedobjects.base.obj_tree_get_versions\u0027)"},{"line_number":913,"context_line":"    def test_major_version_mismatch(self, mock_otgv):"},{"line_number":914,"context_line":"        mock_otgv.return_value \u003d {"},{"line_number":915,"context_line":"            \u0027MyObj\u0027: \u00272.0\u0027,"},{"line_number":916,"context_line":"        }"},{"line_number":917,"context_line":"        self.assertRaises(ovo_exc.IncompatibleObjectVersion,"},{"line_number":918,"context_line":"                          MyObj2.query, self.context)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_e95bf652","line":915,"in_reply_to":"ba8a016a_29ed7e8b","updated":"2015-11-16 22:53:25.000000000","message":"Because before we had this manifest deal, the only way we could simulate having an older object on one node and a newer one on the conductor was to subclass the object, override the name to match the other one, and set the version to be different.\n\nIf you go look at MyObj2, it\u0027s actually masquerading as MyObj so that we have a punching bag.\n\nNow, with the manifests, we can just override the method that generates the list of local-side versions to look like whatever we want the client to look like to the server.","commit_id":"1b3fbfb087998633ea66db223c0f7c201f69e49a"}]}
