)]}'
{"cinder/objects/volume.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"eed7707d28e4e27ec236ba16ec758953d78099f8","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    @property"},{"line_number":82,"context_line":"    def name_id(self):"},{"line_number":83,"context_line":"        return self.id if not self._name_id else self._name_id"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @name_id.setter"},{"line_number":86,"context_line":"    def name_id(self, value):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_3e62a616","line":83,"updated":"2015-03-18 09:17:56.000000000","message":"What happens if self._name_id isn\u0027t passed in constructor or set by setter? This code will fail in that case.","commit_id":"ae7c4af7899aa245cc20863962a9f41e589183d5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"26eff41317a04d014c6a23ccd2015098f7c76275","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    @property"},{"line_number":82,"context_line":"    def name_id(self):"},{"line_number":83,"context_line":"        return self.id if not self._name_id else self._name_id"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @name_id.setter"},{"line_number":86,"context_line":"    def name_id(self, value):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_6daaa81b","line":83,"in_reply_to":"9a80dd14_17b69b8a","updated":"2015-03-18 14:46:39.000000000","message":"Okay, thanks, I see now. My worries were because when I\u0027ve removed _name_id\u003d2 from test_obj_fields in test_volume.py I got an exception:\n\n    Traceback (most recent call last):\n      File \"/opt/stack/cinder/cinder/tests/objects/test_volume.py\", line 73, in test_obj_fields\n        self.assertEqual(\u0027volume-2\u0027, volume.name)\n      File \"/opt/stack/cinder/cinder/objects/volume.py\", line 91, in name\n        return CONF.volume_name_template % self.name_id\n      File \"/opt/stack/cinder/cinder/objects/volume.py\", line 83, in name_id\n        return self.id if not self._name_id else self._name_id\n      File \"/opt/stack/cinder/cinder/objects/base.py\", line 72, in getter\n        self.obj_load_attr(name)\n      File \"/opt/stack/cinder/cinder/objects/base.py\", line 504, in obj_load_attr\n        _(\"Cannot load \u0027%s\u0027 in the base class\") % attrname)\n    NotImplementedError: Cannot load \u0027_name_id\u0027 in the base class\n\nThis shouldn\u0027t happen in real world as we\u0027re loading the objects from sqlalchemy objects and _name_id should be always present there.","commit_id":"ae7c4af7899aa245cc20863962a9f41e589183d5"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"deca747f6cdd022212117db4045bccc47b7b0071","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    @property"},{"line_number":82,"context_line":"    def name_id(self):"},{"line_number":83,"context_line":"        return self.id if not self._name_id else self._name_id"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @name_id.setter"},{"line_number":86,"context_line":"    def name_id(self, value):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_77d517b6","line":83,"in_reply_to":"9a80dd14_3e62a616","updated":"2015-03-18 14:04:12.000000000","message":"This was how it was defined in the volume db model - https://github.com/openstack/cinder/blob/master/cinder/db/sqlalchemy/models.py#L112.  If _name_id is not set, it returns id, otherwise, it will use _name_id.  I am not sure what you are seeing as a problem.","commit_id":"ae7c4af7899aa245cc20863962a9f41e589183d5"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"88e2d6569a7973613b726b88442e392d6230dad6","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    @property"},{"line_number":82,"context_line":"    def name_id(self):"},{"line_number":83,"context_line":"        return self.id if not self._name_id else self._name_id"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @name_id.setter"},{"line_number":86,"context_line":"    def name_id(self, value):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_17b69b8a","line":83,"in_reply_to":"9a80dd14_77d517b6","updated":"2015-03-18 14:05:31.000000000","message":"Also, if _name_id is not passed in, it defaults to None because it is nullable, see L38.","commit_id":"ae7c4af7899aa245cc20863962a9f41e589183d5"}],"cinder/tests/objects/test_volume.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"eed7707d28e4e27ec236ba16ec758953d78099f8","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        volume \u003d objects.Volume(context\u003dself.context, id\u003d2, _name_id\u003d2)"},{"line_number":72,"context_line":"        self.assertEqual([\u0027name\u0027, \u0027name_id\u0027], volume.obj_extra_fields)"},{"line_number":73,"context_line":"        self.assertEqual(\u0027volume-2\u0027, volume.name)"},{"line_number":74,"context_line":"        self.assertEqual(\u00272\u0027, volume.name_id)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"class TestVolumeList(test_objects._LocalTest):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_9ea7120b","line":74,"updated":"2015-03-18 09:17:56.000000000","message":"It would be good to have also a test scenario where volume.name_id returns value of volume.id (when volume._name_id isn\u0027t set).","commit_id":"ae7c4af7899aa245cc20863962a9f41e589183d5"}]}
