)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8ca10dfc4cab76269902449bbd13020e0be6587","unresolved":false,"context_lines":[{"line_number":28,"context_line":"os-brick connector code and compare with whats in volume.py."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Change-Id: I88ee8108d94ff0de162e7a1ca4152dfd59037cc5"},{"line_number":31,"context_line":"Closes-Bug: #1385798"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a26ad4f_494dcc3c","line":31,"updated":"2015-11-02 18:06:17.000000000","message":"The importance isn\u0027t set on this bug. Aren\u0027t there other bugs related to the changes that should be listed here?\n\nIn general this is a hell of a big change for stable/kilo so we\u0027re going to need to make sure this is coordinated properly and justified.","commit_id":"e6fa8cd2a6808d0bbe1ae4d29b1970144e3df1b6"}],"nova/storage/linuxscsi.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e33003a8c4cd79dc269e2d96763dce19c87fbd1e","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    devices \u003d []"},{"line_number":110,"context_line":"    out \u003d None"},{"line_number":111,"context_line":"    try:"},{"line_number":112,"context_line":"        (out, _err) \u003d utils.execute(\u0027multipath\u0027, \u0027-l\u0027, device,"},{"line_number":113,"context_line":"                                    run_as_root\u003dTrue)"},{"line_number":114,"context_line":"    except processutils.ProcessExecutionError as exc:"},{"line_number":115,"context_line":"        LOG.warning(_LW(\"multipath call failed exit %(code)s\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_d3af957b","line":112,"updated":"2015-10-04 08:42:24.000000000","message":"not sure why we need this chnage","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"4dbee5652c6f1fc2bfb9136d19b9062f90f527d4","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    devices \u003d []"},{"line_number":110,"context_line":"    out \u003d None"},{"line_number":111,"context_line":"    try:"},{"line_number":112,"context_line":"        (out, _err) \u003d utils.execute(\u0027multipath\u0027, \u0027-l\u0027, device,"},{"line_number":113,"context_line":"                                    run_as_root\u003dTrue)"},{"line_number":114,"context_line":"    except processutils.ProcessExecutionError as exc:"},{"line_number":115,"context_line":"        LOG.warning(_LW(\"multipath call failed exit %(code)s\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_2966a229","line":112,"in_reply_to":"9a1a9d01_d3af957b","updated":"2015-10-04 16:22:58.000000000","message":"Done","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e33003a8c4cd79dc269e2d96763dce19c87fbd1e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        (out, _err) \u003d utils.execute(\u0027multipath\u0027, \u0027-l\u0027, device,"},{"line_number":113,"context_line":"                                    run_as_root\u003dTrue)"},{"line_number":114,"context_line":"    except processutils.ProcessExecutionError as exc:"},{"line_number":115,"context_line":"        LOG.warning(_LW(\"multipath call failed exit %(code)s\"),"},{"line_number":116,"context_line":"                    {\u0027code\u0027: exc.exit_code})"},{"line_number":117,"context_line":"        return None"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_f3b2d9e4","line":115,"updated":"2015-10-04 08:42:24.000000000","message":"ditto","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"4dbee5652c6f1fc2bfb9136d19b9062f90f527d4","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        (out, _err) \u003d utils.execute(\u0027multipath\u0027, \u0027-l\u0027, device,"},{"line_number":113,"context_line":"                                    run_as_root\u003dTrue)"},{"line_number":114,"context_line":"    except processutils.ProcessExecutionError as exc:"},{"line_number":115,"context_line":"        LOG.warning(_LW(\"multipath call failed exit %(code)s\"),"},{"line_number":116,"context_line":"                    {\u0027code\u0027: exc.exit_code})"},{"line_number":117,"context_line":"        return None"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_c96cc60a","line":115,"in_reply_to":"9a1a9d01_f3b2d9e4","updated":"2015-10-04 16:22:58.000000000","message":"Done","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e33003a8c4cd79dc269e2d96763dce19c87fbd1e","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                os.stat(mdev)"},{"line_number":132,"context_line":"            except OSError:"},{"line_number":133,"context_line":"                LOG.warn(_LW(\"Couldn\u0027t find multipath device %s\"), mdev)"},{"line_number":134,"context_line":"                return None"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            wwid_search \u003d MULTIPATH_WWID_REGEX.search(lines[0])"},{"line_number":137,"context_line":"            if wwid_search is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_13b66ddc","line":134,"updated":"2015-10-04 08:42:24.000000000","message":"by default None is returned. We do not expliciyly need to do a return None. You can do return","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"4dbee5652c6f1fc2bfb9136d19b9062f90f527d4","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                os.stat(mdev)"},{"line_number":132,"context_line":"            except OSError:"},{"line_number":133,"context_line":"                LOG.warn(_LW(\"Couldn\u0027t find multipath device %s\"), mdev)"},{"line_number":134,"context_line":"                return None"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            wwid_search \u003d MULTIPATH_WWID_REGEX.search(lines[0])"},{"line_number":137,"context_line":"            if wwid_search is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_a92072b1","line":134,"in_reply_to":"9a1a9d01_13b66ddc","updated":"2015-10-04 16:22:58.000000000","message":"Done","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e33003a8c4cd79dc269e2d96763dce19c87fbd1e","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                mdev_id \u003d mdev_name"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            LOG.debug(\"Found multipath device \u003d %(mdev)s\","},{"line_number":143,"context_line":"                      {\u0027mdev\u0027: mdev})"},{"line_number":144,"context_line":"            device_lines \u003d lines[3:]"},{"line_number":145,"context_line":"            for dev_line in device_lines:"},{"line_number":146,"context_line":"                if dev_line.find(\"policy\") !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_73a80978","line":143,"updated":"2015-10-04 08:42:24.000000000","message":"when there is one param you do not need a dictionary","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"4dbee5652c6f1fc2bfb9136d19b9062f90f527d4","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                mdev_id \u003d mdev_name"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            LOG.debug(\"Found multipath device \u003d %(mdev)s\","},{"line_number":143,"context_line":"                      {\u0027mdev\u0027: mdev})"},{"line_number":144,"context_line":"            device_lines \u003d lines[3:]"},{"line_number":145,"context_line":"            for dev_line in device_lines:"},{"line_number":146,"context_line":"                if dev_line.find(\"policy\") !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_09187e83","line":143,"in_reply_to":"9a1a9d01_73a80978","updated":"2015-10-04 16:22:58.000000000","message":"Done","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e33003a8c4cd79dc269e2d96763dce19c87fbd1e","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                dev \u003d {\u0027device\u0027: \u0027/dev/%s\u0027 % dev_info[1],"},{"line_number":154,"context_line":"                       \u0027host\u0027: address[0], \u0027channel\u0027: address[1],"},{"line_number":155,"context_line":"                       \u0027id\u0027: address[2], \u0027lun\u0027: address[3]"},{"line_number":156,"context_line":"                       }"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"                devices.append(dev)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_53adc586","line":156,"updated":"2015-10-04 08:42:24.000000000","message":"this change is unrelated","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"4dbee5652c6f1fc2bfb9136d19b9062f90f527d4","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                dev \u003d {\u0027device\u0027: \u0027/dev/%s\u0027 % dev_info[1],"},{"line_number":154,"context_line":"                       \u0027host\u0027: address[0], \u0027channel\u0027: address[1],"},{"line_number":155,"context_line":"                       \u0027id\u0027: address[2], \u0027lun\u0027: address[3]"},{"line_number":156,"context_line":"                       }"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"                devices.append(dev)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_8977aed3","line":156,"in_reply_to":"9a1a9d01_53adc586","updated":"2015-10-04 16:22:58.000000000","message":"Done","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"}],"nova/virt/libvirt/volume.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"af5a258ff20b2649a51b2378f620c367e034b644","unresolved":false,"context_lines":[{"line_number":620,"context_line":"            LOG.debug(\"multipath LUNs to remove %s\" % devices)"},{"line_number":621,"context_line":"            for device in devices:"},{"line_number":622,"context_line":"                self._delete_device(device[\u0027device\u0027])"},{"line_number":623,"context_line":"            self._remove_multipath_device_descriptor(mpath_dev[\u0027id\u0027])"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"    def _flush_device_io(self, device):"},{"line_number":626,"context_line":"        \"\"\"This is used to flush any remaining IO in the buffers.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_0f5a672a","line":623,"updated":"2015-09-29 21:34:40.000000000","message":"need to do a multipath -f \u003cdevice\u003e after it’s all done and gone so we don’t have a bogus/broken mpath device entry leftover.\n\nhttps://github.com/openstack/os-brick/blob/master/os_brick/initiator/linuxscsi.py#L126","commit_id":"a674685673ec28351b95a88e87986cb4922d95a9"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"43ba739ac9ea3765123c53b416087d34e9684ac9","unresolved":false,"context_lines":[{"line_number":620,"context_line":"            LOG.debug(\"multipath LUNs to remove %s\" % devices)"},{"line_number":621,"context_line":"            for device in devices:"},{"line_number":622,"context_line":"                self._delete_device(device[\u0027device\u0027])"},{"line_number":623,"context_line":"            self._remove_multipath_device_descriptor(mpath_dev[\u0027id\u0027])"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"    def _flush_device_io(self, device):"},{"line_number":626,"context_line":"        \"\"\"This is used to flush any remaining IO in the buffers.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_c11f6306","line":623,"in_reply_to":"9a1a9d01_0f5a672a","updated":"2015-09-29 23:29:32.000000000","message":"I might be missing something, but isn\u0027t that what the self._remove_multipath_device_descriptor(mpath_dev[\u0027id\u0027]) call is doing?","commit_id":"a674685673ec28351b95a88e87986cb4922d95a9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e33003a8c4cd79dc269e2d96763dce19c87fbd1e","unresolved":false,"context_lines":[{"line_number":614,"context_line":"        and the multipath device itself."},{"line_number":615,"context_line":"        \"\"\""},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        LOG.debug(\"remove multipath device %s\" % multipath_name)"},{"line_number":618,"context_line":"        mpath_dev \u003d linuxscsi.find_multipath_device(multipath_name)"},{"line_number":619,"context_line":"        if mpath_dev:"},{"line_number":620,"context_line":"            devices \u003d mpath_dev[\u0027devices\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_b3c5413e","line":617,"updated":"2015-10-04 08:42:24.000000000","message":"please use a , instead of the %","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"4dbee5652c6f1fc2bfb9136d19b9062f90f527d4","unresolved":false,"context_lines":[{"line_number":614,"context_line":"        and the multipath device itself."},{"line_number":615,"context_line":"        \"\"\""},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        LOG.debug(\"remove multipath device %s\" % multipath_name)"},{"line_number":618,"context_line":"        mpath_dev \u003d linuxscsi.find_multipath_device(multipath_name)"},{"line_number":619,"context_line":"        if mpath_dev:"},{"line_number":620,"context_line":"            devices \u003d mpath_dev[\u0027devices\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_294d4299","line":617,"in_reply_to":"9a1a9d01_b3c5413e","updated":"2015-10-04 16:22:58.000000000","message":"Done","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e33003a8c4cd79dc269e2d96763dce19c87fbd1e","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        LOG.debug(\"remove multipath device %s\" % multipath_name)"},{"line_number":618,"context_line":"        mpath_dev \u003d linuxscsi.find_multipath_device(multipath_name)"},{"line_number":619,"context_line":"        if mpath_dev:"},{"line_number":620,"context_line":"            devices \u003d mpath_dev[\u0027devices\u0027]"},{"line_number":621,"context_line":"            LOG.debug(\"multipath LUNs to remove %s\" % devices)"},{"line_number":622,"context_line":"            for device in devices:"},{"line_number":623,"context_line":"                self._delete_device(device[\u0027device\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_53c4e53e","line":620,"updated":"2015-10-04 08:42:24.000000000","message":"ditto","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"4dbee5652c6f1fc2bfb9136d19b9062f90f527d4","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        LOG.debug(\"remove multipath device %s\" % multipath_name)"},{"line_number":618,"context_line":"        mpath_dev \u003d linuxscsi.find_multipath_device(multipath_name)"},{"line_number":619,"context_line":"        if mpath_dev:"},{"line_number":620,"context_line":"            devices \u003d mpath_dev[\u0027devices\u0027]"},{"line_number":621,"context_line":"            LOG.debug(\"multipath LUNs to remove %s\" % devices)"},{"line_number":622,"context_line":"            for device in devices:"},{"line_number":623,"context_line":"                self._delete_device(device[\u0027device\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_c943666b","line":620,"in_reply_to":"9a1a9d01_53c4e53e","updated":"2015-10-04 16:22:58.000000000","message":"Done","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e33003a8c4cd79dc269e2d96763dce19c87fbd1e","unresolved":false,"context_lines":[{"line_number":626,"context_line":"    def _flush_device_io(self, device):"},{"line_number":627,"context_line":"        \"\"\"This is used to flush any remaining IO in the buffers.\"\"\""},{"line_number":628,"context_line":"        try:"},{"line_number":629,"context_line":"            LOG.debug(\"Flushing IO for device %s\" % device)"},{"line_number":630,"context_line":"            utils.execute(\u0027blockdev\u0027, \u0027--flushbufs\u0027, device, run_as_root\u003dTrue)"},{"line_number":631,"context_line":"        except processutils.ProcessExecutionError as exc:"},{"line_number":632,"context_line":"            msg \u003d _(\"Failed to flush IO buffers prior to removing\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_f3e979b8","line":629,"updated":"2015-10-04 08:42:24.000000000","message":"ditto","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"4dbee5652c6f1fc2bfb9136d19b9062f90f527d4","unresolved":false,"context_lines":[{"line_number":626,"context_line":"    def _flush_device_io(self, device):"},{"line_number":627,"context_line":"        \"\"\"This is used to flush any remaining IO in the buffers.\"\"\""},{"line_number":628,"context_line":"        try:"},{"line_number":629,"context_line":"            LOG.debug(\"Flushing IO for device %s\" % device)"},{"line_number":630,"context_line":"            utils.execute(\u0027blockdev\u0027, \u0027--flushbufs\u0027, device, run_as_root\u003dTrue)"},{"line_number":631,"context_line":"        except processutils.ProcessExecutionError as exc:"},{"line_number":632,"context_line":"            msg \u003d _(\"Failed to flush IO buffers prior to removing\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_895ece43","line":629,"in_reply_to":"9a1a9d01_f3e979b8","updated":"2015-10-04 16:22:58.000000000","message":"Done","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e33003a8c4cd79dc269e2d96763dce19c87fbd1e","unresolved":false,"context_lines":[{"line_number":631,"context_line":"        except processutils.ProcessExecutionError as exc:"},{"line_number":632,"context_line":"            msg \u003d _(\"Failed to flush IO buffers prior to removing\""},{"line_number":633,"context_line":"                    \" device: (%(code)s)\") % {\u0027code\u0027: exc.exit_code}"},{"line_number":634,"context_line":"            LOG.warn(msg)"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"    def _get_multipath_device_map(self):"},{"line_number":637,"context_line":"        out \u003d self._run_multipath([\u0027-ll\u0027], check_exit_code\u003d[0, 1])[0]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_93d11dfe","line":634,"updated":"2015-10-04 08:42:24.000000000","message":"you have a log warning without the log hint _LW","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"4dbee5652c6f1fc2bfb9136d19b9062f90f527d4","unresolved":false,"context_lines":[{"line_number":631,"context_line":"        except processutils.ProcessExecutionError as exc:"},{"line_number":632,"context_line":"            msg \u003d _(\"Failed to flush IO buffers prior to removing\""},{"line_number":633,"context_line":"                    \" device: (%(code)s)\") % {\u0027code\u0027: exc.exit_code}"},{"line_number":634,"context_line":"            LOG.warn(msg)"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"    def _get_multipath_device_map(self):"},{"line_number":637,"context_line":"        out \u003d self._run_multipath([\u0027-ll\u0027], check_exit_code\u003d[0, 1])[0]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_a959525d","line":634,"in_reply_to":"9a1a9d01_93d11dfe","updated":"2015-10-04 16:22:58.000000000","message":"Done","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e33003a8c4cd79dc269e2d96763dce19c87fbd1e","unresolved":false,"context_lines":[{"line_number":794,"context_line":"    def _get_iscsi_devices(self):"},{"line_number":795,"context_line":"        try:"},{"line_number":796,"context_line":"            devices \u003d list(os.walk(\u0027/dev/disk/by-path\u0027))[0][-1]"},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"        except IndexError:"},{"line_number":799,"context_line":"            return []"},{"line_number":800,"context_line":"        iscsi_devs \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_13042d7c","line":797,"updated":"2015-10-04 08:42:24.000000000","message":"unrelated","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"4dbee5652c6f1fc2bfb9136d19b9062f90f527d4","unresolved":false,"context_lines":[{"line_number":794,"context_line":"    def _get_iscsi_devices(self):"},{"line_number":795,"context_line":"        try:"},{"line_number":796,"context_line":"            devices \u003d list(os.walk(\u0027/dev/disk/by-path\u0027))[0][-1]"},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"        except IndexError:"},{"line_number":799,"context_line":"            return []"},{"line_number":800,"context_line":"        iscsi_devs \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_4958b656","line":797,"in_reply_to":"9a1a9d01_13042d7c","updated":"2015-10-04 16:22:58.000000000","message":"Done","commit_id":"e63939ee7a9fbacd9c4c865d788b8530c8f1bb28"}]}
