)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-04-28 10:36:43 -0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve hitachi hnas volume drivers log messages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Depends-On: I00f4ae5ccd99f8f5da12e687ef0dc9cdb1717b3b"},{"line_number":10,"context_line":"Change-Id: I08175b031a65ea6ae5cec3c73d5312175f29c890"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_b16a277f","line":8,"updated":"2016-04-29 13:43:36.000000000","message":"Can you add a description of why you need to do this?\nAlso, you need to create a link to a bug or blueprint. In this case, it should be a blueprint for the HNAS refactor and this patch should \u0027Partially-implements:\u0027.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c66018101b5263c579b0607198405bae249645f6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tomaz Vieira \u003ctomaz.vieira@fit-tecnologia.org.br\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-17 09:27:16 -0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve hitachi hnas volume drivers log messages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds better logging messages to the hitachi hnas drivers. Also fixes"},{"line_number":10,"context_line":"some old messages that were being logged as tuples."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_444fb591","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":20},"updated":"2016-05-17 13:03:21.000000000","message":"s/hitachi hnas/Hitachi HNAS","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":20834,"name":"Tomaz Vieira","email":"tomaz.vieira@fit-tecnologia.org.br","username":"tomaz-vieira"},"change_message_id":"0744d5cd336b56348d3f7cdecac74164a1a47cc8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tomaz Vieira \u003ctomaz.vieira@fit-tecnologia.org.br\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-17 09:27:16 -0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve hitachi hnas volume drivers log messages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds better logging messages to the hitachi hnas drivers. Also fixes"},{"line_number":10,"context_line":"some old messages that were being logged as tuples."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"bab6814e_7cbd1001","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":20},"in_reply_to":"dab17558_444fb591","updated":"2016-05-23 18:10:13.000000000","message":"Done","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c66018101b5263c579b0607198405bae249645f6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve hitachi hnas volume drivers log messages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds better logging messages to the hitachi hnas drivers. Also fixes"},{"line_number":10,"context_line":"some old messages that were being logged as tuples."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Co-Authored-By: Erlon Cruz \u003csombrafam@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_44369503","line":9,"range":{"start_line":9,"start_character":36,"end_line":9,"end_character":48},"updated":"2016-05-17 13:03:21.000000000","message":"s/hitachi hnas/Hitachi HNAS","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":20834,"name":"Tomaz Vieira","email":"tomaz.vieira@fit-tecnologia.org.br","username":"tomaz-vieira"},"change_message_id":"0744d5cd336b56348d3f7cdecac74164a1a47cc8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve hitachi hnas volume drivers log messages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds better logging messages to the hitachi hnas drivers. Also fixes"},{"line_number":10,"context_line":"some old messages that were being logged as tuples."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Co-Authored-By: Erlon Cruz \u003csombrafam@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"bab6814e_5cb80c11","line":9,"range":{"start_line":9,"start_character":36,"end_line":9,"end_character":48},"in_reply_to":"dab17558_44369503","updated":"2016-05-23 18:10:13.000000000","message":"Done","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"}],"cinder/volume/drivers/hitachi/hnas_backend.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                return out, err"},{"line_number":82,"context_line":"            except putils.ProcessExecutionError as e:"},{"line_number":83,"context_line":"                if \u0027Failed to establish SSC connection\u0027 in e.stderr:"},{"line_number":84,"context_line":"                    LOG.exception(_LE(\"SSC connection error!\"))"},{"line_number":85,"context_line":"                    msg \u003d _(\"Failed to establish SSC connection.\")"},{"line_number":86,"context_line":"                    raise exception.HNASConnError(msg)"},{"line_number":87,"context_line":"                elif \u0027Connection reset\u0027 in e.stderr:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_47979539","line":84,"range":{"start_line":84,"start_character":24,"end_line":84,"end_character":33},"updated":"2016-04-29 13:43:36.000000000","message":"Does LOG.exception() has the same output as LOG.error()? The output must be \"ERROR:\" ...","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            version_info[\u0027serial\u0027] \u003d serial"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"            self.storage_version \u003d version_info"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        return self.storage_version"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def get_iscsi_info(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_9198cb76","line":123,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.debug(\"version_info: %(info)s\", {\u0027info\u0027: version_info})","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        # When the FS is found in the list of known FS, returns the EVS ID"},{"line_number":236,"context_line":"        for key in self.fslist:"},{"line_number":237,"context_line":"            if fs_label \u003d\u003d self.fslist[key][\u0027label\u0027]:"},{"line_number":238,"context_line":"                return self.fslist[key][\u0027evsid\u0027]"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def _get_targets(self, evs_id, tgt_alias\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_d1ba43bf","line":237,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.debug(\"EVS ID for fs %(fs)s: %(id)s.\",\n                  {\u0027fs\u0027: fs_label, \u0027id\u0027: self.fslist[key][\u0027evsid\u0027]})","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        # When the FS is found in the list of known FS, returns the EVS ID"},{"line_number":236,"context_line":"        for key in self.fslist:"},{"line_number":237,"context_line":"            if fs_label \u003d\u003d self.fslist[key][\u0027label\u0027]:"},{"line_number":238,"context_line":"                return self.fslist[key][\u0027evsid\u0027]"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def _get_targets(self, evs_id, tgt_alias\u003dNone):"},{"line_number":241,"context_line":"        \"\"\"Gets the target list of an EVS."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_71cc0f6a","line":238,"updated":"2016-04-29 13:43:36.000000000","message":"If does not find:\nLOG.debug(\"Can\u0027t find EVS ID for fs %(fs)s.\", {\u0027fs\u0027:fs_label})","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        :param src: source file"},{"line_number":356,"context_line":"        :param name: target path of the new created file"},{"line_number":357,"context_line":"        \"\"\""},{"line_number":358,"context_line":"        LOG.debug(\u0027file_clone: fs:%s %s/src: -\u003e %s/dst\u0027, fs_label, src, name)"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"        fs_list \u003d self._get_fs_list()"},{"line_number":361,"context_line":"        fs \u003d fs_list.get(fs_label)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_d1088393","line":358,"range":{"start_line":358,"start_character":8,"end_line":358,"end_character":77},"updated":"2016-04-29 13:43:36.000000000","message":"Move this to the end of the function to be consistent with other functions.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        conn_info[\u0027fs\u0027] \u003d fs_label"},{"line_number":424,"context_line":"        conn_info[\u0027port\u0027] \u003d port"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        LOG.debug(\u0027add_iscsi_conn: LU %(lu)s added to %(tgt)s.\u0027,"},{"line_number":427,"context_line":"                  {\u0027lu\u0027: lu_name, \u0027tgt\u0027: tgt_alias})"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"        return conn_info"},{"line_number":430,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_91ebaba3","line":427,"range":{"start_line":426,"start_character":7,"end_line":427,"end_character":52},"updated":"2016-04-29 13:43:36.000000000","message":"Log conn_info.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":480,"context_line":"        for line in lines:"},{"line_number":481,"context_line":"            if \u0027Globally unique name\u0027 in line:"},{"line_number":482,"context_line":"                full_iqn \u003d line.split()[3]"},{"line_number":483,"context_line":"                return full_iqn"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    def set_target_secret(self, targetalias, fs_label, secret):"},{"line_number":486,"context_line":"        \"\"\"Sets the chap secret for the specified target."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_d12fe3f3","line":483,"range":{"start_line":483,"start_character":23,"end_line":483,"end_character":31},"updated":"2016-04-29 13:43:36.000000000","message":"Log the full_iqn.\nAlso log the end of the function in case it does not find.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":497,"context_line":"            self._run_cmd(\"console-context\", \"--evs\", _evs_id, \u0027iscsi-target\u0027,"},{"line_number":498,"context_line":"                          \u0027add\u0027, targetalias, secret)"},{"line_number":499,"context_line":"        else:"},{"line_number":500,"context_line":"            LOG.debug(\u0027targetlist: %(tgt)s\u0027, {\u0027tgt\u0027: targetalias})"},{"line_number":501,"context_line":"            self._run_cmd(\"console-context\", \"--evs\", _evs_id, \u0027iscsi-target\u0027,"},{"line_number":502,"context_line":"                          \u0027mod\u0027, \u0027-s\u0027, secret, \u0027-a\u0027, \u0027enable\u0027, targetalias)"},{"line_number":503,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_7141afa8","line":500,"range":{"start_line":500,"start_character":12,"end_line":500,"end_character":66},"updated":"2016-04-29 13:43:36.000000000","message":"This can be removed. It is logged right bellow.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":598,"context_line":"        lu_info[\u0027id\u0027] \u003d 0"},{"line_number":599,"context_line":"        lu_info[\u0027tgt\u0027] \u003d None"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"        LOG.debug(\"LU %(lu)s not attached.\", {\u0027lu\u0027: vol_name})"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"        return lu_info"},{"line_number":604,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_b147c7ba","line":601,"range":{"start_line":601,"start_character":8,"end_line":601,"end_character":62},"updated":"2016-04-29 13:43:36.000000000","message":"This should log the lu_info","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":768,"context_line":"                    export_info[\u0027free\u0027] \u003d float(free)"},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"            export_list.append(export_info)"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"        return export_list"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":"    def create_cloned_lu(self, src_lu, fs_label, clone_name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_b11ea7b8","line":771,"updated":"2016-04-29 13:43:36.000000000","message":"Log the export list.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1a122d0e_f1613f3a","line":800,"updated":"2016-04-29 13:43:36.000000000","message":"Log the name of the created target.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c66018101b5263c579b0607198405bae249645f6","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        self._run_cmd(\"console-context\", \"--evs\", fs[\u0027evsid\u0027],"},{"line_number":371,"context_line":"                      \u0027file-clone-create\u0027, \u0027-f\u0027, fs_label, src, name)"},{"line_number":372,"context_line":"        LOG.debug(\u0027file_clone: fs:%s %s/src: -\u003e %s/dst\u0027, fs_label, src, name)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def extend_lu(self, fs_label, new_size, lu_name):"},{"line_number":375,"context_line":"        \"\"\"Extends an iSCSI volume."}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_7f6fe4c3","line":372,"range":{"start_line":372,"start_character":8,"end_line":372,"end_character":77},"updated":"2016-05-17 13:03:21.000000000","message":"ditto","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":20834,"name":"Tomaz Vieira","email":"tomaz.vieira@fit-tecnologia.org.br","username":"tomaz-vieira"},"change_message_id":"0744d5cd336b56348d3f7cdecac74164a1a47cc8","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        self._run_cmd(\"console-context\", \"--evs\", fs[\u0027evsid\u0027],"},{"line_number":371,"context_line":"                      \u0027file-clone-create\u0027, \u0027-f\u0027, fs_label, src, name)"},{"line_number":372,"context_line":"        LOG.debug(\u0027file_clone: fs:%s %s/src: -\u003e %s/dst\u0027, fs_label, src, name)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def extend_lu(self, fs_label, new_size, lu_name):"},{"line_number":375,"context_line":"        \"\"\"Extends an iSCSI volume."}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_41fca7b7","line":372,"range":{"start_line":372,"start_character":8,"end_line":372,"end_character":77},"in_reply_to":"dab17558_7f6fe4c3","updated":"2016-05-23 18:10:13.000000000","message":"Done","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c66018101b5263c579b0607198405bae249645f6","unresolved":false,"context_lines":[{"line_number":768,"context_line":""},{"line_number":769,"context_line":"            export_list.append(export_info)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"        LOG.debug(\"get_export_list: %s\", export_list)"},{"line_number":772,"context_line":"        return export_list"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":"    def create_cloned_lu(self, src_lu, fs_label, clone_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_5f9dc0ba","line":771,"range":{"start_line":771,"start_character":8,"end_line":771,"end_character":53},"updated":"2016-05-17 13:03:21.000000000","message":"ditto","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":20834,"name":"Tomaz Vieira","email":"tomaz.vieira@fit-tecnologia.org.br","username":"tomaz-vieira"},"change_message_id":"0744d5cd336b56348d3f7cdecac74164a1a47cc8","unresolved":false,"context_lines":[{"line_number":768,"context_line":""},{"line_number":769,"context_line":"            export_list.append(export_info)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"        LOG.debug(\"get_export_list: %s\", export_list)"},{"line_number":772,"context_line":"        return export_list"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":"    def create_cloned_lu(self, src_lu, fs_label, clone_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_a13113a4","line":771,"range":{"start_line":771,"start_character":8,"end_line":771,"end_character":53},"in_reply_to":"dab17558_5f9dc0ba","updated":"2016-05-23 18:10:13.000000000","message":"Done","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":19144,"name":"José Mello","email":"jose.eduardo.jr@gmail.com","username":"jose-eduardo-jr"},"change_message_id":"a9cd15bc5a00304f7dcec8026add14e796f9e378","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                    raise exception.HNASConnError(msg)"},{"line_number":88,"context_line":"                elif \u0027Connection reset\u0027 in e.stderr:"},{"line_number":89,"context_line":"                    LOG.exception(_LE(\"HNAS connection reset!\"))"},{"line_number":90,"context_line":"                    msg \u003d _(\"HNAS has disconnected SSC\")"},{"line_number":91,"context_line":"                    raise exception.HNASConnError(msg)"},{"line_number":92,"context_line":"                else:"},{"line_number":93,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_e92492b0","line":90,"range":{"start_line":90,"start_character":51,"end_line":90,"end_character":54},"updated":"2016-06-21 19:08:31.000000000","message":"\"SSC.\"","commit_id":"ed6e6e208ae146fb9a02aec83a545a91df46b531"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"840ea47a4ff5a4f29ce76cd246fb4ccc159331d3","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                    raise exception.HNASConnError(msg)"},{"line_number":88,"context_line":"                elif \u0027Connection reset\u0027 in e.stderr:"},{"line_number":89,"context_line":"                    LOG.exception(_LE(\"HNAS connection reset!\"))"},{"line_number":90,"context_line":"                    msg \u003d _(\"HNAS has disconnected SSC\")"},{"line_number":91,"context_line":"                    raise exception.HNASConnError(msg)"},{"line_number":92,"context_line":"                else:"},{"line_number":93,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_873175ef","line":90,"range":{"start_line":90,"start_character":51,"end_line":90,"end_character":54},"in_reply_to":"3aaa91ec_e92492b0","updated":"2016-06-21 19:25:02.000000000","message":"Done","commit_id":"ed6e6e208ae146fb9a02aec83a545a91df46b531"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d351a846d0eeea4a33c60ae9955cb073893df56d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            except putils.ProcessExecutionError as e:"},{"line_number":84,"context_line":"                if \u0027Failed to establish SSC connection\u0027 in e.stderr:"},{"line_number":85,"context_line":"                    LOG.exception(_LE(\"SSC connection error!\"))"},{"line_number":86,"context_line":"                    msg \u003d _(\"Failed to establish SSC connection.\")"},{"line_number":87,"context_line":"                    raise exception.HNASConnError(msg)"},{"line_number":88,"context_line":"                elif \u0027Connection reset\u0027 in e.stderr:"},{"line_number":89,"context_line":"                    LOG.exception(_LE(\"HNAS connection reset!\"))"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_023c3b92","line":86,"updated":"2016-08-08 22:47:51.000000000","message":"why not use the same msg text in the LOG.exception and the raise ?","commit_id":"04253515e497ea606362d4cf839ebec9ef55a51e"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d351a846d0eeea4a33c60ae9955cb073893df56d","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                    raise exception.HNASConnError(msg)"},{"line_number":88,"context_line":"                elif \u0027Connection reset\u0027 in e.stderr:"},{"line_number":89,"context_line":"                    LOG.exception(_LE(\"HNAS connection reset!\"))"},{"line_number":90,"context_line":"                    msg \u003d _(\"HNAS has disconnected SSC.\")"},{"line_number":91,"context_line":"                    raise exception.HNASConnError(msg)"},{"line_number":92,"context_line":"                else:"},{"line_number":93,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_42463324","line":90,"updated":"2016-08-08 22:47:51.000000000","message":"same","commit_id":"04253515e497ea606362d4cf839ebec9ef55a51e"}],"cinder/volume/drivers/hitachi/hnas_iscsi.py":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"88e4647469f1baac37e99a3a8a7e7a2ec2044eca","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                    service_parameters,"},{"line_number":116,"context_line":"                    optional_parameters)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        LOG.info(_LI(\"Backend type: %s\"), \"HNAS\")"},{"line_number":119,"context_line":"        super(HNASISCSIDriver, self).__init__(*args, **kwargs)"},{"line_number":120,"context_line":"        self.backend \u003d hnas_backend.HNASSSHBackend(self.config)"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_404cba9d","line":118,"range":{"start_line":118,"start_character":35,"end_line":118,"end_character":48},"updated":"2016-04-28 15:15:21.000000000","message":"Is it required?","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                    service_parameters,"},{"line_number":116,"context_line":"                    optional_parameters)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        LOG.info(_LI(\"Backend type: %s\"), \"HNAS\")"},{"line_number":119,"context_line":"        super(HNASISCSIDriver, self).__init__(*args, **kwargs)"},{"line_number":120,"context_line":"        self.backend \u003d hnas_backend.HNASSSHBackend(self.config)"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_8cfa7273","line":118,"range":{"start_line":118,"start_character":8,"end_line":118,"end_character":49},"updated":"2016-04-29 13:43:36.000000000","message":"This should be logged in the end of do_setup() that\u0027s when the driver was done loading all its stuff. I don\u0027t think is neded to specify the backend type. The message should be something like: LOG.info(\"HNAS Driver loaded successfully.\")","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":20834,"name":"Tomaz Vieira","email":"tomaz.vieira@fit-tecnologia.org.br","username":"tomaz-vieira"},"change_message_id":"4b98588d3ac249f2621169c1e185fd80641c6faf","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                    service_parameters,"},{"line_number":116,"context_line":"                    optional_parameters)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        LOG.info(_LI(\"Backend type: %s\"), \"HNAS\")"},{"line_number":119,"context_line":"        super(HNASISCSIDriver, self).__init__(*args, **kwargs)"},{"line_number":120,"context_line":"        self.backend \u003d hnas_backend.HNASSSHBackend(self.config)"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_917462cf","line":118,"range":{"start_line":118,"start_character":35,"end_line":118,"end_character":48},"in_reply_to":"1a122d0e_404cba9d","updated":"2016-04-28 16:24:08.000000000","message":"I figured a vendor-agnostic format string would be easier on the translators. In fact, if other drivers ever use this very generic string, it\u0027d already be translated.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        :returns: HDP (file system) related to the service"},{"line_number":130,"context_line":"        \"\"\""},{"line_number":131,"context_line":"        label \u003d utils.extract_host(volume.host, level\u003d\u0027pool\u0027)"},{"line_number":132,"context_line":"        LOG.info(_LI(\"Using service label: %(lbl)s.\"), {\u0027lbl\u0027: label})"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        if label in self.config[\u0027services\u0027].keys():"},{"line_number":135,"context_line":"            svc \u003d self.config[\u0027services\u0027][label]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_0c14a29d","line":132,"range":{"start_line":132,"start_character":8,"end_line":132,"end_character":70},"updated":"2016-04-29 13:43:36.000000000","message":"This should be logged before the return.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            svc \u003d self.config[\u0027services\u0027][label]"},{"line_number":136,"context_line":"            return svc[\u0027hdp\u0027]"},{"line_number":137,"context_line":"        else:"},{"line_number":138,"context_line":"            LOG.info(_LI(\"Available services: %(svc)s.\"),"},{"line_number":139,"context_line":"                     {\u0027svc\u0027: self.config[\u0027services\u0027].keys()})"},{"line_number":140,"context_line":"            LOG.error(_LE(\"No configuration found for service: %(lbl)s.\"),"},{"line_number":141,"context_line":"                      {\u0027lbl\u0027: label})"},{"line_number":142,"context_line":"            raise exception.ParameterNotFound(param\u003dlabel)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_6c3c362f","line":139,"range":{"start_line":138,"start_character":12,"end_line":139,"end_character":61},"updated":"2016-04-29 13:43:36.000000000","message":"This should be logged in the beginning of the function. Here only the error.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        if lu_info[\u0027mapped\u0027]:"},{"line_number":163,"context_line":"            service \u003d ("},{"line_number":164,"context_line":"                svc[\u0027iscsi_ip\u0027], svc[\u0027iscsi_port\u0027], svc[\u0027evs\u0027], svc[\u0027port\u0027],"},{"line_number":165,"context_line":"                fs_label, lu_info[\u0027tgt\u0027][\u0027alias\u0027], lu_info[\u0027tgt\u0027][\u0027secret\u0027])"},{"line_number":166,"context_line":"            return service"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        # Each EVS can have up to 32 targets. Each target can have up to 32"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_47a31500","line":165,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.info(_LI(\"Volume %(volid)s already mapped on target %(tgt)s to LUN %(lunid)s.\"), {\u0027volid\u0027:volume.name, \u0027tgt\u0027:lu_info[\u0027tgt\u0027][\u0027alias\u0027], \u0027lunid\u0027:lun_info[\u0027id\u0027]})","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                     \"passed in the volume reference.\"),"},{"line_number":316,"context_line":"                   {\u0027File System passed\u0027: fs_label,"},{"line_number":317,"context_line":"                    \u0027File System for volume type\u0027:"},{"line_number":318,"context_line":"                        self.config[\u0027services\u0027][pool_from_vol_type][\u0027hdp\u0027]})"},{"line_number":319,"context_line":"            raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        if pool_from_host !\u003d pool_from_vol_type:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_67f611d8","line":318,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.error(msg)","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                     \"the volume type chosen does not match the pool of \""},{"line_number":324,"context_line":"                     \"the host.\"),"},{"line_number":325,"context_line":"                   {\u0027Pool of the volume type\u0027: pool_from_vol_type,"},{"line_number":326,"context_line":"                    \u0027Pool of the host\u0027: pool_from_host})"},{"line_number":327,"context_line":"            raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def _get_info_from_vol_ref(self, vol_ref):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_4724b55e","line":326,"updated":"2016-04-29 13:43:36.000000000","message":"same","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        else:"},{"line_number":346,"context_line":"            msg \u003d (_(\"The reference to the volume in the backend should have \""},{"line_number":347,"context_line":"                     \"the format file_system/volume_name (volume_name cannot \""},{"line_number":348,"context_line":"                     \"contain \u0027/\u0027)\"))"},{"line_number":349,"context_line":"            raise exception.ManageExistingInvalidReference("},{"line_number":350,"context_line":"                existing_ref\u003dvol_ref, reason\u003dmsg)"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_47db154f","line":348,"updated":"2016-04-29 13:43:36.000000000","message":"same","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        \"\"\"Sets up and verify Hitachi HNAS storage connection.\"\"\""},{"line_number":357,"context_line":"        self.context \u003d context"},{"line_number":358,"context_line":"        self._check_fs_list()"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"        service_list \u003d self.config[\u0027services\u0027].keys()"},{"line_number":361,"context_line":"        for svc in service_list:"},{"line_number":362,"context_line":"            svc \u003d self.config[\u0027services\u0027][svc]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_c218b320","line":359,"updated":"2016-04-29 13:43:36.000000000","message":"version_info \u003d self.backend.get_version()\nLOG.info(_LI(\"HNAS Array NFS driver\"))\nLOG.info(_LI(\"HNAS model: %s\"), version_info[\u0027model\u0027])\nLOG.info(_LI(\"HNAS version: %s\"), version_info[\u0027version\u0027])\nLOG.info(_LI(\"HNAS hardware: %s\"), version_info[\u0027hardware\u0027])\nLOG.info(_LI(\"HNAS S/N: %s\"), version_info[\u0027serial\u0027])","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":367,"context_line":""},{"line_number":368,"context_line":"            self.pools.append(pool)"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        LOG.info(_LI(\"Configured pools: %(pool)s\"), {\u0027pool\u0027: self.pools})"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        iscsi_info \u003d self.backend.get_iscsi_info()"},{"line_number":373,"context_line":"        LOG.debug(\"do_setup: %s\", iscsi_info)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_02a3cbb2","line":370,"range":{"start_line":370,"start_character":8,"end_line":370,"end_character":16},"updated":"2016-04-29 13:43:36.000000000","message":"LOG.debug()","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":383,"context_line":"            else:"},{"line_number":384,"context_line":"                LOG.error(_LE(\"iSCSI portal not found \""},{"line_number":385,"context_line":"                              \"for service: %(svc)s\"), {\u0027svc\u0027: svc_ip})"},{"line_number":386,"context_line":"                raise exception.InvalidParameterValue(err\u003dsvc_ip)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    def ensure_export(self, context, volume):"},{"line_number":389,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_22b527ec","line":386,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.info(\"HNAS Driver loaded successfully.\")","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        :param volume: dictionary volume reference"},{"line_number":401,"context_line":"        :returns: the volume provider location"},{"line_number":402,"context_line":"        \"\"\""},{"line_number":403,"context_line":"        fs \u003d self._get_service(volume)"},{"line_number":404,"context_line":"        size \u003d six.text_type(volume.size)"},{"line_number":405,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_c74725ba","line":402,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.info(\u0027Creating %(size)d GB volume %(id)s.\u0027, {\u0027id\u0027:volume.name, \u0027size\u0027:volume.size})","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        self.backend.create_lu(fs, size, volume.name)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        LOG.info(_LI(\"LU %(lu)s of size %(sz)s GB is created.\"),"},{"line_number":409,"context_line":"                 {\u0027lu\u0027: volume.name, \u0027sz\u0027: volume.size})"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        return {\u0027provider_location\u0027: self._get_provider_location(volume)}"},{"line_number":412,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_67ad7130","line":409,"range":{"start_line":408,"start_character":8,"end_line":409,"end_character":56},"updated":"2016-04-29 13:43:36.000000000","message":"If we get an exception, we loose the volume.name log. Let\u0027s log all driver API calls in the beginning of the function.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":430,"context_line":"            size \u003d dst.size"},{"line_number":431,"context_line":"            self.extend_volume(dst, size)"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"        LOG.info(_LI(\"LU %(lu)s of size %(size)s GB is cloned.\"),"},{"line_number":434,"context_line":"                 {\u0027lu\u0027: src[\u0027name\u0027], \u0027size\u0027: size})"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        return {\u0027provider_location\u0027: self._get_provider_location(dst)}"},{"line_number":437,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_c77f25a9","line":434,"range":{"start_line":433,"start_character":8,"end_line":434,"end_character":51},"updated":"2016-04-29 13:43:36.000000000","message":"Same","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":455,"context_line":"        fs \u003d self._get_service(volume)"},{"line_number":456,"context_line":"        self.backend.delete_lu(fs, volume.name)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        LOG.info(_LI(\"Deleted LU %(lu)s\"), {\u0027lu\u0027: volume.name})"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    @cinder_utils.synchronized(\u0027volume_mapping\u0027)"},{"line_number":461,"context_line":"    def initialize_connection(self, volume, connector):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_4742f568","line":458,"range":{"start_line":458,"start_character":8,"end_line":458,"end_character":63},"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":466,"context_line":"        :returns: The connection information"},{"line_number":467,"context_line":"        \"\"\""},{"line_number":468,"context_line":"        LOG.info(_LI(\"initialize volume %(vol)s connector %(conn)s\"),"},{"line_number":469,"context_line":"                 {\u0027vol\u0027: volume, \u0027conn\u0027: connector})"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        service_info \u003d self._get_service_target(volume)"},{"line_number":472,"context_line":"        (ip, ipp, evs, port, _fs, tgtalias, secret) \u003d service_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_675bb154","line":469,"range":{"start_line":469,"start_character":25,"end_line":469,"end_character":31},"updated":"2016-04-29 13:43:36.000000000","message":"volume.name","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        self.backend.del_iscsi_conn(evs, tgtalias, lu_info[\u0027id\u0027])"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"        LOG.info(_LI(\"terminate_connection: %(vol)s\"),"},{"line_number":526,"context_line":"                 {\u0027vol\u0027: volume.provider_location})"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":529,"context_line":"        \"\"\"Creates a volume from a snapshot."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_02010b05","line":526,"range":{"start_line":525,"start_character":8,"end_line":526,"end_character":51},"updated":"2016-04-29 13:43:36.000000000","message":"Same","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":"        self.backend.create_cloned_lu(snapshot.name, fs, volume.name)"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"        LOG.info(_LI(\"LU %(lu)s of size %(sz)s MB is created.\"),"},{"line_number":541,"context_line":"                 {\u0027lu\u0027: snapshot.name, \u0027sz\u0027: size})"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        return {\u0027provider_location\u0027: self._get_provider_location(snapshot)}"},{"line_number":544,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_c21b9371","line":541,"range":{"start_line":540,"start_character":9,"end_line":541,"end_character":51},"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        self.backend.create_cloned_lu(snapshot.volume_name, fs, snapshot.name)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        LOG.info(_LI(\"LU %(lu)s of size %(size)s GB is created.\"),"},{"line_number":558,"context_line":"                 {\u0027lu\u0027: snapshot.name, \u0027size\u0027: size})"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        return {\u0027provider_location\u0027: self._get_provider_location(snapshot)}"},{"line_number":561,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_826a3bb1","line":558,"range":{"start_line":557,"start_character":8,"end_line":558,"end_character":53},"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        fs \u003d self._get_service(snapshot.volume)"},{"line_number":568,"context_line":"        self.backend.delete_lu(fs, snapshot.name)"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"        LOG.info(_LI(\"Delete lu %(lu)s\"), {\u0027lu\u0027: snapshot.name})"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":573,"context_line":"        \"\"\"Gets the volume driver stats."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_c260b3d1","line":570,"range":{"start_line":570,"start_character":8,"end_line":570,"end_character":64},"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":630,"context_line":"        fs_label, vol_name \u003d ("},{"line_number":631,"context_line":"            self._get_info_from_vol_ref(existing_vol_ref[\u0027source-name\u0027]))"},{"line_number":632,"context_line":""},{"line_number":633,"context_line":"        LOG.debug(\"Asked to manage ISCSI volume %(vol)s, with vol \""},{"line_number":634,"context_line":"                  \"ref %(ref)s.\", {\u0027vol\u0027: volume.id,"},{"line_number":635,"context_line":"                                   \u0027ref\u0027: existing_vol_ref[\u0027source-name\u0027]})"},{"line_number":636,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_a2893771","line":633,"range":{"start_line":633,"start_character":7,"end_line":633,"end_character":17},"updated":"2016-04-29 13:43:36.000000000","message":"LOG.info()","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        managed."},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"        :param volume: cinder volume to unmanage"},{"line_number":656,"context_line":"        \"\"\""},{"line_number":657,"context_line":"        fslabel \u003d self._get_service(volume)"},{"line_number":658,"context_line":"        new_name \u003d \u0027unmanage-\u0027 + volume.name"},{"line_number":659,"context_line":"        vol_path \u003d fslabel + \u0027/\u0027 + volume.name"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_22f407ef","line":656,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.info(): Un-managing volume...","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c66018101b5263c579b0607198405bae249645f6","unresolved":false,"context_lines":[{"line_number":367,"context_line":"        self._check_fs_list()"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        version_info \u003d self.backend.get_version()"},{"line_number":370,"context_line":"        LOG.info(_LI(\"HNAS Array NFS driver\"))"},{"line_number":371,"context_line":"        LOG.info(_LI(\"HNAS model: %s\"), version_info[\u0027model\u0027])"},{"line_number":372,"context_line":"        LOG.info(_LI(\"HNAS version: %s\"), version_info[\u0027version\u0027])"},{"line_number":373,"context_line":"        LOG.info(_LI(\"HNAS hardware: %s\"), version_info[\u0027hardware\u0027])"},{"line_number":374,"context_line":"        LOG.info(_LI(\"HNAS S/N: %s\"), version_info[\u0027serial\u0027])"},{"line_number":375,"context_line":"        service_list \u003d self.config[\u0027services\u0027].keys()"},{"line_number":376,"context_line":"        for svc in service_list:"},{"line_number":377,"context_line":"            svc \u003d self.config[\u0027services\u0027][svc]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_a458218b","line":374,"range":{"start_line":370,"start_character":8,"end_line":374,"end_character":61},"updated":"2016-05-17 13:03:21.000000000","message":"Please, always use the mapped form. It is more readable and helps to keep a standard. \n\nEx: LOG.info(_LI(\"HNAS model: %(model)s\"), {\u0027model\u0027: version_info[\u0027model\u0027]})","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":20834,"name":"Tomaz Vieira","email":"tomaz.vieira@fit-tecnologia.org.br","username":"tomaz-vieira"},"change_message_id":"0744d5cd336b56348d3f7cdecac74164a1a47cc8","unresolved":false,"context_lines":[{"line_number":367,"context_line":"        self._check_fs_list()"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        version_info \u003d self.backend.get_version()"},{"line_number":370,"context_line":"        LOG.info(_LI(\"HNAS Array NFS driver\"))"},{"line_number":371,"context_line":"        LOG.info(_LI(\"HNAS model: %s\"), version_info[\u0027model\u0027])"},{"line_number":372,"context_line":"        LOG.info(_LI(\"HNAS version: %s\"), version_info[\u0027version\u0027])"},{"line_number":373,"context_line":"        LOG.info(_LI(\"HNAS hardware: %s\"), version_info[\u0027hardware\u0027])"},{"line_number":374,"context_line":"        LOG.info(_LI(\"HNAS S/N: %s\"), version_info[\u0027serial\u0027])"},{"line_number":375,"context_line":"        service_list \u003d self.config[\u0027services\u0027].keys()"},{"line_number":376,"context_line":"        for svc in service_list:"},{"line_number":377,"context_line":"            svc \u003d self.config[\u0027services\u0027][svc]"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_81bdef03","line":374,"range":{"start_line":370,"start_character":8,"end_line":374,"end_character":61},"in_reply_to":"dab17558_a458218b","updated":"2016-05-23 18:10:13.000000000","message":"Done","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"c66018101b5263c579b0607198405bae249645f6","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        for svc in self.config[\u0027services\u0027].keys():"},{"line_number":391,"context_line":"            svc_ip \u003d self.config[\u0027services\u0027][svc][\u0027iscsi_ip\u0027]"},{"line_number":392,"context_line":"            if svc_ip in iscsi_info.keys():"},{"line_number":393,"context_line":"                LOG.info(_LI(\"iSCSI portal found for service: %s\"), svc_ip)"},{"line_number":394,"context_line":"                self.config[\u0027services\u0027][svc][\u0027evs\u0027] \u003d ("},{"line_number":395,"context_line":"                    iscsi_info[svc_ip][\u0027evs_number\u0027])"},{"line_number":396,"context_line":"                self.config[\u0027services\u0027][svc][\u0027iscsi_port\u0027] \u003d \u00273260\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_44ccd534","line":393,"range":{"start_line":393,"start_character":16,"end_line":393,"end_character":75},"updated":"2016-05-17 13:03:21.000000000","message":"ditto","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":20834,"name":"Tomaz Vieira","email":"tomaz.vieira@fit-tecnologia.org.br","username":"tomaz-vieira"},"change_message_id":"0744d5cd336b56348d3f7cdecac74164a1a47cc8","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        for svc in self.config[\u0027services\u0027].keys():"},{"line_number":391,"context_line":"            svc_ip \u003d self.config[\u0027services\u0027][svc][\u0027iscsi_ip\u0027]"},{"line_number":392,"context_line":"            if svc_ip in iscsi_info.keys():"},{"line_number":393,"context_line":"                LOG.info(_LI(\"iSCSI portal found for service: %s\"), svc_ip)"},{"line_number":394,"context_line":"                self.config[\u0027services\u0027][svc][\u0027evs\u0027] \u003d ("},{"line_number":395,"context_line":"                    iscsi_info[svc_ip][\u0027evs_number\u0027])"},{"line_number":396,"context_line":"                self.config[\u0027services\u0027][svc][\u0027iscsi_port\u0027] \u003d \u00273260\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_2149a331","line":393,"range":{"start_line":393,"start_character":16,"end_line":393,"end_character":75},"in_reply_to":"dab17558_44ccd534","updated":"2016-05-23 18:10:13.000000000","message":"Done","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"06960e143620c575be5f4eb771da2c4a734384fe","unresolved":false,"context_lines":[{"line_number":460,"context_line":"       :param volume: dictionary volume reference"},{"line_number":461,"context_line":"       :param new_size: int size in GB to extend"},{"line_number":462,"context_line":"       \"\"\""},{"line_number":463,"context_line":"        LOG.info(_LI(\"Extending LU %(lu)s to %(size)s GB.\"),"},{"line_number":464,"context_line":"                 {\u0027lu\u0027: volume.name, \u0027size\u0027: new_size})"},{"line_number":465,"context_line":"        fs \u003d self._get_service(volume)"},{"line_number":466,"context_line":"        self.backend.extend_lu(fs, new_size, volume.name)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_1d8a231b","line":463,"range":{"start_line":463,"start_character":51,"end_line":463,"end_character":52},"updated":"2016-06-14 16:06:36.000000000","message":"It should be %(size)d? Since new_size is an integer here?","commit_id":"2c1811a2e506004a89234d91e8ba6e6fcc908c68"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"3d6a5ea8e36a74710e342c181c6a51643730a842","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        LOG.info(_LI(\"Cloning %(src)s into %(dst)s\"),"},{"line_number":447,"context_line":"                 {\u0027src\u0027: src.name, \u0027dst\u0027: dst.name})"},{"line_number":448,"context_line":"        fs_label \u003d self._get_service(dst)"},{"line_number":449,"context_line":"        size \u003d six.text_type(src[\u0027size\u0027])"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        self.backend.create_cloned_lu(src.name, fs_label, dst.name)"},{"line_number":452,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_1f20d348","line":449,"range":{"start_line":449,"start_character":0,"end_line":449,"end_character":41},"updated":"2016-06-16 19:57:03.000000000","message":"After your changes, this size is not used anymore.","commit_id":"26b78cfa241ee58d593e504469f648389e5cd6d0"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"32a33c3b1e19bbe20fc53a9cfca4bc489ff12682","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        LOG.info(_LI(\"Cloning %(src)s into %(dst)s\"),"},{"line_number":447,"context_line":"                 {\u0027src\u0027: src.name, \u0027dst\u0027: dst.name})"},{"line_number":448,"context_line":"        fs_label \u003d self._get_service(dst)"},{"line_number":449,"context_line":"        size \u003d six.text_type(src[\u0027size\u0027])"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        self.backend.create_cloned_lu(src.name, fs_label, dst.name)"},{"line_number":452,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_8ce9151d","line":449,"range":{"start_line":449,"start_character":0,"end_line":449,"end_character":41},"in_reply_to":"7aa08908_1f20d348","updated":"2016-06-17 19:48:05.000000000","message":"Done","commit_id":"26b78cfa241ee58d593e504469f648389e5cd6d0"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d9042f58b906d626dfa3457522919cd33bca2a84","unresolved":false,"context_lines":[{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        if src.size \u003c dst.size:"},{"line_number":454,"context_line":"            size \u003d dst.size"},{"line_number":455,"context_line":"            LOG.debug(\"Decreasing dest size from %(old_size)d to %(new_size)d\","},{"line_number":456,"context_line":"                      {\u0027old_size\u0027: dst.size, \u0027new_size\u0027: size})"},{"line_number":457,"context_line":"            self.extend_volume(dst, size)"},{"line_number":458,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_5b608c35","line":455,"range":{"start_line":455,"start_character":23,"end_line":455,"end_character":33},"updated":"2016-06-17 12:33:43.000000000","message":"Increasing","commit_id":"26b78cfa241ee58d593e504469f648389e5cd6d0"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"32a33c3b1e19bbe20fc53a9cfca4bc489ff12682","unresolved":false,"context_lines":[{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        if src.size \u003c dst.size:"},{"line_number":454,"context_line":"            size \u003d dst.size"},{"line_number":455,"context_line":"            LOG.debug(\"Decreasing dest size from %(old_size)d to %(new_size)d\","},{"line_number":456,"context_line":"                      {\u0027old_size\u0027: dst.size, \u0027new_size\u0027: size})"},{"line_number":457,"context_line":"            self.extend_volume(dst, size)"},{"line_number":458,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_ccef9d1b","line":455,"range":{"start_line":455,"start_character":23,"end_line":455,"end_character":33},"in_reply_to":"7aa08908_5b608c35","updated":"2016-06-17 19:48:05.000000000","message":"Done","commit_id":"26b78cfa241ee58d593e504469f648389e5cd6d0"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d9042f58b906d626dfa3457522919cd33bca2a84","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        if src.size \u003c dst.size:"},{"line_number":454,"context_line":"            size \u003d dst.size"},{"line_number":455,"context_line":"            LOG.debug(\"Decreasing dest size from %(old_size)d to %(new_size)d\","},{"line_number":456,"context_line":"                      {\u0027old_size\u0027: dst.size, \u0027new_size\u0027: size})"},{"line_number":457,"context_line":"            self.extend_volume(dst, size)"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"        return {\u0027provider_location\u0027: self._get_provider_location(dst)}"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_dbdbdceb","line":456,"range":{"start_line":456,"start_character":35,"end_line":456,"end_character":43},"updated":"2016-06-17 12:33:43.000000000","message":"src.size","commit_id":"26b78cfa241ee58d593e504469f648389e5cd6d0"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"32a33c3b1e19bbe20fc53a9cfca4bc489ff12682","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        if src.size \u003c dst.size:"},{"line_number":454,"context_line":"            size \u003d dst.size"},{"line_number":455,"context_line":"            LOG.debug(\"Decreasing dest size from %(old_size)d to %(new_size)d\","},{"line_number":456,"context_line":"                      {\u0027old_size\u0027: dst.size, \u0027new_size\u0027: size})"},{"line_number":457,"context_line":"            self.extend_volume(dst, size)"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"        return {\u0027provider_location\u0027: self._get_provider_location(dst)}"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_acf4d1f0","line":456,"range":{"start_line":456,"start_character":35,"end_line":456,"end_character":43},"in_reply_to":"7aa08908_dbdbdceb","updated":"2016-06-17 19:48:05.000000000","message":"Done","commit_id":"26b78cfa241ee58d593e504469f648389e5cd6d0"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"3d6a5ea8e36a74710e342c181c6a51643730a842","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        :returns: the provider location of the snapshot"},{"line_number":555,"context_line":"        \"\"\""},{"line_number":556,"context_line":"        size \u003d int(snapshot.volume_size) * units.Ki"},{"line_number":557,"context_line":"        LOG.info(_LI(\"Creating LU %(lu)s of size %(sz)d MB\"),"},{"line_number":558,"context_line":"                 {\u0027lu\u0027: snapshot.name, \u0027sz\u0027: size})"},{"line_number":559,"context_line":"        fs \u003d self._get_service(volume)"},{"line_number":560,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_1f95733f","line":557,"range":{"start_line":557,"start_character":54,"end_line":557,"end_character":55},"updated":"2016-06-16 19:57:03.000000000","message":"Why logging in MB here? All other size uses is in GB.","commit_id":"26b78cfa241ee58d593e504469f648389e5cd6d0"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d9042f58b906d626dfa3457522919cd33bca2a84","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        :returns: the provider location of the snapshot"},{"line_number":555,"context_line":"        \"\"\""},{"line_number":556,"context_line":"        size \u003d int(snapshot.volume_size) * units.Ki"},{"line_number":557,"context_line":"        LOG.info(_LI(\"Creating LU %(lu)s of size %(sz)d MB\"),"},{"line_number":558,"context_line":"                 {\u0027lu\u0027: snapshot.name, \u0027sz\u0027: size})"},{"line_number":559,"context_line":"        fs \u003d self._get_service(volume)"},{"line_number":560,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_3b94a035","line":557,"range":{"start_line":557,"start_character":54,"end_line":557,"end_character":55},"in_reply_to":"7aa08908_1f95733f","updated":"2016-06-17 12:33:43.000000000","message":"Good point.","commit_id":"26b78cfa241ee58d593e504469f648389e5cd6d0"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"32a33c3b1e19bbe20fc53a9cfca4bc489ff12682","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        :returns: the provider location of the snapshot"},{"line_number":555,"context_line":"        \"\"\""},{"line_number":556,"context_line":"        size \u003d int(snapshot.volume_size) * units.Ki"},{"line_number":557,"context_line":"        LOG.info(_LI(\"Creating LU %(lu)s of size %(sz)d MB\"),"},{"line_number":558,"context_line":"                 {\u0027lu\u0027: snapshot.name, \u0027sz\u0027: size})"},{"line_number":559,"context_line":"        fs \u003d self._get_service(volume)"},{"line_number":560,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_2ce1012b","line":557,"range":{"start_line":557,"start_character":54,"end_line":557,"end_character":55},"in_reply_to":"7aa08908_3b94a035","updated":"2016-06-17 19:48:05.000000000","message":"Done","commit_id":"26b78cfa241ee58d593e504469f648389e5cd6d0"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"96d63ed9587c2e51d8ca3564701895ef888a7166","unresolved":false,"context_lines":[{"line_number":374,"context_line":"        self._check_fs_list()"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        version_info \u003d self.backend.get_version()"},{"line_number":377,"context_line":"        LOG.info(_LI(\"HNAS Array NFS driver\"))"},{"line_number":378,"context_line":"        LOG.info(_LI(\"HNAS model: %(mdl)s\"), {\u0027mdl\u0027: version_info[\u0027model\u0027]})"},{"line_number":379,"context_line":"        LOG.info(_LI(\"HNAS version: %(version)s\"),"},{"line_number":380,"context_line":"                 {\u0027version\u0027: version_info[\u0027version\u0027]})"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a9d85d2_1fbbeac5","line":377,"range":{"start_line":377,"start_character":33,"end_line":377,"end_character":36},"updated":"2016-06-20 17:33:45.000000000","message":"ISCSI","commit_id":"cdcfdcd27e99cd39a7775a24b6ea3f24997af349"},{"author":{"_account_id":19144,"name":"José Mello","email":"jose.eduardo.jr@gmail.com","username":"jose-eduardo-jr"},"change_message_id":"a9cd15bc5a00304f7dcec8026add14e796f9e378","unresolved":false,"context_lines":[{"line_number":374,"context_line":"        self._check_fs_list()"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        version_info \u003d self.backend.get_version()"},{"line_number":377,"context_line":"        LOG.info(_LI(\"HNAS Array iSCSI driver\"))"},{"line_number":378,"context_line":"        LOG.info(_LI(\"HNAS model: %(mdl)s\"), {\u0027mdl\u0027: version_info[\u0027model\u0027]})"},{"line_number":379,"context_line":"        LOG.info(_LI(\"HNAS version: %(version)s\"),"},{"line_number":380,"context_line":"                 {\u0027version\u0027: version_info[\u0027version\u0027]})"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_493fa625","line":377,"range":{"start_line":377,"start_character":27,"end_line":377,"end_character":32},"updated":"2016-06-21 19:08:31.000000000","message":"Remove \"Array\"","commit_id":"ed6e6e208ae146fb9a02aec83a545a91df46b531"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"840ea47a4ff5a4f29ce76cd246fb4ccc159331d3","unresolved":false,"context_lines":[{"line_number":374,"context_line":"        self._check_fs_list()"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        version_info \u003d self.backend.get_version()"},{"line_number":377,"context_line":"        LOG.info(_LI(\"HNAS Array iSCSI driver\"))"},{"line_number":378,"context_line":"        LOG.info(_LI(\"HNAS model: %(mdl)s\"), {\u0027mdl\u0027: version_info[\u0027model\u0027]})"},{"line_number":379,"context_line":"        LOG.info(_LI(\"HNAS version: %(version)s\"),"},{"line_number":380,"context_line":"                 {\u0027version\u0027: version_info[\u0027version\u0027]})"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_c751bd10","line":377,"range":{"start_line":377,"start_character":27,"end_line":377,"end_character":32},"in_reply_to":"3aaa91ec_493fa625","updated":"2016-06-21 19:25:02.000000000","message":"Done","commit_id":"ed6e6e208ae146fb9a02aec83a545a91df46b531"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"d980f43d11295c0c428a224b81a18eb10f528a77","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"        self.backend.rename_existing_lu(fslabel, volume.name, new_name)"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        LOG.info(_LI(\"Cinder ISCSI volume with current path %(path)s is \""},{"line_number":680,"context_line":"                     \"no longer being managed. The new name is %(unm)s.\"),"},{"line_number":681,"context_line":"                 {\u0027path\u0027: vol_path, \u0027unm\u0027: new_name})"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    def _get_provider_location(self, volume):"},{"line_number":684,"context_line":"        \"\"\"Gets the provider location of a given volume"}],"source_content_type":"text/x-python","patch_set":15,"id":"3aaa91ec_4bd1e156","line":681,"range":{"start_line":679,"start_character":8,"end_line":681,"end_character":53},"updated":"2016-06-29 13:25:16.000000000","message":"LOG.info(_LI(\"The volume with path %(old)s is no longer being managed by Cinder. However, it was not deleted and can be found in the path %(cr)s.\"), {\u0027old\u0027: vol_path, \u0027cr\u0027: new_path})","commit_id":"ba287cc4352aaa46ff8249d909b79e1c2b3fb1fe"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"67d4422cbfe13a8262318a847add332c5255a720","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"        self.backend.rename_existing_lu(fslabel, volume.name, new_name)"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        LOG.info(_LI(\"Cinder ISCSI volume with current path %(path)s is \""},{"line_number":680,"context_line":"                     \"no longer being managed. The new name is %(unm)s.\"),"},{"line_number":681,"context_line":"                 {\u0027path\u0027: vol_path, \u0027unm\u0027: new_name})"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    def _get_provider_location(self, volume):"},{"line_number":684,"context_line":"        \"\"\"Gets the provider location of a given volume"}],"source_content_type":"text/x-python","patch_set":15,"id":"3aaa91ec_a4d628ef","line":681,"range":{"start_line":679,"start_character":8,"end_line":681,"end_character":53},"in_reply_to":"3aaa91ec_4bd1e156","updated":"2016-07-01 19:53:03.000000000","message":"Done","commit_id":"ba287cc4352aaa46ff8249d909b79e1c2b3fb1fe"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"86500940b80c67a4b9b0901fc58eb081ccca6c4c","unresolved":false,"context_lines":[{"line_number":427,"context_line":"        :returns: the volume provider location"},{"line_number":428,"context_line":"        \"\"\""},{"line_number":429,"context_line":"        LOG.info(_LI(\u0027Creating %(size)s GB volume %(id)s.\u0027),"},{"line_number":430,"context_line":"                 {\u0027id\u0027: volume.name, \u0027size\u0027: volume.size})"},{"line_number":431,"context_line":"        fs \u003d self._get_service(volume)"},{"line_number":432,"context_line":"        size \u003d six.text_type(volume.size)"},{"line_number":433,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1aa78d24_a97fa415","line":430,"updated":"2016-07-11 23:38:52.000000000","message":"instead of doing this, you should look at the @utils.trace mechanism which will dump all inputs and return values.\nOnly use it on the driver entry points.\n\nFor example look here:\nhttps://review.openstack.org/#/c/339116/","commit_id":"3b6fde3ee541703e5ce8d8ba0a612dd912ae0bef"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"4d544c12a571c480ca1e611697441d480345a66c","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            service \u003d ("},{"line_number":173,"context_line":"                svc[\u0027iscsi_ip\u0027], svc[\u0027iscsi_port\u0027], svc[\u0027evs\u0027], svc[\u0027port\u0027],"},{"line_number":174,"context_line":"                fs_label, lu_info[\u0027tgt\u0027][\u0027alias\u0027], lu_info[\u0027tgt\u0027][\u0027secret\u0027])"},{"line_number":175,"context_line":"            LOG.info(_LI(\"Volume %(volid)s already mapped on target %(tgt)s \""},{"line_number":176,"context_line":"                         \"to LUN %(lunid)s.\"),"},{"line_number":177,"context_line":"                     {\u0027volid\u0027: volume.name, \u0027tgt\u0027: lu_info[\u0027tgt\u0027][\u0027alias\u0027],"},{"line_number":178,"context_line":"                      \u0027lunid\u0027: lu_info[\u0027id\u0027]})"}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_1a0ddb37","line":175,"range":{"start_line":175,"start_character":35,"end_line":175,"end_character":40},"updated":"2016-07-22 12:29:43.000000000","message":"nit: vol_name","commit_id":"a5df4b36f4be5cc0bc82006a24a16549a38ff0a5"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"9b87a92562850dcadf97719150859f3b158da80a","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            service \u003d ("},{"line_number":173,"context_line":"                svc[\u0027iscsi_ip\u0027], svc[\u0027iscsi_port\u0027], svc[\u0027evs\u0027], svc[\u0027port\u0027],"},{"line_number":174,"context_line":"                fs_label, lu_info[\u0027tgt\u0027][\u0027alias\u0027], lu_info[\u0027tgt\u0027][\u0027secret\u0027])"},{"line_number":175,"context_line":"            LOG.info(_LI(\"Volume %(volid)s already mapped on target %(tgt)s \""},{"line_number":176,"context_line":"                         \"to LUN %(lunid)s.\"),"},{"line_number":177,"context_line":"                     {\u0027volid\u0027: volume.name, \u0027tgt\u0027: lu_info[\u0027tgt\u0027][\u0027alias\u0027],"},{"line_number":178,"context_line":"                      \u0027lunid\u0027: lu_info[\u0027id\u0027]})"}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_14c56c3c","line":175,"range":{"start_line":175,"start_character":35,"end_line":175,"end_character":40},"in_reply_to":"dada55a8_1a0ddb37","updated":"2016-07-25 11:21:32.000000000","message":"Done","commit_id":"a5df4b36f4be5cc0bc82006a24a16549a38ff0a5"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"4d544c12a571c480ca1e611697441d480345a66c","unresolved":false,"context_lines":[{"line_number":492,"context_line":"                                               connector[\u0027initiator\u0027])"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":495,"context_line":"            msg \u003d (_(\"Error attaching volume %(vol)s. \""},{"line_number":496,"context_line":"                     \"Target limit might be reached!\") % {\u0027vol\u0027: volume.id})"},{"line_number":497,"context_line":"            raise exception.ISCSITargetAttachFailed(message\u003dmsg)"},{"line_number":498,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_dae063cf","line":495,"updated":"2016-07-22 12:29:43.000000000","message":"The exception message is not part of msg. Please log this message using LOG.exception.","commit_id":"a5df4b36f4be5cc0bc82006a24a16549a38ff0a5"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"9b87a92562850dcadf97719150859f3b158da80a","unresolved":false,"context_lines":[{"line_number":492,"context_line":"                                               connector[\u0027initiator\u0027])"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":495,"context_line":"            msg \u003d (_(\"Error attaching volume %(vol)s. \""},{"line_number":496,"context_line":"                     \"Target limit might be reached!\") % {\u0027vol\u0027: volume.id})"},{"line_number":497,"context_line":"            raise exception.ISCSITargetAttachFailed(message\u003dmsg)"},{"line_number":498,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_5449a4b6","line":495,"in_reply_to":"dada55a8_dae063cf","updated":"2016-07-25 11:21:32.000000000","message":"Done","commit_id":"a5df4b36f4be5cc0bc82006a24a16549a38ff0a5"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"725b766f9019a8be9defef28f0ddf609a32f4074","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        if pool !\u003d fs_label:"},{"line_number":331,"context_line":"            msg \u003d (_(\"Failed to manage existing volume because the pool \""},{"line_number":332,"context_line":"                     \"%(pool)s of the volume type chosen does not match the \""},{"line_number":333,"context_line":"                     \"file system %(fs_label)s passed in the volume reference\")"},{"line_number":334,"context_line":"                   % {\u0027fs_label\u0027: fs_label, \u0027pool\u0027: pool})"},{"line_number":335,"context_line":"            LOG.error(msg)"},{"line_number":336,"context_line":"            raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":24,"id":"9ad45d7e_b075f032","line":333,"range":{"start_line":333,"start_character":68,"end_line":333,"end_character":77},"updated":"2016-08-12 00:57:52.000000000","message":"Missing . after \"reference\"","commit_id":"809f4f5a99f3015f81f8460df1e4ec4654daf87d"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"4b884307d90835136c0a867fe13c8b676831f4e3","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        if pool !\u003d fs_label:"},{"line_number":331,"context_line":"            msg \u003d (_(\"Failed to manage existing volume because the pool \""},{"line_number":332,"context_line":"                     \"%(pool)s of the volume type chosen does not match the \""},{"line_number":333,"context_line":"                     \"file system %(fs_label)s passed in the volume reference\")"},{"line_number":334,"context_line":"                   % {\u0027fs_label\u0027: fs_label, \u0027pool\u0027: pool})"},{"line_number":335,"context_line":"            LOG.error(msg)"},{"line_number":336,"context_line":"            raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":24,"id":"9ad45d7e_d5c5d70a","line":333,"range":{"start_line":333,"start_character":68,"end_line":333,"end_character":77},"in_reply_to":"9ad45d7e_b075f032","updated":"2016-08-16 11:21:21.000000000","message":"Done","commit_id":"809f4f5a99f3015f81f8460df1e4ec4654daf87d"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"725b766f9019a8be9defef28f0ddf609a32f4074","unresolved":false,"context_lines":[{"line_number":331,"context_line":"            msg \u003d (_(\"Failed to manage existing volume because the pool \""},{"line_number":332,"context_line":"                     \"%(pool)s of the volume type chosen does not match the \""},{"line_number":333,"context_line":"                     \"file system %(fs_label)s passed in the volume reference\")"},{"line_number":334,"context_line":"                   % {\u0027fs_label\u0027: fs_label, \u0027pool\u0027: pool})"},{"line_number":335,"context_line":"            LOG.error(msg)"},{"line_number":336,"context_line":"            raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":337,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"9ad45d7e_d0e224d4","line":334,"range":{"start_line":334,"start_character":22,"end_line":334,"end_character":56},"updated":"2016-08-12 00:57:52.000000000","message":"better to use the order ：\n\u0027pool\u0027: pool, \u0027fs_label\u0027: fs_label","commit_id":"809f4f5a99f3015f81f8460df1e4ec4654daf87d"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"4b884307d90835136c0a867fe13c8b676831f4e3","unresolved":false,"context_lines":[{"line_number":331,"context_line":"            msg \u003d (_(\"Failed to manage existing volume because the pool \""},{"line_number":332,"context_line":"                     \"%(pool)s of the volume type chosen does not match the \""},{"line_number":333,"context_line":"                     \"file system %(fs_label)s passed in the volume reference\")"},{"line_number":334,"context_line":"                   % {\u0027fs_label\u0027: fs_label, \u0027pool\u0027: pool})"},{"line_number":335,"context_line":"            LOG.error(msg)"},{"line_number":336,"context_line":"            raise exception.ManageExistingVolumeTypeMismatch(reason\u003dmsg)"},{"line_number":337,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"9ad45d7e_b5cae318","line":334,"range":{"start_line":334,"start_character":22,"end_line":334,"end_character":56},"in_reply_to":"9ad45d7e_d0e224d4","updated":"2016-08-16 11:21:21.000000000","message":"Done","commit_id":"809f4f5a99f3015f81f8460df1e4ec4654daf87d"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"725b766f9019a8be9defef28f0ddf609a32f4074","unresolved":false,"context_lines":[{"line_number":377,"context_line":"        self._check_fs_list()"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"        version_info \u003d self.backend.get_version()"},{"line_number":380,"context_line":"        LOG.info(_LI(\"HNAS iSCSI driver.\"))"},{"line_number":381,"context_line":"        LOG.info(_LI(\"HNAS model: %(mdl)s\"), {\u0027mdl\u0027: version_info[\u0027model\u0027]})"},{"line_number":382,"context_line":"        LOG.info(_LI(\"HNAS version: %(version)s\"),"},{"line_number":383,"context_line":"                 {\u0027version\u0027: version_info[\u0027version\u0027]})"},{"line_number":384,"context_line":"        LOG.info(_LI(\"HNAS hardware: %(hw)s\"),"},{"line_number":385,"context_line":"                 {\u0027hw\u0027: version_info[\u0027hardware\u0027]})"},{"line_number":386,"context_line":"        LOG.info(_LI(\"HNAS S/N: %(sn)s\"), {\u0027sn\u0027: version_info[\u0027serial\u0027]})"},{"line_number":387,"context_line":"        service_list \u003d self.config[\u0027services\u0027].keys()"},{"line_number":388,"context_line":"        for svc in service_list:"},{"line_number":389,"context_line":"            svc \u003d self.config[\u0027services\u0027][svc]"}],"source_content_type":"text/x-python","patch_set":24,"id":"9ad45d7e_503d9429","line":386,"range":{"start_line":380,"start_character":8,"end_line":386,"end_character":73},"updated":"2016-08-12 00:57:52.000000000","message":"Why so many LOG.info here, maybe can use one LOG.info?","commit_id":"809f4f5a99f3015f81f8460df1e4ec4654daf87d"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"4b884307d90835136c0a867fe13c8b676831f4e3","unresolved":false,"context_lines":[{"line_number":377,"context_line":"        self._check_fs_list()"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"        version_info \u003d self.backend.get_version()"},{"line_number":380,"context_line":"        LOG.info(_LI(\"HNAS iSCSI driver.\"))"},{"line_number":381,"context_line":"        LOG.info(_LI(\"HNAS model: %(mdl)s\"), {\u0027mdl\u0027: version_info[\u0027model\u0027]})"},{"line_number":382,"context_line":"        LOG.info(_LI(\"HNAS version: %(version)s\"),"},{"line_number":383,"context_line":"                 {\u0027version\u0027: version_info[\u0027version\u0027]})"},{"line_number":384,"context_line":"        LOG.info(_LI(\"HNAS hardware: %(hw)s\"),"},{"line_number":385,"context_line":"                 {\u0027hw\u0027: version_info[\u0027hardware\u0027]})"},{"line_number":386,"context_line":"        LOG.info(_LI(\"HNAS S/N: %(sn)s\"), {\u0027sn\u0027: version_info[\u0027serial\u0027]})"},{"line_number":387,"context_line":"        service_list \u003d self.config[\u0027services\u0027].keys()"},{"line_number":388,"context_line":"        for svc in service_list:"},{"line_number":389,"context_line":"            svc \u003d self.config[\u0027services\u0027][svc]"}],"source_content_type":"text/x-python","patch_set":24,"id":"9ad45d7e_f9e73544","line":386,"range":{"start_line":380,"start_character":8,"end_line":386,"end_character":73},"in_reply_to":"9ad45d7e_503d9429","updated":"2016-08-16 11:21:21.000000000","message":"Is there any downside in keeping it?","commit_id":"809f4f5a99f3015f81f8460df1e4ec4654daf87d"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"725b766f9019a8be9defef28f0ddf609a32f4074","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"        LOG.info(_LI(\"The volume with path %(old)s is no longer being managed \""},{"line_number":678,"context_line":"                     \"by Cinder. However, it was not deleted and can be found \""},{"line_number":679,"context_line":"                     \"with the new name %(cr)s.\"),"},{"line_number":680,"context_line":"                 {\u0027old\u0027: vol_path, \u0027cr\u0027: new_name})"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":"    def _get_provider_location(self, volume):"}],"source_content_type":"text/x-python","patch_set":24,"id":"9ad45d7e_7057f857","line":679,"range":{"start_line":679,"start_character":31,"end_line":679,"end_character":46},"updated":"2016-08-12 00:57:52.000000000","message":"better to add \"on array\"?","commit_id":"809f4f5a99f3015f81f8460df1e4ec4654daf87d"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"4b884307d90835136c0a867fe13c8b676831f4e3","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"        LOG.info(_LI(\"The volume with path %(old)s is no longer being managed \""},{"line_number":678,"context_line":"                     \"by Cinder. However, it was not deleted and can be found \""},{"line_number":679,"context_line":"                     \"with the new name %(cr)s.\"),"},{"line_number":680,"context_line":"                 {\u0027old\u0027: vol_path, \u0027cr\u0027: new_name})"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":"    def _get_provider_location(self, volume):"}],"source_content_type":"text/x-python","patch_set":24,"id":"9ad45d7e_d59317ff","line":679,"range":{"start_line":679,"start_character":31,"end_line":679,"end_character":46},"in_reply_to":"9ad45d7e_7057f857","updated":"2016-08-16 11:21:21.000000000","message":"Done","commit_id":"809f4f5a99f3015f81f8460df1e4ec4654daf87d"}],"cinder/volume/drivers/hitachi/hnas_nfs.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"            self.pools.append(pool)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        LOG.debug(\"Configured pools: %(pool)s\", {\u0027pool\u0027: self.pools})"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    def _clone_volume(self, src_vol, clone_name, src_name\u003dNone):"},{"line_number":385,"context_line":"        \"\"\"Clones mounted volume using the HNAS file_clone."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_22836704","line":382,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.info(\"HNAS Driver loaded successfully.\")","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":415,"context_line":"        :returns: the volume provider_location"},{"line_number":416,"context_line":"        \"\"\""},{"line_number":417,"context_line":"        self._ensure_shares_mounted()"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"        (fs_id, path, fslabel) \u003d self._get_service(volume)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        volume.provider_location \u003d fs_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_82a51ba3","line":418,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.info(): Creating volume...","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        (nfs_share, nfs_mount, vol_path"},{"line_number":524,"context_line":"         ) \u003d self._get_share_mount_and_vol_from_vol_ref(existing_vol_ref)"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        LOG.debug(\"Asked to manage NFS volume %(vol)s, with vol ref %(ref)s.\","},{"line_number":527,"context_line":"                  {\u0027vol\u0027: volume.id,"},{"line_number":528,"context_line":"                   \u0027ref\u0027: existing_vol_ref[\u0027source-name\u0027]})"},{"line_number":529,"context_line":"        self._check_pool_and_share(volume, nfs_share)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_42e5c3d9","line":526,"range":{"start_line":526,"start_character":8,"end_line":526,"end_character":16},"updated":"2016-04-29 13:43:36.000000000","message":"LOG.info()","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":619,"context_line":"        managed."},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        :param volume: cinder volume to unmanage"},{"line_number":622,"context_line":"        \"\"\""},{"line_number":623,"context_line":"        vol_str \u003d CONF.volume_name_template % volume.id"},{"line_number":624,"context_line":"        path \u003d self._get_mount_point_for_share(volume.provider_location)"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_42fca371","line":622,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.info(): Un-managing volume...","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":19144,"name":"José Mello","email":"jose.eduardo.jr@gmail.com","username":"jose-eduardo-jr"},"change_message_id":"a9cd15bc5a00304f7dcec8026add14e796f9e378","unresolved":false,"context_lines":[{"line_number":303,"context_line":"    def do_setup(self, context):"},{"line_number":304,"context_line":"        \"\"\"Perform internal driver setup.\"\"\""},{"line_number":305,"context_line":"        version_info \u003d self.backend.get_version()"},{"line_number":306,"context_line":"        LOG.info(_LI(\"HNAS Array NFS driver\"))"},{"line_number":307,"context_line":"        LOG.info(_LI(\"HNAS model: %(mdl)s\"), {\u0027mdl\u0027: version_info[\u0027model\u0027]})"},{"line_number":308,"context_line":"        LOG.info(_LI(\"HNAS version: %(ver)s\"),"},{"line_number":309,"context_line":"                 {\u0027ver\u0027: version_info[\u0027version\u0027]})"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_49d166fb","line":306,"range":{"start_line":306,"start_character":27,"end_line":306,"end_character":32},"updated":"2016-06-21 19:08:31.000000000","message":"remove \"Array\"","commit_id":"ed6e6e208ae146fb9a02aec83a545a91df46b531"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"840ea47a4ff5a4f29ce76cd246fb4ccc159331d3","unresolved":false,"context_lines":[{"line_number":303,"context_line":"    def do_setup(self, context):"},{"line_number":304,"context_line":"        \"\"\"Perform internal driver setup.\"\"\""},{"line_number":305,"context_line":"        version_info \u003d self.backend.get_version()"},{"line_number":306,"context_line":"        LOG.info(_LI(\"HNAS Array NFS driver\"))"},{"line_number":307,"context_line":"        LOG.info(_LI(\"HNAS model: %(mdl)s\"), {\u0027mdl\u0027: version_info[\u0027model\u0027]})"},{"line_number":308,"context_line":"        LOG.info(_LI(\"HNAS version: %(ver)s\"),"},{"line_number":309,"context_line":"                 {\u0027ver\u0027: version_info[\u0027version\u0027]})"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_473e6db9","line":306,"range":{"start_line":306,"start_character":27,"end_line":306,"end_character":32},"in_reply_to":"3aaa91ec_49d166fb","updated":"2016-06-21 19:25:02.000000000","message":"Done","commit_id":"ed6e6e208ae146fb9a02aec83a545a91df46b531"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"d980f43d11295c0c428a224b81a18eb10f528a77","unresolved":false,"context_lines":[{"line_number":631,"context_line":"            self._execute(\"mv\", vol_path, new_path,"},{"line_number":632,"context_line":"                          run_as_root\u003dFalse, check_exit_code\u003dTrue)"},{"line_number":633,"context_line":""},{"line_number":634,"context_line":"            LOG.info(_LI(\"Cinder NFS volume with current path %(cr)s is \""},{"line_number":635,"context_line":"                         \"no longer being managed.\"), {\u0027cr\u0027: new_path})"},{"line_number":636,"context_line":""},{"line_number":637,"context_line":"        except (OSError, ValueError):"},{"line_number":638,"context_line":"            LOG.exception(_LE(\"The NFS Volume %(cr)s does not exist.\"),"}],"source_content_type":"text/x-python","patch_set":15,"id":"3aaa91ec_10742434","line":635,"range":{"start_line":634,"start_character":12,"end_line":635,"end_character":71},"updated":"2016-06-29 13:25:16.000000000","message":"If a new patch is required, this message could be improved. Something like the message below would be clearer IMO:\n\nLOG.info(_LI(\"The volume with path %(old)s is no longer being managed by Cinder. However, it was not deleted and can be found in the path %(cr)s.\"), {\u0027old\u0027: vol_path, \u0027cr\u0027: new_path})","commit_id":"ba287cc4352aaa46ff8249d909b79e1c2b3fb1fe"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"67d4422cbfe13a8262318a847add332c5255a720","unresolved":false,"context_lines":[{"line_number":631,"context_line":"            self._execute(\"mv\", vol_path, new_path,"},{"line_number":632,"context_line":"                          run_as_root\u003dFalse, check_exit_code\u003dTrue)"},{"line_number":633,"context_line":""},{"line_number":634,"context_line":"            LOG.info(_LI(\"Cinder NFS volume with current path %(cr)s is \""},{"line_number":635,"context_line":"                         \"no longer being managed.\"), {\u0027cr\u0027: new_path})"},{"line_number":636,"context_line":""},{"line_number":637,"context_line":"        except (OSError, ValueError):"},{"line_number":638,"context_line":"            LOG.exception(_LE(\"The NFS Volume %(cr)s does not exist.\"),"}],"source_content_type":"text/x-python","patch_set":15,"id":"3aaa91ec_e4a310b0","line":635,"range":{"start_line":634,"start_character":12,"end_line":635,"end_character":71},"in_reply_to":"3aaa91ec_10742434","updated":"2016-07-01 19:53:03.000000000","message":"Yes, relating both paths in the same msg make it much more clear. Thanks!","commit_id":"ba287cc4352aaa46ff8249d909b79e1c2b3fb1fe"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"d980f43d11295c0c428a224b81a18eb10f528a77","unresolved":false,"context_lines":[{"line_number":635,"context_line":"                         \"no longer being managed.\"), {\u0027cr\u0027: new_path})"},{"line_number":636,"context_line":""},{"line_number":637,"context_line":"        except (OSError, ValueError):"},{"line_number":638,"context_line":"            LOG.exception(_LE(\"The NFS Volume %(cr)s does not exist.\"),"},{"line_number":639,"context_line":"                          {\u0027cr\u0027: new_path})"}],"source_content_type":"text/x-python","patch_set":15,"id":"3aaa91ec_7014884c","line":639,"range":{"start_line":638,"start_character":13,"end_line":639,"end_character":43},"updated":"2016-06-29 13:25:16.000000000","message":"I think this message should be related to the vol_path and not to the new_path, since this new_path will only exist if the \"mv\" command is successfully run.","commit_id":"ba287cc4352aaa46ff8249d909b79e1c2b3fb1fe"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"67d4422cbfe13a8262318a847add332c5255a720","unresolved":false,"context_lines":[{"line_number":635,"context_line":"                         \"no longer being managed.\"), {\u0027cr\u0027: new_path})"},{"line_number":636,"context_line":""},{"line_number":637,"context_line":"        except (OSError, ValueError):"},{"line_number":638,"context_line":"            LOG.exception(_LE(\"The NFS Volume %(cr)s does not exist.\"),"},{"line_number":639,"context_line":"                          {\u0027cr\u0027: new_path})"}],"source_content_type":"text/x-python","patch_set":15,"id":"3aaa91ec_84cfac56","line":639,"range":{"start_line":638,"start_character":13,"end_line":639,"end_character":43},"in_reply_to":"3aaa91ec_7014884c","updated":"2016-07-01 19:53:03.000000000","message":"ofc, logging new path is this case doesn\u0027t make sense. Changing it. Thanks!","commit_id":"ba287cc4352aaa46ff8249d909b79e1c2b3fb1fe"}],"cinder/volume/drivers/hitachi/hnas_utils.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        msg \u003d (_(\"Credentials configuration parameters \""},{"line_number":105,"context_line":"                 \"missing: you need to set hnas_password \""},{"line_number":106,"context_line":"                 \"or hnas_%(tp)s_ssh_private_key \""},{"line_number":107,"context_line":"                 \"in the cinder.conf.\"))"},{"line_number":108,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    if config[\u0027mgmt_ip0\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_02146b9d","line":107,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.error(msg) so we can have the message in the enterprise MSG_TABLE.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    if config[\u0027mgmt_ip0\u0027] is None:"},{"line_number":111,"context_line":"        msg \u003d (_(\"The config parameter hnas_mgmt_ip0 \""},{"line_number":112,"context_line":"                 \"is not set in the cinder.conf.\"))"},{"line_number":113,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    if config[\u0027services\u0027][vol_type][\u0027hdp\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_62239f05","line":112,"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        msg \u003d (_(\"The config parameter hnas_svc%(idx)s_hdp is \""},{"line_number":117,"context_line":"                 \"not set in the cinder.conf. Note that you need to \""},{"line_number":118,"context_line":"                 \"have at least one pool configured.\") %"},{"line_number":119,"context_line":"               {\u0027idx\u0027: idx})"},{"line_number":120,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    if config[\u0027services\u0027][vol_type][\u0027volume_type\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_c21ef3b9","line":119,"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                 \"hnas_svc%(idx)s_volume_type is not set \""},{"line_number":125,"context_line":"                 \"in the cinder.conf. Note that you need to \""},{"line_number":126,"context_line":"                 \"have at least one pool configured.\") %"},{"line_number":127,"context_line":"               {\u0027idx\u0027: idx})"},{"line_number":128,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    if (dv_type \u003d\u003d \u0027iscsi\u0027 and"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_a21937d3","line":127,"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        msg \u003d (_(\"The config parameter \""},{"line_number":133,"context_line":"                 \"hnas_svc%(idx)s_iscsi_ip is not set \""},{"line_number":134,"context_line":"                 \"in the cinder.conf. Note that you need to \""},{"line_number":135,"context_line":"                 \"have at least one pool configured.\") % {\u0027idx\u0027: idx})"},{"line_number":136,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_027bcbf5","line":135,"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    val \u003d root.findtext(element)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    # mandatory parameter not found"},{"line_number":150,"context_line":"    if val is None and check:"},{"line_number":151,"context_line":"        raise exception.ParameterNotFound(param\u003delement)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    # tag not found"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_6251df61","line":150,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.error() or LOG.exception() - provided LOG.exception() also prints \"ERROR\".","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    # tag found but empty parameter."},{"line_number":159,"context_line":"    if not val.strip():"},{"line_number":160,"context_line":"        if svc_tag_pattern.search(element):"},{"line_number":161,"context_line":"            return \"\""},{"line_number":162,"context_line":"        raise exception.ParameterNotFound(param\u003delement)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    LOG.debug(\"%(element)s: %(val)s\","}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_a24777a1","line":161,"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    if not os.access(xml_config_file, os.R_OK):"},{"line_number":182,"context_line":"        msg \u003d (_(\"Can\u0027t find HNAS configurations on cinder.conf neither \""},{"line_number":183,"context_line":"                 \"on the path %(xml)s.\") % {\u0027xml\u0027: xml_config_file})"},{"line_number":184,"context_line":"        raise exception.NotFound(message\u003dmsg)"},{"line_number":185,"context_line":"    else:"},{"line_number":186,"context_line":"        LOG.warning(_LW(\"This XML configuration file %(xml)s is deprecated. \""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_e2cb2f1c","line":183,"updated":"2016-04-29 13:43:36.000000000","message":"LOG.error()","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":193,"context_line":"    try:"},{"line_number":194,"context_line":"        root \u003d ETree.parse(xml_config_file).getroot()"},{"line_number":195,"context_line":"    except ETree.ParseError:"},{"line_number":196,"context_line":"        msg \u003d (_(\"Error parsing config file: %s\") % xml_config_file)"},{"line_number":197,"context_line":"        raise exception.ConfigNotFound(message\u003dmsg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    # mandatory parameters for NFS and iSCSI"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_62d8bfef","line":196,"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":212,"context_line":"    config[\u0027password\u0027] \u003d _xml_read(root, \u0027password\u0027)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    if config[\u0027ssh_private_key\u0027] is None and config[\u0027password\u0027] is None:"},{"line_number":215,"context_line":"        msg \u003d (_(\"Missing authentication option (passw or private key file).\"))"},{"line_number":216,"context_line":"        raise exception.ConfigNotFound(message\u003dmsg)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    config[\u0027ssh_port\u0027] \u003d _xml_read(root, \u0027ssh_port\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_a2de57d7","line":215,"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a26726884119fd301b217f559027a8bbb34759a7","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        config[\u0027fs\u0027][service[\u0027hdp\u0027]] \u003d service[\u0027hdp\u0027]"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    # at least one service required!"},{"line_number":238,"context_line":"    if not config[\u0027services\u0027].keys():"},{"line_number":239,"context_line":"        raise exception.ParameterNotFound(param\u003d\"No service found\")"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    return config"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_02f0eb65","line":238,"updated":"2016-04-29 13:43:36.000000000","message":"Same.","commit_id":"b24e8475b3ecbb17b958fc916bdd75f10697ee4b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8a3acddcc1fb0a15a8120da26617c547a6e9752f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    if config[\u0027username\u0027] is None:"},{"line_number":95,"context_line":"        msg \u003d (_(\"The config parameter hnas_username \""},{"line_number":96,"context_line":"                 \"is not set in the cinder.conf.\"))"},{"line_number":97,"context_line":"        LOG.error(msg)"},{"line_number":98,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    if (config[\u0027password\u0027] is None and"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_0360f1a3","line":97,"updated":"2016-05-17 17:57:03.000000000","message":"You don\u0027t need to log these errors separately.  The exception should be logged, which is sufficient.  (If it\u0027s not, that\u0027s probably a bug in the caller.)","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":20834,"name":"Tomaz Vieira","email":"tomaz.vieira@fit-tecnologia.org.br","username":"tomaz-vieira"},"change_message_id":"0744d5cd336b56348d3f7cdecac74164a1a47cc8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    if config[\u0027username\u0027] is None:"},{"line_number":95,"context_line":"        msg \u003d (_(\"The config parameter hnas_username \""},{"line_number":96,"context_line":"                 \"is not set in the cinder.conf.\"))"},{"line_number":97,"context_line":"        LOG.error(msg)"},{"line_number":98,"context_line":"        raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    if (config[\u0027password\u0027] is None and"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_1b59718e","line":97,"in_reply_to":"dab17558_0360f1a3","updated":"2016-05-23 18:10:13.000000000","message":"If I wanted the error messages to also be in the log files, shouldn\u0027t I also call LOG.error on them?\n\nI mean, the stack trace will show up in stdout once the exception is raised, but that won\u0027t show up in the log files.","commit_id":"cb3b6d58c714a799eb48f80eddf746d1a4b3a908"},{"author":{"_account_id":19144,"name":"José Mello","email":"jose.eduardo.jr@gmail.com","username":"jose-eduardo-jr"},"change_message_id":"a9cd15bc5a00304f7dcec8026add14e796f9e378","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                   \u0027the SMU IP.\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027hnas_ssc_cmd\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Command to communicate to HNAS array.\u0027),"},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027hnas_username\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027HNAS username.\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_password\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_495e8646","line":47,"range":{"start_line":47,"start_character":52,"end_line":47,"end_character":57},"updated":"2016-06-21 19:08:31.000000000","message":"Remove \"array\"","commit_id":"ed6e6e208ae146fb9a02aec83a545a91df46b531"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"840ea47a4ff5a4f29ce76cd246fb4ccc159331d3","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                   \u0027the SMU IP.\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027hnas_ssc_cmd\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027ssc\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Command to communicate to HNAS array.\u0027),"},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027hnas_username\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027HNAS username.\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027hnas_password\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_a74bd158","line":47,"range":{"start_line":47,"start_character":52,"end_line":47,"end_character":57},"in_reply_to":"3aaa91ec_495e8646","updated":"2016-06-21 19:25:02.000000000","message":"Done","commit_id":"ed6e6e208ae146fb9a02aec83a545a91df46b531"}]}
