)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4da8ee9e3e42dd4413215b3682d9e8d0ecd5c9c0","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"DocImpact:"},{"line_number":24,"context_line":"This feature requires libvirt 0.10.2+ and the QEMU or KVM"},{"line_number":25,"context_line":"hpypervisor. If a volume has a custom block size, cinder considers"},{"line_number":26,"context_line":"it required. As such the hypervisor and libvirt version are"},{"line_number":27,"context_line":"checked during the attach_volume call. If the hypervisor is not"},{"line_number":28,"context_line":"supported or the libvirt version is too old the attach is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAPn%2F%2FUt8%3D","line":25,"updated":"2013-07-04 00:13:46.000000000","message":"\"hypervisor\" is misspelled.","commit_id":"88373805a52cf0344076a25d9e23665e45dd93f1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8d60cafca9c2f5d1982cb8110399c3b8d5db58db","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"DocImpact:"},{"line_number":24,"context_line":"This feature requires libvirt 0.10.2+ and the QEMU or KVM"},{"line_number":25,"context_line":"hpypervisor. If a volume has a custom block size, cinder considers"},{"line_number":26,"context_line":"it required. As such the hypervisor and libvirt version are"},{"line_number":27,"context_line":"checked during the attach_volume call. If the hypervisor is not"},{"line_number":28,"context_line":"supported or the libvirt version is too old the attach is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAPn%2F%2FUfE%3D","line":25,"updated":"2013-07-04 02:42:26.000000000","message":"Still misspelled?","commit_id":"738441385c4b4a5ee4c63bad41a7e167a2224e95"}],"nova/compute/manager.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"657c554d78108eaa51d38b8aa3ba5166eb7aab8d","unresolved":false,"context_lines":[{"line_number":855,"context_line":"                # during later operations."},{"line_number":856,"context_line":"                if \u0027volume_metadata\u0027 in volume:"},{"line_number":857,"context_line":"                    if \u0027logical_block_size\u0027 in volume[\u0027volume_metadata\u0027] and \\"},{"line_number":858,"context_line":"                            \u0027logical_block_size\u0027 not in cinfo:"},{"line_number":859,"context_line":"                        cinfo[\u0027logical_block_size\u0027] \u003d \\"},{"line_number":860,"context_line":"                            volume[\u0027volume_metadata\u0027][\u0027logical_block_size\u0027]"},{"line_number":861,"context_line":"                    if \u0027physical_block_size\u0027 in volume[\u0027volume_metadata\u0027] and \\"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2FV28%3D","line":858,"updated":"2013-07-03 17:42:37.000000000","message":"Our style is to not use a backslash to break a line, but rather wrap the whole thing in parens.","commit_id":"1549f33442f7eb861fffb67987de2d8f2e397327"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"657c554d78108eaa51d38b8aa3ba5166eb7aab8d","unresolved":false,"context_lines":[{"line_number":861,"context_line":"                    if \u0027physical_block_size\u0027 in volume[\u0027volume_metadata\u0027] and \\"},{"line_number":862,"context_line":"                            \u0027physical_block_size\u0027 not in cinfo:"},{"line_number":863,"context_line":"                        cinfo[\u0027physical_block_size\u0027] \u003d \\"},{"line_number":864,"context_line":"                            volume[\u0027volume_metadata\u0027][\u0027physical_block_size\u0027]"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"                self.conductor_api.block_device_mapping_update("},{"line_number":867,"context_line":"                        context, bdm[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2FV2w%3D","line":864,"updated":"2013-07-03 17:42:37.000000000","message":"This whole thing is a little confusing and deeply nested. Could you break this out into a helper method like _set_cinfo_block_sizes() or something?","commit_id":"1549f33442f7eb861fffb67987de2d8f2e397327"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"657c554d78108eaa51d38b8aa3ba5166eb7aab8d","unresolved":false,"context_lines":[{"line_number":3171,"context_line":"                if \u0027physical_block_size\u0027 in volume[\u0027volume_metadata\u0027] and \\"},{"line_number":3172,"context_line":"                        \u0027physical_block_size\u0027 not in connection_info:"},{"line_number":3173,"context_line":"                    connection_info[\u0027physical_block_size\u0027] \u003d \\"},{"line_number":3174,"context_line":"                        volume[\u0027volume_metadata\u0027][\u0027physical_block_size\u0027]"},{"line_number":3175,"context_line":""},{"line_number":3176,"context_line":"        except Exception:"},{"line_number":3177,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2FV2s%3D","line":3174,"updated":"2013-07-03 17:42:37.000000000","message":"I think if you did the above, then you could avoid the duplication here as well.","commit_id":"1549f33442f7eb861fffb67987de2d8f2e397327"}],"nova/virt/libvirt/config.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"657c554d78108eaa51d38b8aa3ba5166eb7aab8d","unresolved":false,"context_lines":[{"line_number":561,"context_line":""},{"line_number":562,"context_line":"        # Block size tuning"},{"line_number":563,"context_line":"        if self.logical_block_size is not None or \\"},{"line_number":564,"context_line":"                self.physical_block_size is not None:"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"            blockio \u003d etree.Element(\"blockio\")"},{"line_number":567,"context_line":"            if self.logical_block_size is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2FV2o%3D","line":564,"updated":"2013-07-03 17:42:37.000000000","message":"Another backslash here.","commit_id":"1549f33442f7eb861fffb67987de2d8f2e397327"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"657c554d78108eaa51d38b8aa3ba5166eb7aab8d","unresolved":false,"context_lines":[{"line_number":1030,"context_line":"            if not self.has_min_version(MIN_LIBVIRT_BLOCKIO_VERSION):"},{"line_number":1031,"context_line":"                req_version \u003d \"%s.%s.%s\" % (MIN_LIBVIRT_BLOCKIO_VERSION[0],"},{"line_number":1032,"context_line":"                                            MIN_LIBVIRT_BLOCKIO_VERSION[1],"},{"line_number":1033,"context_line":"                                            MIN_LIBVIRT_BLOCKIO_VERSION[2])"},{"line_number":1034,"context_line":"                msg \u003d _(\"Volume sets block size, but libvirt \u0027%s\u0027 or later is \""},{"line_number":1035,"context_line":"                        \"required.\") % req_version"},{"line_number":1036,"context_line":"                raise exception.Invalid(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2FV2I%3D","line":1033,"updated":"2013-07-03 17:42:37.000000000","message":"Better, IMHO:\n\n  \".\".join(MIN_LIBVIRT_BLOCKIO_VERSION)","commit_id":"1549f33442f7eb861fffb67987de2d8f2e397327"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"657c554d78108eaa51d38b8aa3ba5166eb7aab8d","unresolved":false,"context_lines":[{"line_number":1033,"context_line":"                                            MIN_LIBVIRT_BLOCKIO_VERSION[2])"},{"line_number":1034,"context_line":"                msg \u003d _(\"Volume sets block size, but libvirt \u0027%s\u0027 or later is \""},{"line_number":1035,"context_line":"                        \"required.\") % req_version"},{"line_number":1036,"context_line":"                raise exception.Invalid(msg)"},{"line_number":1037,"context_line":""},{"line_number":1038,"context_line":"        conf \u003d self.volume_driver_method(\u0027connect_volume\u0027,"},{"line_number":1039,"context_line":"                                         connection_info,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2FV14%3D","line":1036,"updated":"2013-07-03 17:42:37.000000000","message":"Hmm, do we need to fail here? Could we just ignore it and take the default with lower performance and a warning?","commit_id":"1549f33442f7eb861fffb67987de2d8f2e397327"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1693484fec99e92c7b29d8e6b4b5563b6de6914b","unresolved":false,"context_lines":[{"line_number":1023,"context_line":"        #            that we are using QEMU/KVM and libvirt \u003e\u003d 0.10.2. The"},{"line_number":1024,"context_line":"        #            prescence of a block size is considered mandatory by"},{"line_number":1025,"context_line":"        #            cinder so we fail if we can\u0027t honor the request."},{"line_number":1026,"context_line":"        data \u003d []"},{"line_number":1027,"context_line":"        if (\u0027data\u0027 in connection_info):"},{"line_number":1028,"context_line":"            data \u003d connection_info[\u0027data\u0027]"},{"line_number":1029,"context_line":"        if (\u0027logical_block_size\u0027 in data or \u0027physical_block_size\u0027 in data):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAQn%2F%2FV10%3D","line":1026,"updated":"2013-08-01 18:25:20.000000000","message":"I think that connection_info[\u0027data\u0027] is a dict, right? So while making this a list makes the code work, it \"seems wrong\" to do so :)","commit_id":"6d9e256df2711caffd2f72e50b3d0b9d9c819e15"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"32ba5362b23fddae458a40f16be9c7ffa268c3a6","unresolved":false,"context_lines":[{"line_number":1025,"context_line":"        #            prescence of a block size is considered mandatory by"},{"line_number":1026,"context_line":"        #            cinder so we fail if we can\u0027t honor the request."},{"line_number":1027,"context_line":"        data \u003d {}"},{"line_number":1028,"context_line":"        if (\u0027data\u0027 in connection_info):"},{"line_number":1029,"context_line":"            data \u003d connection_info[\u0027data\u0027]"},{"line_number":1030,"context_line":"        if (\u0027logical_block_size\u0027 in data or \u0027physical_block_size\u0027 in data):"},{"line_number":1031,"context_line":"            if CONF.libvirt_type !\u003d \"kvm\" and CONF.libvirt_type !\u003d \"qemu\":"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAQn%2F%2B68g%3D","line":1028,"updated":"2013-08-09 21:08:45.000000000","message":"Parentheses unneeded (femtonit)","commit_id":"b6eb64497836608a804e69b208bb4312fed0c049"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"32ba5362b23fddae458a40f16be9c7ffa268c3a6","unresolved":false,"context_lines":[{"line_number":1027,"context_line":"        data \u003d {}"},{"line_number":1028,"context_line":"        if (\u0027data\u0027 in connection_info):"},{"line_number":1029,"context_line":"            data \u003d connection_info[\u0027data\u0027]"},{"line_number":1030,"context_line":"        if (\u0027logical_block_size\u0027 in data or \u0027physical_block_size\u0027 in data):"},{"line_number":1031,"context_line":"            if CONF.libvirt_type !\u003d \"kvm\" and CONF.libvirt_type !\u003d \"qemu\":"},{"line_number":1032,"context_line":"                msg \u003d _(\"Volume sets block size, but the current \""},{"line_number":1033,"context_line":"                        \"libvirt hypervisor \u0027%s\u0027 does not support custom \""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAQn%2F%2B68Y%3D","line":1030,"updated":"2013-08-09 21:08:45.000000000","message":"Parentheses unneeded (femtonit)","commit_id":"b6eb64497836608a804e69b208bb4312fed0c049"}],"nova/virt/libvirt/volume.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"657c554d78108eaa51d38b8aa3ba5166eb7aab8d","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # Support for block size tuning"},{"line_number":100,"context_line":"        if \u0027logical_block_size\u0027 in connection_info:"},{"line_number":101,"context_line":"            conf.logical_block_size \u003d \\"},{"line_number":102,"context_line":"                connection_info[\u0027logical_block_size\u0027]"},{"line_number":103,"context_line":"        if \u0027physical_block_size\u0027 in connection_info:"},{"line_number":104,"context_line":"            conf.physical_block_size \u003d \\"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2FV1w%3D","line":101,"updated":"2013-07-03 17:42:37.000000000","message":"Backslash here and below.","commit_id":"1549f33442f7eb861fffb67987de2d8f2e397327"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1693484fec99e92c7b29d8e6b4b5563b6de6914b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        conf.serial \u003d connection_info.get(\u0027serial\u0027)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # Support for block size tuning"},{"line_number":103,"context_line":"        data \u003d []"},{"line_number":104,"context_line":"        if \u0027data\u0027 in connection_info:"},{"line_number":105,"context_line":"            data \u003d connection_info[\u0027data\u0027]"},{"line_number":106,"context_line":"        if \u0027logical_block_size\u0027 in data:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAQn%2F%2FV1s%3D","line":103,"updated":"2013-08-01 18:25:20.000000000","message":"Same argument here. It looks especially confusing since it\u0027s used as an array below. Granted, only if it\u0027s actually a dict with the proper key(s), but...","commit_id":"6d9e256df2711caffd2f72e50b3d0b9d9c819e15"}]}
