)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"eb3fcbd679aae0562b599a39db40f18fb8a8e821","unresolved":false,"context_lines":[{"line_number":13,"context_line":"volume.refresh()."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: If0573f1c44c2e67c9a8cbd88dda45310a02e3272"},{"line_number":16,"context_line":"Partial-Implements: blueprint cinder-objects"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a740942_ac8c1b36","line":16,"updated":"2015-12-09 23:57:45.000000000","message":"nit: launchpad search did not provide any result for this blueprint link, could you please verify?","commit_id":"d1a5d6bbda4f192ac8e002f2dabf6c915637827c"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"95e13321cfaf505b4d58965cc4ab093508183390","unresolved":false,"context_lines":[{"line_number":13,"context_line":"volume.refresh()."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: If0573f1c44c2e67c9a8cbd88dda45310a02e3272"},{"line_number":16,"context_line":"Partial-Implements: blueprint cinder-objects"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a740942_088674b9","line":16,"in_reply_to":"7a740942_ac8c1b36","updated":"2015-12-10 03:23:12.000000000","message":"This comment has been posted multiple times in several patches and the answer is still the same.  The link is https://blueprints.launchpad.net/cinder/+spec/cinder-objects.  It was agreed that we can re-use this blueprint in this and future releases.","commit_id":"d1a5d6bbda4f192ac8e002f2dabf6c915637827c"}],"cinder/objects/base.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"3840d06471f39cc30eb8b2a2e65f122cb34e0fd1","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        current \u003d self.get_by_id(self._context, self.id)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        for field in self.fields:"},{"line_number":101,"context_line":"            # Only update attributes that are already set.  We do not want to"},{"line_number":102,"context_line":"            # unexpectedly trigger a lazy-load."},{"line_number":103,"context_line":"            if self.obj_attr_is_set(field):"},{"line_number":104,"context_line":"                if self[field] !\u003d current[field]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_aefc1b3f","line":101,"updated":"2015-11-24 20:17:21.000000000","message":"This assumes that we\u0027ve got the object from the DB. Seems fine, we should refresh only such objects. Even these received over RPC were generated using get_by_id.","commit_id":"e14cef355bc608837c2172fa709114ca5d90cff3"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"bf2900055e264dd4cd882d90301a9a2d584b53c6","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        current \u003d self.get_by_id(self._context, self.id)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        for field in self.fields:"},{"line_number":101,"context_line":"            # Only update attributes that are already set.  We do not want to"},{"line_number":102,"context_line":"            # unexpectedly trigger a lazy-load."},{"line_number":103,"context_line":"            if self.obj_attr_is_set(field):"},{"line_number":104,"context_line":"                if self[field] !\u003d current[field]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_b490ea96","line":101,"in_reply_to":"9a8ffd7b_aefc1b3f","updated":"2015-11-24 20:22:36.000000000","message":"refresh is only tied to a CinderObject as a method, how could it be used outside?","commit_id":"e14cef355bc608837c2172fa709114ca5d90cff3"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"8151f0a77724c66c2141a26192ab068e58f630d5","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        current \u003d self.get_by_id(self._context, self.id)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        for field in self.fields:"},{"line_number":101,"context_line":"            # Only update attributes that are already set.  We do not want to"},{"line_number":102,"context_line":"            # unexpectedly trigger a lazy-load."},{"line_number":103,"context_line":"            if self.obj_attr_is_set(field):"},{"line_number":104,"context_line":"                if self[field] !\u003d current[field]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_26f91d81","line":101,"in_reply_to":"9a8ffd7b_b490ea96","updated":"2015-11-25 08:22:25.000000000","message":"You can always try to build object by yourself like when creating it. But then you shouldn\u0027t use refresh, which is obvious.\n\nSorry, maybe I shouldn\u0027t think loud in the inline comments.","commit_id":"e14cef355bc608837c2172fa709114ca5d90cff3"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"5e0c77bd78154f8d3113a344c083f1a3a9c40051","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    def refresh(self):"},{"line_number":209,"context_line":"        # To refresh we need to have a model and for the model to have an id"},{"line_number":210,"context_line":"        # field"},{"line_number":211,"context_line":"        if \u0027id\u0027 not in self.fields:"},{"line_number":212,"context_line":"            msg \u003d (_(\u0027VersionedObject %s cannot retrieve object by id.\u0027) %"},{"line_number":213,"context_line":"                   (self.obj_name()))"},{"line_number":214,"context_line":"            raise NotImplementedError(msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_d1c9bf79","line":211,"updated":"2015-12-06 16:36:59.000000000","message":"how often will this be the case?  What worries me about member methods like this is they become pretty easy to misuse and nobody knows it until runtime.","commit_id":"d1a5d6bbda4f192ac8e002f2dabf6c915637827c"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"3cc6ffc65937f45745e6762d1dded1fe5a6eb6e6","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    def refresh(self):"},{"line_number":209,"context_line":"        # To refresh we need to have a model and for the model to have an id"},{"line_number":210,"context_line":"        # field"},{"line_number":211,"context_line":"        if \u0027id\u0027 not in self.fields:"},{"line_number":212,"context_line":"            msg \u003d (_(\u0027VersionedObject %s cannot retrieve object by id.\u0027) %"},{"line_number":213,"context_line":"                   (self.obj_name()))"},{"line_number":214,"context_line":"            raise NotImplementedError(msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_67392941","line":211,"in_reply_to":"7a740942_d1c9bf79","updated":"2015-12-06 22:18:01.000000000","message":"It is very unlikely that an object will not have an id.  I put it this check here just to be safe because self.id is used in L216.","commit_id":"d1a5d6bbda4f192ac8e002f2dabf6c915637827c"}]}
