)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"pollsters to track total_connections, active_connections"},{"line_number":13,"context_line":"and bandwidth."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Included test coverage for neutron client and LBaaS"},{"line_number":16,"context_line":"pollsters."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ia0570a824e099c341c8f12f95f576dfb8b1fdfc4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"1ae5cdf2_da2e3ba5","line":15,"updated":"2014-06-09 14:39:15.000000000","message":"Probably, Neutron will be better :)","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"}],"ceilometer/network/services/lbaas.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"091482419c21f86a53faf29676e9e8ca05a38596","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class _BasePollster(plugin.PollsterBase):"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    LOG \u003d log.getLogger(__name__ + \u0027.network.services\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def get_samples(self, manager, cache, resources\u003d[]):"},{"line_number":42,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_6d1f8ab7","line":39,"updated":"2014-06-05 17:04:32.000000000","message":"With this your logger will have the name:\n\n    ceilometer.network.services.lbaas.network.services\n\nIs __name__ sufficient?","commit_id":"85a6e4ede38e2a32bdcce6f325de4ac0fcdcf1e7"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"d863a6778e76e88682410809a7387f38b01517ca","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class _BasePollster(plugin.PollsterBase):"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    LOG \u003d log.getLogger(__name__ + \u0027.network.services\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def get_samples(self, manager, cache, resources\u003d[]):"},{"line_number":42,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_2a572327","line":39,"in_reply_to":"1ae5cdf2_6d1f8ab7","updated":"2014-06-05 17:51:47.000000000","message":"agreed. Will remove the redundant naming.","commit_id":"85a6e4ede38e2a32bdcce6f325de4ac0fcdcf1e7"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"091482419c21f86a53faf29676e9e8ca05a38596","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        nc \u003d neutron_client.Client()"},{"line_number":50,"context_line":"        return nc.pool_get_all()"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def _iter_lb_pools(self, cache):"},{"line_number":53,"context_line":"        if \u0027pools\u0027 not in cache:"},{"line_number":54,"context_line":"            cache[\u0027pools\u0027] \u003d list(self._get_lb_pools())"},{"line_number":55,"context_line":"        return iter(cache[\u0027pools\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_cd9b3e16","line":52,"updated":"2014-06-05 17:04:32.000000000","message":"Would it make any sense to hoist this method into the super class and add \u0027cache_name\u0027 and \u0027get_method\u0027 as named parameters? Probably with better names. Similar code is used in at least three places.","commit_id":"85a6e4ede38e2a32bdcce6f325de4ac0fcdcf1e7"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"d863a6778e76e88682410809a7387f38b01517ca","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        nc \u003d neutron_client.Client()"},{"line_number":50,"context_line":"        return nc.pool_get_all()"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def _iter_lb_pools(self, cache):"},{"line_number":53,"context_line":"        if \u0027pools\u0027 not in cache:"},{"line_number":54,"context_line":"            cache[\u0027pools\u0027] \u003d list(self._get_lb_pools())"},{"line_number":55,"context_line":"        return iter(cache[\u0027pools\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_2a2e43a5","line":52,"in_reply_to":"1ae5cdf2_cd9b3e16","updated":"2014-06-05 17:51:47.000000000","message":"makes sense, I\u0027ll look into making this method generic","commit_id":"85a6e4ede38e2a32bdcce6f325de4ac0fcdcf1e7"},{"author":{"_account_id":9313,"name":"alejandro emanuel paredes","email":"alejandro.e.paredes@intel.com","username":"aeparede"},"change_message_id":"e416fd9532949447943c7e81c12a05e09c6ab893","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                project_id\u003dpool[\u0027tenant_id\u0027],"},{"line_number":76,"context_line":"                resource_id\u003dpool[\u0027id\u0027],"},{"line_number":77,"context_line":"                timestamp\u003dtimeutils.utcnow().isoformat(),"},{"line_number":78,"context_line":"                resource_metadata\u003dpool"},{"line_number":79,"context_line":"            )"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_3bed9726","line":78,"updated":"2014-06-06 13:53:02.000000000","message":"Hi, instead of using the pool object, you could extract the attribures like...\n\nresource_metadata\u003dself.extract_pool_metadata(pool)\n\n@staticmethod\n\t\t\t    def extract_pool_metadata(pool):\n        return dict((k, pool[k])\n                    for k in\n                    [\n                    \u0027admin_state_up\u0027,\n                    \u0027description\u0027,\n                    \u0027lb_method\u0027,\n                    \u0027name\u0027,\n                    \u0027protocol\u0027,\n                    \u0027provider\u0027,\n                    \u0027status\u0027,\n                    \u0027status_description\u0027,\n                    \u0027subnet_id\u0027,\n                    \u0027vip_id\u0027,\n                    ])\n\nand also the same for the rest od the resources_metadatas...\n\n\nTxs!","commit_id":"58a9df00d1650db60ee348e20abb4389259c257a"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"91ff718bfcf99103e74dbccd436179ffac137e16","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                project_id\u003dpool[\u0027tenant_id\u0027],"},{"line_number":76,"context_line":"                resource_id\u003dpool[\u0027id\u0027],"},{"line_number":77,"context_line":"                timestamp\u003dtimeutils.utcnow().isoformat(),"},{"line_number":78,"context_line":"                resource_metadata\u003dpool"},{"line_number":79,"context_line":"            )"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_7e246daf","line":78,"in_reply_to":"1ae5cdf2_3bed9726","updated":"2014-06-06 14:03:50.000000000","message":"sure, I thought about this approach and felt the pool and other objects dint have as much data to filter out specifics. But I understand that doing so can make the metadata more precise and clear. I\u0027ll look into it.","commit_id":"58a9df00d1650db60ee348e20abb4389259c257a"},{"author":{"_account_id":9313,"name":"alejandro emanuel paredes","email":"alejandro.e.paredes@intel.com","username":"aeparede"},"change_message_id":"0e2c6161a80596d6341d01f516c3e7b7c084ae98","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                project_id\u003dpool[\u0027tenant_id\u0027],"},{"line_number":76,"context_line":"                resource_id\u003dpool[\u0027id\u0027],"},{"line_number":77,"context_line":"                timestamp\u003dtimeutils.utcnow().isoformat(),"},{"line_number":78,"context_line":"                resource_metadata\u003dpool"},{"line_number":79,"context_line":"            )"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_1e87e913","line":78,"in_reply_to":"1ae5cdf2_7e246daf","updated":"2014-06-06 14:14:56.000000000","message":"great!\nTxs!","commit_id":"58a9df00d1650db60ee348e20abb4389259c257a"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"52d9279132f055f296d86e12d4e2afd0da8cf45c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright © 2014 Cisco Systems,Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_151c24c1","line":1,"updated":"2014-06-06 16:25:56.000000000","message":"-1: a patch which aims at remove the encoding line and the (c) characters has been approved (not merged yet, https://review.openstack.org/#/c/96117/), so I think may be we should catch up with it","commit_id":"eaf285617bb4ee9a19c650ef1a85b22dcfba40c7"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"52d9279132f055f296d86e12d4e2afd0da8cf45c","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class _BasePollster(plugin.PollsterBase):"},{"line_number":45,"context_line":"    LOG \u003d log.getLogger(__name__)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    FIELDS \u003d []"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_955e7475","line":45,"updated":"2014-06-06 16:25:56.000000000","message":"-1: may be put it in global scope? a related patch has been approved (not merged yet, see https://review.openstack.org/#/c/95666), maybe we should catch up with it","commit_id":"eaf285617bb4ee9a19c650ef1a85b22dcfba40c7"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"52d9279132f055f296d86e12d4e2afd0da8cf45c","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":82,"context_line":"        for pool in self._iter_cache(cache, \u0027pool\u0027, self._get_lb_pools):"},{"line_number":83,"context_line":"            self.LOG.debug(_(\"Load Balancer Pool : %s\") % pool)"},{"line_number":84,"context_line":"            yield sample.Sample("},{"line_number":85,"context_line":"                name\u003d\u0027network.services.lb.pool\u0027,"},{"line_number":86,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_f54c18cb","line":83,"updated":"2014-06-06 16:25:56.000000000","message":"-1: debug level log message are no longer to be translated","commit_id":"eaf285617bb4ee9a19c650ef1a85b22dcfba40c7"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"52d9279132f055f296d86e12d4e2afd0da8cf45c","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":121,"context_line":"        for vip in self._iter_cache(cache, \u0027vip\u0027, self._get_lb_vips):"},{"line_number":122,"context_line":"            self.LOG.debug(_(\"Load Balancer Vip : %s\") % vip)"},{"line_number":123,"context_line":"            yield sample.Sample("},{"line_number":124,"context_line":"                name\u003d\u0027network.services.lb.vip\u0027,"},{"line_number":125,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_75d008ca","line":122,"updated":"2014-06-06 16:25:56.000000000","message":"ditto","commit_id":"eaf285617bb4ee9a19c650ef1a85b22dcfba40c7"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"52d9279132f055f296d86e12d4e2afd0da8cf45c","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":154,"context_line":"        for member in self._iter_cache(cache, \u0027member\u0027, self._get_lb_members):"},{"line_number":155,"context_line":"            self.LOG.debug(_(\"Load Balancer Member : %s\") % member)"},{"line_number":156,"context_line":"            yield sample.Sample("},{"line_number":157,"context_line":"                name\u003d\u0027network.services.lb.member\u0027,"},{"line_number":158,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_15e1849a","line":155,"updated":"2014-06-06 16:25:56.000000000","message":"ditto","commit_id":"eaf285617bb4ee9a19c650ef1a85b22dcfba40c7"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"52d9279132f055f296d86e12d4e2afd0da8cf45c","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":186,"context_line":"        for probe in self._iter_cache(cache, \u0027monitor\u0027,"},{"line_number":187,"context_line":"                                      self._get_lb_health_probes):"},{"line_number":188,"context_line":"            self.LOG.debug(_(\"Load Balancer Health probe : %s\") % probe)"},{"line_number":189,"context_line":"            yield sample.Sample("},{"line_number":190,"context_line":"                name\u003d\u0027network.services.lb.health_monitor\u0027,"},{"line_number":191,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_75e728ad","line":188,"updated":"2014-06-06 16:25:56.000000000","message":"ditto","commit_id":"eaf285617bb4ee9a19c650ef1a85b22dcfba40c7"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"52d9279132f055f296d86e12d4e2afd0da8cf45c","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                yield self._get_sample(pool, c_data)"},{"line_number":239,"context_line":"            except Exception as err:"},{"line_number":240,"context_line":"                self.LOG.exception(_(\u0027Ignoring pool %(name)s: %(error)s\u0027),"},{"line_number":241,"context_line":"                                   {\u0027name\u0027: pool[\u0027id\u0027], \u0027error\u0027: err})"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"class LBActiveConnectionsPollster(_LBStatsPollster):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_f5fa5842","line":241,"updated":"2014-06-06 16:25:56.000000000","message":"tiny nit: s/name/pool_id/ ?","commit_id":"eaf285617bb4ee9a19c650ef1a85b22dcfba40c7"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"411df323c7b5262b418615bb863130d3ab9adea2","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":81,"context_line":"        for pool in self._iter_cache(cache, \u0027pool\u0027, self._get_lb_pools):"},{"line_number":82,"context_line":"            self.LOG.debug(\"Load Balancer Pool : %s\" % pool)"},{"line_number":83,"context_line":"            yield sample.Sample("},{"line_number":84,"context_line":"                name\u003d\u0027network.services.lb.pool\u0027,"},{"line_number":85,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_24ed73f0","line":82,"updated":"2014-06-06 17:16:26.000000000","message":"If LOG is now global then get rid of \u0027self.\u0027?","commit_id":"8e24ed643184128c5466070977e8c3bec6edc53f"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"3cbbce78875263b389ed4147e5e9bc981d51f734","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":81,"context_line":"        for pool in self._iter_cache(cache, \u0027pool\u0027, self._get_lb_pools):"},{"line_number":82,"context_line":"            self.LOG.debug(\"Load Balancer Pool : %s\" % pool)"},{"line_number":83,"context_line":"            yield sample.Sample("},{"line_number":84,"context_line":"                name\u003d\u0027network.services.lb.pool\u0027,"},{"line_number":85,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_44943fe8","line":82,"in_reply_to":"1ae5cdf2_24ed73f0","updated":"2014-06-06 17:28:45.000000000","message":"oops! my mistake.. will fix in the next patch","commit_id":"8e24ed643184128c5466070977e8c3bec6edc53f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"411df323c7b5262b418615bb863130d3ab9adea2","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":120,"context_line":"        for vip in self._iter_cache(cache, \u0027vip\u0027, self._get_lb_vips):"},{"line_number":121,"context_line":"            self.LOG.debug(\"Load Balancer Vip : %s\" % vip)"},{"line_number":122,"context_line":"            yield sample.Sample("},{"line_number":123,"context_line":"                name\u003d\u0027network.services.lb.vip\u0027,"},{"line_number":124,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_64be9bd6","line":121,"updated":"2014-06-06 17:16:26.000000000","message":"Ditto","commit_id":"8e24ed643184128c5466070977e8c3bec6edc53f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"411df323c7b5262b418615bb863130d3ab9adea2","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":153,"context_line":"        for member in self._iter_cache(cache, \u0027member\u0027, self._get_lb_members):"},{"line_number":154,"context_line":"            self.LOG.debug(\"Load Balancer Member : %s\" % member)"},{"line_number":155,"context_line":"            yield sample.Sample("},{"line_number":156,"context_line":"                name\u003d\u0027network.services.lb.member\u0027,"},{"line_number":157,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_a4b8a3e6","line":154,"updated":"2014-06-06 17:16:26.000000000","message":"Ditto","commit_id":"8e24ed643184128c5466070977e8c3bec6edc53f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"411df323c7b5262b418615bb863130d3ab9adea2","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":185,"context_line":"        for probe in self._iter_cache(cache, \u0027monitor\u0027,"},{"line_number":186,"context_line":"                                      self._get_lb_health_probes):"},{"line_number":187,"context_line":"            self.LOG.debug(\"Load Balancer Health probe : %s\" % probe)"},{"line_number":188,"context_line":"            yield sample.Sample("},{"line_number":189,"context_line":"                name\u003d\u0027network.services.lb.health_monitor\u0027,"},{"line_number":190,"context_line":"                type\u003dsample.TYPE_GAUGE,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_c4cccf8d","line":187,"updated":"2014-06-06 17:16:26.000000000","message":"Ditto","commit_id":"8e24ed643184128c5466070977e8c3bec6edc53f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"411df323c7b5262b418615bb863130d3ab9adea2","unresolved":false,"context_lines":[{"line_number":236,"context_line":"                c_data \u003d self._populate_stats_cache(pool[\u0027id\u0027], cache)"},{"line_number":237,"context_line":"                yield self._get_sample(pool, c_data)"},{"line_number":238,"context_line":"            except Exception as err:"},{"line_number":239,"context_line":"                self.LOG.exception(_(\u0027Ignoring pool %(pool_id)s: %(error)s\u0027),"},{"line_number":240,"context_line":"                                   {\u0027pool_id\u0027: pool[\u0027id\u0027], \u0027error\u0027: err})"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_04c79765","line":239,"updated":"2014-06-06 17:16:26.000000000","message":"Ditto","commit_id":"8e24ed643184128c5466070977e8c3bec6edc53f"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8e906ed8a2d0d37906581628eb9080946c5092e3","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def extract_metadata(self, metric):"},{"line_number":54,"context_line":"        return dict((k, metric[k]) for k in self.FIELDS)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":57,"context_line":"        pass"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_e5a52eb6","line":56,"updated":"2014-06-09 03:01:57.000000000","message":"no need to define this here","commit_id":"d217ab21a14190975d7161d1e732009b30611f56"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8e906ed8a2d0d37906581628eb9080946c5092e3","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        for pool in self._iter_cache(cache, \u0027pool\u0027, self._get_lb_pools):"},{"line_number":82,"context_line":"            LOG.debug(\"Load Balancer Pool : %s\" % pool)"},{"line_number":83,"context_line":"            yield sample.Sample("},{"line_number":84,"context_line":"                name\u003d\u0027network.services.lb.pool\u0027,"},{"line_number":85,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":86,"context_line":"                unit\u003d\u0027pool\u0027,"},{"line_number":87,"context_line":"                volume\u003dSTATUS[pool[\u0027status\u0027].lower()],"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_25871611","line":84,"updated":"2014-06-09 03:01:57.000000000","message":"According to your latest spec, the metric name should be \u0027network.services.lb.pools\u0027. Please either change the spec or the name here.","commit_id":"d217ab21a14190975d7161d1e732009b30611f56"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8e906ed8a2d0d37906581628eb9080946c5092e3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        for vip in self._iter_cache(cache, \u0027vip\u0027, self._get_lb_vips):"},{"line_number":121,"context_line":"            LOG.debug(\"Load Balancer Vip : %s\" % vip)"},{"line_number":122,"context_line":"            yield sample.Sample("},{"line_number":123,"context_line":"                name\u003d\u0027network.services.lb.vip\u0027,"},{"line_number":124,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":125,"context_line":"                unit\u003d\u0027vip\u0027,"},{"line_number":126,"context_line":"                volume\u003dSTATUS[vip[\u0027status\u0027].lower()],"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_457b4229","line":123,"updated":"2014-06-09 03:01:57.000000000","message":"again, the name in the spec is \u0027network.services.lb.vips\u0027, not consistent with the name in the code here.","commit_id":"d217ab21a14190975d7161d1e732009b30611f56"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8e906ed8a2d0d37906581628eb9080946c5092e3","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        for member in self._iter_cache(cache, \u0027member\u0027, self._get_lb_members):"},{"line_number":154,"context_line":"            LOG.debug(\"Load Balancer Member : %s\" % member)"},{"line_number":155,"context_line":"            yield sample.Sample("},{"line_number":156,"context_line":"                name\u003d\u0027network.services.lb.member\u0027,"},{"line_number":157,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":158,"context_line":"                unit\u003d\u0027member\u0027,"},{"line_number":159,"context_line":"                volume\u003dSTATUS[member[\u0027status\u0027].lower()],"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_a5724647","line":156,"updated":"2014-06-09 03:01:57.000000000","message":"name again, \u0027network.services.lb.members\u0027","commit_id":"d217ab21a14190975d7161d1e732009b30611f56"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8e906ed8a2d0d37906581628eb9080946c5092e3","unresolved":false,"context_lines":[{"line_number":186,"context_line":"                                      self._get_lb_health_probes):"},{"line_number":187,"context_line":"            LOG.debug(\"Load Balancer Health probe : %s\" % probe)"},{"line_number":188,"context_line":"            yield sample.Sample("},{"line_number":189,"context_line":"                name\u003d\u0027network.services.lb.health_monitor\u0027,"},{"line_number":190,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":191,"context_line":"                unit\u003d\u0027monitor\u0027,"},{"line_number":192,"context_line":"                volume\u003d1,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_c58e7227","line":189,"updated":"2014-06-09 03:01:57.000000000","message":"name again, \u0027network.services.lb.health_monitors\u0027","commit_id":"d217ab21a14190975d7161d1e732009b30611f56"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8e906ed8a2d0d37906581628eb9080946c5092e3","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    @staticmethod"},{"line_number":213,"context_line":"    def _get_pool_stats(pool_id):"},{"line_number":214,"context_line":"        nc \u003d neutron_client.Client()"},{"line_number":215,"context_line":"        return nc.pool_stats(pool_id)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def _populate_stats_cache(self, pool_id, cache):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_65c67e4b","line":214,"updated":"2014-06-09 03:01:57.000000000","message":"Could we make _get_lb_pools and _get_pool_stats use the same nuetron_client instance?","commit_id":"d217ab21a14190975d7161d1e732009b30611f56"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8e906ed8a2d0d37906581628eb9080946c5092e3","unresolved":false,"context_lines":[{"line_number":301,"context_line":""},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"def make_sample_from_pool(pool, name, type, unit, volume,"},{"line_number":304,"context_line":"                          resource_metadata\u003dNone):"},{"line_number":305,"context_line":"    if not resource_metadata:"},{"line_number":306,"context_line":"        resource_metadata \u003d {}"},{"line_number":307,"context_line":"    return sample.Sample("}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_659f5e51","line":304,"updated":"2014-06-09 03:01:57.000000000","message":"Would it be better make this a static method of class _LBStatsPollster?","commit_id":"d217ab21a14190975d7161d1e732009b30611f56"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class LBPoolPollster(_BasePollster):"},{"line_number":58,"context_line":"    \"\"\"Pollster to capture Load Balancer pool status samples"},{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":"    FIELDS \u003d [\u0027admin_state_up\u0027,"},{"line_number":61,"context_line":"              \u0027description\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_a536b4e5","line":58,"range":{"start_line":58,"start_character":53,"end_line":58,"end_character":60},"updated":"2014-06-09 14:39:15.000000000","message":"If you may, please, add dot in the end of line.","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class LBVipPollster(_BasePollster):"},{"line_number":94,"context_line":"    \"\"\"Pollster to capture Load Balancer Vip status samples"},{"line_number":95,"context_line":"    \"\"\""},{"line_number":96,"context_line":"    FIELDS \u003d [\u0027admin_state_up\u0027,"},{"line_number":97,"context_line":"              \u0027address\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_054da872","line":94,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"class LBMemberPollster(_BasePollster):"},{"line_number":133,"context_line":"    \"\"\"Pollster to capture Load Balancer Member status samples"},{"line_number":134,"context_line":"    \"\"\""},{"line_number":135,"context_line":"    FIELDS \u003d [\u0027admin_state_up\u0027,"},{"line_number":136,"context_line":"              \u0027address\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_2579c493","line":133,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"class LBActiveConnectionsPollster(_LBStatsPollster):"},{"line_number":255,"context_line":"    \"\"\"Pollster to capture Active Load Balancer connections"},{"line_number":256,"context_line":"    \"\"\""},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_65810c4a","line":255,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"class LBTotalConnectionsPollster(_LBStatsPollster):"},{"line_number":270,"context_line":"    \"\"\"Pollster to capture Total Load Balancer connections"},{"line_number":271,"context_line":"    \"\"\""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_25ee2423","line":270,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"class LBBytesInPollster(_LBStatsPollster):"},{"line_number":285,"context_line":"    \"\"\"Pollster to capture incoming bytes"},{"line_number":286,"context_line":"    \"\"\""},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_a5d95485","line":285,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"class LBBytesOutPollster(_LBStatsPollster):"},{"line_number":300,"context_line":"    \"\"\"Pollster to capture outgoing bytes"},{"line_number":301,"context_line":"    \"\"\""},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_e5e35c31","line":300,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":313,"context_line":""},{"line_number":314,"context_line":"def make_sample_from_pool(pool, name, type, unit, volume,"},{"line_number":315,"context_line":"                          resource_metadata\u003dNone):"},{"line_number":316,"context_line":"    if not resource_metadata:"},{"line_number":317,"context_line":"        resource_metadata \u003d {}"},{"line_number":318,"context_line":"    return sample.Sample("},{"line_number":319,"context_line":"        name\u003dname,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_65466c25","line":316,"updated":"2014-06-09 14:39:15.000000000","message":"I think \"resource_metadata \u003d resource_metadata or {}\" will be clearer, but feel free to leave it as is.","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"45cb969fe143022c699fd1c8eda9b46ba5300831","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"LBStatsData \u003d collections.namedtuple("},{"line_number":32,"context_line":"    \u0027LBStats\u0027,"},{"line_number":33,"context_line":"    \u0027active_connections total_connections bytes_in bytes_out\u0027,"},{"line_number":34,"context_line":")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# status map for converting metric status to volume int"}],"source_content_type":"text/x-python","patch_set":14,"id":"1ae5cdf2_24837dcd","line":33,"updated":"2014-06-09 18:58:11.000000000","message":"The style:\n\n  LBStatsData \u003d collections.namedtuple(\n      \u0027LBStats\u0027, \n      [\u0027active_connections\u0027, \u0027total_connections\u0027, \u0027bytes_in\u0027 \u0027bytes_out\u0027]\n  )\n\nwould be more consistent with the pre-existing use of namedtuples, e.g.:\n\n  https://github.com/openstack/ceilometer/blob/master/ceilometer/compute/virt/inspector.py#L46","commit_id":"c4d311970b5471eff13c1875dc8d81ce7bdfd7e6"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"45cb969fe143022c699fd1c8eda9b46ba5300831","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @staticmethod"},{"line_number":73,"context_line":"    def _get_lb_pools():"},{"line_number":74,"context_line":"        nc \u003d neutron_client.Client()"},{"line_number":75,"context_line":"        return nc.pool_get_all()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"}],"source_content_type":"text/x-python","patch_set":14,"id":"1ae5cdf2_049a0114","line":74,"updated":"2014-06-09 18:58:11.000000000","message":"Do we really need a fresh client on each call to get_samples?","commit_id":"c4d311970b5471eff13c1875dc8d81ce7bdfd7e6"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"45cb969fe143022c699fd1c8eda9b46ba5300831","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                name\u003d\u0027network.services.lb.pool\u0027,"},{"line_number":82,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":83,"context_line":"                unit\u003d\u0027pool\u0027,"},{"line_number":84,"context_line":"                volume\u003dSTATUS[pool[\u0027status\u0027].lower()],"},{"line_number":85,"context_line":"                user_id\u003dNone,"},{"line_number":86,"context_line":"                project_id\u003dpool[\u0027tenant_id\u0027],"},{"line_number":87,"context_line":"                resource_id\u003dpool[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"1ae5cdf2_3f462424","line":84,"updated":"2014-06-09 18:58:11.000000000","message":"You might want to be a bit more defensive here in the case of an unexpected status being reported.","commit_id":"c4d311970b5471eff13c1875dc8d81ce7bdfd7e6"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"45cb969fe143022c699fd1c8eda9b46ba5300831","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":83,"context_line":"                unit\u003d\u0027pool\u0027,"},{"line_number":84,"context_line":"                volume\u003dSTATUS[pool[\u0027status\u0027].lower()],"},{"line_number":85,"context_line":"                user_id\u003dNone,"},{"line_number":86,"context_line":"                project_id\u003dpool[\u0027tenant_id\u0027],"},{"line_number":87,"context_line":"                resource_id\u003dpool[\u0027id\u0027],"},{"line_number":88,"context_line":"                timestamp\u003dtimeutils.utcnow().isoformat(),"}],"source_content_type":"text/x-python","patch_set":14,"id":"1ae5cdf2_7fc0ac7c","line":85,"updated":"2014-06-09 18:58:11.000000000","message":"Are there LB elements never associated with a specific user?","commit_id":"c4d311970b5471eff13c1875dc8d81ce7bdfd7e6"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"45cb969fe143022c699fd1c8eda9b46ba5300831","unresolved":false,"context_lines":[{"line_number":109,"context_line":"              ]"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @staticmethod"},{"line_number":112,"context_line":"    def _get_lb_vips():"},{"line_number":113,"context_line":"        nc \u003d neutron_client.Client()"},{"line_number":114,"context_line":"        return nc.vip_get_all()"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"1ae5cdf2_dfb9c0ed","line":112,"updated":"2014-06-09 18:58:11.000000000","message":"I\u0027m a bit concerned as to how this mechanism for discovering the resources (e.g. VIPS, pools, members, probes) *within* the pollsters would interact with work partitioning in the central agent.\n\nI\u0027m thinking it would be better have a bunch of resource discovery extensions instead, that call the appropriate getter methods and construct a list of the appropriate resource types, which are then passed into the pollsters.\n\nThat way, the resource discovery logic would be the obvious place for work partitioning between horizontally scaled central agents.\n\nHere\u0027s an example of a resource discovery extension:\n\n  https://github.com/openstack/ceilometer/blob/master/ceilometer/compute/discovery.py\n\nIn this case, you would probably have multiple discoverers, all loaded via as stevedore extensions. The corresponding source(s) in the pipeline.yaml would then be associated with such resource discovery elements.\n\nWhat do you think of that idea?\n\nI would be OK with that being done in a subsequent patch.","commit_id":"c4d311970b5471eff13c1875dc8d81ce7bdfd7e6"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"45cb969fe143022c699fd1c8eda9b46ba5300831","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        return make_sample_from_pool("},{"line_number":276,"context_line":"            pool,"},{"line_number":277,"context_line":"            name\u003d\u0027network.services.lb.total_connections\u0027,"},{"line_number":278,"context_line":"            type\u003dsample.TYPE_DELTA,"},{"line_number":279,"context_line":"            unit\u003d\u0027connection\u0027,"},{"line_number":280,"context_line":"            volume\u003ddata.total_connections,"},{"line_number":281,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":14,"id":"1ae5cdf2_3ff8e4e4","line":278,"updated":"2014-06-09 18:58:11.000000000","message":"Is DELTA the correct type here? i.e. a net change since the last value was reported?","commit_id":"c4d311970b5471eff13c1875dc8d81ce7bdfd7e6"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"459173d0e5b036c8d940ea4d8aa02800d36f2845","unresolved":false,"context_lines":[{"line_number":36,"context_line":"# status map for converting metric status to volume int"},{"line_number":37,"context_line":"STATUS \u003d {"},{"line_number":38,"context_line":"    \u0027active\u0027: 1,"},{"line_number":39,"context_line":"    \u0027inactive\u0027: 2,"},{"line_number":40,"context_line":"    \u0027pending_create\u0027: 3,"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_87636e40","line":39,"updated":"2014-06-09 21:18:31.000000000","message":"Sorry didn\u0027t notice this in the previous patchset. Wouldn\u0027t be more logical to inactive to equate to zero?","commit_id":"a8d7daef708f027104fa7da99a207096af427610"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"2357f700357c92d6e3232601e273add8755919a6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"# status map for converting metric status to volume int"},{"line_number":37,"context_line":"STATUS \u003d {"},{"line_number":38,"context_line":"    \u0027active\u0027: 1,"},{"line_number":39,"context_line":"    \u0027inactive\u0027: 2,"},{"line_number":40,"context_line":"    \u0027pending_create\u0027: 3,"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_a2993870","line":39,"in_reply_to":"1ae5cdf2_47a5e645","updated":"2014-06-09 21:45:51.000000000","message":"That\u0027s an interesting question. Should we even be metering anything in the unknown case? Or instead logging a warning?","commit_id":"a8d7daef708f027104fa7da99a207096af427610"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"b25667984300385018565a04dcaf2cf1f716a3a4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"# status map for converting metric status to volume int"},{"line_number":37,"context_line":"STATUS \u003d {"},{"line_number":38,"context_line":"    \u0027active\u0027: 1,"},{"line_number":39,"context_line":"    \u0027inactive\u0027: 2,"},{"line_number":40,"context_line":"    \u0027pending_create\u0027: 3,"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_a2b69888","line":39,"in_reply_to":"1ae5cdf2_6204907e","updated":"2014-06-09 21:54:44.000000000","message":"Could such diagnostics be taken from a log message, if expanded and the severity changed to warning from debug?","commit_id":"a8d7daef708f027104fa7da99a207096af427610"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"1a75129e7edfd1627d79aae954141ff0a6d8fe63","unresolved":false,"context_lines":[{"line_number":36,"context_line":"# status map for converting metric status to volume int"},{"line_number":37,"context_line":"STATUS \u003d {"},{"line_number":38,"context_line":"    \u0027active\u0027: 1,"},{"line_number":39,"context_line":"    \u0027inactive\u0027: 2,"},{"line_number":40,"context_line":"    \u0027pending_create\u0027: 3,"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_47a5e645","line":39,"in_reply_to":"1ae5cdf2_87636e40","updated":"2014-06-09 21:22:12.000000000","message":"sure i can change this to 0, in that case the unknown state would be -1? see line #62","commit_id":"a8d7daef708f027104fa7da99a207096af427610"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"eef35153080bb1b76ba39c9f1fcb21141816f8a4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"# status map for converting metric status to volume int"},{"line_number":37,"context_line":"STATUS \u003d {"},{"line_number":38,"context_line":"    \u0027active\u0027: 1,"},{"line_number":39,"context_line":"    \u0027inactive\u0027: 2,"},{"line_number":40,"context_line":"    \u0027pending_create\u0027: 3,"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_6204907e","line":39,"in_reply_to":"1ae5cdf2_a2993870","updated":"2014-06-09 21:49:07.000000000","message":"wouldnt it be valuable to still keep the sample, to know what could have gone wrong?","commit_id":"a8d7daef708f027104fa7da99a207096af427610"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"b27f6b6e1d512f5e8af083ff0b25b2896d5179a3","unresolved":false,"context_lines":[{"line_number":36,"context_line":"# status map for converting metric status to volume int"},{"line_number":37,"context_line":"STATUS \u003d {"},{"line_number":38,"context_line":"    \u0027active\u0027: 1,"},{"line_number":39,"context_line":"    \u0027inactive\u0027: 2,"},{"line_number":40,"context_line":"    \u0027pending_create\u0027: 3,"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1ae5cdf2_cd0cb53e","line":39,"in_reply_to":"1ae5cdf2_a2b69888","updated":"2014-06-09 22:00:53.000000000","message":"yea i guess log would be enough to track it then.. i\u0027ll add that change in.","commit_id":"a8d7daef708f027104fa7da99a207096af427610"}],"ceilometer/neutron_client.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"091482419c21f86a53faf29676e9e8ca05a38596","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    def port_get_all(self):"},{"line_number":72,"context_line":"        resp \u003d self.client.list_ports()"},{"line_number":73,"context_line":"        return resp.get(\u0027ports\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @logged"},{"line_number":76,"context_line":"    def vip_get_all(self):"},{"line_number":77,"context_line":"        resp \u003d self.client.list_vips()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_83e1072c","line":74,"updated":"2014-06-05 17:04:32.000000000","message":"This is by no means a blocker, but it would be interesting (for the long term) to consider if a different approach could be taken for this class. Adding a new method for each call+data_key combination while nicely explicit is not very DRY. One option might be to have a generic method (something like `get_all(self, method_string, required_key)`) which tries to call provided strings as methods on the client.\n\nAgain not something for this patch, just an idea.","commit_id":"85a6e4ede38e2a32bdcce6f325de4ac0fcdcf1e7"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"45cb969fe143022c699fd1c8eda9b46ba5300831","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    @logged"},{"line_number":71,"context_line":"    def port_get_all(self):"},{"line_number":72,"context_line":"        resp \u003d self.client.list_ports()"},{"line_number":73,"context_line":"        return resp.get(\u0027ports\u0027)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @logged"},{"line_number":76,"context_line":"    def vip_get_all(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"1ae5cdf2_1f09682c","line":73,"updated":"2014-06-09 18:58:11.000000000","message":"I wonder could all this repetitive boilerplate be avoided?\n\ne.g.\n\n  @logged\n  def get_all(self, entity):\n      getter \u003d getattr(self.client, \u0027list_%s\u0027 % entity)\n      return getter().get(entity) if getter else []","commit_id":"c4d311970b5471eff13c1875dc8d81ce7bdfd7e6"}],"ceilometer/tests/network/services/test_lbaas.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8592c18b998738e065c09295bc33fa6536d54c3f","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        self.assertEqual(1, len(samples))"},{"line_number":242,"context_line":"        self.assertIsNotNone(samples)"},{"line_number":243,"context_line":"        self.assertIn(\u0027lbstats\u0027, cache)"},{"line_number":244,"context_line":"        self.assertEqual({sample_name}, set([s.name for s in samples]))"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        match \u003d [s for s in samples if s.name \u003d\u003d sample_name]"},{"line_number":247,"context_line":"        self.assertEqual(1, len(match), \u0027missing counter %s\u0027 % sample_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1ae5cdf2_c224b2b1","line":244,"updated":"2014-06-07 15:32:52.000000000","message":"-1: python 2.6 doesn\u0027t support, please use set([sample_name])","commit_id":"339c4b1838024b0971ba32bb10bfcdb81ce9762f"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"cd067edb09caa653bf00e27040495095ed4ca7bd","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        self.assertEqual(1, len(samples))"},{"line_number":242,"context_line":"        self.assertIsNotNone(samples)"},{"line_number":243,"context_line":"        self.assertIn(\u0027lbstats\u0027, cache)"},{"line_number":244,"context_line":"        self.assertEqual({sample_name}, set([s.name for s in samples]))"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        match \u003d [s for s in samples if s.name \u003d\u003d sample_name]"},{"line_number":247,"context_line":"        self.assertEqual(1, len(match), \u0027missing counter %s\u0027 % sample_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1ae5cdf2_6554c321","line":244,"in_reply_to":"1ae5cdf2_c224b2b1","updated":"2014-06-08 14:49:14.000000000","message":"yes aware of that :) .. thats what jenkins is complaining about. Will push a fix soon.","commit_id":"339c4b1838024b0971ba32bb10bfcdb81ce9762f"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8e906ed8a2d0d37906581628eb9080946c5092e3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self.patch_me()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def patch_me(self):"},{"line_number":37,"context_line":"        # override with mock patches as needed"},{"line_number":38,"context_line":"        pass"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_253ab636","line":37,"updated":"2014-06-09 03:01:57.000000000","message":"no need for this. Just move these works into child class\u0027s setUp() method.","commit_id":"d217ab21a14190975d7161d1e732009b30611f56"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8e906ed8a2d0d37906581628eb9080946c5092e3","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        patch_pool \u003d mock.patch(\u0027ceilometer.neutron_client.Client.\u0027"},{"line_number":47,"context_line":"                                \u0027pool_get_all\u0027,"},{"line_number":48,"context_line":"                                return_value\u003dfake_pools)"},{"line_number":49,"context_line":"        patch_pool.start()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @staticmethod"},{"line_number":52,"context_line":"    def fake_get_pools():"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_453ee22a","line":49,"updated":"2014-06-09 03:01:57.000000000","message":"We could use ceilometer.openstack.common.fixture.mockpatch.patch directly here. See example https://github.com/openstack/ceilometer/blob/master/ceilometer/tests/central/test_manager.py#L45","commit_id":"d217ab21a14190975d7161d1e732009b30611f56"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                 \u0027admin_state_up\u0027: True,"},{"line_number":91,"context_line":"                 \u0027subnet_id\u0027: \u0027bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a\u0027,"},{"line_number":92,"context_line":"                 \u0027tenant_id\u0027: \u0027a4eb9f4938bb418bbc4f8eb31802fefa\u0027,"},{"line_number":93,"context_line":"                 \u0027health_monitors_status\u0027: []}, ]"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_pool_get_samples(self):"},{"line_number":96,"context_line":"        samples \u003d list(self.pollster.get_samples(self.manager, {}))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_a578742c","line":93,"updated":"2014-06-09 14:39:15.000000000","message":"It\u0027s cool, if you move \"]\" to next line. I think it makes next changes clearer because when somebody will add new lines here he won\u0027t change last line of your list. It\u0027s little nit and you may feel free to disregard this.","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                 \u0027protocol_port\u0027: 80,"},{"line_number":168,"context_line":"                 \u0027port_id\u0027: \u00273df3c4de-b32e-4ca1-a7f4-84323ba5f291\u0027,"},{"line_number":169,"context_line":"                 \u0027id\u0027: \u0027fg6a6fee-e2fa-4e6c-b3c2-bfbe395752c1\u0027,"},{"line_number":170,"context_line":"                 \u0027name\u0027: \u0027myvip03\u0027}, ]"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def test_vip_get_samples(self):"},{"line_number":173,"context_line":"        samples \u003d list(self.pollster.get_samples(self.manager, {}))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_c5f10097","line":170,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                 \u0027pool_id\u0027: \u0027ce73ad36-437d-4c84-aee1-186027d3da9a\u0027,"},{"line_number":227,"context_line":"                 \u0027address\u0027: \u002710.0.0.6\u0027,"},{"line_number":228,"context_line":"                 \u0027status_description\u0027: None,"},{"line_number":229,"context_line":"                 \u0027id\u0027: \u002745630b61eb-07bc-4372-9fbf-36459dd0f96b\u0027}, ]"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def test_get_samples_not_empty(self):"},{"line_number":232,"context_line":"        samples \u003d list(self.pollster.get_samples(self.manager, {}))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_052be8eb","line":229,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":312,"context_line":"                 \u0027admin_state_up\u0027: True,"},{"line_number":313,"context_line":"                 \u0027subnet_id\u0027: \u0027bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a\u0027,"},{"line_number":314,"context_line":"                 \u0027tenant_id\u0027: \u0027a4eb9f4938bb418bbc4f8eb31802fefa\u0027,"},{"line_number":315,"context_line":"                 \u0027health_monitors_status\u0027: []}]"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"    @staticmethod"},{"line_number":318,"context_line":"    def fake_pool_stats():"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_653aec37","line":315,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"}],"ceilometer/tests/test_neutronclient.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8e906ed8a2d0d37906581628eb9080946c5092e3","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        self.assertEqual(1, len(monitors))"},{"line_number":169,"context_line":"        self.assertEqual(\u002734ae33e1-0035-49e2-a2ca-77d5d3fab365\u0027,"},{"line_number":170,"context_line":"                         monitors[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_25f8f6e4","line":170,"updated":"2014-06-09 03:01:57.000000000","message":"Looks like pool_stats is not tested here.","commit_id":"d217ab21a14190975d7161d1e732009b30611f56"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                           \u0027admin_state_up\u0027: True,"},{"line_number":89,"context_line":"                           \u0027subnet_id\u0027: \u0027bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a\u0027,"},{"line_number":90,"context_line":"                           \u0027tenant_id\u0027: \u0027a4eb9f4938bb418bbc4f8eb31802fefa\u0027,"},{"line_number":91,"context_line":"                           \u0027health_monitors_status\u0027: []}]}"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_pool_list(self):"},{"line_number":94,"context_line":"        with patch.object(self.nc.client, \u0027list_pools\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_251704a5","line":91,"updated":"2014-06-09 14:39:15.000000000","message":"ditto as in test_lbaas.py","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                          \u0027protocol_port\u0027: 80,"},{"line_number":116,"context_line":"                          \u0027port_id\u0027: \u00273df3c4de-b32e-4ca1-a7f4-84323ba5f291\u0027,"},{"line_number":117,"context_line":"                          \u0027id\u0027: \u0027cd6a6fee-e2fa-4e6c-b3c2-bfbe395752c1\u0027,"},{"line_number":118,"context_line":"                          \u0027name\u0027: \u0027myvip\u0027}]}"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_vip_list(self):"},{"line_number":121,"context_line":"        with patch.object(self.nc.client, \u0027list_vips\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_65110cac","line":118,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"9a44d8a4b0df6445594703230efe1330ae4a1f4d","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                             \u0027pool_id\u0027: \u0027ce73ad36-437d-4c84-aee1-186027d3da9a\u0027,"},{"line_number":137,"context_line":"                             \u0027address\u0027: \u002710.0.0.3\u0027,"},{"line_number":138,"context_line":"                             \u0027status_description\u0027: None,"},{"line_number":139,"context_line":"                             \u0027id\u0027: \u0027290b61eb-07bc-4372-9fbf-36459dd0f96b\u0027}]}"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def test_member_list(self):"},{"line_number":142,"context_line":"        with patch.object(self.nc.client, \u0027list_members\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_8525380c","line":139,"updated":"2014-06-09 14:39:15.000000000","message":"ditto","commit_id":"32d7a50fa40e0fee89e8fbc000498d6522669bf4"}],"setup.cfg":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"45cb969fe143022c699fd1c8eda9b46ba5300831","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    network.services.lb.health_monitor \u003d ceilometer.network.services.lbaas:LBHealthMonitorPollster"},{"line_number":142,"context_line":"    network.services.lb.total_connections \u003d ceilometer.network.services.lbaas:LBTotalConnectionsPollster"},{"line_number":143,"context_line":"    network.services.lb.active_connections \u003d ceilometer.network.services.lbaas:LBActiveConnectionsPollster"},{"line_number":144,"context_line":"    network.services.lb.incoming.bytes \u003d ceilometer.network.services.lbaas:LBBytesInPollster"},{"line_number":145,"context_line":"    network.services.lb.outgoing.bytes \u003d ceilometer.network.services.lbaas:LBBytesOutPollster"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"ceilometer.storage \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":14,"id":"1ae5cdf2_847371e6","line":144,"updated":"2014-06-09 18:58:11.000000000","message":"Inconsistent naming between (active|total)_connections versus (incoming|outgoing).bytes ... i.e. underscore separator versus period.","commit_id":"c4d311970b5471eff13c1875dc8d81ce7bdfd7e6"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"d95dbfb9b4d39a669f1663adbad6b56a34f8c08b","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    network.services.lb.pool \u003d ceilometer.network.services.lbaas:LBPoolPollster"},{"line_number":139,"context_line":"    network.services.lb.vip \u003d ceilometer.network.services.lbaas:LBVipPollster"},{"line_number":140,"context_line":"    network.services.lb.member \u003d ceilometer.network.services.lbaas:LBMemberPollster"},{"line_number":141,"context_line":"    network.services.lb.health_monitor \u003d ceilometer.network.services.lbaas:LBHealthMonitorPollster"},{"line_number":142,"context_line":"    network.services.lb.total.connections \u003d ceilometer.network.services.lbaas:LBTotalConnectionsPollster"},{"line_number":143,"context_line":"    network.services.lb.active.connections \u003d ceilometer.network.services.lbaas:LBActiveConnectionsPollster"},{"line_number":144,"context_line":"    network.services.lb.incoming.bytes \u003d ceilometer.network.services.lbaas:LBBytesInPollster"}],"source_content_type":"text/x-ttcn-cfg","patch_set":15,"id":"1ae5cdf2_dcc9c95b","line":141,"updated":"2014-06-09 20:44:14.000000000","message":"Could you please explain what is the use-case for getting this kind of metrics?","commit_id":"a8d7daef708f027104fa7da99a207096af427610"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"155668b70240966ab3566721a4ba3de4224bb5b7","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    network.services.lb.pool \u003d ceilometer.network.services.lbaas:LBPoolPollster"},{"line_number":139,"context_line":"    network.services.lb.vip \u003d ceilometer.network.services.lbaas:LBVipPollster"},{"line_number":140,"context_line":"    network.services.lb.member \u003d ceilometer.network.services.lbaas:LBMemberPollster"},{"line_number":141,"context_line":"    network.services.lb.health_monitor \u003d ceilometer.network.services.lbaas:LBHealthMonitorPollster"},{"line_number":142,"context_line":"    network.services.lb.total.connections \u003d ceilometer.network.services.lbaas:LBTotalConnectionsPollster"},{"line_number":143,"context_line":"    network.services.lb.active.connections \u003d ceilometer.network.services.lbaas:LBActiveConnectionsPollster"},{"line_number":144,"context_line":"    network.services.lb.incoming.bytes \u003d ceilometer.network.services.lbaas:LBBytesInPollster"}],"source_content_type":"text/x-ttcn-cfg","patch_set":15,"id":"1ae5cdf2_e72432c8","line":141,"in_reply_to":"1ae5cdf2_dcc9c95b","updated":"2014-06-09 21:25:02.000000000","message":"mostly around billing. Cloud providers would want to be able to track the health probes used. Could be extended for monitoring if needed, but thats not my intent here.","commit_id":"a8d7daef708f027104fa7da99a207096af427610"}]}
