)]}'
{"ceilometer/compute/virt/inspector.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"3b885b4334a86457505c171cdbf5bcc867993ac8","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"class InstanceNotFoundException(InspectorException):"},{"line_number":143,"context_line":"    pass"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class InstanceIsShutoffException(InspectorException):"},{"line_number":146,"context_line":"    pass"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_bef16c03","line":144,"updated":"2014-12-27 09:17:08.000000000","message":"pep8 requires two blanks here","commit_id":"a07e1b519427f7ab70e7e62d2f970d5bcb7a34fe"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"3b885b4334a86457505c171cdbf5bcc867993ac8","unresolved":false,"context_lines":[{"line_number":145,"context_line":"class InstanceIsShutoffException(InspectorException):"},{"line_number":146,"context_line":"    pass"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"class InstanceMeterVolumeInvalid(InspectorException):"},{"line_number":149,"context_line":"    pass"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_feda1478","line":148,"updated":"2014-12-27 09:17:08.000000000","message":"ditto","commit_id":"a07e1b519427f7ab70e7e62d2f970d5bcb7a34fe"}],"ceilometer/compute/virt/vmware/inspector.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"3b885b4334a86457505c171cdbf5bcc867993ac8","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def inspect_cpu_util(self, instance, duration\u003dNone):"},{"line_number":91,"context_line":"        if instance.to_dict()[\u0027OS-EXT-STS:vm_state\u0027] \u003d\u003d \"shutoff\":"},{"line_number":92,"context_line":"            raise virt_inspector.InstanceIsShutoffException(_(\u0027VM %s is shutoff\u0027) % instance.id)"},{"line_number":93,"context_line":"        vm_moid \u003d self._ops.get_vm_moid(instance.id)"},{"line_number":94,"context_line":"        if vm_moid is None:"},{"line_number":95,"context_line":"            raise virt_inspector.InstanceNotFoundException("}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_9ed3d05e","line":92,"updated":"2014-12-27 09:17:08.000000000","message":"you really need to read pep8 rules and hacking rules\n\nI recommend to do local check first, especially when CI is broken now (it fails because our pypi mirror has some issue)","commit_id":"a07e1b519427f7ab70e7e62d2f970d5bcb7a34fe"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8e2a2d1e6ec962d69006fa3d7166cceb580c6003","unresolved":false,"context_lines":[{"line_number":83,"context_line":"def validate_instance_status(instance):"},{"line_number":84,"context_line":"    if instance.to_dict().get(\u0027OS-EXT-STS:vm_state\u0027, \"\").lower() !\u003d \"active\":"},{"line_number":85,"context_line":"        raise virt_inspector.InstanceStatusInvalidException("},{"line_number":86,"context_line":"            _(\u0027VM id[%(vmid)s] is unavilable, current status is: %(state)s\u0027) %"},{"line_number":87,"context_line":"            {\"vmid\": instance.id,"},{"line_number":88,"context_line":"             \"state\": instance.to_dict().get(\u0027OS-EXT-STS:vm_state\u0027, \"\")})"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_3e42b1ab","line":86,"updated":"2015-01-13 04:28:38.000000000","message":"to keep consistent with other message, remove the [] pair please.\n\ns/unavilable/unavailable/","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"5d55cf142566a2228051fddaf3374e12f31b261e","unresolved":false,"context_lines":[{"line_number":83,"context_line":"def validate_instance_status(instance):"},{"line_number":84,"context_line":"    if instance.to_dict().get(\u0027OS-EXT-STS:vm_state\u0027, \"\").lower() !\u003d \"active\":"},{"line_number":85,"context_line":"        raise virt_inspector.InstanceStatusInvalidException("},{"line_number":86,"context_line":"            _(\u0027VM id[%(vmid)s] is unavilable, current status is: %(state)s\u0027) %"},{"line_number":87,"context_line":"            {\"vmid\": instance.id,"},{"line_number":88,"context_line":"             \"state\": instance.to_dict().get(\u0027OS-EXT-STS:vm_state\u0027, \"\")})"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_eb106a51","line":86,"in_reply_to":"3a961159_3e42b1ab","updated":"2015-01-13 09:01:43.000000000","message":"fixed","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8e2a2d1e6ec962d69006fa3d7166cceb580c6003","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # corresponding API can\u0027t return decimals, but only longs."},{"line_number":111,"context_line":"        # For e.g. if the utilization is 12.34%, the value returned is 1234."},{"line_number":112,"context_line":"        # Hence, dividing by 100."},{"line_number":113,"context_line":"        if cpu_util \u003c 0:"},{"line_number":114,"context_line":"            raise virt_inspector.InstanceMeterVolumeInvalid("},{"line_number":115,"context_line":"                _(\u0027VM %(vmid)s cpu_util volume is invalid: %(volume)d\u0027)"},{"line_number":116,"context_line":"                % {\"vmid\": instance.id, \"volume\": cpu_util})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_fefae942","line":113,"updated":"2015-01-13 04:28:38.000000000","message":"what would the reason for? (maybe you have explained, but that some days ago...)","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"5d55cf142566a2228051fddaf3374e12f31b261e","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # corresponding API can\u0027t return decimals, but only longs."},{"line_number":111,"context_line":"        # For e.g. if the utilization is 12.34%, the value returned is 1234."},{"line_number":112,"context_line":"        # Hence, dividing by 100."},{"line_number":113,"context_line":"        if cpu_util \u003c 0:"},{"line_number":114,"context_line":"            raise virt_inspector.InstanceMeterVolumeInvalid("},{"line_number":115,"context_line":"                _(\u0027VM %(vmid)s cpu_util volume is invalid: %(volume)d\u0027)"},{"line_number":116,"context_line":"                % {\"vmid\": instance.id, \"volume\": cpu_util})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_b9131b64","line":113,"in_reply_to":"3a961159_fefae942","updated":"2015-01-13 09:01:43.000000000","message":"The return value will be -1 whenever cpu_util is not available. It was because the VM is shutoff in my case, but I was worrying that there maybe other cases that I cannot expect, so I added this line to make sure that no matter what happens, the volume will not be negative","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8e2a2d1e6ec962d69006fa3d7166cceb580c6003","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            def stat_val(counter_name):"},{"line_number":140,"context_line":"                # in case one of the nic is broken"},{"line_number":141,"context_line":"                ret \u003d vnic_stats[counter_name].get(vnic_id, 0)"},{"line_number":142,"context_line":"                if ret \u003c 0:"},{"line_number":143,"context_line":"                    return 0"},{"line_number":144,"context_line":"                return ret"},{"line_number":145,"context_line":"            rx_bytes_rate \u003d (stat_val(VC_NETWORK_RX_COUNTER) * units.Ki)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_7e96f9f0","line":142,"updated":"2015-01-13 04:28:38.000000000","message":"should log for this situation, for example, LOG.warn(_(\u0027blablabla\u0027)) or info level, that depends how bad this scenario is","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"5d55cf142566a2228051fddaf3374e12f31b261e","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            def stat_val(counter_name):"},{"line_number":140,"context_line":"                # in case one of the nic is broken"},{"line_number":141,"context_line":"                ret \u003d vnic_stats[counter_name].get(vnic_id, 0)"},{"line_number":142,"context_line":"                if ret \u003c 0:"},{"line_number":143,"context_line":"                    return 0"},{"line_number":144,"context_line":"                return ret"},{"line_number":145,"context_line":"            rx_bytes_rate \u003d (stat_val(VC_NETWORK_RX_COUNTER) * units.Ki)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_ab5582fb","line":142,"in_reply_to":"3a961159_7e96f9f0","updated":"2015-01-13 09:01:43.000000000","message":"fixed","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8e2a2d1e6ec962d69006fa3d7166cceb580c6003","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                if ret \u003c 0:"},{"line_number":143,"context_line":"                    return 0"},{"line_number":144,"context_line":"                return ret"},{"line_number":145,"context_line":"            rx_bytes_rate \u003d (stat_val(VC_NETWORK_RX_COUNTER) * units.Ki)"},{"line_number":146,"context_line":"            tx_bytes_rate \u003d (stat_val(VC_NETWORK_TX_COUNTER) * units.Ki)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"            stats \u003d virt_inspector.InterfaceRateStats(rx_bytes_rate,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_5e5e9d7a","line":145,"updated":"2015-01-13 04:28:38.000000000","message":"the outside () pair should be removed","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"5d55cf142566a2228051fddaf3374e12f31b261e","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                if ret \u003c 0:"},{"line_number":143,"context_line":"                    return 0"},{"line_number":144,"context_line":"                return ret"},{"line_number":145,"context_line":"            rx_bytes_rate \u003d (stat_val(VC_NETWORK_RX_COUNTER) * units.Ki)"},{"line_number":146,"context_line":"            tx_bytes_rate \u003d (stat_val(VC_NETWORK_TX_COUNTER) * units.Ki)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"            stats \u003d virt_inspector.InterfaceRateStats(rx_bytes_rate,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_0b3a16c4","line":145,"in_reply_to":"3a961159_5e5e9d7a","updated":"2015-01-13 09:01:43.000000000","message":"fixed","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8e2a2d1e6ec962d69006fa3d7166cceb580c6003","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                    return 0"},{"line_number":144,"context_line":"                return ret"},{"line_number":145,"context_line":"            rx_bytes_rate \u003d (stat_val(VC_NETWORK_RX_COUNTER) * units.Ki)"},{"line_number":146,"context_line":"            tx_bytes_rate \u003d (stat_val(VC_NETWORK_TX_COUNTER) * units.Ki)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"            stats \u003d virt_inspector.InterfaceRateStats(rx_bytes_rate,"},{"line_number":149,"context_line":"                                                      tx_bytes_rate)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_7e619937","line":146,"updated":"2015-01-13 04:28:38.000000000","message":"ditto","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"5d55cf142566a2228051fddaf3374e12f31b261e","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                    return 0"},{"line_number":144,"context_line":"                return ret"},{"line_number":145,"context_line":"            rx_bytes_rate \u003d (stat_val(VC_NETWORK_RX_COUNTER) * units.Ki)"},{"line_number":146,"context_line":"            tx_bytes_rate \u003d (stat_val(VC_NETWORK_TX_COUNTER) * units.Ki)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"            stats \u003d virt_inspector.InterfaceRateStats(rx_bytes_rate,"},{"line_number":149,"context_line":"                                                      tx_bytes_rate)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_2b499260","line":146,"in_reply_to":"3a961159_7e619937","updated":"2015-01-13 09:01:43.000000000","message":"fixed","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8e2a2d1e6ec962d69006fa3d7166cceb580c6003","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            vm_moid, mem_counter_id, duration)"},{"line_number":167,"context_line":"        if memory \u003c 0:"},{"line_number":168,"context_line":"            raise virt_inspector.InstanceMeterVolumeInvalid("},{"line_number":169,"context_line":"                _(\u0027VM %(vmid)s memory volume is invalid: %(volume)d\u0027)"},{"line_number":170,"context_line":"                % {\"vmid\": instance.id, \"volume\": memory})"},{"line_number":171,"context_line":"        # Stat provided from vSphere is in KB, converting it to MB."},{"line_number":172,"context_line":"        memory \u003d memory / units.Ki"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_ded8cdf2","line":169,"updated":"2015-01-13 04:28:38.000000000","message":"s/memory volume/memory usage volume/","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"5d55cf142566a2228051fddaf3374e12f31b261e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            vm_moid, mem_counter_id, duration)"},{"line_number":167,"context_line":"        if memory \u003c 0:"},{"line_number":168,"context_line":"            raise virt_inspector.InstanceMeterVolumeInvalid("},{"line_number":169,"context_line":"                _(\u0027VM %(vmid)s memory volume is invalid: %(volume)d\u0027)"},{"line_number":170,"context_line":"                % {\"vmid\": instance.id, \"volume\": memory})"},{"line_number":171,"context_line":"        # Stat provided from vSphere is in KB, converting it to MB."},{"line_number":172,"context_line":"        memory \u003d memory / units.Ki"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_ab6ca2d1","line":169,"in_reply_to":"3a961159_ded8cdf2","updated":"2015-01-13 09:01:43.000000000","message":"fixed","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8e2a2d1e6ec962d69006fa3d7166cceb580c6003","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            def stat_val(counter_name):"},{"line_number":201,"context_line":"                # in case one of the disks is broken"},{"line_number":202,"context_line":"                ret \u003d disk_stats[counter_name].get(disk_id, 0)"},{"line_number":203,"context_line":"                if ret \u003c 0:"},{"line_number":204,"context_line":"                    return 0"},{"line_number":205,"context_line":"                return ret"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_de860dba","line":203,"updated":"2015-01-13 04:28:38.000000000","message":"ditto","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"5d55cf142566a2228051fddaf3374e12f31b261e","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            def stat_val(counter_name):"},{"line_number":201,"context_line":"                # in case one of the disks is broken"},{"line_number":202,"context_line":"                ret \u003d disk_stats[counter_name].get(disk_id, 0)"},{"line_number":203,"context_line":"                if ret \u003c 0:"},{"line_number":204,"context_line":"                    return 0"},{"line_number":205,"context_line":"                return ret"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_cbf48ef3","line":203,"in_reply_to":"3a961159_de860dba","updated":"2015-01-13 09:01:43.000000000","message":"fixed","commit_id":"3ed6aa90afe5ce6399e555b5677ea4a33fddfba2"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"ac40a80d4c690c083dd3a3251179baab5c702fea","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                ret \u003d vnic_stats[counter_name].get(vnic_id, 0)"},{"line_number":146,"context_line":"                if ret \u003c 0:"},{"line_number":147,"context_line":"                    LOG.warn("},{"line_number":148,"context_line":"                        _(\"VM %(vmid)s NIC %(nicid)s %(cntr_name)s is invalid\")"},{"line_number":149,"context_line":"                        % {\"vmid\": instance.id, \"nicid\": vnic_id,"},{"line_number":150,"context_line":"                           \"cntr_name\": counter_name})"},{"line_number":151,"context_line":"                    return 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_9f647c22","line":148,"updated":"2015-01-13 09:17:43.000000000","message":"is counter_name invliad, or volume is invalid, or just that resource is broken then volume is negative?\n\nif counter_name is invalid, then it seems not be recoverable, and will fail on every nic","commit_id":"69144d80797bb297615f04ea299b258588ba797b"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"e45b6a4b9278ed49cbf9d656f2b874737eb74690","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                ret \u003d vnic_stats[counter_name].get(vnic_id, 0)"},{"line_number":146,"context_line":"                if ret \u003c 0:"},{"line_number":147,"context_line":"                    LOG.warn("},{"line_number":148,"context_line":"                        _(\"VM %(vmid)s NIC %(nicid)s %(cntr_name)s is invalid\")"},{"line_number":149,"context_line":"                        % {\"vmid\": instance.id, \"nicid\": vnic_id,"},{"line_number":150,"context_line":"                           \"cntr_name\": counter_name})"},{"line_number":151,"context_line":"                    return 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_faff4e33","line":148,"in_reply_to":"3a961159_9f647c22","updated":"2015-01-13 09:55:45.000000000","message":"It\u0027s volume invalid. The resource is not broken, and counter_name is not invalid. Will add more specific log message","commit_id":"69144d80797bb297615f04ea299b258588ba797b"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"ac40a80d4c690c083dd3a3251179baab5c702fea","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                ret \u003d disk_stats[counter_name].get(disk_id, 0)"},{"line_number":211,"context_line":"                if ret \u003c 0:"},{"line_number":212,"context_line":"                    LOG.warn("},{"line_number":213,"context_line":"                        _(\"VM %(vmid)s disk %(diskid)s %(cntr_name)s\")"},{"line_number":214,"context_line":"                        % {\"vmid\": instance.id, \"diskid\": disk_id,"},{"line_number":215,"context_line":"                           \"cntr_name\": counter_name})"},{"line_number":216,"context_line":"                    return 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_3f7f08ad","line":213,"updated":"2015-01-13 09:17:43.000000000","message":"ditto","commit_id":"69144d80797bb297615f04ea299b258588ba797b"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"1dc676fd2d9602cf3674c0f736f5db6c1f928ef8","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"def validate_instance_status(instance):"},{"line_number":88,"context_line":"    if instance.to_dict().get(\u0027OS-EXT-STS:vm_state\u0027, \"\").lower() !\u003d \"active\":"},{"line_number":89,"context_line":"        raise virt_inspector.InstanceShutOffException("},{"line_number":90,"context_line":"            _(\u0027VM %(vmid)s is unavailable, current status is: %(state)s\u0027) %"},{"line_number":91,"context_line":"            {\"vmid\": instance.id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_0a29b289","line":88,"updated":"2015-02-12 08:27:24.000000000","message":"-1: use a local variable since you are using instance.to_dict().get(\u0027OS-EXT-STS:vm_state\u0027, \"\") for two times\n\nI suggest to use:\n\n   state \u003d getattr(instance, \u0027OS-EXT-STS:vm_state\u0027, \u0027\u0027)\n\nno need to use to_dict()","commit_id":"c2e26bb72d943d47085d5570fe2fff543bbfdf84"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"1dc676fd2d9602cf3674c0f736f5db6c1f928ef8","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                if ret \u003c 0:"},{"line_number":147,"context_line":"                    LOG.warn("},{"line_number":148,"context_line":"                        _(\"VM %(vmid)s NIC %(nicid)s %(cntr_name)s volume is \""},{"line_number":149,"context_line":"                          \"invalid. The value is: %(volume)d\")"},{"line_number":150,"context_line":"                        % {\"vmid\": instance.id, \"nicid\": vnic_id,"},{"line_number":151,"context_line":"                           \"cntr_name\": counter_name, \"volume\": ret})"},{"line_number":152,"context_line":"                    return 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_aa3ee6b5","line":149,"updated":"2015-02-12 08:27:24.000000000","message":"nit: use _LW","commit_id":"c2e26bb72d943d47085d5570fe2fff543bbfdf84"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"1dc676fd2d9602cf3674c0f736f5db6c1f928ef8","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                ret \u003d disk_stats[counter_name].get(disk_id, 0)"},{"line_number":212,"context_line":"                if ret \u003c 0:"},{"line_number":213,"context_line":"                    LOG.warn("},{"line_number":214,"context_line":"                        _(\"VM %(vmid)s disk %(diskid)s %(cntr_name)s volume \""},{"line_number":215,"context_line":"                          \"is invalid. The value is: %(volume)d\")"},{"line_number":216,"context_line":"                        % {\"vmid\": instance.id, \"diskid\": disk_id,"},{"line_number":217,"context_line":"                           \"cntr_name\": counter_name, \"volume\": ret})"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_4a564a07","line":214,"updated":"2015-02-12 08:27:24.000000000","message":"nit: use _LW","commit_id":"c2e26bb72d943d47085d5570fe2fff543bbfdf84"},{"author":{"_account_id":9459,"name":".Haifeng Yan","email":"yanheven@qq.com","username":"yan"},"change_message_id":"83fb05da3909f9bdfdb20bfa1762dd3134354f1b","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from ceilometer.compute.virt import inspector as virt_inspector"},{"line_number":23,"context_line":"from ceilometer.compute.virt.vmware import vsphere_operations"},{"line_number":24,"context_line":"from ceilometer.i18n import _, _LW"},{"line_number":25,"context_line":"from ceilometer.openstack.common import log as logging"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_0da46cb8","line":24,"updated":"2015-02-12 09:05:15.000000000","message":"you should import _LW in an other line","commit_id":"e2f61707280be2f91c0beb56f5bb204950afc945"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"8cffc067e0ff83797a6766fb29e9c6309ed86863","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from ceilometer.compute.virt import inspector as virt_inspector"},{"line_number":23,"context_line":"from ceilometer.compute.virt.vmware import vsphere_operations"},{"line_number":24,"context_line":"from ceilometer.i18n import _, _LW"},{"line_number":25,"context_line":"from ceilometer.openstack.common import log as logging"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_a337f1e1","line":24,"in_reply_to":"da86d52c_0da46cb8","updated":"2015-02-12 09:45:39.000000000","message":"is this a necessity? I saw a lot of places importing multiple items in one line in this project. Actually I refferenced collector.py when I wrote this line. I certainly will fix it if it\u0027s a convention.","commit_id":"e2f61707280be2f91c0beb56f5bb204950afc945"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"94a9c09a17fcc762b88180a75520ebd87db4da4c","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from ceilometer.compute.virt import inspector as virt_inspector"},{"line_number":23,"context_line":"from ceilometer.compute.virt.vmware import vsphere_operations"},{"line_number":24,"context_line":"from ceilometer.i18n import _, _LW"},{"line_number":25,"context_line":"from ceilometer.openstack.common import log as logging"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_e0f55f51","line":24,"in_reply_to":"da86d52c_0da46cb8","updated":"2015-02-12 09:34:26.000000000","message":"not very need, we\u0027ve already listed the ceilometer.i18n to pep8 exception","commit_id":"e2f61707280be2f91c0beb56f5bb204950afc945"},{"author":{"_account_id":9459,"name":".Haifeng Yan","email":"yanheven@qq.com","username":"yan"},"change_message_id":"dcef6d75efab2afe370f506f61e12a8f7441133b","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from ceilometer.compute.virt import inspector as virt_inspector"},{"line_number":23,"context_line":"from ceilometer.compute.virt.vmware import vsphere_operations"},{"line_number":24,"context_line":"from ceilometer.i18n import _, _LW"},{"line_number":25,"context_line":"from ceilometer.openstack.common import log as logging"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_e34e4937","line":24,"in_reply_to":"da86d52c_e0f55f51","updated":"2015-02-12 09:46:16.000000000","message":"ok,ignore me","commit_id":"e2f61707280be2f91c0beb56f5bb204950afc945"},{"author":{"_account_id":9459,"name":".Haifeng Yan","email":"yanheven@qq.com","username":"yan"},"change_message_id":"ec699084694420667c96a0ef564ca6a5e87d48e0","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # Stats provided from vSphere are in KB/s, converting it to B/s."},{"line_number":143,"context_line":"        for vnic_id in vnic_ids:"},{"line_number":144,"context_line":"            def stat_val(counter_name):"},{"line_number":145,"context_line":"                # in case one of the nic is broken"},{"line_number":146,"context_line":"                ret \u003d vnic_stats[counter_name].get(vnic_id, 0)"},{"line_number":147,"context_line":"                if ret \u003c 0:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_e0e0ff27","line":144,"updated":"2015-02-12 09:22:25.000000000","message":"don\u0027t repeat yourself","commit_id":"e2f61707280be2f91c0beb56f5bb204950afc945"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"93945f6abe1852219c0e498280eba5f20e15cd80","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # Stats provided from vSphere are in KB/s, converting it to B/s."},{"line_number":143,"context_line":"        for vnic_id in vnic_ids:"},{"line_number":144,"context_line":"            def stat_val(counter_name):"},{"line_number":145,"context_line":"                # in case one of the nic is broken"},{"line_number":146,"context_line":"                ret \u003d vnic_stats[counter_name].get(vnic_id, 0)"},{"line_number":147,"context_line":"                if ret \u003c 0:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_038b5d1f","line":144,"in_reply_to":"da86d52c_63433913","updated":"2015-02-12 09:52:15.000000000","message":"I don\u0027t think a global method is a practical idea. the data structure of vnic_stats and disk_stats may be different from eachother.\n\nBut I was thinking moving the function out of the loop?","commit_id":"e2f61707280be2f91c0beb56f5bb204950afc945"},{"author":{"_account_id":9459,"name":".Haifeng Yan","email":"yanheven@qq.com","username":"yan"},"change_message_id":"dcef6d75efab2afe370f506f61e12a8f7441133b","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # Stats provided from vSphere are in KB/s, converting it to B/s."},{"line_number":143,"context_line":"        for vnic_id in vnic_ids:"},{"line_number":144,"context_line":"            def stat_val(counter_name):"},{"line_number":145,"context_line":"                # in case one of the nic is broken"},{"line_number":146,"context_line":"                ret \u003d vnic_stats[counter_name].get(vnic_id, 0)"},{"line_number":147,"context_line":"                if ret \u003c 0:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_63433913","line":144,"in_reply_to":"da86d52c_e0471fa1","updated":"2015-02-12 09:46:16.000000000","message":"maybe a global method \"get_validate_volume\",can be called when check the volume of nic and disk","commit_id":"e2f61707280be2f91c0beb56f5bb204950afc945"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"94a9c09a17fcc762b88180a75520ebd87db4da4c","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # Stats provided from vSphere are in KB/s, converting it to B/s."},{"line_number":143,"context_line":"        for vnic_id in vnic_ids:"},{"line_number":144,"context_line":"            def stat_val(counter_name):"},{"line_number":145,"context_line":"                # in case one of the nic is broken"},{"line_number":146,"context_line":"                ret \u003d vnic_stats[counter_name].get(vnic_id, 0)"},{"line_number":147,"context_line":"                if ret \u003c 0:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_e0471fa1","line":144,"in_reply_to":"da86d52c_e0e0ff27","updated":"2015-02-12 09:34:26.000000000","message":"then what is the non-repeat version?","commit_id":"e2f61707280be2f91c0beb56f5bb204950afc945"},{"author":{"_account_id":9459,"name":".Haifeng Yan","email":"yanheven@qq.com","username":"yan"},"change_message_id":"ec699084694420667c96a0ef564ca6a5e87d48e0","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        for disk_id in disk_ids:"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"            def stat_val(counter_name):"},{"line_number":211,"context_line":"                # in case one of the disks is broken"},{"line_number":212,"context_line":"                ret \u003d disk_stats[counter_name].get(disk_id, 0)"},{"line_number":213,"context_line":"                if ret \u003c 0:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_20d6974f","line":210,"updated":"2015-02-12 09:22:25.000000000","message":"don\u0027t repeat yourself","commit_id":"e2f61707280be2f91c0beb56f5bb204950afc945"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"8cffc067e0ff83797a6766fb29e9c6309ed86863","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        for disk_id in disk_ids:"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"            def stat_val(counter_name):"},{"line_number":211,"context_line":"                # in case one of the disks is broken"},{"line_number":212,"context_line":"                ret \u003d disk_stats[counter_name].get(disk_id, 0)"},{"line_number":213,"context_line":"                if ret \u003c 0:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_c3b78538","line":210,"in_reply_to":"da86d52c_20d6974f","updated":"2015-02-12 09:45:39.000000000","message":"Yes. That make sense. Although this function was not introduced by this patch, but I think I can/should do the refactor","commit_id":"e2f61707280be2f91c0beb56f5bb204950afc945"}],"ceilometer/tests/compute/virt/vmware/test_inspector.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"ac40a80d4c690c083dd3a3251179baab5c702fea","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        # validate result"},{"line_number":314,"context_line":"        expected_stats \u003d {"},{"line_number":315,"context_line":"            disk1: virt_inspector.DiskRateStats(1024, 300, 5120, 700),"},{"line_number":316,"context_line":"            disk2: virt_inspector.DiskRateStats(0, 0, 0, 0)"},{"line_number":317,"context_line":"        }"},{"line_number":318,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_5a16a24a","line":315,"updated":"2015-01-13 09:17:43.000000000","message":"-1: why don\u0027t 300, 700 not multiply with 1024?","commit_id":"69144d80797bb297615f04ea299b258588ba797b"},{"author":{"_account_id":12260,"name":"Kurt Rao","email":"dingyuan.rao@gmail.com","username":"kurtrao"},"change_message_id":"e45b6a4b9278ed49cbf9d656f2b874737eb74690","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        # validate result"},{"line_number":314,"context_line":"        expected_stats \u003d {"},{"line_number":315,"context_line":"            disk1: virt_inspector.DiskRateStats(1024, 300, 5120, 700),"},{"line_number":316,"context_line":"            disk2: virt_inspector.DiskRateStats(0, 0, 0, 0)"},{"line_number":317,"context_line":"        }"},{"line_number":318,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_fa510e64","line":315,"in_reply_to":"3a961159_5a16a24a","updated":"2015-01-13 09:55:45.000000000","message":"It\u0027s read/write *request* rates rather than *byte* rates","commit_id":"69144d80797bb297615f04ea299b258588ba797b"}]}
