)]}'
{"nova/objects/service.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"897f56770c14eddd83b1885b8b1605d7278487d0","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def obj_make_compatible_from_manifest(self, primitive, target_version,"},{"line_number":128,"context_line":"                                          version_manifest):"},{"line_number":129,"context_line":"        super(Service, self).obj_make_compatible(primitive, target_version)"},{"line_number":130,"context_line":"        _target_version \u003d utils.convert_version_to_tuple(target_version)"},{"line_number":131,"context_line":"        if _target_version \u003c (1, 16) and \u0027version\u0027 in primitive:"},{"line_number":132,"context_line":"            del primitive[\u0027version\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a2fa921_ff736c13","line":129,"updated":"2015-10-07 14:54:47.000000000","message":"Given that we\u0027re setting the manifest attribute in https://github.com/openstack/oslo.versionedobjects/blob/master/oslo_versionedobjects/base.py#L496-L505 shouldn\u0027t we call \n\n  super(Service, self).obj_make_obj_compatible(primitive, target_version, version_manifest)\n\nIf not, how could we set the version_manifest ?","commit_id":"70c5fad552a846233422889ab97e955470d95895"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9fc12497d27dbab61a624bb60f1a3f7964b2d2ef","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def obj_make_compatible_from_manifest(self, primitive, target_version,"},{"line_number":128,"context_line":"                                          version_manifest):"},{"line_number":129,"context_line":"        super(Service, self).obj_make_compatible(primitive, target_version)"},{"line_number":130,"context_line":"        _target_version \u003d utils.convert_version_to_tuple(target_version)"},{"line_number":131,"context_line":"        if _target_version \u003c (1, 16) and \u0027version\u0027 in primitive:"},{"line_number":132,"context_line":"            del primitive[\u0027version\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a2fa921_df9470e3","line":129,"in_reply_to":"7a2fa921_ff736c13","updated":"2015-10-07 14:57:09.000000000","message":"Ah, yes, excellent catch, thanks!","commit_id":"70c5fad552a846233422889ab97e955470d95895"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4729a37659d57ee23dbf2d77be2d57e5f5b0a7ac","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        self.version \u003d SERVICE_VERSION"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def obj_make_compatible_from_manifest(self, primitive, target_version,"},{"line_number":128,"context_line":"                                          version_manifest):"},{"line_number":129,"context_line":"        super(Service, self).obj_make_compatible_from_manifest("},{"line_number":130,"context_line":"            primitive, target_version, version_manifest)"},{"line_number":131,"context_line":"        _target_version \u003d utils.convert_version_to_tuple(target_version)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_62e9ff7f","line":128,"updated":"2015-10-07 15:42:14.000000000","message":"So I feel it\u0027s the best way to access the manifest from what provided the serialization module instead of just leaving obj_make_compatible and assert that self._version_manifest is set and accessible in _do_compute_node.\n\nI like that.","commit_id":"3294c2e54a107e3d99c4f6ef0cb2bb12b1843717"}],"nova/tests/unit/objects/test_service.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4729a37659d57ee23dbf2d77be2d57e5f5b0a7ac","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            fake_service_dict[\u0027compute_node\u0027])"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    @mock.patch.object(objects.ComputeNodeList, \u0027get_all_by_host\u0027)"},{"line_number":262,"context_line":"    def test_obj_make_compatible_with_juno_computes(self, get_all_by_host):"},{"line_number":263,"context_line":"        service_attrs \u003d dict(fake_service)"},{"line_number":264,"context_line":"        del service_attrs[\u0027version\u0027]"},{"line_number":265,"context_line":"        service_obj \u003d objects.Service("}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_9d87e0d6","side":"PARENT","line":262,"updated":"2015-10-07 15:42:14.000000000","message":"nit: sure we can drop that test since it\u0027s no longer supported and it would need some refactoring like you did for the other unittest, but some comment in the commit msg explaining why you drop it could be good because some could just say \"hey, you\u0027re removing some code which is not related to your change\".\n\nYeah, I know it\u0027s a defensive approach, so don\u0027t touch the commit msg unless you\u0027re 100% sure that my comment could help you :-)","commit_id":"e571d88604353a0443ae4ca24e3ce72fb4c615f2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3025d24c199f3c582216d9bd7835c9c973ba536d","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            fake_service_dict[\u0027compute_node\u0027])"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    @mock.patch.object(objects.ComputeNodeList, \u0027get_all_by_host\u0027)"},{"line_number":262,"context_line":"    def test_obj_make_compatible_with_juno_computes(self, get_all_by_host):"},{"line_number":263,"context_line":"        service_attrs \u003d dict(fake_service)"},{"line_number":264,"context_line":"        del service_attrs[\u0027version\u0027]"},{"line_number":265,"context_line":"        service_obj \u003d objects.Service("}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_3de4f0aa","side":"PARENT","line":262,"in_reply_to":"7a2fa921_73f473f1","updated":"2015-10-12 07:59:43.000000000","message":"yea, looks like it isn\u0027t belong to this patch. but also wait for other comments ;)","commit_id":"e571d88604353a0443ae4ca24e3ce72fb4c615f2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9bd7fab18c3ecb588cea923575528ec4cae7051","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            fake_service_dict[\u0027compute_node\u0027])"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    @mock.patch.object(objects.ComputeNodeList, \u0027get_all_by_host\u0027)"},{"line_number":262,"context_line":"    def test_obj_make_compatible_with_juno_computes(self, get_all_by_host):"},{"line_number":263,"context_line":"        service_attrs \u003d dict(fake_service)"},{"line_number":264,"context_line":"        del service_attrs[\u0027version\u0027]"},{"line_number":265,"context_line":"        service_obj \u003d objects.Service("}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_d867a623","side":"PARENT","line":262,"in_reply_to":"7a2fa921_9d87e0d6","updated":"2015-10-07 15:48:09.000000000","message":"Sure, how about if I respin?","commit_id":"e571d88604353a0443ae4ca24e3ce72fb4c615f2"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"62ff85205c6743a0fcbc84c9b1a26b83906442d5","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            fake_service_dict[\u0027compute_node\u0027])"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    @mock.patch.object(objects.ComputeNodeList, \u0027get_all_by_host\u0027)"},{"line_number":262,"context_line":"    def test_obj_make_compatible_with_juno_computes(self, get_all_by_host):"},{"line_number":263,"context_line":"        service_attrs \u003d dict(fake_service)"},{"line_number":264,"context_line":"        del service_attrs[\u0027version\u0027]"},{"line_number":265,"context_line":"        service_obj \u003d objects.Service("}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_73f473f1","side":"PARENT","line":262,"in_reply_to":"7a2fa921_d867a623","updated":"2015-10-07 15:54:16.000000000","message":"not sure it\u0027s really needed, that\u0027s me who is a bit paranoid :-)\n\nWait for other comments rather ;)","commit_id":"e571d88604353a0443ae4ca24e3ce72fb4c615f2"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4729a37659d57ee23dbf2d77be2d57e5f5b0a7ac","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                          getattr, service_obj, \u0027compute_node\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    @mock.patch.object(objects.ComputeNodeList, \u0027get_all_by_host\u0027)"},{"line_number":250,"context_line":"    def test_obj_make_compatible_for_compute_node(self, get_all_by_host):"},{"line_number":251,"context_line":"        service_obj \u003d objects.Service(context\u003dself.context)"},{"line_number":252,"context_line":"        fake_service_dict \u003d fake_service.copy()"},{"line_number":253,"context_line":"        fake_compute_obj \u003d objects.ComputeNode(host\u003dfake_service[\u0027host\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_98728eac","line":250,"updated":"2015-10-07 15:42:14.000000000","message":"nit: well, we\u0027re testing obj_make_compatible_from_manifest, but we can leave the unittest name unchanged","commit_id":"3294c2e54a107e3d99c4f6ef0cb2bb12b1843717"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9bd7fab18c3ecb588cea923575528ec4cae7051","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                          getattr, service_obj, \u0027compute_node\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    @mock.patch.object(objects.ComputeNodeList, \u0027get_all_by_host\u0027)"},{"line_number":250,"context_line":"    def test_obj_make_compatible_for_compute_node(self, get_all_by_host):"},{"line_number":251,"context_line":"        service_obj \u003d objects.Service(context\u003dself.context)"},{"line_number":252,"context_line":"        fake_service_dict \u003d fake_service.copy()"},{"line_number":253,"context_line":"        fake_compute_obj \u003d objects.ComputeNode(host\u003dfake_service[\u0027host\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_98712ee3","line":250,"in_reply_to":"7a2fa921_98728eac","updated":"2015-10-07 15:48:09.000000000","message":"Meh, yeah, not a huge deal and I\u0027d have to wrap the line right at the ( if I did :)","commit_id":"3294c2e54a107e3d99c4f6ef0cb2bb12b1843717"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4729a37659d57ee23dbf2d77be2d57e5f5b0a7ac","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        get_all_by_host.return_value \u003d [fake_compute_obj]"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        versions \u003d ovo_base.obj_tree_get_versions(\u0027Service\u0027)"},{"line_number":258,"context_line":"        versions[\u0027ComputeNode\u0027] \u003d \u00271.10\u0027"},{"line_number":259,"context_line":"        service_obj.obj_make_compatible_from_manifest(fake_service_dict, \u00271.9\u0027,"},{"line_number":260,"context_line":"                                                      versions)"},{"line_number":261,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_387eda19","line":258,"updated":"2015-10-07 15:42:14.000000000","message":"I don\u0027t get why you set the ComputeNode version explicitly ?","commit_id":"3294c2e54a107e3d99c4f6ef0cb2bb12b1843717"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"62ff85205c6743a0fcbc84c9b1a26b83906442d5","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        get_all_by_host.return_value \u003d [fake_compute_obj]"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        versions \u003d ovo_base.obj_tree_get_versions(\u0027Service\u0027)"},{"line_number":258,"context_line":"        versions[\u0027ComputeNode\u0027] \u003d \u00271.10\u0027"},{"line_number":259,"context_line":"        service_obj.obj_make_compatible_from_manifest(fake_service_dict, \u00271.9\u0027,"},{"line_number":260,"context_line":"                                                      versions)"},{"line_number":261,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_53da9779","line":258,"in_reply_to":"7a2fa921_18a75e50","updated":"2015-10-07 15:54:16.000000000","message":"Okay, by reading the explicit obj_relationships tuple of tuples, I see, you\u0027re keeping the previous version checks so you\u0027re forcing the value here.\n\nIt was just a silly question IMHO, I should have double-checked before asking :-/","commit_id":"3294c2e54a107e3d99c4f6ef0cb2bb12b1843717"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9bd7fab18c3ecb588cea923575528ec4cae7051","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        get_all_by_host.return_value \u003d [fake_compute_obj]"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        versions \u003d ovo_base.obj_tree_get_versions(\u0027Service\u0027)"},{"line_number":258,"context_line":"        versions[\u0027ComputeNode\u0027] \u003d \u00271.10\u0027"},{"line_number":259,"context_line":"        service_obj.obj_make_compatible_from_manifest(fake_service_dict, \u00271.9\u0027,"},{"line_number":260,"context_line":"                                                      versions)"},{"line_number":261,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_18a75e50","line":258,"in_reply_to":"7a2fa921_387eda19","updated":"2015-10-07 15:48:09.000000000","message":"Because this will contain the versions of all our current objects. So we need to act like a client that is providing a manifest of older versions so that we can verify that they\u0027re honored.","commit_id":"3294c2e54a107e3d99c4f6ef0cb2bb12b1843717"}]}
