)]}'
{"zun/common/clients.py":[{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"dc2632da500ecedefe6a1b9eafee2199942b9091","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        endpoint_type \u003d self._get_client_option(\u0027cinder\u0027, \u0027endpoint_type\u0027)"},{"line_number":120,"context_line":"        self._cinder \u003d cinderclient.Client(session\u003dsession,"},{"line_number":121,"context_line":"                                           endpoint_type\u003dendpoint_type,"},{"line_number":122,"context_line":"                                           version\u003d2)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        return self._cinder"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f2577a7_e86e782d","line":122,"range":{"start_line":122,"start_character":43,"end_line":122,"end_character":52},"updated":"2017-09-15 15:25:43.000000000","message":"As I know, Block Storage v2 is deprecated now. The current version is v3. IMO, we can add option \u0027api_version\u0027 in cinder_client config, let user choose the preferred version.","commit_id":"dd63ab57ddd70efb95e7d3e3d945c8d961ec3a33"}],"zun/volume/cinder_api.py":[{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"1dd5ba55917256d0bdb4c6562dcb0a25979ee131","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def search_volume(self, volume):"},{"line_number":44,"context_line":"        if uuidutils.is_uuid_like(volume):"},{"line_number":45,"context_line":"            volume \u003d self.cinder.volumes.get(volume)"},{"line_number":46,"context_line":"            volumes \u003d [volume]"},{"line_number":47,"context_line":"        else:"},{"line_number":48,"context_line":"            volumes \u003d self.cinder.volumes.list(search_opts\u003d{\u0027name\u0027: volume})"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_6736ccb7","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":52},"updated":"2017-10-18 07:34:57.000000000","message":"Hi Hongbin,\nDo we use Cinder V2 API?\nFor cinder v3, do we plan to make it compatible with it?","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"72da148875131775d761a7826e59ef1581df73f1","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def search_volume(self, volume):"},{"line_number":44,"context_line":"        if uuidutils.is_uuid_like(volume):"},{"line_number":45,"context_line":"            volume \u003d self.cinder.volumes.get(volume)"},{"line_number":46,"context_line":"            volumes \u003d [volume]"},{"line_number":47,"context_line":"        else:"},{"line_number":48,"context_line":"            volumes \u003d self.cinder.volumes.list(search_opts\u003d{\u0027name\u0027: volume})"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_f8113955","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":52},"in_reply_to":"3f4b6375_6736ccb7","updated":"2017-10-18 08:18:13.000000000","message":"Hi Kevin,\n\nBy default, we will use Cinder V3 API [1]. Users are able to config it.\n\nhttps://review.openstack.org/#/c/499374/26/zun/conf/cinder_client.py","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"a53723ed12aee770314763b7a5394ec0f7543396","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def search_volume(self, volume):"},{"line_number":44,"context_line":"        if uuidutils.is_uuid_like(volume):"},{"line_number":45,"context_line":"            volume \u003d self.cinder.volumes.get(volume)"},{"line_number":46,"context_line":"            volumes \u003d [volume]"},{"line_number":47,"context_line":"        else:"},{"line_number":48,"context_line":"            volumes \u003d self.cinder.volumes.list(search_opts\u003d{\u0027name\u0027: volume})"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_d39ac9c3","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":52},"in_reply_to":"3f4b6375_f8113955","updated":"2017-10-18 22:03:15.000000000","message":"Yes, we are using cinder v3 API by default.\n\nI guess Kevin\u0027s question is if we plan to use the new cinder attach workflow introduced in cinder v3 ? If this is the question, the answer is yes but i would like to see how this is done in nova first: https://review.openstack.org/#/c/330285/ .","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"1dd5ba55917256d0bdb4c6562dcb0a25979ee131","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            raise exception.VolumeInUse(volume\u003dvolume.id)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def reserve_volume(self, volume_id):"},{"line_number":71,"context_line":"        self.cinder.volumes.reserve(volume_id)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def unreserve_volume(self, volume_id):"},{"line_number":74,"context_line":"        self.cinder.volumes.unreserve(volume_id)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_2a13fb68","line":71,"range":{"start_line":71,"start_character":1,"end_line":71,"end_character":46},"updated":"2017-10-18 07:34:57.000000000","message":"This method need the return value I think.","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"a53723ed12aee770314763b7a5394ec0f7543396","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            raise exception.VolumeInUse(volume\u003dvolume.id)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def reserve_volume(self, volume_id):"},{"line_number":71,"context_line":"        self.cinder.volumes.reserve(volume_id)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def unreserve_volume(self, volume_id):"},{"line_number":74,"context_line":"        self.cinder.volumes.unreserve(volume_id)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_93a4510a","line":71,"range":{"start_line":71,"start_character":1,"end_line":71,"end_character":46},"in_reply_to":"3f4b6375_2a13fb68","updated":"2017-10-18 22:03:15.000000000","message":"Done","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"1dd5ba55917256d0bdb4c6562dcb0a25979ee131","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.cinder.volumes.reserve(volume_id)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def unreserve_volume(self, volume_id):"},{"line_number":74,"context_line":"        self.cinder.volumes.unreserve(volume_id)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def initialize_connection(self, volume_id, connector):"},{"line_number":77,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_2d08b526","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":48},"updated":"2017-10-18 07:34:57.000000000","message":"ditto","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"a53723ed12aee770314763b7a5394ec0f7543396","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.cinder.volumes.reserve(volume_id)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def unreserve_volume(self, volume_id):"},{"line_number":74,"context_line":"        self.cinder.volumes.unreserve(volume_id)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def initialize_connection(self, volume_id, connector):"},{"line_number":77,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_73a9d5dd","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":48},"in_reply_to":"3f4b6375_2d08b526","updated":"2017-10-18 22:03:15.000000000","message":"Done","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"1dd5ba55917256d0bdb4c6562dcb0a25979ee131","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        return self.cinder.volumes.terminate_connection(volume_id, connector)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def attach(self, volume_id, mountpoint, hostname):"},{"line_number":110,"context_line":"        self.cinder.volumes.attach(volume\u003dvolume_id,"},{"line_number":111,"context_line":"                                   instance_uuid\u003dNone,"},{"line_number":112,"context_line":"                                   mountpoint\u003dmountpoint,"},{"line_number":113,"context_line":"                                   host_name\u003dhostname)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def detach(self, volume_id):"},{"line_number":116,"context_line":"        attachment_id \u003d None"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_cd0ec131","line":113,"range":{"start_line":110,"start_character":8,"end_line":113,"end_character":54},"updated":"2017-10-18 07:34:57.000000000","message":"This method need the return value I think.","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"a53723ed12aee770314763b7a5394ec0f7543396","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        return self.cinder.volumes.terminate_connection(volume_id, connector)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def attach(self, volume_id, mountpoint, hostname):"},{"line_number":110,"context_line":"        self.cinder.volumes.attach(volume\u003dvolume_id,"},{"line_number":111,"context_line":"                                   instance_uuid\u003dNone,"},{"line_number":112,"context_line":"                                   mountpoint\u003dmountpoint,"},{"line_number":113,"context_line":"                                   host_name\u003dhostname)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def detach(self, volume_id):"},{"line_number":116,"context_line":"        attachment_id \u003d None"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_53aed9e7","line":113,"range":{"start_line":110,"start_character":8,"end_line":113,"end_character":54},"in_reply_to":"3f4b6375_cd0ec131","updated":"2017-10-18 22:03:15.000000000","message":"Done","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"1dd5ba55917256d0bdb4c6562dcb0a25979ee131","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                        \"cannot perform the detach.\","},{"line_number":130,"context_line":"                        {\u0027volume_id\u0027: volume_id})"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        self.cinder.volumes.detach(volume_id, attachment_id)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def begin_detaching(self, volume_id):"},{"line_number":135,"context_line":"        self.cinder.volumes.begin_detaching(volume_id)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_8d18c975","line":132,"range":{"start_line":132,"start_character":7,"end_line":132,"end_character":60},"updated":"2017-10-18 07:34:57.000000000","message":"ditto","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"a53723ed12aee770314763b7a5394ec0f7543396","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                        \"cannot perform the detach.\","},{"line_number":130,"context_line":"                        {\u0027volume_id\u0027: volume_id})"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        self.cinder.volumes.detach(volume_id, attachment_id)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def begin_detaching(self, volume_id):"},{"line_number":135,"context_line":"        self.cinder.volumes.begin_detaching(volume_id)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3f4b6375_33ab5dd7","line":132,"range":{"start_line":132,"start_character":7,"end_line":132,"end_character":60},"in_reply_to":"3f4b6375_8d18c975","updated":"2017-10-18 22:03:15.000000000","message":"Done","commit_id":"f5da1f9bd4be5e10618c9aba65ed416676ef679e"}]}
