)]}'
{"etc/tempest.conf.sample":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"982ed5724d2ba3a0a372d6b9e348d663882d787b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"#syslog_log_facility\u003dLOG_USER"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"[image]"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"#"},{"line_number":100,"context_line":"# Options defined in tempest.config"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"AAAATn%2F81T0%3D","line":97,"updated":"2013-12-19 19:19:41.000000000","message":"also please rearrange changes in this file to reduce the number of changed lines","commit_id":"ebf0b58dba883012ef65a06db61f95d42dae4407"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"e38d51a12a3b66166b5fbf058d980aee021affe3","unresolved":false,"context_lines":[{"line_number":94,"context_line":"#syslog_log_facility\u003dLOG_USER"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"[image]"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"#"},{"line_number":100,"context_line":"# Options defined in tempest.config"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"AAAATn%2F8yJY%3D","line":97,"in_reply_to":"AAAATn%2F81T0%3D","updated":"2013-12-20 11:08:51.000000000","message":"Done","commit_id":"ebf0b58dba883012ef65a06db61f95d42dae4407"}],"tempest/api/metering/__init__.py":[{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"46d77bbd7100f02c3d22974450ee6ce491d1d2a0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"__author__ \u003d \u0027npliashechnikov\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BkA0%3D","line":1,"updated":"2013-11-23 07:32:51.000000000","message":"AFAIK that\u0027s a common practice in OpenStack to avoid __author__.","commit_id":"3ff478d9eae1af8645dcdd3c82e6c3689ba1def6"}],"tempest/api/metering/test_ceilometer_api.py":[{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"46d77bbd7100f02c3d22974450ee6ce491d1d2a0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import random"},{"line_number":19,"context_line":"import StringIO"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import testtools"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BkAs%3D","line":19,"updated":"2013-11-23 07:32:51.000000000","message":"six should be used instead of direct usage of StringIO","commit_id":"3ff478d9eae1af8645dcdd3c82e6c3689ba1def6"}],"tempest/api/telemetry/test_ceilometer_api.py":[{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"f9df3fabed8c3d4d0d949b4ad9c488daa913567e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def test_list_resources(self):"},{"line_number":28,"context_line":"        \"\"\"List all resources monitored by Ceilometer.\"\"\""},{"line_number":29,"context_line":"        resp, _ \u003d self.ceilometer_client.list_resources()"},{"line_number":30,"context_line":"        self.assertIn(int(resp[\u0027status\u0027]), HTTP_SUCCESS)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F9AC4%3D","line":30,"updated":"2013-12-17 20:51:28.000000000","message":"The docs at http://api.openstack.org/api-ref-telemetry.html say this should be 200 so that should be checked.","commit_id":"0096d134cbe15e2cf94e168fc888f9261edc811c"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"011534c0339222b9feb5370f157d79295fe1b6b6","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def test_list_resources(self):"},{"line_number":28,"context_line":"        \"\"\"List all resources monitored by Ceilometer.\"\"\""},{"line_number":29,"context_line":"        resp, _ \u003d self.ceilometer_client.list_resources()"},{"line_number":30,"context_line":"        self.assertIn(int(resp[\u0027status\u0027]), HTTP_SUCCESS)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F8yJk%3D","line":30,"in_reply_to":"AAAATn%2F8%2BFY%3D","updated":"2013-12-20 11:09:04.000000000","message":"Done","commit_id":"0096d134cbe15e2cf94e168fc888f9261edc811c"},{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"3a7d9bd987029cd0b1f939e37e60bd1ec3c9d2c5","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def test_list_resources(self):"},{"line_number":28,"context_line":"        \"\"\"List all resources monitored by Ceilometer.\"\"\""},{"line_number":29,"context_line":"        resp, _ \u003d self.ceilometer_client.list_resources()"},{"line_number":30,"context_line":"        self.assertIn(int(resp[\u0027status\u0027]), HTTP_SUCCESS)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F88Qk%3D","line":30,"in_reply_to":"AAAATn%2F8%2BFY%3D","updated":"2013-12-18 15:05:51.000000000","message":"yup, HTTP_SUCCESS could be any positive http response status code (https://github.com/openstack/tempest/blob/master/tempest/test.py#L37), so, it should be checked with \u0027200\u0027 as specified in docs.","commit_id":"0096d134cbe15e2cf94e168fc888f9261edc811c"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"ba0cab9ce969db43b1094b8cfb8976fa6925fbc4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def test_list_resources(self):"},{"line_number":28,"context_line":"        \"\"\"List all resources monitored by Ceilometer.\"\"\""},{"line_number":29,"context_line":"        resp, _ \u003d self.ceilometer_client.list_resources()"},{"line_number":30,"context_line":"        self.assertIn(int(resp[\u0027status\u0027]), HTTP_SUCCESS)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F8%2BFY%3D","line":30,"in_reply_to":"AAAATn%2F9AC4%3D","updated":"2013-12-18 09:24:37.000000000","message":"do you mean that self.assertIn(int(resp[\u0027status\u0027]), HTTP_SUCCESS) is not enough? Should we check that response is equal to 200?","commit_id":"0096d134cbe15e2cf94e168fc888f9261edc811c"}],"tempest/clients.py":[{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"8ff6794e99d3208a2606ae2e7ebafeff8f639360","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            if client_args_v3_auth:"},{"line_number":294,"context_line":"                self.servers_client_v3_auth \u003d ServersClientXML("},{"line_number":295,"context_line":"                    *client_args_v3_auth)"},{"line_number":296,"context_line":"            if self.config.service_available.ceilometer:"},{"line_number":297,"context_line":"                self.telemetry_client \u003d TelemetryClientXML(*client_args)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        elif interface \u003d\u003d \u0027json\u0027:"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2FzUI%3D","line":296,"updated":"2014-01-08 10:10:50.000000000","message":"we shouldn\u0027t use self.config anymore. \n\nself.config.service_available.ceilometer -\u003e CONF.service_available.ceilometer","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"4bd3e0cc06c6dedc29bb559f187bf6eec3de9b6d","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            if client_args_v3_auth:"},{"line_number":294,"context_line":"                self.servers_client_v3_auth \u003d ServersClientXML("},{"line_number":295,"context_line":"                    *client_args_v3_auth)"},{"line_number":296,"context_line":"            if self.config.service_available.ceilometer:"},{"line_number":297,"context_line":"                self.telemetry_client \u003d TelemetryClientXML(*client_args)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        elif interface \u003d\u003d \u0027json\u0027:"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2Ftuo%3D","line":296,"in_reply_to":"AAAAUH%2F%2FzUI%3D","updated":"2014-01-09 09:42:03.000000000","message":"Done","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"8ff6794e99d3208a2606ae2e7ebafeff8f639360","unresolved":false,"context_lines":[{"line_number":353,"context_line":"            self.volumes_extension_client \u003d VolumeExtensionClientJSON("},{"line_number":354,"context_line":"                *client_args)"},{"line_number":355,"context_line":"            self.hosts_v3_client \u003d HostsV3ClientJSON(*client_args)"},{"line_number":356,"context_line":"            if self.config.service_available.ceilometer:"},{"line_number":357,"context_line":"                self.telemetry_client \u003d TelemetryClientJSON(*client_args)"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"            if client_args_v3_auth:"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2FzUA%3D","line":356,"updated":"2014-01-08 10:10:50.000000000","message":"ditto","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"4bd3e0cc06c6dedc29bb559f187bf6eec3de9b6d","unresolved":false,"context_lines":[{"line_number":353,"context_line":"            self.volumes_extension_client \u003d VolumeExtensionClientJSON("},{"line_number":354,"context_line":"                *client_args)"},{"line_number":355,"context_line":"            self.hosts_v3_client \u003d HostsV3ClientJSON(*client_args)"},{"line_number":356,"context_line":"            if self.config.service_available.ceilometer:"},{"line_number":357,"context_line":"                self.telemetry_client \u003d TelemetryClientJSON(*client_args)"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"            if client_args_v3_auth:"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2Ftug%3D","line":356,"in_reply_to":"AAAAUH%2F%2FzUA%3D","updated":"2014-01-09 09:42:03.000000000","message":"Done","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"}],"tempest/services/metering/__init__.py":[{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"46d77bbd7100f02c3d22974450ee6ce491d1d2a0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"__author__ \u003d \u0027nvr4d\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BkAk%3D","line":1,"updated":"2013-11-23 07:32:51.000000000","message":"ditto","commit_id":"3ff478d9eae1af8645dcdd3c82e6c3689ba1def6"}],"tempest/services/metering/json/__init__.py":[{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"46d77bbd7100f02c3d22974450ee6ce491d1d2a0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"__author__ \u003d \u0027nvr4d\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BkAg%3D","line":1,"updated":"2013-11-23 07:32:51.000000000","message":"ditto","commit_id":"3ff478d9eae1af8645dcdd3c82e6c3689ba1def6"}],"tempest/services/telemetry/json/ceilometer_client.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"938d0a621c4993e53eaf2dadee46672026ec4cf4","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            uri +\u003d \u0027?\u0027"},{"line_number":95,"context_line":"        if query:"},{"line_number":96,"context_line":"            for q in query:"},{"line_number":97,"context_line":"                uri +\u003d \u0027q.field\u003d%s\u0026q.op\u003d%s\u0026q.value\u003d%s\u0026\u0027 % q"},{"line_number":98,"context_line":"        if period:"},{"line_number":99,"context_line":"            uri +\u003d \u0027period\u003d%s\u0027 % period"},{"line_number":100,"context_line":"        elif query:"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAATn%2F8qj0%3D","line":97,"updated":"2013-12-23 14:23:12.000000000","message":"please us urlencode instead, way too much can go wrong with this - http://docs.python.org/2/library/urllib.html","commit_id":"864df4312cc8d63bb6955589c404c0a2ba997341"}],"tempest/services/telemetry/json/telemetry_client.py":[{"author":{"_account_id":7450,"name":"Yassine Lamgarchal","email":"yassine.lamgarchal@redhat.com","username":"yassine.lamgarchal"},"change_message_id":"21c88ee6955c41f03e6508420b275467166176da","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from tempest.common.rest_client import RestClient"},{"line_number":21,"context_line":"import tempest.services.telemetry.telemetry_client_base as client"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUH%2F%2F888%3D","line":19,"updated":"2014-01-06 09:43:11.000000000","message":"Could you please use tempest.openstack.common.jsonutils instead of json module directly.","commit_id":"cf934b21326ce590761ccfcd889f4d90c2a370aa"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"805f988e4b23d103ffc35b116f6afc6a842e46a6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from tempest.common.rest_client import RestClient"},{"line_number":21,"context_line":"import tempest.services.telemetry.telemetry_client_base as client"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAAUH%2F%2F8t0%3D","line":19,"in_reply_to":"AAAAUH%2F%2F888%3D","updated":"2014-01-06 11:02:37.000000000","message":"Done","commit_id":"cf934b21326ce590761ccfcd889f4d90c2a370aa"},{"author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"change_message_id":"11b638dcb07d7833548d226155d53f493aa6c9cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2F33U%3D","line":3,"updated":"2014-01-07 11:38:34.000000000","message":"2013 -\u003e 2014","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"4bd3e0cc06c6dedc29bb559f187bf6eec3de9b6d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2FtuY%3D","line":3,"in_reply_to":"AAAAUH%2F%2F33U%3D","updated":"2014-01-09 09:42:03.000000000","message":"Done","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"9f4774a23c6dd4cc18f6a76d274b5d29404c4f3f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        post_body \u003d {}"},{"line_number":37,"context_line":"        for key in kwargs.keys():"},{"line_number":38,"context_line":"            post_body[key] \u003d kwargs[key]"},{"line_number":39,"context_line":"        return self.post(uri, post_body, self.headers)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def add_sample(self, sample_list, meter_name, meter_unit, volume,"},{"line_number":42,"context_line":"                   sample_type, resource_id, **kwargs):"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2F8gg%3D","line":39,"updated":"2014-01-06 12:11:52.000000000","message":"self.headers unnecessary. same on L54","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"4bd3e0cc06c6dedc29bb559f187bf6eec3de9b6d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        post_body \u003d {}"},{"line_number":37,"context_line":"        for key in kwargs.keys():"},{"line_number":38,"context_line":"            post_body[key] \u003d kwargs[key]"},{"line_number":39,"context_line":"        return self.post(uri, post_body, self.headers)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def add_sample(self, sample_list, meter_name, meter_unit, volume,"},{"line_number":42,"context_line":"                   sample_type, resource_id, **kwargs):"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2FtuQ%3D","line":39,"in_reply_to":"AAAAUH%2F%2F6es%3D","updated":"2014-01-09 09:42:03.000000000","message":"Done","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"f1a31197a28a0d8ea8cc3500aad4002f473a61ff","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        post_body \u003d {}"},{"line_number":37,"context_line":"        for key in kwargs.keys():"},{"line_number":38,"context_line":"            post_body[key] \u003d kwargs[key]"},{"line_number":39,"context_line":"        return self.post(uri, post_body, self.headers)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def add_sample(self, sample_list, meter_name, meter_unit, volume,"},{"line_number":42,"context_line":"                   sample_type, resource_id, **kwargs):"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2F6cw%3D","line":39,"in_reply_to":"AAAAUH%2F%2F6es%3D","updated":"2014-01-06 21:16:34.000000000","message":"you\u0027re right. I thought the class inherits rest_client in some way.","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"5ca714c0a032430dea242cd7b13ebf3636724de9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        post_body \u003d {}"},{"line_number":37,"context_line":"        for key in kwargs.keys():"},{"line_number":38,"context_line":"            post_body[key] \u003d kwargs[key]"},{"line_number":39,"context_line":"        return self.post(uri, post_body, self.headers)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def add_sample(self, sample_list, meter_name, meter_unit, volume,"},{"line_number":42,"context_line":"                   sample_type, resource_id, **kwargs):"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2F6es%3D","line":39,"in_reply_to":"AAAAUH%2F%2F8gg%3D","updated":"2014-01-06 21:12:37.000000000","message":"It is more than unnecessary, it seems headers is not defined on self.","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"308c08e67458a68cef3030504b071d80287b68f0","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def serialize(self, body):"},{"line_number":33,"context_line":"        return json.dumps(body)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def create_alarm(self, **kwargs):"},{"line_number":36,"context_line":"        uri \u003d \"%s/alarms\" % self.uri_prefix"},{"line_number":37,"context_line":"        post_body \u003d {}"},{"line_number":38,"context_line":"        for key in kwargs.keys():"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAAUH%2F%2FHBw%3D","line":35,"updated":"2014-01-17 10:59:54.000000000","message":"I would prefer if you added some sort of validation to the kwargs before posting it as is. It seems too trusting to accept just any input and post it.\n\nAlso, if you want to copy the dict, which I\u0027m not sure is necessary, I\u0027d rather you used the built-in copy module:\nhttp://docs.python.org/2/library/copy.html","commit_id":"5c1d7e4b4e5b6803c4092c71043d4d066917f2b4"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"b0f4d59bbd72d6900f30c0ece8d9705ccb60bd9a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def serialize(self, body):"},{"line_number":33,"context_line":"        return json.dumps(body)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def create_alarm(self, **kwargs):"},{"line_number":36,"context_line":"        uri \u003d \"%s/alarms\" % self.uri_prefix"},{"line_number":37,"context_line":"        post_body \u003d {}"},{"line_number":38,"context_line":"        for key in kwargs.keys():"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAAUH%2F%2FF3U%3D","line":35,"in_reply_to":"AAAAUH%2F%2FG9E%3D","updated":"2014-01-18 19:34:49.000000000","message":"Nadya, fair enough. It works for me.","commit_id":"5c1d7e4b4e5b6803c4092c71043d4d066917f2b4"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"f64246c4dd3acabe31c87e62fb092e44ddacf3ad","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def serialize(self, body):"},{"line_number":33,"context_line":"        return json.dumps(body)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def create_alarm(self, **kwargs):"},{"line_number":36,"context_line":"        uri \u003d \"%s/alarms\" % self.uri_prefix"},{"line_number":37,"context_line":"        post_body \u003d {}"},{"line_number":38,"context_line":"        for key in kwargs.keys():"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAAUH%2F%2FG6M%3D","line":35,"in_reply_to":"AAAAUH%2F%2FHBw%3D","updated":"2014-01-17 11:19:57.000000000","message":"Done","commit_id":"5c1d7e4b4e5b6803c4092c71043d4d066917f2b4"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"aa5811b23ad9b5721090fd0d54ab67170440e1f5","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def serialize(self, body):"},{"line_number":33,"context_line":"        return json.dumps(body)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def create_alarm(self, **kwargs):"},{"line_number":36,"context_line":"        uri \u003d \"%s/alarms\" % self.uri_prefix"},{"line_number":37,"context_line":"        post_body \u003d {}"},{"line_number":38,"context_line":"        for key in kwargs.keys():"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAAUH%2F%2FG9E%3D","line":35,"in_reply_to":"AAAAUH%2F%2FHBw%3D","updated":"2014-01-17 11:13:31.000000000","message":"Joe, I do not think that we should add any validation here. Validation should be on Ceilometer\u0027s side. Actually this client is a part of test so we should allow pass any kwargs here to make possible to create negative tests","commit_id":"5c1d7e4b4e5b6803c4092c71043d4d066917f2b4"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"308c08e67458a68cef3030504b071d80287b68f0","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        sample \u003d {\"counter_name\": meter_name, \"counter_unit\": meter_unit,"},{"line_number":45,"context_line":"                  \"counter_volume\": volume, \"counter_type\": sample_type,"},{"line_number":46,"context_line":"                  \"resource_id\": resource_id}"},{"line_number":47,"context_line":"        for key in kwargs.keys():"},{"line_number":48,"context_line":"            sample[key] \u003d kwargs[key]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        sample_list.append(self.serialize(sample))"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAAUH%2F%2FHBg%3D","line":47,"updated":"2014-01-17 10:59:54.000000000","message":"You\u0027re uselessly creating a list here. Wouldn\u0027t be easier to iterate immediately on the kwargs dictionary, like this?\n\nfor key in kwargs:\n   ...","commit_id":"5c1d7e4b4e5b6803c4092c71043d4d066917f2b4"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"b0f4d59bbd72d6900f30c0ece8d9705ccb60bd9a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        sample \u003d {\"counter_name\": meter_name, \"counter_unit\": meter_unit,"},{"line_number":45,"context_line":"                  \"counter_volume\": volume, \"counter_type\": sample_type,"},{"line_number":46,"context_line":"                  \"resource_id\": resource_id}"},{"line_number":47,"context_line":"        for key in kwargs.keys():"},{"line_number":48,"context_line":"            sample[key] \u003d kwargs[key]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        sample_list.append(self.serialize(sample))"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAAUH%2F%2FF3Q%3D","line":47,"in_reply_to":"AAAAUH%2F%2FG6E%3D","updated":"2014-01-18 19:34:49.000000000","message":"I just realized that you could do this a lot simpler with:\n\nsample.update(kwargs).\n\nThat\u0027s a minor nitpick, no need to submit a new revision for it.","commit_id":"5c1d7e4b4e5b6803c4092c71043d4d066917f2b4"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"f64246c4dd3acabe31c87e62fb092e44ddacf3ad","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        sample \u003d {\"counter_name\": meter_name, \"counter_unit\": meter_unit,"},{"line_number":45,"context_line":"                  \"counter_volume\": volume, \"counter_type\": sample_type,"},{"line_number":46,"context_line":"                  \"resource_id\": resource_id}"},{"line_number":47,"context_line":"        for key in kwargs.keys():"},{"line_number":48,"context_line":"            sample[key] \u003d kwargs[key]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        sample_list.append(self.serialize(sample))"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAAUH%2F%2FG6E%3D","line":47,"in_reply_to":"AAAAUH%2F%2FHBg%3D","updated":"2014-01-17 11:19:57.000000000","message":"Done","commit_id":"5c1d7e4b4e5b6803c4092c71043d4d066917f2b4"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"81a113f427d774bfd579325276dc7f48a9799a89","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        sample \u003d {\"counter_name\": meter_name, \"counter_unit\": meter_unit,"},{"line_number":42,"context_line":"                  \"counter_volume\": volume, \"counter_type\": sample_type,"},{"line_number":43,"context_line":"                  \"resource_id\": resource_id}"},{"line_number":44,"context_line":"        for key in kwargs:"},{"line_number":45,"context_line":"            sample[key] \u003d kwargs[key]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        sample_list.append(self.serialize(sample))"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAAUH%2F%2FBSM%3D","line":44,"updated":"2014-01-18 19:27:53.000000000","message":"sample.update(kwargs)","commit_id":"5640ef43510f2ac0f38b8c622402c389fd9a535c"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"8bee172c033972d5e9eef67e22c2eb88ff00e265","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        sample \u003d {\"counter_name\": meter_name, \"counter_unit\": meter_unit,"},{"line_number":42,"context_line":"                  \"counter_volume\": volume, \"counter_type\": sample_type,"},{"line_number":43,"context_line":"                  \"resource_id\": resource_id}"},{"line_number":44,"context_line":"        for key in kwargs:"},{"line_number":45,"context_line":"            sample[key] \u003d kwargs[key]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        sample_list.append(self.serialize(sample))"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAAUH%2F%2FAqU%3D","line":44,"in_reply_to":"AAAAUH%2F%2FBSM%3D","updated":"2014-01-19 08:39:12.000000000","message":"Thank you for comment, I will make this change in the new patch with implemented post/put methods for xml client.","commit_id":"5640ef43510f2ac0f38b8c622402c389fd9a535c"}],"tempest/services/telemetry/telemetry_client_base.py":[{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"8ff6794e99d3208a2606ae2e7ebafeff8f639360","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        :return: Serialize body"},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def post(self, uri, body, headers\u003dNone):"},{"line_number":71,"context_line":"        headers \u003d headers or self.rest_client.headers"},{"line_number":72,"context_line":"        body \u003d self.serialize(body)"},{"line_number":73,"context_line":"        resp, body \u003d self.rest_client.post(uri, body, headers)"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2FzG8%3D","line":70,"updated":"2014-01-08 10:10:50.000000000","message":"IMO, parameter \u0027headers\u0027 could be deleted since the right header is  self.rest_client.headers.","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"4bd3e0cc06c6dedc29bb559f187bf6eec3de9b6d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        :return: Serialize body"},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def post(self, uri, body, headers\u003dNone):"},{"line_number":71,"context_line":"        headers \u003d headers or self.rest_client.headers"},{"line_number":72,"context_line":"        body \u003d self.serialize(body)"},{"line_number":73,"context_line":"        resp, body \u003d self.rest_client.post(uri, body, headers)"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAUH%2F%2FtuM%3D","line":70,"in_reply_to":"AAAAUH%2F%2FzG8%3D","updated":"2014-01-09 09:42:03.000000000","message":"Done","commit_id":"205efed4353ca08c2eae2dd3d8fbd2ca09736410"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"8f7bcf5ef7c16022e98201623574f2f45a3b89f1","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def post(self, uri, body):"},{"line_number":71,"context_line":"        body \u003d self.serialize(body)"},{"line_number":72,"context_line":"        resp, body \u003d self.rest_client.post(uri, body)"},{"line_number":73,"context_line":"        body \u003d self.deserialize(body)"},{"line_number":74,"context_line":"        return resp, body"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2FpvM%3D","line":72,"updated":"2014-01-10 03:10:27.000000000","message":"This call should be:\n\nself.rest_client.post(uri, body) -\u003e self.rest_client.post(uri, body, self.rest_client.headers)\n\nparameter headers is required for self.rest_client.post.\n\n $ grep -n \"def post\" tempest/common/rest_client.py \n 301:    def post(self, url, body, headers):","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"5246b61cca4654a0ac5bbef430f8c2e49f6b2fe5","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def post(self, uri, body):"},{"line_number":71,"context_line":"        body \u003d self.serialize(body)"},{"line_number":72,"context_line":"        resp, body \u003d self.rest_client.post(uri, body)"},{"line_number":73,"context_line":"        body \u003d self.deserialize(body)"},{"line_number":74,"context_line":"        return resp, body"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2Foz0%3D","line":72,"in_reply_to":"AAAAUH%2F%2Fo34%3D","updated":"2014-01-10 08:15:25.000000000","message":"posting rest_client\u0027s properties to rest_client\u0027s methods breaks encapsulation; so it is only suitable when this method contains some extra logic about headers. It might be better to introduce default value for headers in rest_client itself.","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"3977593677f2f8bf492f6803edd316e16c5d5355","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def post(self, uri, body):"},{"line_number":71,"context_line":"        body \u003d self.serialize(body)"},{"line_number":72,"context_line":"        resp, body \u003d self.rest_client.post(uri, body)"},{"line_number":73,"context_line":"        body \u003d self.deserialize(body)"},{"line_number":74,"context_line":"        return resp, body"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2FccY%3D","line":72,"in_reply_to":"AAAAUH%2F%2Fot4%3D","updated":"2014-01-13 21:01:48.000000000","message":"Done","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"66dcc0ce57114a3d815fe89e7bff9b563063a141","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def post(self, uri, body):"},{"line_number":71,"context_line":"        body \u003d self.serialize(body)"},{"line_number":72,"context_line":"        resp, body \u003d self.rest_client.post(uri, body)"},{"line_number":73,"context_line":"        body \u003d self.deserialize(body)"},{"line_number":74,"context_line":"        return resp, body"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2Fot4%3D","line":72,"in_reply_to":"AAAAUH%2F%2Foz0%3D","updated":"2014-01-10 08:35:57.000000000","message":"agree with enikanorov\u0027s opinion. but it maybe out of this patch\u0027s scope. How about this:\n In  __init__ function, get the headers:\n self.headers \u003d self.rest_client.headers\n in post function:\n self.rest_client.post(uri, body) -\u003e self.rest_client.post(uri, body, self.headers)","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"bb0993cd47fa73b35368ad558481eca3aa875b18","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def post(self, uri, body):"},{"line_number":71,"context_line":"        body \u003d self.serialize(body)"},{"line_number":72,"context_line":"        resp, body \u003d self.rest_client.post(uri, body)"},{"line_number":73,"context_line":"        body \u003d self.deserialize(body)"},{"line_number":74,"context_line":"        return resp, body"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2Fo34%3D","line":72,"in_reply_to":"AAAAUH%2F%2FpKU%3D","updated":"2014-01-10 07:55:28.000000000","message":"IMO, it don\u0027t need \"headers\u003dNone\". Because the headers is already defined in rest_client.  telemetry_client don\u0027t need to give \"headers\" by itself.","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"841725e07f42b4083cb65daf05566f25b2c6b542","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def post(self, uri, body):"},{"line_number":71,"context_line":"        body \u003d self.serialize(body)"},{"line_number":72,"context_line":"        resp, body \u003d self.rest_client.post(uri, body)"},{"line_number":73,"context_line":"        body \u003d self.deserialize(body)"},{"line_number":74,"context_line":"        return resp, body"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2FpKU%3D","line":72,"in_reply_to":"AAAAUH%2F%2FpvM%3D","updated":"2014-01-10 06:13:28.000000000","message":"It\u0027s better to define headers parameters for this method:\n def post(self, uri, body, headers\u003dNone):\n      headers \u003d headers or self.rest_client.headers\n      ...\n      self.rest_client.post(uri, body, headers)","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"8f7bcf5ef7c16022e98201623574f2f45a3b89f1","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        return resp, body"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def put(self, uri, body):"},{"line_number":77,"context_line":"        return self.rest_client.put(uri, body)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def get(self, uri):"},{"line_number":80,"context_line":"        resp, body \u003d self.rest_client.get(uri)"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2FpuI%3D","line":77,"updated":"2014-01-10 03:10:27.000000000","message":"same as post","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"3977593677f2f8bf492f6803edd316e16c5d5355","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        return resp, body"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def put(self, uri, body):"},{"line_number":77,"context_line":"        return self.rest_client.put(uri, body)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def get(self, uri):"},{"line_number":80,"context_line":"        resp, body \u003d self.rest_client.get(uri)"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2FccU%3D","line":77,"in_reply_to":"AAAAUH%2F%2FpuI%3D","updated":"2014-01-13 21:01:48.000000000","message":"Done","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"8f7bcf5ef7c16022e98201623574f2f45a3b89f1","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        return self.rest_client.put(uri, body)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def get(self, uri):"},{"line_number":80,"context_line":"        resp, body \u003d self.rest_client.get(uri)"},{"line_number":81,"context_line":"        body \u003d self.deserialize(body)"},{"line_number":82,"context_line":"        return resp, body"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2Fpto%3D","line":80,"updated":"2014-01-10 03:10:27.000000000","message":"headers is not required parameter in self.rest_client.get, but here must give headers as xml client need specify headers. otherwise it used json header by default.","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"3977593677f2f8bf492f6803edd316e16c5d5355","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        return self.rest_client.put(uri, body)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def get(self, uri):"},{"line_number":80,"context_line":"        resp, body \u003d self.rest_client.get(uri)"},{"line_number":81,"context_line":"        body \u003d self.deserialize(body)"},{"line_number":82,"context_line":"        return resp, body"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2FcSQ%3D","line":80,"in_reply_to":"AAAAUH%2F%2Fpto%3D","updated":"2014-01-13 21:01:48.000000000","message":"as all tests are inherited from TelemetryClientJSON or TelemetryClientXML classes, in headers necessary type is set.","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"8f7bcf5ef7c16022e98201623574f2f45a3b89f1","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        return resp, body"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def delete(self, uri):"},{"line_number":85,"context_line":"        resp, body \u003d self.rest_client.delete(uri)"},{"line_number":86,"context_line":"        if body:"},{"line_number":87,"context_line":"            body \u003d self.deserialize(body)"},{"line_number":88,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2FptY%3D","line":85,"updated":"2014-01-10 03:10:27.000000000","message":"same as \u0027get\u0027","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"3977593677f2f8bf492f6803edd316e16c5d5355","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        return resp, body"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def delete(self, uri):"},{"line_number":85,"context_line":"        resp, body \u003d self.rest_client.delete(uri)"},{"line_number":86,"context_line":"        if body:"},{"line_number":87,"context_line":"            body \u003d self.deserialize(body)"},{"line_number":88,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2FcSA%3D","line":85,"in_reply_to":"AAAAUH%2F%2FptY%3D","updated":"2014-01-13 21:01:48.000000000","message":"same as \u0027get\u0027 :)","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"}],"tempest/services/telemetry/xml/telemetry_client.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"91e1644e87c36f09db153567b6819d806219a5a3","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import tempest.services.telemetry.telemetry_client_base as client"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class TelemetryClientXML(client.TelemetryClientBase):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def get_rest_client(self, config, username,"},{"line_number":29,"context_line":"                        password, auth_url, tenant_name\u003dNone):"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2FpHM%3D","line":26,"updated":"2014-01-10 06:32:54.000000000","message":"Why there are not create_alarm(), add_sample() and create_sample() in this xml client?\n\nThe json client contains them.","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"3977593677f2f8bf492f6803edd316e16c5d5355","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import tempest.services.telemetry.telemetry_client_base as client"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class TelemetryClientXML(client.TelemetryClientBase):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def get_rest_client(self, config, username,"},{"line_number":29,"context_line":"                        password, auth_url, tenant_name\u003dNone):"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F%2Fccs%3D","line":26,"in_reply_to":"AAAAUH%2F%2FpHM%3D","updated":"2014-01-13 21:01:48.000000000","message":"Post and put methods will be added after merge of this patch set.","commit_id":"527bb24dde836cce10ed21464fb7c8cd5cd040bd"}]}
