)]}'
{"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c662b076c3c7c75cf53f613fe8ba86e4976fd008","unresolved":false,"context_lines":[{"line_number":3112,"context_line":"            (image_service, image_id) \u003d glance.get_remote_image_service("},{"line_number":3113,"context_line":"                                            context, instance[\u0027image_ref\u0027])"},{"line_number":3114,"context_line":"            image_meta \u003d compute_utils.get_image_metadata("},{"line_number":3115,"context_line":"                                context, image_service, image_id, instance)"},{"line_number":3116,"context_line":"        LOG.debug(_(\u0027Start to_xml instance\u003d%(instance)s \u0027"},{"line_number":3117,"context_line":"                    \u0027network_info\u003d%(network_info)s \u0027"},{"line_number":3118,"context_line":"                    \u0027disk_info\u003d%(disk_info)s \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ%2Bo%3D","line":3115,"updated":"2013-11-12 02:34:08.000000000","message":"might as well fix this one too","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3bf9f1dbffb99f556333bd173bf077005107d562","unresolved":false,"context_lines":[{"line_number":3112,"context_line":"            (image_service, image_id) \u003d glance.get_remote_image_service("},{"line_number":3113,"context_line":"                                            context, instance[\u0027image_ref\u0027])"},{"line_number":3114,"context_line":"            image_meta \u003d compute_utils.get_image_metadata("},{"line_number":3115,"context_line":"                                context, image_service, image_id, instance)"},{"line_number":3116,"context_line":"        LOG.debug(_(\u0027Start to_xml instance\u003d%(instance)s \u0027"},{"line_number":3117,"context_line":"                    \u0027network_info\u003d%(network_info)s \u0027"},{"line_number":3118,"context_line":"                    \u0027disk_info\u003d%(disk_info)s \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ3Y%3D","line":3115,"in_reply_to":"AAAATn%2F%2FQ%2Bo%3D","updated":"2013-11-12 03:13:10.000000000","message":"Done","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c662b076c3c7c75cf53f613fe8ba86e4976fd008","unresolved":false,"context_lines":[{"line_number":3129,"context_line":"            instance_dir \u003d libvirt_utils.get_instance_path(instance)"},{"line_number":3130,"context_line":"            xml_path \u003d os.path.join(instance_dir, \u0027libvirt.xml\u0027)"},{"line_number":3131,"context_line":"            libvirt_utils.write_to_file(xml_path, xml)"},{"line_number":3132,"context_line":""},{"line_number":3133,"context_line":"        LOG.debug(_(\u0027End to_xml instance\u003d%(instance)s xml\u003d%(xml)s\u0027),"},{"line_number":3134,"context_line":"                  {\u0027instance\u0027: instance, \u0027xml\u0027: xml})"},{"line_number":3135,"context_line":"        return xml"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ%2Bk%3D","line":3132,"updated":"2013-11-12 02:34:08.000000000","message":"and here","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3bf9f1dbffb99f556333bd173bf077005107d562","unresolved":false,"context_lines":[{"line_number":3129,"context_line":"            instance_dir \u003d libvirt_utils.get_instance_path(instance)"},{"line_number":3130,"context_line":"            xml_path \u003d os.path.join(instance_dir, \u0027libvirt.xml\u0027)"},{"line_number":3131,"context_line":"            libvirt_utils.write_to_file(xml_path, xml)"},{"line_number":3132,"context_line":""},{"line_number":3133,"context_line":"        LOG.debug(_(\u0027End to_xml instance\u003d%(instance)s xml\u003d%(xml)s\u0027),"},{"line_number":3134,"context_line":"                  {\u0027instance\u0027: instance, \u0027xml\u0027: xml})"},{"line_number":3135,"context_line":"        return xml"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ3Q%3D","line":3132,"in_reply_to":"AAAATn%2F%2FQ%2Bk%3D","updated":"2013-11-12 03:13:10.000000000","message":"Done","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c662b076c3c7c75cf53f613fe8ba86e4976fd008","unresolved":false,"context_lines":[{"line_number":3750,"context_line":"                                 wr_bytes\u003dvol_stats[3],"},{"line_number":3751,"context_line":"                                 flush_operations\u003dvol_stats[4])"},{"line_number":3752,"context_line":"                    LOG.debug("},{"line_number":3753,"context_line":"                        _(\"Got volume usage stats for the volume\u003d%(volume)s,\""},{"line_number":3754,"context_line":"                          \" instance\u003d%(instance)s, rd_req\u003d%(rd_req)d,\""},{"line_number":3755,"context_line":"                          \" rd_bytes\u003d%(rd_bytes)d, wr_req\u003d%(wr_req)d,\""},{"line_number":3756,"context_line":"                          \" wr_bytes\u003d%(wr_bytes)d\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ%2Bc%3D","line":3753,"updated":"2013-11-12 02:34:08.000000000","message":"how about this?","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3bf9f1dbffb99f556333bd173bf077005107d562","unresolved":false,"context_lines":[{"line_number":3750,"context_line":"                                 wr_bytes\u003dvol_stats[3],"},{"line_number":3751,"context_line":"                                 flush_operations\u003dvol_stats[4])"},{"line_number":3752,"context_line":"                    LOG.debug("},{"line_number":3753,"context_line":"                        _(\"Got volume usage stats for the volume\u003d%(volume)s,\""},{"line_number":3754,"context_line":"                          \" instance\u003d%(instance)s, rd_req\u003d%(rd_req)d,\""},{"line_number":3755,"context_line":"                          \" rd_bytes\u003d%(rd_bytes)d, wr_req\u003d%(wr_req)d,\""},{"line_number":3756,"context_line":"                          \" wr_bytes\u003d%(wr_bytes)d\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ3M%3D","line":3753,"in_reply_to":"AAAATn%2F%2FQ%2Bc%3D","updated":"2013-11-12 03:13:10.000000000","message":"Done","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c662b076c3c7c75cf53f613fe8ba86e4976fd008","unresolved":false,"context_lines":[{"line_number":3768,"context_line":"            return domain.blockStats(disk)"},{"line_number":3769,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":3770,"context_line":"            errcode \u003d e.get_error_code()"},{"line_number":3771,"context_line":"            LOG.info(_(\u0027Getting block stats failed, device might have \u0027"},{"line_number":3772,"context_line":"                       \u0027been detached. Instance\u003d%(instance_name)s \u0027"},{"line_number":3773,"context_line":"                       \u0027Disk\u003d%(disk)s Code\u003d%(errcode)s Error\u003d%(e)s\u0027),"},{"line_number":3774,"context_line":"                     {\u0027instance_name\u0027: instance_name, \u0027disk\u0027: disk,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ%2BY%3D","line":3771,"updated":"2013-11-12 02:34:08.000000000","message":"and here","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3bf9f1dbffb99f556333bd173bf077005107d562","unresolved":false,"context_lines":[{"line_number":3768,"context_line":"            return domain.blockStats(disk)"},{"line_number":3769,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":3770,"context_line":"            errcode \u003d e.get_error_code()"},{"line_number":3771,"context_line":"            LOG.info(_(\u0027Getting block stats failed, device might have \u0027"},{"line_number":3772,"context_line":"                       \u0027been detached. Instance\u003d%(instance_name)s \u0027"},{"line_number":3773,"context_line":"                       \u0027Disk\u003d%(disk)s Code\u003d%(errcode)s Error\u003d%(e)s\u0027),"},{"line_number":3774,"context_line":"                     {\u0027instance_name\u0027: instance_name, \u0027disk\u0027: disk,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ3I%3D","line":3771,"in_reply_to":"AAAATn%2F%2FQ%2BY%3D","updated":"2013-11-12 03:13:10.000000000","message":"Done","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"2b2b50ccf399b3fe921fceb63e37fae8ee39307f","unresolved":false,"context_lines":[{"line_number":3768,"context_line":"            return domain.blockStats(disk)"},{"line_number":3769,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":3770,"context_line":"            errcode \u003d e.get_error_code()"},{"line_number":3771,"context_line":"            LOG.info(_(\u0027Getting block stats failed, device might have \u0027"},{"line_number":3772,"context_line":"                       \u0027been detached. Instance\u003d%(instance_name)s \u0027"},{"line_number":3773,"context_line":"                       \u0027Disk\u003d%(disk)s Code\u003d%(errcode)s Error\u003d%(e)s\u0027),"},{"line_number":3774,"context_line":"                     {\u0027instance_name\u0027: instance_name, \u0027disk\u0027: disk,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQwI%3D","line":3771,"in_reply_to":"AAAATn%2F%2FQ3I%3D","updated":"2013-11-12 04:06:53.000000000","message":"Actually, I can\u0027t do this one in this review because the interface requires a name not a full instance, which is stupid.","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c662b076c3c7c75cf53f613fe8ba86e4976fd008","unresolved":false,"context_lines":[{"line_number":3773,"context_line":"                       \u0027Disk\u003d%(disk)s Code\u003d%(errcode)s Error\u003d%(e)s\u0027),"},{"line_number":3774,"context_line":"                     {\u0027instance_name\u0027: instance_name, \u0027disk\u0027: disk,"},{"line_number":3775,"context_line":"                      \u0027errcode\u0027: errcode, \u0027e\u0027: e})"},{"line_number":3776,"context_line":"        except exception.InstanceNotFound:"},{"line_number":3777,"context_line":"            LOG.info(_(\u0027Could not find domain in libvirt for instance %s. \u0027"},{"line_number":3778,"context_line":"                       \u0027Cannot get block stats for device\u0027), instance_name)"},{"line_number":3779,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ%2BE%3D","line":3776,"updated":"2013-11-12 02:34:08.000000000","message":"and here?","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3bf9f1dbffb99f556333bd173bf077005107d562","unresolved":false,"context_lines":[{"line_number":3773,"context_line":"                       \u0027Disk\u003d%(disk)s Code\u003d%(errcode)s Error\u003d%(e)s\u0027),"},{"line_number":3774,"context_line":"                     {\u0027instance_name\u0027: instance_name, \u0027disk\u0027: disk,"},{"line_number":3775,"context_line":"                      \u0027errcode\u0027: errcode, \u0027e\u0027: e})"},{"line_number":3776,"context_line":"        except exception.InstanceNotFound:"},{"line_number":3777,"context_line":"            LOG.info(_(\u0027Could not find domain in libvirt for instance %s. \u0027"},{"line_number":3778,"context_line":"                       \u0027Cannot get block stats for device\u0027), instance_name)"},{"line_number":3779,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ3E%3D","line":3776,"in_reply_to":"AAAATn%2F%2FQ%2BE%3D","updated":"2013-11-12 03:13:10.000000000","message":"Done","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"2b2b50ccf399b3fe921fceb63e37fae8ee39307f","unresolved":false,"context_lines":[{"line_number":3773,"context_line":"                       \u0027Disk\u003d%(disk)s Code\u003d%(errcode)s Error\u003d%(e)s\u0027),"},{"line_number":3774,"context_line":"                     {\u0027instance_name\u0027: instance_name, \u0027disk\u0027: disk,"},{"line_number":3775,"context_line":"                      \u0027errcode\u0027: errcode, \u0027e\u0027: e})"},{"line_number":3776,"context_line":"        except exception.InstanceNotFound:"},{"line_number":3777,"context_line":"            LOG.info(_(\u0027Could not find domain in libvirt for instance %s. \u0027"},{"line_number":3778,"context_line":"                       \u0027Cannot get block stats for device\u0027), instance_name)"},{"line_number":3779,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQwE%3D","line":3776,"in_reply_to":"AAAATn%2F%2FQ3E%3D","updated":"2013-11-12 04:06:53.000000000","message":"Ditto.","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c662b076c3c7c75cf53f613fe8ba86e4976fd008","unresolved":false,"context_lines":[{"line_number":3827,"context_line":"        if not os.path.exists(dirpath):"},{"line_number":3828,"context_line":"            return None"},{"line_number":3829,"context_line":""},{"line_number":3830,"context_line":"        fd, tmp_file \u003d tempfile.mkstemp(dir\u003ddirpath)"},{"line_number":3831,"context_line":"        LOG.debug(_(\"Creating tmpfile %s to verify with other \""},{"line_number":3832,"context_line":"                    \"compute node that the instance is on \""},{"line_number":3833,"context_line":"                    \"the same shared storage.\") % tmp_file)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ90%3D","line":3830,"updated":"2013-11-12 02:34:08.000000000","message":"not really the same as the spirit of your fix, but this could probably use the instance in the log message for context.","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3bf9f1dbffb99f556333bd173bf077005107d562","unresolved":false,"context_lines":[{"line_number":3827,"context_line":"        if not os.path.exists(dirpath):"},{"line_number":3828,"context_line":"            return None"},{"line_number":3829,"context_line":""},{"line_number":3830,"context_line":"        fd, tmp_file \u003d tempfile.mkstemp(dir\u003ddirpath)"},{"line_number":3831,"context_line":"        LOG.debug(_(\"Creating tmpfile %s to verify with other \""},{"line_number":3832,"context_line":"                    \"compute node that the instance is on \""},{"line_number":3833,"context_line":"                    \"the same shared storage.\") % tmp_file)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FQ28%3D","line":3830,"in_reply_to":"AAAATn%2F%2FQ90%3D","updated":"2013-11-12 03:13:10.000000000","message":"Done","commit_id":"507694bdc2fda129b4223d55f0763c7fa731c4fc"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"18eeae8590578e46b0d20363cd1f7a7ba4c772b3","unresolved":false,"context_lines":[{"line_number":1668,"context_line":"        \"\"\""},{"line_number":1669,"context_line":""},{"line_number":1670,"context_line":"        LOG.debug(_(\"volume_snapshot_create: create_info: %(c_info)s\"),"},{"line_number":1671,"context_line":"                  {\u0027c_info\u0027: create_info}, instance\u003dinstance)"},{"line_number":1672,"context_line":""},{"line_number":1673,"context_line":"        try:"},{"line_number":1674,"context_line":"            virt_dom \u003d self._lookup_by_name(instance[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FK48%3D","line":1671,"updated":"2013-11-13 12:28:18.000000000","message":"minor nit - when only using one parameter we can use %s","commit_id":"8645a462384477c1cd825b694d7ae27275daab6d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"18eeae8590578e46b0d20363cd1f7a7ba4c772b3","unresolved":false,"context_lines":[{"line_number":3132,"context_line":"            libvirt_utils.write_to_file(xml_path, xml)"},{"line_number":3133,"context_line":""},{"line_number":3134,"context_line":"        LOG.debug(_(\u0027End to_xml xml\u003d%(xml)s\u0027),"},{"line_number":3135,"context_line":"                  {\u0027xml\u0027: xml}, instance\u003dinstance)"},{"line_number":3136,"context_line":"        return xml"},{"line_number":3137,"context_line":""},{"line_number":3138,"context_line":"    def _lookup_by_id(self, instance_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FK4w%3D","line":3135,"updated":"2013-11-13 12:28:18.000000000","message":"ditto","commit_id":"8645a462384477c1cd825b694d7ae27275daab6d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"39bbc6ffcd35812958a2c0fc58603f1ca20967ac","unresolved":false,"context_lines":[{"line_number":3749,"context_line":"                                 rd_bytes\u003dvol_stats[1],"},{"line_number":3750,"context_line":"                                 wr_req\u003dvol_stats[2],"},{"line_number":3751,"context_line":"                                 wr_bytes\u003dvol_stats[3],"},{"line_number":3752,"context_line":"                                 flush_operations\u003dvol_stats[4])"},{"line_number":3753,"context_line":"                    LOG.debug("},{"line_number":3754,"context_line":"                        _(\"Got volume usage stats for the volume\u003d%(volume)s,\""},{"line_number":3755,"context_line":"                          \" rd_req\u003d%(rd_req)d, rd_bytes\u003d%(rd_bytes)d, \""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FO%2Fc%3D","line":3752,"updated":"2013-11-12 14:16:21.000000000","message":"Totally unrelated to this patch, but wondering if flush_operation was meant to go into the log message also since it\u0027s part of the dict that\u0027s used for string replacement.","commit_id":"8645a462384477c1cd825b694d7ae27275daab6d"}]}
