)]}'
{"nova/objects/compute_node.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"51bd084ac0a2fbe91104dc895c892a1cfafc9194","unresolved":false,"context_lines":[{"line_number":268,"context_line":"            self._cached_service \u003d objects.Service.get_by_id(self._context,"},{"line_number":269,"context_line":"                                                             self.service_id)"},{"line_number":270,"context_line":"        return self._cached_service"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"class ComputeNodeList(base.ObjectListBase, base.NovaObject):"},{"line_number":274,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_c6b96f30","side":"PARENT","line":271,"updated":"2015-03-30 14:01:40.000000000","message":"I would rather keep the property and change the internal logic to not Service.get_by_id so that a later patch could remove this once we\u0027re sure that nothing is calling it.\n\nAs this is not a remotable method, we could remove it when we want without needing a version bump","commit_id":"414b910bed485ed16dee096a9fd295a58291b454"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"e7088c9ed9e7ec00897b96778784e127b27aa397","unresolved":false,"context_lines":[{"line_number":268,"context_line":"            self._cached_service \u003d objects.Service.get_by_id(self._context,"},{"line_number":269,"context_line":"                                                             self.service_id)"},{"line_number":270,"context_line":"        return self._cached_service"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"class ComputeNodeList(base.ObjectListBase, base.NovaObject):"},{"line_number":274,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_256da498","side":"PARENT","line":271,"in_reply_to":"da9b358b_c6b96f30","updated":"2015-03-30 19:38:04.000000000","message":"I agree this could be in its own change. I will split this up.\n\nAFAICT this isn\u0027t used anywhere. That\u0027s why I pushed it.","commit_id":"414b910bed485ed16dee096a9fd295a58291b454"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"51bd084ac0a2fbe91104dc895c892a1cfafc9194","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    # Version 1.8: Added get_by_host_and_nodename()"},{"line_number":38,"context_line":"    # Version 1.9: Added pci_device_pools"},{"line_number":39,"context_line":"    # Version 1.10: Added get_first_node_by_host_for_old_compat()"},{"line_number":40,"context_line":"    # Version 1.11: Changed service_id field to be nullable"},{"line_number":41,"context_line":"    VERSION \u003d \u00271.11\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_c6904f98","line":40,"updated":"2015-03-30 14:01:40.000000000","message":"\\o/ I already began to write that patch on my local env when I\u0027ve been refocused on some other bugfixes for the RC, so I\u0027m really happy to see someone else handing it over.\n\nThanks !","commit_id":"8ac2a10ebd0172651f6c4592891bbd68c9453fad"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"e7088c9ed9e7ec00897b96778784e127b27aa397","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    # Version 1.8: Added get_by_host_and_nodename()"},{"line_number":38,"context_line":"    # Version 1.9: Added pci_device_pools"},{"line_number":39,"context_line":"    # Version 1.10: Added get_first_node_by_host_for_old_compat()"},{"line_number":40,"context_line":"    # Version 1.11: Changed service_id field to be nullable"},{"line_number":41,"context_line":"    VERSION \u003d \u00271.11\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_45ad48e8","line":40,"in_reply_to":"da9b358b_c6904f98","updated":"2015-03-30 19:38:04.000000000","message":"My pleasure :)","commit_id":"8ac2a10ebd0172651f6c4592891bbd68c9453fad"}],"nova/objects/service.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"51bd084ac0a2fbe91104dc895c892a1cfafc9194","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    # Version 1.9: ComputeNode version 1.10"},{"line_number":42,"context_line":"    # Version 1.10: Changes behaviour of loading compute_node"},{"line_number":43,"context_line":"    # Version 1.11: Added get_by_host_and_binary"},{"line_number":44,"context_line":"    # Version 1.12: Removed compute_node nested object field"},{"line_number":45,"context_line":"    VERSION \u003d \u00271.12\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_e6c11382","line":44,"updated":"2015-03-30 14:01:40.000000000","message":"You can\u0027t do that without doing a major version bump.\n\nInstead, I preferred to leave this field lazy-loadable so that\u0027s fine to keep it until a certain amount of time is passed (like 2 cycles)","commit_id":"8ac2a10ebd0172651f6c4592891bbd68c9453fad"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"e7088c9ed9e7ec00897b96778784e127b27aa397","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    # Version 1.9: ComputeNode version 1.10"},{"line_number":42,"context_line":"    # Version 1.10: Changes behaviour of loading compute_node"},{"line_number":43,"context_line":"    # Version 1.11: Added get_by_host_and_binary"},{"line_number":44,"context_line":"    # Version 1.12: Removed compute_node nested object field"},{"line_number":45,"context_line":"    VERSION \u003d \u00271.12\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"da9b358b_c594b838","line":44,"in_reply_to":"da9b358b_e6c11382","updated":"2015-03-30 19:38:04.000000000","message":"I actually think we can (not sure we should though). Let me explain why I think it could be done.\n\nThe object fields are only local entry-points into the objects, all remoting happen in the objects methods, which is to say that only current code is of interest. Based on that, if current code does not use a field it should be ok to remove it.\n\nBackwards compat is still working since that only work on primitives and never look at the object fields. There is still some tests there to verify that this is working.\n\nI fully understand that we shouldn\u0027t go ahead this late in kilo, considering it haven\u0027t been done before, but I don\u0027t think we have to wait for a new major version. Of course I could miss out on something and I\u0027m willing to be proved wrong.","commit_id":"8ac2a10ebd0172651f6c4592891bbd68c9453fad"}]}
