)]}'
{"networking_odl/ceilometer/network/statistics/opendaylight_v2/client.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"9ad5a88cce31312328a8875a3bbb4605d9c10fd4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    pass"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class SwitchStatisticsAPIClient(_Base):"},{"line_number":49,"context_line":"    \"\"\"OpenDaylight Switch Statistics REST API Client"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    Base URL:"},{"line_number":52,"context_line":"      {endpoint}/flow-capable-switches"},{"line_number":53,"context_line":"    \"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    base_url \u003d \u0027/flow-capable-switches\u0027"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class BGPStatisticsAPIClient(_Base):"},{"line_number":59,"context_line":"    \"\"\"OpenDaylight BGP Statistics REST API Client"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    Base URL:"},{"line_number":62,"context_line":"      {endpoint}/bgp"},{"line_number":63,"context_line":"    \"\"\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    base_url \u003d \u0027/bgp\u0027"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"class SwitchConnectionStatisticsAPIClient(_Base):"},{"line_number":69,"context_line":"    \"\"\"OpenDaylight controller switch connection statistics REST API Client"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    Base URL:"},{"line_number":72,"context_line":"      {endpoint}/controller-switch-mappings"},{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    base_url \u003d \u0027/controller-switch-mappings\u0027"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class Client(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_4b9ac2b8","line":75,"range":{"start_line":48,"start_character":0,"end_line":75,"end_character":44},"updated":"2017-07-06 23:48:00.000000000","message":"Are those three classes needed?\ncan we pass those base_url as parameter to __init__?","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"d10f38ee15bf3a4bacf2cde5a68f36bb7f9bb4d9","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    pass"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class SwitchStatisticsAPIClient(_Base):"},{"line_number":49,"context_line":"    \"\"\"OpenDaylight Switch Statistics REST API Client"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    Base URL:"},{"line_number":52,"context_line":"      {endpoint}/flow-capable-switches"},{"line_number":53,"context_line":"    \"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    base_url \u003d \u0027/flow-capable-switches\u0027"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class BGPStatisticsAPIClient(_Base):"},{"line_number":59,"context_line":"    \"\"\"OpenDaylight BGP Statistics REST API Client"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    Base URL:"},{"line_number":62,"context_line":"      {endpoint}/bgp"},{"line_number":63,"context_line":"    \"\"\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    base_url \u003d \u0027/bgp\u0027"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"class SwitchConnectionStatisticsAPIClient(_Base):"},{"line_number":69,"context_line":"    \"\"\"OpenDaylight controller switch connection statistics REST API Client"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    Base URL:"},{"line_number":72,"context_line":"      {endpoint}/controller-switch-mappings"},{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    base_url \u003d \u0027/controller-switch-mappings\u0027"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class Client(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_ed7cc973","line":75,"range":{"start_line":48,"start_character":0,"end_line":75,"end_character":44},"in_reply_to":"3f1d235d_4b9ac2b8","updated":"2017-07-10 07:31:21.000000000","message":"Removed BGPStatisticsAPIClient and SwitchConnectionStatisticsAPIClient in this commit as I haven\u0027t added counters for the same.\n\nbase_url is defined as an abstract property. Felt code becomes more readable with this separation.","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"9ad5a88cce31312328a8875a3bbb4605d9c10fd4","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def __init__(self, conf, endpoint, params):"},{"line_number":81,"context_line":"        self.switch_statistics \u003d SwitchStatisticsAPIClient(self)"},{"line_number":82,"context_line":"        self.bgp_statistics \u003d BGPStatisticsAPIClient(self)"},{"line_number":83,"context_line":"        self.connection_statistics \u003d SwitchConnectionStatisticsAPIClient(self)"},{"line_number":84,"context_line":"        self._endpoint \u003d endpoint"},{"line_number":85,"context_line":"        self.conf \u003d conf"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_eb4d0e3b","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":78},"updated":"2017-07-06 23:48:00.000000000","message":"I can\u0027t find any usage of these two.","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"d10f38ee15bf3a4bacf2cde5a68f36bb7f9bb4d9","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def __init__(self, conf, endpoint, params):"},{"line_number":81,"context_line":"        self.switch_statistics \u003d SwitchStatisticsAPIClient(self)"},{"line_number":82,"context_line":"        self.bgp_statistics \u003d BGPStatisticsAPIClient(self)"},{"line_number":83,"context_line":"        self.connection_statistics \u003d SwitchConnectionStatisticsAPIClient(self)"},{"line_number":84,"context_line":"        self._endpoint \u003d endpoint"},{"line_number":85,"context_line":"        self.conf \u003d conf"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_ad96d193","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":78},"in_reply_to":"3f1d235d_eb4d0e3b","updated":"2017-07-10 07:31:21.000000000","message":"Removed them as I didn\u0027t add support for those counters.","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"9ad5a88cce31312328a8875a3bbb4605d9c10fd4","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    def _http_request(self, url):"},{"line_number":143,"context_line":"        if self.conf.debug:"},{"line_number":144,"context_line":"            self._log_req(url)"},{"line_number":145,"context_line":"        resp \u003d requests.get(url, **self._req_params)"},{"line_number":146,"context_line":"        if self.conf.debug:"},{"line_number":147,"context_line":"            self._log_res(resp)"},{"line_number":148,"context_line":"        if resp.status_code // 100 !\u003d 2:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_2bc3068b","line":145,"range":{"start_line":145,"start_character":15,"end_line":145,"end_character":23},"updated":"2017-07-06 23:48:00.000000000","message":"we can keep http connection by requests.session.","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"d10f38ee15bf3a4bacf2cde5a68f36bb7f9bb4d9","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    def _http_request(self, url):"},{"line_number":143,"context_line":"        if self.conf.debug:"},{"line_number":144,"context_line":"            self._log_req(url)"},{"line_number":145,"context_line":"        resp \u003d requests.get(url, **self._req_params)"},{"line_number":146,"context_line":"        if self.conf.debug:"},{"line_number":147,"context_line":"            self._log_res(resp)"},{"line_number":148,"context_line":"        if resp.status_code // 100 !\u003d 2:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_8d9315a4","line":145,"range":{"start_line":145,"start_character":15,"end_line":145,"end_character":23},"in_reply_to":"3f1d235d_2bc3068b","updated":"2017-07-10 07:31:21.000000000","message":"Done","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"3f9136fe3ff1dad173480841f41816b081ba7098","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _log_req(self, url):"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        curl_command \u003d [\u0027REQ: curl -i -X GET \u0027, \u0027\"%s\" \u0027 % (url)]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        if \u0027auth\u0027 in self._req_params:"},{"line_number":94,"context_line":"            auth_class \u003d self._req_params[\u0027auth\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_d41f186e","line":91,"range":{"start_line":91,"start_character":44,"end_line":91,"end_character":45},"updated":"2017-07-11 18:21:23.000000000","message":"instead of leaving space char after every element you can just use \u0027 \u0027.join(curl_command) at L105, it will be less error prone, as if someone wants to add a new param to command","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"aa4e34a32440080223e8d97887c6f7a7ec589224","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _log_req(self, url):"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        curl_command \u003d [\u0027REQ: curl -i -X GET \u0027, \u0027\"%s\" \u0027 % (url)]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        if \u0027auth\u0027 in self._req_params:"},{"line_number":94,"context_line":"            auth_class \u003d self._req_params[\u0027auth\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_955fb7e4","line":91,"range":{"start_line":91,"start_character":44,"end_line":91,"end_character":45},"in_reply_to":"3f1d235d_6f2bd1ea","updated":"2017-07-12 12:56:57.000000000","message":"Done","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"aa4e34a32440080223e8d97887c6f7a7ec589224","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _log_req(self, url):"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        curl_command \u003d [\u0027REQ: curl -i -X GET \u0027, \u0027\"%s\" \u0027 % (url)]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        if \u0027auth\u0027 in self._req_params:"},{"line_number":94,"context_line":"            auth_class \u003d self._req_params[\u0027auth\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_b55073d6","line":91,"range":{"start_line":91,"start_character":44,"end_line":91,"end_character":45},"in_reply_to":"3f1d235d_d41f186e","updated":"2017-07-12 12:56:57.000000000","message":"Done","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"0af6c3323795f0f0c879e8e13056e311843434cc","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _log_req(self, url):"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        curl_command \u003d [\u0027REQ: curl -i -X GET \u0027, \u0027\"%s\" \u0027 % (url)]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        if \u0027auth\u0027 in self._req_params:"},{"line_number":94,"context_line":"            auth_class \u003d self._req_params[\u0027auth\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_6f2bd1ea","line":91,"range":{"start_line":91,"start_character":44,"end_line":91,"end_character":45},"in_reply_to":"3f1d235d_d41f186e","updated":"2017-07-11 18:23:25.000000000","message":"there is space in \u0027     \u0027 for \u0027 \u0027.join comment formatting strips it","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"3f9136fe3ff1dad173480841f41816b081ba7098","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _log_req(self, url):"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        curl_command \u003d [\u0027REQ: curl -i -X GET \u0027, \u0027\"%s\" \u0027 % (url)]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        if \u0027auth\u0027 in self._req_params:"},{"line_number":94,"context_line":"            auth_class \u003d self._req_params[\u0027auth\u0027]"},{"line_number":95,"context_line":"            if isinstance(auth_class, auth.HTTPBasicAuth):"},{"line_number":96,"context_line":"                curl_command.append(\u0027--basic \u0027)"},{"line_number":97,"context_line":"            else:"},{"line_number":98,"context_line":"                curl_command.append(\u0027--digest \u0027)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"            curl_command.append(\u0027--user \"%s\":\"***\" \u0027 % auth_class.username)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        for name, value in six.iteritems(self._req_params[\u0027headers\u0027]):"},{"line_number":103,"context_line":"            curl_command.append(\u0027-H \"%s: %s\" \u0027 % (name, value))"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        LOG.debug(\u0027\u0027.join(curl_command))"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_94a64053","line":103,"range":{"start_line":91,"start_character":8,"end_line":103,"end_character":63},"updated":"2017-07-11 18:21:23.000000000","message":"so command is built just for logging not any execution ? I wonder why can\u0027t be logged whats directly executed instead of building command manually from url ?","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"aa4e34a32440080223e8d97887c6f7a7ec589224","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _log_req(self, url):"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        curl_command \u003d [\u0027REQ: curl -i -X GET \u0027, \u0027\"%s\" \u0027 % (url)]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        if \u0027auth\u0027 in self._req_params:"},{"line_number":94,"context_line":"            auth_class \u003d self._req_params[\u0027auth\u0027]"},{"line_number":95,"context_line":"            if isinstance(auth_class, auth.HTTPBasicAuth):"},{"line_number":96,"context_line":"                curl_command.append(\u0027--basic \u0027)"},{"line_number":97,"context_line":"            else:"},{"line_number":98,"context_line":"                curl_command.append(\u0027--digest \u0027)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"            curl_command.append(\u0027--user \"%s\":\"***\" \u0027 % auth_class.username)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        for name, value in six.iteritems(self._req_params[\u0027headers\u0027]):"},{"line_number":103,"context_line":"            curl_command.append(\u0027-H \"%s: %s\" \u0027 % (name, value))"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        LOG.debug(\u0027\u0027.join(curl_command))"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_92134db9","line":103,"range":{"start_line":91,"start_character":8,"end_line":103,"end_character":63},"in_reply_to":"3f1d235d_94a64053","updated":"2017-07-12 12:56:57.000000000","message":"Plan is to log not just the REST call method and URI but also the params passed through resources attribute in /etc/ceilometer/polling.yaml configuration. Logging using curl command had a more meaningful representation.","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"3eb05a6cac0cbf6ee70bad6efffc2a5c8ac45df3","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        resp \u003d self.session.get(url, **self._req_params)"},{"line_number":125,"context_line":"        if self.conf.debug:"},{"line_number":126,"context_line":"            self._log_res(resp)"},{"line_number":127,"context_line":"        if resp.status_code // 100 !\u003d 2:"},{"line_number":128,"context_line":"            raise OpenDaylightRESTAPIFailed("},{"line_number":129,"context_line":"                _(\u0027OpenDaylight API returned %(status)s %(reason)s\u0027) %"},{"line_number":130,"context_line":"                {\u0027status\u0027: resp.status_code, \u0027reason\u0027: resp.reason})"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_a507ecc9","line":127,"range":{"start_line":127,"start_character":8,"end_line":127,"end_character":40},"updated":"2017-07-10 22:27:21.000000000","message":"Just from curiosity, are 1xx and 3xx error in this case?","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"aa4e34a32440080223e8d97887c6f7a7ec589224","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        resp \u003d self.session.get(url, **self._req_params)"},{"line_number":125,"context_line":"        if self.conf.debug:"},{"line_number":126,"context_line":"            self._log_res(resp)"},{"line_number":127,"context_line":"        if resp.status_code // 100 !\u003d 2:"},{"line_number":128,"context_line":"            raise OpenDaylightRESTAPIFailed("},{"line_number":129,"context_line":"                _(\u0027OpenDaylight API returned %(status)s %(reason)s\u0027) %"},{"line_number":130,"context_line":"                {\u0027status\u0027: resp.status_code, \u0027reason\u0027: resp.reason})"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_dfc8ae75","line":127,"range":{"start_line":127,"start_character":8,"end_line":127,"end_character":40},"in_reply_to":"3f1d235d_a507ecc9","updated":"2017-07-12 12:56:57.000000000","message":"Yes.","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"}],"networking_odl/ceilometer/network/statistics/opendaylight_v2/driver.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"9ad5a88cce31312328a8875a3bbb4605d9c10fd4","unresolved":false,"context_lines":[{"line_number":23,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _get_int_sample(key, statistic, resource_id, resource_meta):"},{"line_number":27,"context_line":"    if key not in statistic:"},{"line_number":28,"context_line":"        return None"},{"line_number":29,"context_line":"    value \u003d int(statistic[key])"},{"line_number":30,"context_line":"    if not(0 \u003c\u003d value \u003c 18446744073709551615):"},{"line_number":31,"context_line":"        value \u003d 0"},{"line_number":32,"context_line":"    return value, resource_id, resource_meta"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class OpenDaylightDriver(driver.Driver):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_eb662ebb","line":32,"range":{"start_line":26,"start_character":0,"end_line":32,"end_character":44},"updated":"2017-07-06 23:48:00.000000000","message":"This should be a method of OpenDaylightDriver.","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"d10f38ee15bf3a4bacf2cde5a68f36bb7f9bb4d9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _get_int_sample(key, statistic, resource_id, resource_meta):"},{"line_number":27,"context_line":"    if key not in statistic:"},{"line_number":28,"context_line":"        return None"},{"line_number":29,"context_line":"    value \u003d int(statistic[key])"},{"line_number":30,"context_line":"    if not(0 \u003c\u003d value \u003c 18446744073709551615):"},{"line_number":31,"context_line":"        value \u003d 0"},{"line_number":32,"context_line":"    return value, resource_id, resource_meta"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class OpenDaylightDriver(driver.Driver):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_6d90b996","line":32,"range":{"start_line":26,"start_character":0,"end_line":32,"end_character":44},"in_reply_to":"3f1d235d_eb662ebb","updated":"2017-07-10 07:31:21.000000000","message":"Done","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"9ad5a88cce31312328a8875a3bbb4605d9c10fd4","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    In this case, the driver send request to below URLs:"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"      http://127.0.0.1:8080/controller/statistics/flow-capable-switches"},{"line_number":66,"context_line":"    \"\"\""},{"line_number":67,"context_line":"    def _prepare_cache(self, endpoint, params, cache):"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        if \u0027network.statistics.opendaylight_v2\u0027 in cache:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_8bdb3a4d","line":66,"range":{"start_line":65,"start_character":71,"end_line":66,"end_character":7},"updated":"2017-07-06 23:48:00.000000000","message":"Please add sample json output so that it\u0027d be easier to understand the logic.","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"d10f38ee15bf3a4bacf2cde5a68f36bb7f9bb4d9","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    In this case, the driver send request to below URLs:"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"      http://127.0.0.1:8080/controller/statistics/flow-capable-switches"},{"line_number":66,"context_line":"    \"\"\""},{"line_number":67,"context_line":"    def _prepare_cache(self, endpoint, params, cache):"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        if \u0027network.statistics.opendaylight_v2\u0027 in cache:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_4d8dfd79","line":66,"range":{"start_line":65,"start_character":71,"end_line":66,"end_character":7},"in_reply_to":"3f1d235d_8bdb3a4d","updated":"2017-07-10 07:31:21.000000000","message":"Done","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"3f9136fe3ff1dad173480841f41816b081ba7098","unresolved":false,"context_lines":[{"line_number":26,"context_line":"class OpenDaylightDriver(driver.Driver):"},{"line_number":27,"context_line":"    \"\"\"Driver of network info collector from OpenDaylight."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    This driver uses resources in \"pipeline.yaml\"."},{"line_number":30,"context_line":"    Resource requires below conditions:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    * resource is url"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_cf6e6595","line":29,"range":{"start_line":29,"start_character":35,"end_line":29,"end_character":48},"updated":"2017-07-11 18:21:23.000000000","message":"pipeline.yaml from what ? mind mentioning that too ?","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"aa4e34a32440080223e8d97887c6f7a7ec589224","unresolved":false,"context_lines":[{"line_number":26,"context_line":"class OpenDaylightDriver(driver.Driver):"},{"line_number":27,"context_line":"    \"\"\"Driver of network info collector from OpenDaylight."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    This driver uses resources in \"pipeline.yaml\"."},{"line_number":30,"context_line":"    Resource requires below conditions:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    * resource is url"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_5c982c69","line":29,"range":{"start_line":29,"start_character":35,"end_line":29,"end_character":48},"in_reply_to":"3f1d235d_cf6e6595","updated":"2017-07-12 12:56:57.000000000","message":"Done","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"3f9136fe3ff1dad173480841f41816b081ba7098","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      (default http)"},{"line_number":41,"context_line":"    * auth:"},{"line_number":42,"context_line":"      Auth strategy of http."},{"line_number":43,"context_line":"      This parameter can be set basic and digest.(default None)"},{"line_number":44,"context_line":"    * user:"},{"line_number":45,"context_line":"      This is username that is used by auth.(default None)"},{"line_number":46,"context_line":"    * password:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_eff801c5","line":43,"range":{"start_line":43,"start_character":28,"end_line":43,"end_character":36},"updated":"2017-07-11 18:21:23.000000000","message":"\u0027set to basic or digest\u0027","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"aa4e34a32440080223e8d97887c6f7a7ec589224","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      (default http)"},{"line_number":41,"context_line":"    * auth:"},{"line_number":42,"context_line":"      Auth strategy of http."},{"line_number":43,"context_line":"      This parameter can be set basic and digest.(default None)"},{"line_number":44,"context_line":"    * user:"},{"line_number":45,"context_line":"      This is username that is used by auth.(default None)"},{"line_number":46,"context_line":"    * password:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_df49ce60","line":43,"range":{"start_line":43,"start_character":28,"end_line":43,"end_character":36},"in_reply_to":"3f1d235d_eff801c5","updated":"2017-07-12 12:56:57.000000000","message":"Done","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"3f9136fe3ff1dad173480841f41816b081ba7098","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    In this case, the driver send request to below URLs:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"      http://127.0.0.1:8080/controller/statistics/flow-capable-switches"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    Example JSON response from OpenDaylight"},{"line_number":59,"context_line":"    {"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_cf1c2515","line":56,"range":{"start_line":56,"start_character":50,"end_line":56,"end_character":71},"updated":"2017-07-11 18:21:23.000000000","message":"where does it come from ? shouldn\u0027t this be added to L51 too ?","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"aa4e34a32440080223e8d97887c6f7a7ec589224","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    In this case, the driver send request to below URLs:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"      http://127.0.0.1:8080/controller/statistics/flow-capable-switches"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    Example JSON response from OpenDaylight"},{"line_number":59,"context_line":"    {"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_9c8ec425","line":56,"range":{"start_line":56,"start_character":50,"end_line":56,"end_character":71},"in_reply_to":"3f1d235d_cf1c2515","updated":"2017-07-12 12:56:57.000000000","message":"The final URI is decided by the client. Right now we collect only switch\u0027s statistics. We can further add support to fetch BGP statistics, switch connectivity statistics etc... This will be based on the client class getting invoked. In all such cases root resource will be /controlller/statistics.","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"3f9136fe3ff1dad173480841f41816b081ba7098","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    \"\"\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @staticmethod"},{"line_number":90,"context_line":"    def _get_int_sample(key, statistic, resource_id,"},{"line_number":91,"context_line":"                        resource_meta, tenant_id):"},{"line_number":92,"context_line":"        if key not in statistic:"},{"line_number":93,"context_line":"            return None"},{"line_number":94,"context_line":"        value \u003d int(statistic[key])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_6fbcf1db","line":91,"range":{"start_line":90,"start_character":40,"end_line":91,"end_character":48},"updated":"2017-07-11 18:21:23.000000000","message":"these 3 aren\u0027t even used passed as it is, can this helper be modified to use just key, statistic as arguments ?","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"aa4e34a32440080223e8d97887c6f7a7ec589224","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    \"\"\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @staticmethod"},{"line_number":90,"context_line":"    def _get_int_sample(key, statistic, resource_id,"},{"line_number":91,"context_line":"                        resource_meta, tenant_id):"},{"line_number":92,"context_line":"        if key not in statistic:"},{"line_number":93,"context_line":"            return None"},{"line_number":94,"context_line":"        value \u003d int(statistic[key])"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_bfe2922e","line":91,"range":{"start_line":90,"start_character":40,"end_line":91,"end_character":48},"in_reply_to":"3f1d235d_6fbcf1db","updated":"2017-07-12 12:56:57.000000000","message":"Actually the callers of this method is expected to return nothing [None] or every attribute passed based on whether the value exists or not. Instead of checking for value exists at every caller, the utility is achieved using just this method.","commit_id":"8c63d09e9c7113f04d37eecb63fefb339866ca25"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"1c3160b718af59b0d0c34240e0768ef01899c1eb","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        if key not in statistic:"},{"line_number":93,"context_line":"            return None"},{"line_number":94,"context_line":"        value \u003d int(statistic[key])"},{"line_number":95,"context_line":"        if not (0 \u003c\u003d value \u003c 18446744073709551615):"},{"line_number":96,"context_line":"            value \u003d 0"},{"line_number":97,"context_line":"        return value, resource_id, resource_meta, tenant_id"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1f1a1f67_cbfeab04","line":95,"range":{"start_line":95,"start_character":27,"end_line":95,"end_character":49},"updated":"2017-07-12 15:49:41.000000000","message":"Although i don\u0027t know about ceilometer,\nthis value is 2^64 - 1 \u003d UINT64_MAX.\nisn\u0027t this included? i.e. \u003c\u003d\nor is it used for special meaning?","commit_id":"b11dd531d9264279dfebeeeb8bd89842b242676c"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"f2c9fd9c19c2c7e6621a1d0343ef6e5cf3fefe28","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        if key not in statistic:"},{"line_number":93,"context_line":"            return None"},{"line_number":94,"context_line":"        value \u003d int(statistic[key])"},{"line_number":95,"context_line":"        if not (0 \u003c\u003d value \u003c 18446744073709551615):"},{"line_number":96,"context_line":"            value \u003d 0"},{"line_number":97,"context_line":"        return value, resource_id, resource_meta, tenant_id"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1f1a1f67_0a6002a5","line":95,"range":{"start_line":95,"start_character":27,"end_line":95,"end_character":49},"in_reply_to":"1f1a1f67_cbfeab04","updated":"2017-07-13 09:20:23.000000000","message":"Corrected check. Actual check should be \u003c\u003d (2^63 -1) as storage does not support uint64 and supports int64.","commit_id":"b11dd531d9264279dfebeeeb8bd89842b242676c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8fa04a5b21e40a4729809b4a6e995d861a7d6cce","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                             {}, switch[\u0027tenant_id\u0027]))"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    @staticmethod"},{"line_number":185,"context_line":"    def _switch(statistic, resource_id,"},{"line_number":186,"context_line":"                resource_meta, tenant_id):"},{"line_number":187,"context_line":"        return 1, resource_id, resource_meta, tenant_id"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_e571e2a9","line":185,"updated":"2017-07-18 16:51:21.000000000","message":"i don\u0027t think this meter exists. https://review.openstack.org/#/c/477883/11/setup.cfg","commit_id":"116951feb371dca4ec5a631238261e567d5e57d4"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"71556c1ba560616fb11aecff6a466f3ce60b2549","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                             {}, switch[\u0027tenant_id\u0027]))"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    @staticmethod"},{"line_number":185,"context_line":"    def _switch(statistic, resource_id,"},{"line_number":186,"context_line":"                resource_meta, tenant_id):"},{"line_number":187,"context_line":"        return 1, resource_id, resource_meta, tenant_id"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_8090dc96","line":185,"in_reply_to":"1f1a1f67_25311a5b","updated":"2017-07-18 17:20:37.000000000","message":"word.","commit_id":"116951feb371dca4ec5a631238261e567d5e57d4"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"a7c57767ff33263def9e5b6a9b2a22dbda740fe6","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                             {}, switch[\u0027tenant_id\u0027]))"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    @staticmethod"},{"line_number":185,"context_line":"    def _switch(statistic, resource_id,"},{"line_number":186,"context_line":"                resource_meta, tenant_id):"},{"line_number":187,"context_line":"        return 1, resource_id, resource_meta, tenant_id"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_25311a5b","line":185,"in_reply_to":"1f1a1f67_e571e2a9","updated":"2017-07-18 17:06:34.000000000","message":"Line 191 of setup.cfg has switch counter listed.","commit_id":"116951feb371dca4ec5a631238261e567d5e57d4"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8fa04a5b21e40a4729809b4a6e995d861a7d6cce","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                            resource_meta, tenant_id):"},{"line_number":267,"context_line":"        return OpenDaylightDriver._get_int_sample("},{"line_number":268,"context_line":"            \u0027packets_received_drop\u0027, statistic, resource_id,"},{"line_number":269,"context_line":"            resource_meta, tenant_id)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    @staticmethod"},{"line_number":272,"context_line":"    def _port_receive_errors(statistic, resource_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_25a11af9","line":269,"updated":"2017-07-18 16:51:21.000000000","message":"missing _port_transmit_drops","commit_id":"116951feb371dca4ec5a631238261e567d5e57d4"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"cfaa6b7c508afbb0f00f16e03cac59eb726abe46","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                            resource_meta, tenant_id):"},{"line_number":267,"context_line":"        return OpenDaylightDriver._get_int_sample("},{"line_number":268,"context_line":"            \u0027packets_received_drop\u0027, statistic, resource_id,"},{"line_number":269,"context_line":"            resource_meta, tenant_id)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    @staticmethod"},{"line_number":272,"context_line":"    def _port_receive_errors(statistic, resource_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_946c9d9c","line":269,"in_reply_to":"1f1a1f67_00cbaca4","updated":"2017-07-18 17:53:09.000000000","message":"The switch.port.tranmit.drops and similiar counters existed in ceilometer. We just added Gnocchi support. It is just that OpenDaylight v2 driver will not use them for now.","commit_id":"116951feb371dca4ec5a631238261e567d5e57d4"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"a7c57767ff33263def9e5b6a9b2a22dbda740fe6","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                            resource_meta, tenant_id):"},{"line_number":267,"context_line":"        return OpenDaylightDriver._get_int_sample("},{"line_number":268,"context_line":"            \u0027packets_received_drop\u0027, statistic, resource_id,"},{"line_number":269,"context_line":"            resource_meta, tenant_id)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    @staticmethod"},{"line_number":272,"context_line":"    def _port_receive_errors(statistic, resource_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_e50fa285","line":269,"in_reply_to":"1f1a1f67_25a11af9","updated":"2017-07-18 17:06:34.000000000","message":"As mentioned in the blueprint, this driver will support only counters mentioned in the blueprint for Pike release. The driver will be in future enhanced to support more counters.","commit_id":"116951feb371dca4ec5a631238261e567d5e57d4"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1ec7bdedc8420f85004c0f82e1eb3a79132f9683","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                            resource_meta, tenant_id):"},{"line_number":267,"context_line":"        return OpenDaylightDriver._get_int_sample("},{"line_number":268,"context_line":"            \u0027packets_received_drop\u0027, statistic, resource_id,"},{"line_number":269,"context_line":"            resource_meta, tenant_id)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    @staticmethod"},{"line_number":272,"context_line":"    def _port_receive_errors(statistic, resource_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_d72a17d9","line":269,"in_reply_to":"1f1a1f67_946c9d9c","updated":"2017-07-18 18:31:38.000000000","message":"right. but we added many port.* meters to ceilometer[1] but they don\u0027t seem to be usable looking at this patch. ie. nothing ever calls port.transmit.drops\n\n[1] https://review.openstack.org/#/c/477883/11/setup.cfg","commit_id":"116951feb371dca4ec5a631238261e567d5e57d4"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"71556c1ba560616fb11aecff6a466f3ce60b2549","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                            resource_meta, tenant_id):"},{"line_number":267,"context_line":"        return OpenDaylightDriver._get_int_sample("},{"line_number":268,"context_line":"            \u0027packets_received_drop\u0027, statistic, resource_id,"},{"line_number":269,"context_line":"            resource_meta, tenant_id)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    @staticmethod"},{"line_number":272,"context_line":"    def _port_receive_errors(statistic, resource_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_00cbaca4","line":269,"in_reply_to":"1f1a1f67_e50fa285","updated":"2017-07-18 17:20:37.000000000","message":"oh. i didn\u0027t read bp... so should we not have it in ceilometer than?","commit_id":"116951feb371dca4ec5a631238261e567d5e57d4"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8fa04a5b21e40a4729809b4a6e995d861a7d6cce","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        return OpenDaylightDriver._get_int_sample("},{"line_number":275,"context_line":"            \u0027packets_received_error\u0027, statistic,"},{"line_number":276,"context_line":"            resource_id, resource_meta, tenant_id)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    @staticmethod"},{"line_number":279,"context_line":"    def _iter_table(extractor, data):"},{"line_number":280,"context_line":"        for switch_statistic in data[\u0027switch\u0027][\u0027flow_capable_switches\u0027]:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_45ec1629","line":277,"updated":"2017-07-18 16:51:21.000000000","message":"mising transmit_errors, receive_frame_error, receive_overrun_error, receive_crc_error, collision_count","commit_id":"116951feb371dca4ec5a631238261e567d5e57d4"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"a7c57767ff33263def9e5b6a9b2a22dbda740fe6","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        return OpenDaylightDriver._get_int_sample("},{"line_number":275,"context_line":"            \u0027packets_received_error\u0027, statistic,"},{"line_number":276,"context_line":"            resource_id, resource_meta, tenant_id)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    @staticmethod"},{"line_number":279,"context_line":"    def _iter_table(extractor, data):"},{"line_number":280,"context_line":"        for switch_statistic in data[\u0027switch\u0027][\u0027flow_capable_switches\u0027]:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f1a1f67_45653645","line":277,"in_reply_to":"1f1a1f67_45ec1629","updated":"2017-07-18 17:06:34.000000000","message":"As mentioned in the blueprint, this driver will support only counters mentioned in the blueprint for Pike release. The driver will be in future enhanced to support more counters.\n\nNone of SDN counters were supported with Gnocchi. Hence added v1 version counter support with Gnocchi. Although v2 does not support it.","commit_id":"116951feb371dca4ec5a631238261e567d5e57d4"}],"networking_odl/tests/unit/ceilometer/network/statistics/opendaylight_v2/test_driver.py":[{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"963a06cff042d946f46b2cf0bf0f0cef57400431","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            self.assertEqual(expected[2], sample[2])  # check resource metadata"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class TestOpenDayLightDriverSpecial(_Base):"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    switch_data \u003d {\"flow_capable_switches\": []}"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_960141b2","line":67,"updated":"2017-07-06 07:46:22.000000000","message":"shouldn\u0027t this be named OpendaylightDriverInvalid ?","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"d10f38ee15bf3a4bacf2cde5a68f36bb7f9bb4d9","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            self.assertEqual(expected[2], sample[2])  # check resource metadata"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class TestOpenDayLightDriverSpecial(_Base):"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    switch_data \u003d {\"flow_capable_switches\": []}"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_0d2f05f7","line":67,"in_reply_to":"3f1d235d_960141b2","updated":"2017-07-10 07:31:21.000000000","message":"Done","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"963a06cff042d946f46b2cf0bf0f0cef57400431","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                \"packets_received_drop\": 0,"},{"line_number":273,"context_line":"                \"packets_received_error\": 0,"},{"line_number":274,"context_line":"                \"packets_sent\": 0,"},{"line_number":275,"context_line":"                \"port_id\": 3"},{"line_number":276,"context_line":"            }, {"},{"line_number":277,"context_line":"                \"bytes_received\": 9800,"},{"line_number":278,"context_line":"                \"bytes_sent\": 6540,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_3695cd33","line":275,"updated":"2017-07-06 07:46:22.000000000","message":"where is port_uuid sent by ODL here?  I think port_id here is the OFPort number on this switch.","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"},{"author":{"_account_id":25171,"name":"Deepthi V V","email":"deepthi.v.v@ericsson.com","username":"deepthivv88"},"change_message_id":"d10f38ee15bf3a4bacf2cde5a68f36bb7f9bb4d9","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                \"packets_received_drop\": 0,"},{"line_number":273,"context_line":"                \"packets_received_error\": 0,"},{"line_number":274,"context_line":"                \"packets_sent\": 0,"},{"line_number":275,"context_line":"                \"port_id\": 3"},{"line_number":276,"context_line":"            }, {"},{"line_number":277,"context_line":"                \"bytes_received\": 9800,"},{"line_number":278,"context_line":"                \"bytes_sent\": 6540,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_ed33a961","line":275,"in_reply_to":"3f1d235d_3695cd33","updated":"2017-07-10 07:31:21.000000000","message":"Added neutron port uuid test cases.","commit_id":"4a9d4a28f79ee87d904ff9a1b70226826a608b96"}]}
