)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"71e39d23868939c38ff75d5923496b62286005bb","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Storwize Driver zone removing"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Storwize driver may remove zone even still volume attached."},{"line_number":10,"context_line":"To fix this issue, we need only report initiator and target map"},{"line_number":11,"context_line":"when there is no volume attached."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_b320e09c","line":9,"updated":"2015-06-30 15:56:21.000000000","message":"Tao:  Need to reword this sentence:  \tStorwize driver may remove zone even still volume attached.\n\nSuggest:  Storwize driver may remove zone even when the zone is still in use by an attached volume.","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"71e39d23868939c38ff75d5923496b62286005bb","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Storwize driver may remove zone even still volume attached."},{"line_number":10,"context_line":"To fix this issue, we need only report initiator and target map"},{"line_number":11,"context_line":"when there is no volume attached."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closes-Bug: 1468913"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_f34d0873","line":11,"updated":"2015-06-30 15:56:21.000000000","message":"Suggest:  \"when there are no volumes attached.\"","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"252b07c6ba9ac35624ab0ad54ee4e958049346cd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     TaoBai \u003cbaitaosh@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-06 14:54:44 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Storwize Driver zone removing"},{"line_number":8,"context_line":"Storwize driver may remove zone even when the zone is still in use"},{"line_number":9,"context_line":"by an attached volume.To fix this issue, we need only report initiator"},{"line_number":10,"context_line":"and target map when there are no volumes attached."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba3cc151_982ab42b","line":7,"updated":"2015-07-06 17:52:22.000000000","message":"Need an empty line here.","commit_id":"ffe9d4a87d8adc0442447d2149f8f0cc012a56c9"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"ffcbff2a56b4ba92b2f58e3c957340ed121b3ceb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Storwize Driver zone removing"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Storwize driver may remove zone even when the zone is still in use"},{"line_number":10,"context_line":"by an attached volume.To fix this issue, we need only report initiator"},{"line_number":11,"context_line":"and target map when there are no volumes attached."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closes-Bug: 1468913"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba3cc151_1f3e7cda","line":10,"updated":"2015-07-07 02:03:33.000000000","message":"Sorry, one more thing here.  Missing space.  Need to get these right since they are permanent.","commit_id":"76914eb1af2263f02690025c0588f048e5c735ed"}],"cinder/tests/unit/test_storwize_svc.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"71e39d23868939c38ff75d5923496b62286005bb","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        host_name \u003d kwargs[\u0027host\u0027].strip(\u0027\\\u0027\\\"\u0027) if \u0027host\u0027 in kwargs else None"},{"line_number":534,"context_line":"        target_wwpn \u003d kwargs[\u0027wwpn\u0027] if \u0027wwpn\u0027 in kwargs else None"},{"line_number":535,"context_line":"        host_infos \u003d []"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"        for hv in self._hosts_list.values():"},{"line_number":538,"context_line":"            if (not host_name) or (hv[\u0027host_name\u0027] \u003d\u003d host_name):"},{"line_number":539,"context_line":"                for mv in self._mappings_list.values():"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_b3dd4044","side":"PARENT","line":536,"updated":"2015-06-30 15:56:21.000000000","message":"Why have these spaces been removed?  Seem unrelated.","commit_id":"87016e624b8dd5574d0c678e5869510b1358a7da"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"e7f7710acb591a947e835371d020c85bbf160d0c","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        host_name \u003d kwargs[\u0027host\u0027].strip(\u0027\\\u0027\\\"\u0027) if \u0027host\u0027 in kwargs else None"},{"line_number":534,"context_line":"        target_wwpn \u003d kwargs[\u0027wwpn\u0027] if \u0027wwpn\u0027 in kwargs else None"},{"line_number":535,"context_line":"        host_infos \u003d []"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"        for hv in self._hosts_list.values():"},{"line_number":538,"context_line":"            if (not host_name) or (hv[\u0027host_name\u0027] \u003d\u003d host_name):"},{"line_number":539,"context_line":"                for mv in self._mappings_list.values():"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_8c029d0a","side":"PARENT","line":536,"in_reply_to":"ba3cc151_b3dd4044","updated":"2015-07-06 13:36:15.000000000","message":"Done","commit_id":"87016e624b8dd5574d0c678e5869510b1358a7da"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"66becb89ffae484776edcbc1cef835f3686721e2","unresolved":false,"context_lines":[{"line_number":2392,"context_line":"                self.assertEqual(\u0027fibre_channel\u0027, ret[\u0027driver_volume_type\u0027])"},{"line_number":2393,"context_line":"                ret \u003d self.driver.terminate_connection(volume2,"},{"line_number":2394,"context_line":"                                                       self._connector)"},{"line_number":2395,"context_line":"                self.assertEqual(\u0027fibre_channel\u0027, ret[\u0027driver_volume_type\u0027])"},{"line_number":2396,"context_line":"                # wwpn is radom created"},{"line_number":2397,"context_line":"                self.assertNotEqual({}, ret[\u0027data\u0027])"},{"line_number":2398,"context_line":"            if self.USESIM:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_c2203b4c","line":2395,"updated":"2015-07-07 02:18:45.000000000","message":"Typo here .. Radom ... Fix if you need another patch.","commit_id":"e634215a0aa20b8bb1819b3f18f1727517b5e0a7"}],"cinder/volume/drivers/ibm/storwize_svc/__init__.py":[{"author":{"_account_id":17150,"name":"LABOUEBE Michael","email":"gfarmerfr@free.fr","username":"gfarmer"},"change_message_id":"deb1b067e9d8807608101e7150669f120552b27e","unresolved":false,"context_lines":[{"line_number":549,"context_line":"        # Unmap volumes, if hostname is None, need to get value from vdiskmap"},{"line_number":550,"context_line":"        host_name \u003d self._helpers.unmap_vol_from_host(vol_name, host_name)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"        info \u003d {}"},{"line_number":553,"context_line":"        # Host_name could be none"},{"line_number":554,"context_line":"        if host_name:"},{"line_number":555,"context_line":"            resp \u003d self._helpers.check_host_mapped_vols(host_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_076bdf85","line":552,"updated":"2015-07-03 15:31:28.000000000","message":"Should be initialised to info \u003d {\u0027driver_volume_type\u0027: \u0027fibre_channel\u0027, \u0027data\u0027: {}}\nbecause if we don\u0027t have to remove zoning info will stay empty and pass to fczm_utils.RemoveFCZone that will WARN \"Driver didn\u0027t return connection info from terminate_connection call\"","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"e7f7710acb591a947e835371d020c85bbf160d0c","unresolved":false,"context_lines":[{"line_number":549,"context_line":"        # Unmap volumes, if hostname is None, need to get value from vdiskmap"},{"line_number":550,"context_line":"        host_name \u003d self._helpers.unmap_vol_from_host(vol_name, host_name)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"        info \u003d {}"},{"line_number":553,"context_line":"        # Host_name could be none"},{"line_number":554,"context_line":"        if host_name:"},{"line_number":555,"context_line":"            resp \u003d self._helpers.check_host_mapped_vols(host_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_07ebc6b1","line":552,"in_reply_to":"ba3cc151_076bdf85","updated":"2015-07-06 13:36:15.000000000","message":"HI Gfarmerfr\n\nThat\u0027s good suggestion, but the type maybe  not fibre_channel,but is iscsi. I will handle it in another way\n\n\nThanks","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"71e39d23868939c38ff75d5923496b62286005bb","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            resp \u003d self._helpers.check_host_mapped_vols(host_name)"},{"line_number":556,"context_line":"            if not len(resp):"},{"line_number":557,"context_line":"                LOG.info(_LI(\"Need to remove FC Zone, building initiator \""},{"line_number":558,"context_line":"                             \"target map\"))"},{"line_number":559,"context_line":"                # Build info data structure for zone removing"},{"line_number":560,"context_line":"                if \u0027wwpns\u0027 in connector and host_name:"},{"line_number":561,"context_line":"                    target_wwpns \u003d self._helpers.get_conn_fc_wwpns(host_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_beeae7aa","line":558,"updated":"2015-06-30 15:56:21.000000000","message":"Need \u0027.\u0027 here.","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"e7f7710acb591a947e835371d020c85bbf160d0c","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            resp \u003d self._helpers.check_host_mapped_vols(host_name)"},{"line_number":556,"context_line":"            if not len(resp):"},{"line_number":557,"context_line":"                LOG.info(_LI(\"Need to remove FC Zone, building initiator \""},{"line_number":558,"context_line":"                             \"target map\"))"},{"line_number":559,"context_line":"                # Build info data structure for zone removing"},{"line_number":560,"context_line":"                if \u0027wwpns\u0027 in connector and host_name:"},{"line_number":561,"context_line":"                    target_wwpns \u003d self._helpers.get_conn_fc_wwpns(host_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_c785dead","line":558,"in_reply_to":"ba3cc151_beeae7aa","updated":"2015-07-06 13:36:15.000000000","message":"Done","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"71e39d23868939c38ff75d5923496b62286005bb","unresolved":false,"context_lines":[{"line_number":559,"context_line":"                # Build info data structure for zone removing"},{"line_number":560,"context_line":"                if \u0027wwpns\u0027 in connector and host_name:"},{"line_number":561,"context_line":"                    target_wwpns \u003d self._helpers.get_conn_fc_wwpns(host_name)"},{"line_number":562,"context_line":"                    init_targ_map \u003d \\"},{"line_number":563,"context_line":"                        self._make_initiator_target_map(connector[\u0027wwpns\u0027],"},{"line_number":564,"context_line":"                                                        target_wwpns)"},{"line_number":565,"context_line":"                    info \u003d {\u0027driver_volume_type\u0027: \u0027fibre_channel\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_de124bb4","line":562,"updated":"2015-06-30 15:56:21.000000000","message":"Can we use () here instead of \\ ?","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"e7f7710acb591a947e835371d020c85bbf160d0c","unresolved":false,"context_lines":[{"line_number":559,"context_line":"                # Build info data structure for zone removing"},{"line_number":560,"context_line":"                if \u0027wwpns\u0027 in connector and host_name:"},{"line_number":561,"context_line":"                    target_wwpns \u003d self._helpers.get_conn_fc_wwpns(host_name)"},{"line_number":562,"context_line":"                    init_targ_map \u003d \\"},{"line_number":563,"context_line":"                        self._make_initiator_target_map(connector[\u0027wwpns\u0027],"},{"line_number":564,"context_line":"                                                        target_wwpns)"},{"line_number":565,"context_line":"                    info \u003d {\u0027driver_volume_type\u0027: \u0027fibre_channel\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_a788dac7","line":562,"in_reply_to":"ba3cc151_de124bb4","updated":"2015-07-06 13:36:15.000000000","message":"Done","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":17150,"name":"LABOUEBE Michael","email":"gfarmerfr@free.fr","username":"gfarmer"},"change_message_id":"deb1b067e9d8807608101e7150669f120552b27e","unresolved":false,"context_lines":[{"line_number":563,"context_line":"                        self._make_initiator_target_map(connector[\u0027wwpns\u0027],"},{"line_number":564,"context_line":"                                                        target_wwpns)"},{"line_number":565,"context_line":"                    info \u003d {\u0027driver_volume_type\u0027: \u0027fibre_channel\u0027,"},{"line_number":566,"context_line":"                            \u0027data\u0027: {\u0027initiator_target_map\u0027: init_targ_map}}"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"            # No volume mapped to the host, delete host from array"},{"line_number":569,"context_line":"            self._helpers.delete_host(host_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_e78d9b31","line":566,"updated":"2015-07-03 15:31:28.000000000","message":"Since we\u0027ve initialised info before we simply pass the initiator_target_map here via info[\u0027data\u0027] \u003d {\u0027initiator_target_map\u0027: init_targ_map}","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"e7f7710acb591a947e835371d020c85bbf160d0c","unresolved":false,"context_lines":[{"line_number":563,"context_line":"                        self._make_initiator_target_map(connector[\u0027wwpns\u0027],"},{"line_number":564,"context_line":"                                                        target_wwpns)"},{"line_number":565,"context_line":"                    info \u003d {\u0027driver_volume_type\u0027: \u0027fibre_channel\u0027,"},{"line_number":566,"context_line":"                            \u0027data\u0027: {\u0027initiator_target_map\u0027: init_targ_map}}"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"            # No volume mapped to the host, delete host from array"},{"line_number":569,"context_line":"            self._helpers.delete_host(host_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_e79d820b","line":566,"in_reply_to":"ba3cc151_e78d9b31","updated":"2015-07-06 13:36:15.000000000","message":"Done","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":17150,"name":"LABOUEBE Michael","email":"gfarmerfr@free.fr","username":"gfarmer"},"change_message_id":"2d8581f8236618cbf2c53dc409147d646f17bccd","unresolved":false,"context_lines":[{"line_number":566,"context_line":"                            \u0027data\u0027: {\u0027initiator_target_map\u0027: init_targ_map}}"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"            # No volume mapped to the host, delete host from array"},{"line_number":569,"context_line":"            self._helpers.delete_host(host_name)"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"        LOG.debug(\u0027leave: terminate_connection: volume %(vol)s with \u0027"},{"line_number":572,"context_line":"                  \u0027connector %(conn)s\u0027, {\u0027vol\u0027: volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_818cd1da","line":569,"updated":"2015-07-03 08:32:51.000000000","message":"delete_host should be executed only if there is no volume attached : an indentation is missing ?","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"e7f7710acb591a947e835371d020c85bbf160d0c","unresolved":false,"context_lines":[{"line_number":566,"context_line":"                            \u0027data\u0027: {\u0027initiator_target_map\u0027: init_targ_map}}"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"            # No volume mapped to the host, delete host from array"},{"line_number":569,"context_line":"            self._helpers.delete_host(host_name)"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"        LOG.debug(\u0027leave: terminate_connection: volume %(vol)s with \u0027"},{"line_number":572,"context_line":"                  \u0027connector %(conn)s\u0027, {\u0027vol\u0027: volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_67fbb248","line":569,"in_reply_to":"ba3cc151_818cd1da","updated":"2015-07-06 13:36:15.000000000","message":"It\u0027s good point,  thanks","commit_id":"02ce336f7a924e1ebaf9833e1db9ecafb55f94b5"}]}
