)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ed6bd169c11563a9f3388c7810373e17c028a9e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"enclosed in square brackets.  This is already done for copy_file method"},{"line_number":11,"context_line":"outside of driver in changeset Ia5f28673e79158d948980f2b3ce496c6a56882af"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Since helper function safe_ip_format(ip) is used only to format remote"},{"line_number":14,"context_line":"path, turn it into format_remote_path(host, path) and use where"},{"line_number":15,"context_line":"appropriate."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: 1601822"},{"line_number":18,"context_line":"Change-Id: Ifc386539f33684fb764f5f638a7ee0a10b1ef534"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bacf61ea_9ad232ff","line":15,"range":{"start_line":13,"start_character":0,"end_line":15,"end_character":12},"updated":"2016-07-28 16:37:49.000000000","message":"FWIW, this change would be easier to review if the refactor was split into it\u0027s own change on top of this one. That could also allow us to backport the bug fix w/o having to backport the refactor.","commit_id":"c8e3bb95de99528d3dbed2dcfdbb736cee5fcf7b"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"c5f757d7cbec89d68822ce382f584c0038811de1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"enclosed in square brackets.  This is already done for copy_file method"},{"line_number":11,"context_line":"outside of driver in changeset Ia5f28673e79158d948980f2b3ce496c6a56882af"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Since helper function safe_ip_format(ip) is used only to format remote"},{"line_number":14,"context_line":"path, turn it into format_remote_path(host, path) and use where"},{"line_number":15,"context_line":"appropriate."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: 1601822"},{"line_number":18,"context_line":"Change-Id: Ifc386539f33684fb764f5f638a7ee0a10b1ef534"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bacf61ea_f07c2ded","line":15,"range":{"start_line":13,"start_character":0,"end_line":15,"end_character":12},"in_reply_to":"bacf61ea_9ad232ff","updated":"2016-07-28 17:17:41.000000000","message":"OK","commit_id":"c8e3bb95de99528d3dbed2dcfdbb736cee5fcf7b"},{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"93d70ab3dddce0b4e3386eec83e4dd6d7d1de63a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When IPv6 address literal is used as host in rsync call, it should be"},{"line_number":10,"context_line":"enclosed in square brackets.  This is already done for copy_file method"},{"line_number":11,"context_line":"outside of driver in changeset Ia5f28673e79158d948980f2b3ce496c6a56882af"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Create helper function format_remote_path(host, path) and use where"},{"line_number":14,"context_line":"appropriate."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bacf61ea_e0f1ad02","line":12,"updated":"2016-07-30 11:06:22.000000000","message":"I think this blank line is redundant here.","commit_id":"dc7f79290ac60300901928be5e9a03e7145a052a"}],"nova/tests/unit/virt/libvirt/volume/test_remotefs.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fc28e139df6f852ba492185e39138849c5ba5bec","unresolved":false,"context_lines":[{"line_number":205,"context_line":"                                        on_completion\u003dNone, on_execute\u003dNone)"},{"line_number":206,"context_line":"            self.assertEqual(mock_execute.mock_calls[2], rsync_call_args)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        with mock.patch(\u0027nova.utils.execute\u0027) as mock_execute:"},{"line_number":209,"context_line":"            remotefs.RsyncDriver().create_dir(\u00272600::\u0027, \u0027dest_dir\u0027, None, None)"},{"line_number":210,"context_line":"            rsync_call_args \u003d mock.call(\u0027rsync\u0027, \u0027--archive\u0027, \u0027--relative\u0027,"},{"line_number":211,"context_line":"                                        \u0027--no-implied-dirs\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_3a9e05b9","line":208,"updated":"2016-08-18 11:37:47.000000000","message":"Nit: feels like these should be separate test methods.","commit_id":"270be6906c13bc621a7ad507b8ae729a940609d2"}],"nova/utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"96d6b62dc27f5abb7c099f67be86de736d2c1c2d","unresolved":false,"context_lines":[{"line_number":596,"context_line":"    If host is IPv6 address literal, return \u0027[host]:path\u0027, otherwise"},{"line_number":597,"context_line":"    \u0027host:path\u0027 is returned."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    If host is None, only path is returned."},{"line_number":600,"context_line":"    \"\"\""},{"line_number":601,"context_line":"    try:"},{"line_number":602,"context_line":"        if netaddr.IPAddress(host).version \u003d\u003d 6:"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_cd3516db","line":599,"updated":"2016-07-28 16:47:43.000000000","message":"In what case is host None?","commit_id":"c8e3bb95de99528d3dbed2dcfdbb736cee5fcf7b"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"c5f757d7cbec89d68822ce382f584c0038811de1","unresolved":false,"context_lines":[{"line_number":596,"context_line":"    If host is IPv6 address literal, return \u0027[host]:path\u0027, otherwise"},{"line_number":597,"context_line":"    \u0027host:path\u0027 is returned."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    If host is None, only path is returned."},{"line_number":600,"context_line":"    \"\"\""},{"line_number":601,"context_line":"    try:"},{"line_number":602,"context_line":"        if netaddr.IPAddress(host).version \u003d\u003d 6:"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_b04595b4","line":599,"in_reply_to":"bacf61ea_cd3516db","updated":"2016-07-28 17:17:41.000000000","message":"For example when it\u0027s local file.  It is not correct to return \"None:/some/path\" or \":/some/path\", so instead of raising an exception, path is returned.","commit_id":"c8e3bb95de99528d3dbed2dcfdbb736cee5fcf7b"}]}
