)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c586ce5861b0bdcf952903daf5825534629b496d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Allows compute agent to poll for tx and rx errors and dropped"},{"line_number":10,"context_line":"packets."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes bug: 1587987"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I5f1a48b4f1751c64dde2e09005947f7af1efa505"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a89bdaa_d6039040","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":19},"updated":"2016-09-12 22:00:54.000000000","message":"Closes-Bug: #1587987","commit_id":"30e78c9f459e5be7db3073d17e27158407c6ca27"}],"ceilometer/compute/pollsters/net.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"d2c13a08ea1ac3c838d1520c29909cfbc9c0da41","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return info.tx_drop"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    @staticmethod"},{"line_number":87,"context_line":"    def _get_tx_errors(info):"},{"line_number":88,"context_line":"        return info.tx_errors"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _get_vnics_for_instance(self, cache, inspector, instance):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_735502c5","line":87,"updated":"2016-09-13 19:51:50.000000000","message":"i believe llu\u0027s comment is that this is used only for logging.\n\nthe actual creation of polling task is below.","commit_id":"7181e02c810fb37c89b12bfc9629d05d47c9b92b"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"23c7a157515d445e83857f6b7652a57398deac07","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                for vnic, info in vnics:"},{"line_number":110,"context_line":"                    LOG.debug(self.NET_USAGE_MESSAGE, instance_name,"},{"line_number":111,"context_line":"                              vnic.name, self._get_rx_info(info),"},{"line_number":112,"context_line":"                              self._get_tx_info(info))"},{"line_number":113,"context_line":"                    yield self._get_sample(instance, vnic, info)"},{"line_number":114,"context_line":"            except virt_inspector.InstanceNotFoundException as err:"},{"line_number":115,"context_line":"                # Instance was deleted while getting samples. Ignore it."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_25a7160c","line":112,"range":{"start_line":112,"start_character":52,"end_line":112,"end_character":54},"updated":"2016-09-13 07:10:21.000000000","message":"the debug format message is inconsistent with the input parameters","commit_id":"7181e02c810fb37c89b12bfc9629d05d47c9b92b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"d2c13a08ea1ac3c838d1520c29909cfbc9c0da41","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                for vnic, info in vnics:"},{"line_number":110,"context_line":"                    LOG.debug(self.NET_USAGE_MESSAGE, instance_name,"},{"line_number":111,"context_line":"                              vnic.name, self._get_rx_info(info),"},{"line_number":112,"context_line":"                              self._get_tx_info(info))"},{"line_number":113,"context_line":"                    yield self._get_sample(instance, vnic, info)"},{"line_number":114,"context_line":"            except virt_inspector.InstanceNotFoundException as err:"},{"line_number":115,"context_line":"                # Instance was deleted while getting samples. Ignore it."}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_b35dcaee","line":112,"range":{"start_line":112,"start_character":52,"end_line":112,"end_character":54},"in_reply_to":"9a89bdaa_25a7160c","updated":"2016-09-13 19:51:50.000000000","message":"you need to add the static methods from above here to match order you added in line 34-37 above","commit_id":"7181e02c810fb37c89b12bfc9629d05d47c9b92b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"d2c13a08ea1ac3c838d1520c29909cfbc9c0da41","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        )"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"class OutgoingBytesPollster(_Base):"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def _get_sample(self, instance, vnic, info):"},{"line_number":199,"context_line":"        return self.make_vnic_sample("},{"line_number":200,"context_line":"            instance,"},{"line_number":201,"context_line":"            name\u003d\u0027network.outgoing.bytes\u0027,"},{"line_number":202,"context_line":"            type\u003dsample.TYPE_CUMULATIVE,"},{"line_number":203,"context_line":"            unit\u003d\u0027B\u0027,"},{"line_number":204,"context_line":"            volume\u003dinfo.tx_bytes,"},{"line_number":205,"context_line":"            vnic_data\u003dvnic,"},{"line_number":206,"context_line":"        )"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"class OutgoingPacketsPollster(_PacketsBase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_731a6219","line":206,"range":{"start_line":196,"start_character":0,"end_line":206,"end_character":9},"updated":"2016-09-13 19:51:50.000000000","message":"you need to create pollster tasks like this to match what new metrics you are trying to create.","commit_id":"7181e02c810fb37c89b12bfc9629d05d47c9b92b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"39688eb526354baab9f7fe6237f8ef9abcd2370f","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"class _DropBase(_Base):"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    NET_USAGE_MESSAGE \u003d \u0027 \u0027.join([\"NETWORK USAGE:\", \"%s %s:\","},{"line_number":155,"context_line":"                                  \"rx-drop\u003d%d\", \"tx-drop\"])"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    CACHE_KEY_VNIC \u003d \u0027vnic-drop\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_23be05ff","line":154,"range":{"start_line":154,"start_character":43,"end_line":154,"end_character":48},"updated":"2016-09-16 21:21:19.000000000","message":"s/Usage/PACKET DROPS/","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"39688eb526354baab9f7fe6237f8ef9abcd2370f","unresolved":false,"context_lines":[{"line_number":152,"context_line":"class _DropBase(_Base):"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    NET_USAGE_MESSAGE \u003d \u0027 \u0027.join([\"NETWORK USAGE:\", \"%s %s:\","},{"line_number":155,"context_line":"                                  \"rx-drop\u003d%d\", \"tx-drop\"])"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    CACHE_KEY_VNIC \u003d \u0027vnic-drop\u0027"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_830b59d5","line":155,"range":{"start_line":155,"start_character":49,"end_line":155,"end_character":56},"updated":"2016-09-16 21:21:19.000000000","message":"tx-drop\u003d%d","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"39688eb526354baab9f7fe6237f8ef9abcd2370f","unresolved":false,"context_lines":[{"line_number":157,"context_line":"    CACHE_KEY_VNIC \u003d \u0027vnic-drop\u0027"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def _get_vnic_info(self, inspector, instance):                                "},{"line_number":160,"context_line":"        return inspector.inspect_vnic_drop(instance) "},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @staticmethod"},{"line_number":163,"context_line":"    def _get_rx_info(info):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_83d6f94c","line":160,"updated":"2016-09-16 21:21:19.000000000","message":"whitespace","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"39688eb526354baab9f7fe6237f8ef9abcd2370f","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"class _ErrorsBase(_Base):"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    NET_USAGE_MESSAGE \u003d \u0027 \u0027.join([\"NETWORK USAGE:\", \"%s %s:\","},{"line_number":174,"context_line":"                                  \"rx-errors\u003d%d\", \"tx-errors\"])"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    CACHE_KEY_VNIC \u003d \u0027vnic-errors\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_e34edd39","line":173,"range":{"start_line":173,"start_character":43,"end_line":173,"end_character":48},"updated":"2016-09-16 21:21:19.000000000","message":"s/USAGE/PACKET ERRORS/","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"39688eb526354baab9f7fe6237f8ef9abcd2370f","unresolved":false,"context_lines":[{"line_number":171,"context_line":"class _ErrorsBase(_Base):"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    NET_USAGE_MESSAGE \u003d \u0027 \u0027.join([\"NETWORK USAGE:\", \"%s %s:\","},{"line_number":174,"context_line":"                                  \"rx-errors\u003d%d\", \"tx-errors\"])"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    CACHE_KEY_VNIC \u003d \u0027vnic-errors\u0027"},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_43feb1ae","line":174,"range":{"start_line":174,"start_character":52,"end_line":174,"end_character":60},"updated":"2016-09-16 21:21:19.000000000","message":"tx-errors\u003d%d","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"},{"author":{"_account_id":21516,"name":"liuwei","email":"ivyliuwei@163.com","username":"liu-wei81"},"change_message_id":"00b455a0882d8e86e881a36b1fb0c9dafcf60099","unresolved":false,"context_lines":[{"line_number":296,"context_line":"    def _get_sample(self, instance, vnic, info):"},{"line_number":297,"context_line":"        return self.make_vnic_sample("},{"line_number":298,"context_line":"            instance,"},{"line_number":299,"context_line":"            name\u003d\u0027network.incoming.packets.errors\u0027,"},{"line_number":300,"context_line":"            type\u003dsample.TYPE_CUMULATIVE,"},{"line_number":301,"context_line":"            unit\u003d\u0027packet\u0027,"},{"line_number":302,"context_line":"            volume\u003dinfo.rx_errors,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_65af1f7d","line":299,"range":{"start_line":299,"start_character":18,"end_line":299,"end_character":49},"updated":"2016-09-18 07:45:25.000000000","message":"I think, \u0027network.incoming.packets.error\u0027 is better, which means vm\u0027s error packets","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"},{"author":{"_account_id":21516,"name":"liuwei","email":"ivyliuwei@163.com","username":"liu-wei81"},"change_message_id":"00b455a0882d8e86e881a36b1fb0c9dafcf60099","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    def _get_sample(self, instance, vnic, info):"},{"line_number":310,"context_line":"        return self.make_vnic_sample("},{"line_number":311,"context_line":"            instance,"},{"line_number":312,"context_line":"            name\u003d\u0027network.outgoing.packets.errors\u0027,"},{"line_number":313,"context_line":"            type\u003dsample.TYPE_CUMULATIVE,"},{"line_number":314,"context_line":"            unit\u003d\u0027packet\u0027,"},{"line_number":315,"context_line":"            volume\u003dinfo.tx_errors,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_a5cda767","line":312,"range":{"start_line":312,"start_character":18,"end_line":312,"end_character":49},"updated":"2016-09-18 07:45:25.000000000","message":"\u0027network.incoming.packets.error\u0027","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"}],"ceilometer/compute/virt/inspector.py":[{"author":{"_account_id":19594,"name":"Yarko Tymciurak","email":"yarko.tymciurak@intel.com","username":"yarkot"},"change_message_id":"52fef9b83b686ac582508c834bfbc0c94433c2f4","unresolved":false,"context_lines":[{"line_number":108,"context_line":"#"},{"line_number":109,"context_line":"InterfaceStats \u003d collections.namedtuple(\u0027InterfaceStats\u0027,"},{"line_number":110,"context_line":"                                        [\u0027rx_bytes\u0027, \u0027rx_packets\u0027,"},{"line_number":111,"context_line":"                                         \u0027rx_drop\u0027, \u0027rx_errors\u0027,"},{"line_number":112,"context_line":"                                         \u0027tx_bytes\u0027, \u0027tx_packets\u0027,"},{"line_number":113,"context_line":"                                         \u0027tx_drop\u0027, \u0027tx_errors\u0027])"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_837aa7ef","line":111,"updated":"2016-09-13 00:26:37.000000000","message":"nit:\n\nnote when creating this in the base version, the elements were paired cleanly (albeit vertically), making it easy to see what this included:\n{rx_, tx_)bytes,  {rx_, tx_}packets.\n\nNow that you have more elements, make it easy to scan / inspect.   Do something like:\n\n   `[ \u0027rx_bytes\u0027,   \u0027tx_bytes\u0027,\n      \u0027rx_packets\u0027, \u0027tx_packets\u0027,\n      \u0027rx_drop\u0027,    \u0027tx_drop\u0027,\n      \u0027rx_errors\u0027,  \u0027tx_errors\u0027, ])`\n\nThat way, a quick scan makes it clear what stats are collected, for both tx and rx.\n\nThe way you have it written, you can see \"we have a bunch of rx and tx stats, but you have to look to see if they are the same or not - if that makes any sense.\n\nAlso, I like leave a trailing \u0027,\u0027 in a python list - to avoid the \"missing-comma\" mistake when adding elements.   Not sure if that\u0027s an OpenStack idiom, but that is a nice one to follow in python (but not necessary).","commit_id":"7181e02c810fb37c89b12bfc9629d05d47c9b92b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"39688eb526354baab9f7fe6237f8ef9abcd2370f","unresolved":false,"context_lines":[{"line_number":106,"context_line":"# tx_bytes: number of transmitted bytes"},{"line_number":107,"context_line":"# tx_packets: number of transmitted packets"},{"line_number":108,"context_line":"#"},{"line_number":109,"context_line":"InterfaceStats \u003d collections.namedtuple(\u0027InterfaceStats\u0027,"},{"line_number":110,"context_line":"                                        [\u0027rx_bytes\u0027, \u0027rx_packets\u0027,"},{"line_number":111,"context_line":"                                         \u0027tx_bytes\u0027, \u0027tx_packets\u0027])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"# Named tuple representing vNIC rate statistics."}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_43c31157","line":111,"range":{"start_line":109,"start_character":0,"end_line":111,"end_character":67},"updated":"2016-09-16 21:21:19.000000000","message":"you had this right before, keep it here.","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"39688eb526354baab9f7fe6237f8ef9abcd2370f","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        \"\"\""},{"line_number":263,"context_line":"        raise ceilometer.NotImplementedError"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    def inspect_vnics(self, instance):"},{"line_number":266,"context_line":"        \"\"\"Inspect the vNIC statistics for an instance."},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        :param instance: the target instance"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_638bad1f","line":265,"updated":"2016-09-16 21:21:19.000000000","message":"reuse this since it\u0027s same call so cache be reused.","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"},{"author":{"_account_id":21516,"name":"liuwei","email":"ivyliuwei@163.com","username":"liu-wei81"},"change_message_id":"7d7dd72db0a0cc45f6d32a71621916062a2722b0","unresolved":false,"context_lines":[{"line_number":138,"context_line":"# rx_drop: number of dropped recieved packets"},{"line_number":139,"context_line":"# tx_drop: number of dropped sent packets"},{"line_number":140,"context_line":"#"},{"line_number":141,"context_line":"InterfaceDropStats \u003d collections.namedtuple(\u0027InterfaceDropStats\u0027,"},{"line_number":142,"context_line":"                                            [\u0027rx_drop\u0027, \u0027tx_drop\u0027])"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# Named tuple representing vNIC error statistics."},{"line_number":146,"context_line":"#"},{"line_number":147,"context_line":"# rx_errors: number of recieved packet errors"},{"line_number":148,"context_line":"# tx_errors: number of sent packet errors"},{"line_number":149,"context_line":"#"},{"line_number":150,"context_line":"InterfaceErrorsStats \u003d collections.namedtuple(\u0027InterfaceErrorsStats\u0027,"},{"line_number":151,"context_line":"                                              [\u0027rx_errors\u0027, \u0027tx_errors\u0027])"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"# Named tuple representing disks."},{"line_number":154,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_fc92a59e","line":151,"range":{"start_line":141,"start_character":0,"end_line":151,"end_character":73},"updated":"2016-09-20 02:00:14.000000000","message":"If you add this two collections.nametuple rather than modify InterfaceRateStats, only libvirt can get meters of network.incomging/outgoing.drop/errors, vmware/hyperv/xenapi can not get these.","commit_id":"a761c3a874d286b8aab519c388ba3f572e16beb5"},{"author":{"_account_id":19594,"name":"Yarko Tymciurak","email":"yarko.tymciurak@intel.com","username":"yarkot"},"change_message_id":"be48c26561c5f3ef2cd5acb12726f71c201a5a90","unresolved":false,"context_lines":[{"line_number":138,"context_line":"# rx_drop: number of dropped recieved packets"},{"line_number":139,"context_line":"# tx_drop: number of dropped sent packets"},{"line_number":140,"context_line":"#"},{"line_number":141,"context_line":"InterfaceDropStats \u003d collections.namedtuple(\u0027InterfaceDropStats\u0027,"},{"line_number":142,"context_line":"                                            [\u0027rx_drop\u0027, \u0027tx_drop\u0027])"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# Named tuple representing vNIC error statistics."},{"line_number":146,"context_line":"#"},{"line_number":147,"context_line":"# rx_errors: number of recieved packet errors"},{"line_number":148,"context_line":"# tx_errors: number of sent packet errors"},{"line_number":149,"context_line":"#"},{"line_number":150,"context_line":"InterfaceErrorsStats \u003d collections.namedtuple(\u0027InterfaceErrorsStats\u0027,"},{"line_number":151,"context_line":"                                              [\u0027rx_errors\u0027, \u0027tx_errors\u0027])"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"# Named tuple representing disks."},{"line_number":154,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_ad36fbb1","line":151,"range":{"start_line":141,"start_character":0,"end_line":151,"end_character":73},"in_reply_to":"7a8ec9b2_fc92a59e","updated":"2016-09-20 15:40:04.000000000","message":"I\u0027m not sure if this is a design comment (i.e. \"don\u0027t make changes in multiple files, as these various new namedtuple\u0027s will force you to do - and which is not done yet), or if there\u0027s some other consideration.  I\u0027m guessing this is a design commentary...","commit_id":"a761c3a874d286b8aab519c388ba3f572e16beb5"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"f04d14e2c9fca5a3a1af89a1321470796e6f5e04","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        \"\"\""},{"line_number":281,"context_line":"        raise ceilometer.NotImplementedError"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    def inspect_vnic_drop(self, instance):"},{"line_number":284,"context_line":"        \"\"\"Inspect the vNIC drop statistics for an instance."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        :param instance: the target instance"},{"line_number":287,"context_line":"        :return: for each vNIC, the number of dropped received"},{"line_number":288,"context_line":"                 and transmitted packets"},{"line_number":289,"context_line":"        \"\"\""},{"line_number":290,"context_line":"        raise ceilometer.NotImplementedError"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def inspect_vnic_errors(self, instance):"},{"line_number":293,"context_line":"        \"\"\"Inspect the vNIC error statistics for an instance."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        :param instance: the target instance"},{"line_number":296,"context_line":"        :return: for each vNIC, the number of error packets"},{"line_number":297,"context_line":"                 received and transmitted"},{"line_number":298,"context_line":"        \"\"\""},{"line_number":299,"context_line":"        raise ceilometer.NotImplementedError"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    def inspect_disks(self, instance):"},{"line_number":302,"context_line":"        \"\"\"Inspect the disk statistics for an instance."}],"source_content_type":"text/x-python","patch_set":10,"id":"3a98d1f4_8a3d25c6","line":299,"range":{"start_line":283,"start_character":1,"end_line":299,"end_character":44},"updated":"2016-10-03 14:03:23.000000000","message":"never used. we should remove them.","commit_id":"f3de33b67d78bb931481921927399d2e9f617e36"}],"ceilometer/compute/virt/libvirt/inspector.py":[{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"6ebaff32bb3fb03323143972a9ec9122d036f777","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            interface \u003d virt_inspector.Interface(name\u003dname, mac\u003dmac_address,"},{"line_number":179,"context_line":"                                                 fref\u003dfref, parameters\u003dparams)"},{"line_number":180,"context_line":"            dom_stats \u003d domain.interfaceStats(name)"},{"line_number":181,"context_line":"            LOG.debug(dom_stats)"},{"line_number":182,"context_line":"            stats \u003d virt_inspector.InterfaceStats(rx_bytes\u003ddom_stats[0],"},{"line_number":183,"context_line":"                                                  rx_packets\u003ddom_stats[1],"},{"line_number":184,"context_line":"                                                  rx_drop\u003ddom_stats[2],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_b6d36cd4","line":181,"updated":"2016-09-12 22:10:07.000000000","message":"There should be a message associated with this line if it is retained but I feel like you added this while testing and didn\u0027t intend to leave this in the commit.","commit_id":"30e78c9f459e5be7db3073d17e27158407c6ca27"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c586ce5861b0bdcf952903daf5825534629b496d","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            interface \u003d virt_inspector.Interface(name\u003dname, mac\u003dmac_address,"},{"line_number":179,"context_line":"                                                 fref\u003dfref, parameters\u003dparams)"},{"line_number":180,"context_line":"            dom_stats \u003d domain.interfaceStats(name)"},{"line_number":181,"context_line":"            LOG.debug(dom_stats)"},{"line_number":182,"context_line":"            stats \u003d virt_inspector.InterfaceStats(rx_bytes\u003ddom_stats[0],"},{"line_number":183,"context_line":"                                                  rx_packets\u003ddom_stats[1],"},{"line_number":184,"context_line":"                                                  rx_drop\u003ddom_stats[2],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_d6555050","line":181,"updated":"2016-09-12 22:00:54.000000000","message":"this seems unnecessary. can we remove it. if not, please let us know why you\u0027d like to keep it.","commit_id":"30e78c9f459e5be7db3073d17e27158407c6ca27"},{"author":{"_account_id":22775,"name":"Prudhvi Rao Shedimbi","email":"prudhvi.rao.shedimbi@intel.com","username":"pshedimb"},"change_message_id":"9b66ce4390de9a15608d82676f6581c1219f57dc","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            interface \u003d virt_inspector.Interface(name\u003dname, mac\u003dmac_address,"},{"line_number":179,"context_line":"                                                 fref\u003dfref, parameters\u003dparams)"},{"line_number":180,"context_line":"            dom_stats \u003d domain.interfaceStats(name)"},{"line_number":181,"context_line":"            LOG.debug(dom_stats)"},{"line_number":182,"context_line":"            stats \u003d virt_inspector.InterfaceStats(rx_bytes\u003ddom_stats[0],"},{"line_number":183,"context_line":"                                                  rx_packets\u003ddom_stats[1],"},{"line_number":184,"context_line":"                                                  rx_drop\u003ddom_stats[2],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_cac76496","line":181,"in_reply_to":"9a89bdaa_b6d36cd4","updated":"2016-09-12 22:12:16.000000000","message":"My bad, I forgot to delete the line.","commit_id":"30e78c9f459e5be7db3073d17e27158407c6ca27"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"39688eb526354baab9f7fe6237f8ef9abcd2370f","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                                                 fref\u003dfref, parameters\u003dparams)"},{"line_number":180,"context_line":"            dom_stats \u003d domain.interfaceStats(name)"},{"line_number":181,"context_line":"            stats \u003d virt_inspector.InterfaceStats(rx_bytes\u003ddom_stats[0],"},{"line_number":182,"context_line":"                                                  rx_packets\u003ddom_stats[1],"},{"line_number":183,"context_line":"                                                  tx_bytes\u003ddom_stats[4],"},{"line_number":184,"context_line":"                                                  tx_packets\u003ddom_stats[5])"},{"line_number":185,"context_line":"            yield (interface, stats)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_2376053e","line":182,"updated":"2016-09-16 21:21:19.000000000","message":"just do it here to avoid all the copy/paste","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"},{"author":{"_account_id":22775,"name":"Prudhvi Rao Shedimbi","email":"prudhvi.rao.shedimbi@intel.com","username":"pshedimb"},"change_message_id":"58ea1b7cd259e5002e1d10d8d6a6e7a63ebfd03f","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                                                 fref\u003dfref, parameters\u003dparams)"},{"line_number":180,"context_line":"            dom_stats \u003d domain.interfaceStats(name)"},{"line_number":181,"context_line":"            stats \u003d virt_inspector.InterfaceStats(rx_bytes\u003ddom_stats[0],"},{"line_number":182,"context_line":"                                                  rx_packets\u003ddom_stats[1],"},{"line_number":183,"context_line":"                                                  tx_bytes\u003ddom_stats[4],"},{"line_number":184,"context_line":"                                                  tx_packets\u003ddom_stats[5])"},{"line_number":185,"context_line":"            yield (interface, stats)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_2f1c8d12","line":182,"in_reply_to":"7a8ec9b2_2376053e","updated":"2016-09-21 00:40:43.000000000","message":"InterfaceStats does not have rx/tx drop/error attributes. So I have 2 options here:\n\n1. I can change the structure of method inspect_vnics to take an additional parameter that indicates whether to use InterfaceDropStats or InterfaceErrorsStats or InterfaceStats. \n\n2. I can create stats2 and stats3 for drops and errors, and then yield stats2 and stats 3 as well. In this case I need to modify the base get_samples in net.py (which I am not sure is a good idea.)\n\nIf we leave it as it is, there is copy/paste redundancy but is intuitive and easier to understand for further development.\n\nWhat do you suggest I do here?","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"},{"author":{"_account_id":21516,"name":"liuwei","email":"ivyliuwei@163.com","username":"liu-wei81"},"change_message_id":"5bfd8e6ed5dea57c804b60350f09c105c594360e","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                                                 fref\u003dfref, parameters\u003dparams)"},{"line_number":180,"context_line":"            dom_stats \u003d domain.interfaceStats(name)"},{"line_number":181,"context_line":"            stats \u003d virt_inspector.InterfaceStats(rx_bytes\u003ddom_stats[0],"},{"line_number":182,"context_line":"                                                  rx_packets\u003ddom_stats[1],"},{"line_number":183,"context_line":"                                                  tx_bytes\u003ddom_stats[4],"},{"line_number":184,"context_line":"                                                  tx_packets\u003ddom_stats[5])"},{"line_number":185,"context_line":"            yield (interface, stats)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_35c93b79","line":182,"in_reply_to":"7a8ec9b2_2f1c8d12","updated":"2016-09-21 03:49:45.000000000","message":"1. If these meters are added only for libvirt, I suggest to add new InterfaceStatsForLibvirt, like this:\nInterfaceStatsForLibvirt \u003d collections.namedtuple( \u0027InterfaceStats_Libvirt\u0027,\n[\u0027rx_bytes\u0027, \u0027rx_packets\u0027, \u0027rx_drop\u0027, \u0027rx_errs\u0027, \u0027tx_bytes\u0027, \u0027tx_packets\u0027, \u0027tx_drop\u0027, \u0027tx_errs\u0027]) in compute/virt/inspector.py\n   This can use existing code in compute/virt/libvirt/inspector.py\n\n2. But I also think better to add theses meters for all(vmware/hyperv/xenapi) if possible, which needs not add InterfaceStatsForLibvirt, just modify InterfaceStats.","commit_id":"3ce8d16b76aef4d991beab6151b9385a221c0176"}]}
