)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e04af340ded32fec31e5964c3943fbe1e854d33d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Don\u0027t fail target_delete if target doesn\u0027t exist"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are cases seen in the Gate where a target delete is"},{"line_number":10,"context_line":"called an an exception is raised because the target does"},{"line_number":11,"context_line":"not exist. In the cinder target driver code we raise this"},{"line_number":12,"context_line":"as an ISCSITargetRemoveFailed exception, but if we\u0027re asking"},{"line_number":13,"context_line":"to delete the target and the target doesn\u0027t exist we can"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da86d52c_44e79b40","line":10,"updated":"2015-02-09 22:25:44.000000000","message":"typo an an -\u003e and an","commit_id":"be5150eb290fec3ff40ba2ac7f81e7dd222df3f9"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"af93590a5219c97d00d72b856cd8f46851b50a05","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Don\u0027t fail target_delete if target doesn\u0027t exist"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are cases seen in the Gate where a target delete is"},{"line_number":10,"context_line":"called an an exception is raised because the target does"},{"line_number":11,"context_line":"not exist. In the cinder target driver code we raise this"},{"line_number":12,"context_line":"as an ISCSITargetRemoveFailed exception, but if we\u0027re asking"},{"line_number":13,"context_line":"to delete the target and the target doesn\u0027t exist we can"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da86d52c_3f1ab217","line":10,"in_reply_to":"da86d52c_44e79b40","updated":"2015-02-09 22:55:07.000000000","message":"Done","commit_id":"be5150eb290fec3ff40ba2ac7f81e7dd222df3f9"}],"cinder/volume/targets/tgt.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e04af340ded32fec31e5964c3943fbe1e854d33d","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":391,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":392,"context_line":"            if \"can\\\u0027t find the target\" in e.stderr:"},{"line_number":393,"context_line":"                LOG.warning(\"Failed target removal because target \""},{"line_number":394,"context_line":"                            \"couldn\u0027t be found for iqn: %s.\", iqn)"},{"line_number":395,"context_line":"                pass"},{"line_number":396,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_c47c6b75","line":393,"updated":"2015-02-09 22:25:44.000000000","message":"Need _LW() here please.","commit_id":"be5150eb290fec3ff40ba2ac7f81e7dd222df3f9"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"af93590a5219c97d00d72b856cd8f46851b50a05","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":391,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":392,"context_line":"            if \"can\\\u0027t find the target\" in e.stderr:"},{"line_number":393,"context_line":"                LOG.warning(\"Failed target removal because target \""},{"line_number":394,"context_line":"                            \"couldn\u0027t be found for iqn: %s.\", iqn)"},{"line_number":395,"context_line":"                pass"},{"line_number":396,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_9f2f1e3e","line":393,"in_reply_to":"da86d52c_c47c6b75","updated":"2015-02-09 22:55:07.000000000","message":"Done","commit_id":"be5150eb290fec3ff40ba2ac7f81e7dd222df3f9"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"9084d436dd9e51499ad8271290ffea8a1d07cb26","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                          iqn,"},{"line_number":390,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":391,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":392,"context_line":"            if \"can\\\u0027t find the target\" in e.stderr:"},{"line_number":393,"context_line":"                LOG.warning(_LW(\"Failed target removal because target \""},{"line_number":394,"context_line":"                                \"couldn\u0027t be found for iqn: %s.\", iqn))"},{"line_number":395,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_925aa728","line":392,"updated":"2015-02-10 06:22:12.000000000","message":"No point in escaping here.","commit_id":"f4ceee39166afc830d0fe1642504d5f486438b94"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"6d4320cd8695d53999ce03d82e424ec10a2402c3","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                          iqn,"},{"line_number":390,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":391,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":392,"context_line":"            if \"can\\\u0027t find the target\" in e.stderr:"},{"line_number":393,"context_line":"                LOG.warning(_LW(\"Failed target removal because target \""},{"line_number":394,"context_line":"                                \"couldn\u0027t be found for iqn: %s.\", iqn))"},{"line_number":395,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_6c87e6b5","line":392,"in_reply_to":"da86d52c_925aa728","updated":"2015-02-11 05:06:12.000000000","message":"Yep, sorry missed your comment before, addressed it in latest patch set as Sean pointed out again.  Thx!","commit_id":"f4ceee39166afc830d0fe1642504d5f486438b94"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5edda3b02bff9308b2fe21f40bfd4831b17d234d","unresolved":false,"context_lines":[{"line_number":391,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":392,"context_line":"            if \"can\\\u0027t find the target\" in e.stderr:"},{"line_number":393,"context_line":"                LOG.warning(_LW(\"Failed target removal because target \""},{"line_number":394,"context_line":"                                \"couldn\u0027t be found for iqn: %s.\", iqn))"},{"line_number":395,"context_line":"                pass"},{"line_number":396,"context_line":"            else:"},{"line_number":397,"context_line":"                LOG.error(_LE(\"Failed to remove iscsi target for volume \""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_88cd21ba","line":394,"updated":"2015-02-10 00:49:04.000000000","message":"The inner closing brace \")\" should be moved to in front of \",\".","commit_id":"f4ceee39166afc830d0fe1642504d5f486438b94"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"ec71f1638cc7121e2f11d2e21cd1714bbaa88a5a","unresolved":false,"context_lines":[{"line_number":391,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":392,"context_line":"            if \"can\\\u0027t find the target\" in e.stderr:"},{"line_number":393,"context_line":"                LOG.warning(_LW(\"Failed target removal because target \""},{"line_number":394,"context_line":"                                \"couldn\u0027t be found for iqn: %s.\", iqn))"},{"line_number":395,"context_line":"                pass"},{"line_number":396,"context_line":"            else:"},{"line_number":397,"context_line":"                LOG.error(_LE(\"Failed to remove iscsi target for volume \""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_e1c4f342","line":394,"in_reply_to":"da86d52c_88cd21ba","updated":"2015-02-10 04:31:11.000000000","message":"Oh boy... yep!","commit_id":"f4ceee39166afc830d0fe1642504d5f486438b94"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"2e3c90025143ca403b3a7cb5ad2b63129c813aed","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                          iqn,"},{"line_number":390,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":391,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":392,"context_line":"            if \"can\\\u0027t find the target\" in e.stderr:"},{"line_number":393,"context_line":"                LOG.warning(_LW(\"Failed target removal because target \""},{"line_number":394,"context_line":"                                \"couldn\u0027t be found for iqn: %s.\"), iqn)"},{"line_number":395,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_5b4f59be","line":392,"updated":"2015-02-10 14:41:03.000000000","message":"Escape doesn\u0027t appear to be necessary, but still works with or without it.","commit_id":"ac216943bc1e40b31c2fc26ff979d1a6d104440a"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"b997cf8212587b02b05f49aa746670258668df6c","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                          iqn,"},{"line_number":390,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":391,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":392,"context_line":"            if \"can\\\u0027t find the target\" in e.stderr:"},{"line_number":393,"context_line":"                LOG.warning(_LW(\"Failed target removal because target \""},{"line_number":394,"context_line":"                                \"couldn\u0027t be found for iqn: %s.\"), iqn)"},{"line_number":395,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_ec9bd615","line":392,"in_reply_to":"da86d52c_5b4f59be","updated":"2015-02-11 05:06:04.000000000","message":"Ahh... yes, thanks.  I initially had single quotes; you\u0027re right not needed when using double quotes there.","commit_id":"ac216943bc1e40b31c2fc26ff979d1a6d104440a"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"2e3c90025143ca403b3a7cb5ad2b63129c813aed","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            if \"can\\\u0027t find the target\" in e.stderr:"},{"line_number":393,"context_line":"                LOG.warning(_LW(\"Failed target removal because target \""},{"line_number":394,"context_line":"                                \"couldn\u0027t be found for iqn: %s.\"), iqn)"},{"line_number":395,"context_line":"                pass"},{"line_number":396,"context_line":"            else:"},{"line_number":397,"context_line":"                LOG.error(_LE(\"Failed to remove iscsi target for volume \""},{"line_number":398,"context_line":"                              \"id:%(vol_id)s: %(e)s\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_7b4eddc2","line":395,"updated":"2015-02-10 14:41:03.000000000","message":"pass not needed here","commit_id":"ac216943bc1e40b31c2fc26ff979d1a6d104440a"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"b997cf8212587b02b05f49aa746670258668df6c","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            if \"can\\\u0027t find the target\" in e.stderr:"},{"line_number":393,"context_line":"                LOG.warning(_LW(\"Failed target removal because target \""},{"line_number":394,"context_line":"                                \"couldn\u0027t be found for iqn: %s.\"), iqn)"},{"line_number":395,"context_line":"                pass"},{"line_number":396,"context_line":"            else:"},{"line_number":397,"context_line":"                LOG.error(_LE(\"Failed to remove iscsi target for volume \""},{"line_number":398,"context_line":"                              \"id:%(vol_id)s: %(e)s\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_0c9d8a0a","line":395,"in_reply_to":"da86d52c_7b4eddc2","updated":"2015-02-11 05:06:04.000000000","message":"Done","commit_id":"ac216943bc1e40b31c2fc26ff979d1a6d104440a"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"2e3c90025143ca403b3a7cb5ad2b63129c813aed","unresolved":false,"context_lines":[{"line_number":396,"context_line":"            else:"},{"line_number":397,"context_line":"                LOG.error(_LE(\"Failed to remove iscsi target for volume \""},{"line_number":398,"context_line":"                              \"id:%(vol_id)s: %(e)s\")"},{"line_number":399,"context_line":"                          % {\u0027vol_id\u0027: vol_id, \u0027e\u0027: e})"},{"line_number":400,"context_line":"                raise exception.ISCSITargetRemoveFailed(volume_id\u003dvol_id)"},{"line_number":401,"context_line":"        # NOTE(jdg): There\u0027s a bug in some versions of tgt that"},{"line_number":402,"context_line":"        # will sometimes fail silently when using the force flag"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_7be5fda6","line":399,"updated":"2015-02-10 14:41:03.000000000","message":"% \u003d\u003e ,","commit_id":"ac216943bc1e40b31c2fc26ff979d1a6d104440a"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"b997cf8212587b02b05f49aa746670258668df6c","unresolved":false,"context_lines":[{"line_number":396,"context_line":"            else:"},{"line_number":397,"context_line":"                LOG.error(_LE(\"Failed to remove iscsi target for volume \""},{"line_number":398,"context_line":"                              \"id:%(vol_id)s: %(e)s\")"},{"line_number":399,"context_line":"                          % {\u0027vol_id\u0027: vol_id, \u0027e\u0027: e})"},{"line_number":400,"context_line":"                raise exception.ISCSITargetRemoveFailed(volume_id\u003dvol_id)"},{"line_number":401,"context_line":"        # NOTE(jdg): There\u0027s a bug in some versions of tgt that"},{"line_number":402,"context_line":"        # will sometimes fail silently when using the force flag"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_2ca24e4b","line":399,"in_reply_to":"da86d52c_7be5fda6","updated":"2015-02-11 05:06:04.000000000","message":"Done","commit_id":"ac216943bc1e40b31c2fc26ff979d1a6d104440a"}]}
