)]}'
{"tempest/api/metering/object_storage/test_object_storage.py":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                       delete_container(self.current_container_name)"},{"line_number":53,"context_line":"        self.assertIn(int(resp[\u0027status\u0027]), HTTP_SUCCESS)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _get_last_meters(self, tenant_id, meter):"},{"line_number":56,"context_line":"        _, body \u003d self.metering_client.get_meters(meter, [])"},{"line_number":57,"context_line":"        filtered_list \u003d filter(lambda p: p[\"resource_id\"] \u003d\u003d tenant_id, body)"},{"line_number":58,"context_line":"        return sorted(filtered_list, key\u003dlambda k: k[\"timestamp\"])[-1]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8xE%3D","line":55,"updated":"2013-09-16 18:07:50.000000000","message":"Please add a docstring. Also, this seems to return only one value, so it should be called _get_last_meter().","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":7450,"name":"Yassine Lamgarchal","email":"yassine.lamgarchal@redhat.com","username":"yassine.lamgarchal"},"change_message_id":"beacb3b3a2e8b0d40d4569bca8a1e2b96d03d6af","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                       delete_container(self.current_container_name)"},{"line_number":53,"context_line":"        self.assertIn(int(resp[\u0027status\u0027]), HTTP_SUCCESS)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _get_last_meters(self, tenant_id, meter):"},{"line_number":56,"context_line":"        _, body \u003d self.metering_client.get_meters(meter, [])"},{"line_number":57,"context_line":"        filtered_list \u003d filter(lambda p: p[\"resource_id\"] \u003d\u003d tenant_id, body)"},{"line_number":58,"context_line":"        return sorted(filtered_list, key\u003dlambda k: k[\"timestamp\"])[-1]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F6rk%3D","line":55,"in_reply_to":"AAAAS3%2F%2F8xE%3D","updated":"2013-09-17 09:18:27.000000000","message":"Done","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        self.assertIn(int(resp[\u0027status\u0027]), HTTP_SUCCESS)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _get_last_meters(self, tenant_id, meter):"},{"line_number":56,"context_line":"        _, body \u003d self.metering_client.get_meters(meter, [])"},{"line_number":57,"context_line":"        filtered_list \u003d filter(lambda p: p[\"resource_id\"] \u003d\u003d tenant_id, body)"},{"line_number":58,"context_line":"        return sorted(filtered_list, key\u003dlambda k: k[\"timestamp\"])[-1]"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8xU%3D","line":56,"updated":"2013-09-16 18:07:50.000000000","message":"Just use get_meters(meter), the empty list is the default value for the second parameter.","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":7450,"name":"Yassine Lamgarchal","email":"yassine.lamgarchal@redhat.com","username":"yassine.lamgarchal"},"change_message_id":"beacb3b3a2e8b0d40d4569bca8a1e2b96d03d6af","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        self.assertIn(int(resp[\u0027status\u0027]), HTTP_SUCCESS)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _get_last_meters(self, tenant_id, meter):"},{"line_number":56,"context_line":"        _, body \u003d self.metering_client.get_meters(meter, [])"},{"line_number":57,"context_line":"        filtered_list \u003d filter(lambda p: p[\"resource_id\"] \u003d\u003d tenant_id, body)"},{"line_number":58,"context_line":"        return sorted(filtered_list, key\u003dlambda k: k[\"timestamp\"])[-1]"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F6pE%3D","line":56,"in_reply_to":"AAAAS3%2F%2F8xU%3D","updated":"2013-09-17 09:18:27.000000000","message":"Done","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _get_last_meters(self, tenant_id, meter):"},{"line_number":56,"context_line":"        _, body \u003d self.metering_client.get_meters(meter, [])"},{"line_number":57,"context_line":"        filtered_list \u003d filter(lambda p: p[\"resource_id\"] \u003d\u003d tenant_id, body)"},{"line_number":58,"context_line":"        return sorted(filtered_list, key\u003dlambda k: k[\"timestamp\"])[-1]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def _poll_until_expected_value(self, expected_value, tenant_id, meter):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8xM%3D","line":57,"updated":"2013-09-16 18:07:50.000000000","message":"Can\u0027t you specify the tenant_id in get_meters() ?","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":7450,"name":"Yassine Lamgarchal","email":"yassine.lamgarchal@redhat.com","username":"yassine.lamgarchal"},"change_message_id":"beacb3b3a2e8b0d40d4569bca8a1e2b96d03d6af","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _get_last_meters(self, tenant_id, meter):"},{"line_number":56,"context_line":"        _, body \u003d self.metering_client.get_meters(meter, [])"},{"line_number":57,"context_line":"        filtered_list \u003d filter(lambda p: p[\"resource_id\"] \u003d\u003d tenant_id, body)"},{"line_number":58,"context_line":"        return sorted(filtered_list, key\u003dlambda k: k[\"timestamp\"])[-1]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def _poll_until_expected_value(self, expected_value, tenant_id, meter):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F6o8%3D","line":57,"in_reply_to":"AAAAS3%2F%2F8xM%3D","updated":"2013-09-17 09:18:27.000000000","message":"Done","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        last_meter \u003d None"},{"line_number":65,"context_line":"        for _ in xrange(self.TIMEOUT_POLL):"},{"line_number":66,"context_line":"            last_meter \u003d self._get_last_meters(tenant_id, meter)"},{"line_number":67,"context_line":"            if expected_value \u003d\u003d last_meter[\"counter_volume\"]:"},{"line_number":68,"context_line":"                break"},{"line_number":69,"context_line":"            sleep(2)"},{"line_number":70,"context_line":"        return (expected_value \u003d\u003d last_meter)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8w8%3D","line":67,"updated":"2013-09-16 18:07:50.000000000","message":"Nitpicking, but I\u0027d write it the other way around:\n\nlast_meter[\"counter_volume\"] \u003d\u003d expected_value","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":7450,"name":"Yassine Lamgarchal","email":"yassine.lamgarchal@redhat.com","username":"yassine.lamgarchal"},"change_message_id":"beacb3b3a2e8b0d40d4569bca8a1e2b96d03d6af","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        last_meter \u003d None"},{"line_number":65,"context_line":"        for _ in xrange(self.TIMEOUT_POLL):"},{"line_number":66,"context_line":"            last_meter \u003d self._get_last_meters(tenant_id, meter)"},{"line_number":67,"context_line":"            if expected_value \u003d\u003d last_meter[\"counter_volume\"]:"},{"line_number":68,"context_line":"                break"},{"line_number":69,"context_line":"            sleep(2)"},{"line_number":70,"context_line":"        return (expected_value \u003d\u003d last_meter)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F6o0%3D","line":67,"in_reply_to":"AAAAS3%2F%2F8w8%3D","updated":"2013-09-17 09:18:27.000000000","message":"Done","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            if expected_value \u003d\u003d last_meter[\"counter_volume\"]:"},{"line_number":68,"context_line":"                break"},{"line_number":69,"context_line":"            sleep(2)"},{"line_number":70,"context_line":"        return (expected_value \u003d\u003d last_meter)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":73,"context_line":"    def test_storage_objects(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8w4%3D","line":70,"updated":"2013-09-16 18:07:50.000000000","message":"Same here.","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":7450,"name":"Yassine Lamgarchal","email":"yassine.lamgarchal@redhat.com","username":"yassine.lamgarchal"},"change_message_id":"beacb3b3a2e8b0d40d4569bca8a1e2b96d03d6af","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            if expected_value \u003d\u003d last_meter[\"counter_volume\"]:"},{"line_number":68,"context_line":"                break"},{"line_number":69,"context_line":"            sleep(2)"},{"line_number":70,"context_line":"        return (expected_value \u003d\u003d last_meter)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":73,"context_line":"    def test_storage_objects(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F6ow%3D","line":70,"in_reply_to":"AAAAS3%2F%2F8w4%3D","updated":"2013-09-17 09:18:27.000000000","message":"Done","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":"        data \u003d arbitrary_string()"},{"line_number":78,"context_line":"        resp, _ \u003d self.object_client.create_object(self.current_container_name,"},{"line_number":79,"context_line":"                                                   \"CeiloTestObjectName\","},{"line_number":80,"context_line":"                                                   data)"},{"line_number":81,"context_line":"        self.assertIn(resp[\u0027status\u0027], HTTP_SUCCESS)"},{"line_number":82,"context_line":"        last_meter \u003d self._get_last_meters(self.tenant_id, \"storage.objects\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8ww%3D","line":79,"updated":"2013-09-16 18:07:50.000000000","message":"Use \"Ceilometer\" rather than \"Ceilo\". Don\u0027t be so familiar.","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.assertIn(resp[\u0027status\u0027], HTTP_SUCCESS)"},{"line_number":82,"context_line":"        last_meter \u003d self._get_last_meters(self.tenant_id, \"storage.objects\")"},{"line_number":83,"context_line":"        initial_value \u003d last_meter[\"counter_volume\"]"},{"line_number":84,"context_line":"        expected_value \u003d float(initial_value) + 2.0  # 2.0 \u003d current con"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        result \u003d self._poll_until_expected_value(expected_value,"},{"line_number":87,"context_line":"                                                 self.tenant_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8wk%3D","line":84,"updated":"2013-09-16 18:07:50.000000000","message":"I don\u0027t get the comment. You should probably write an English sentence here.","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        result \u003d self._poll_until_expected_value(expected_value,"},{"line_number":87,"context_line":"                                                 self.tenant_id,"},{"line_number":88,"context_line":"                                                 \"storage.objects\")"},{"line_number":89,"context_line":"        self.assertTrue(result)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":92,"context_line":"    def test_storage_objects_size(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8wc%3D","line":89,"updated":"2013-09-16 18:07:50.000000000","message":"Maybe you could avoid using an intermediate variable here.","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        result \u003d self._poll_until_expected_value(expected_value,"},{"line_number":107,"context_line":"                                                 self.tenant_id,"},{"line_number":108,"context_line":"                                                 \"storage.objects.size\")"},{"line_number":109,"context_line":"        self.assertTrue(result)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":112,"context_line":"    def test_storage_objects_containers(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8wY%3D","line":109,"updated":"2013-09-16 18:07:50.000000000","message":"Same, is \"result\" really needed ?","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        _, body \u003d self.container_client.\\"},{"line_number":181,"context_line":"                       list_container_contents(self.current_container_name)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        for _ in range(self.TIMEOUT_POLL):"},{"line_number":184,"context_line":"            if len(body) \u003d\u003d expected_value:"},{"line_number":185,"context_line":"                break"},{"line_number":186,"context_line":"            sleep(2)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8v0%3D","line":183,"updated":"2013-09-16 18:07:50.000000000","message":"This is weird. You execute the content of the loop TIMEOUT_POLL times, but TIMEOUT_POLL is expressed in seconds.","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":7450,"name":"Yassine Lamgarchal","email":"yassine.lamgarchal@redhat.com","username":"yassine.lamgarchal"},"change_message_id":"beacb3b3a2e8b0d40d4569bca8a1e2b96d03d6af","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        _, body \u003d self.container_client.\\"},{"line_number":181,"context_line":"                       list_container_contents(self.current_container_name)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        for _ in range(self.TIMEOUT_POLL):"},{"line_number":184,"context_line":"            if len(body) \u003d\u003d expected_value:"},{"line_number":185,"context_line":"                break"},{"line_number":186,"context_line":"            sleep(2)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F6lU%3D","line":183,"in_reply_to":"AAAAS3%2F%2F8v0%3D","updated":"2013-09-17 09:18:27.000000000","message":"Done","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fbed450a06f12e4672e3230dd2991e59a14c9234","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                break"},{"line_number":186,"context_line":"            sleep(2)"},{"line_number":187,"context_line":"            _, body \u003d self.metering_client.get_meters(\"storage.api.request\","},{"line_number":188,"context_line":"                                                      [])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F8yA%3D","line":188,"updated":"2013-09-16 18:07:50.000000000","message":"You should add the XML test here.","commit_id":"71815fcf18f378505e7abcb4bfb38c6bae031199"}]}
