)]}'
{"doc/source/microversion_testing.rst":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"9a4a240daca6608d93bb0fbfb689441ea7b900c9","unresolved":false,"context_lines":[{"line_number":352,"context_line":""},{"line_number":353,"context_line":"  * `2.41`_\r"},{"line_number":354,"context_line":"\r"},{"line_number":355,"context_line":"  .. _2.41: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id37\r"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"  * `2.42`_"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_ceb6c0da","line":355,"updated":"2018-08-07 08:53:18.000000000","message":"It looks like these line feed codes are \u0027CRLF\u0027. Can you check your editors setting?","commit_id":"8e5743ca18c19fb83be82e5ddab905d698954910"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"153196115375372859ffdff25824217e31969076","unresolved":false,"context_lines":[{"line_number":352,"context_line":""},{"line_number":353,"context_line":"  * `2.41`_\r"},{"line_number":354,"context_line":"\r"},{"line_number":355,"context_line":"  .. _2.41: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id37\r"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"  * `2.42`_"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f79a3b5_0e511837","line":355,"in_reply_to":"3f79a3b5_ceb6c0da","updated":"2018-08-07 09:08:12.000000000","message":"Oh yes, I used an editor developed by my colleague, I should have used vi:)\nFixed.","commit_id":"8e5743ca18c19fb83be82e5ddab905d698954910"}],"tempest/api/compute/admin/test_aggregates.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b926d918df47723b211b50dca7e1dfd8c39cafe1","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @decorators.idempotent_id(\u0027fdf24d9e-8afa-4700-b6aa-9c498351504f\u0027)"},{"line_number":238,"context_line":"    def test_aggregate_add_host_get_details(self):"},{"line_number":239,"context_line":"        # Add a host to the given aggregate and get details."},{"line_number":240,"context_line":"        self.useFixture(fixtures.LockFixture(\u0027availability_zone\u0027))"},{"line_number":241,"context_line":"        aggregate_name \u003d data_utils.rand_name(self.aggregate_name_prefix)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_250e5c3b","line":238,"updated":"2018-08-08 02:51:27.000000000","message":"Seems like we have all the resp bodies getting called except update_aggregate so we can check the response schema against that.","commit_id":"dabba432f7a01f30cb72da2a7b93762ca2805640"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"61af707a7f182c82e9a192e292669f1e7872a662","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @decorators.idempotent_id(\u0027fdf24d9e-8afa-4700-b6aa-9c498351504f\u0027)"},{"line_number":238,"context_line":"    def test_aggregate_add_host_get_details(self):"},{"line_number":239,"context_line":"        # Add a host to the given aggregate and get details."},{"line_number":240,"context_line":"        self.useFixture(fixtures.LockFixture(\u0027availability_zone\u0027))"},{"line_number":241,"context_line":"        aggregate_name \u003d data_utils.rand_name(self.aggregate_name_prefix)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_b0286886","line":238,"in_reply_to":"3f79a3b5_250e5c3b","updated":"2018-08-08 02:53:36.000000000","message":"I meant: Looks like you\u0027ve called all the APIs except update_aggregate, so that one is currently missing automatic schema validation for the updated microversion resp body.","commit_id":"dabba432f7a01f30cb72da2a7b93762ca2805640"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0c317e0171b71058187750b06083c70b872395b1","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @decorators.idempotent_id(\u0027fdf24d9e-8afa-4700-b6aa-9c498351504f\u0027)"},{"line_number":238,"context_line":"    def test_aggregate_add_host_get_details(self):"},{"line_number":239,"context_line":"        # Add a host to the given aggregate and get details."},{"line_number":240,"context_line":"        self.useFixture(fixtures.LockFixture(\u0027availability_zone\u0027))"},{"line_number":241,"context_line":"        aggregate_name \u003d data_utils.rand_name(self.aggregate_name_prefix)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_707090a6","line":238,"in_reply_to":"3f79a3b5_b0286886","updated":"2018-08-08 02:59:55.000000000","message":"+1 to add update call also","commit_id":"dabba432f7a01f30cb72da2a7b93762ca2805640"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0c317e0171b71058187750b06083c70b872395b1","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        aggregate \u003d self._create_test_aggregate(name\u003daggregate_name)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        self.client.add_host(aggregate[\u0027id\u0027], host\u003dself.host)"},{"line_number":245,"context_line":"        self.addCleanup(self.client.remove_host, aggregate[\u0027id\u0027],"},{"line_number":246,"context_line":"                        host\u003dself.host)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        body \u003d self.client.show_aggregate(aggregate[\u0027id\u0027])[\u0027aggregate\u0027]"},{"line_number":249,"context_line":"        self.assertEqual(aggregate_name, body[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_b07628a4","line":246,"range":{"start_line":245,"start_character":8,"end_line":246,"end_character":39},"updated":"2018-08-08 02:59:55.000000000","message":"let\u0027s remove it also explicitly to catch the error in tests itself.","commit_id":"dabba432f7a01f30cb72da2a7b93762ca2805640"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b926d918df47723b211b50dca7e1dfd8c39cafe1","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                        host\u003dself.host)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        body \u003d self.client.show_aggregate(aggregate[\u0027id\u0027])[\u0027aggregate\u0027]"},{"line_number":249,"context_line":"        self.assertEqual(aggregate_name, body[\u0027name\u0027])"},{"line_number":250,"context_line":"        self.assertIsNone(body[\u0027availability_zone\u0027])"},{"line_number":251,"context_line":"        self.assertIn(self.host, body[\u0027hosts\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_b0ff0800","line":251,"range":{"start_line":249,"start_character":0,"end_line":251,"end_character":47},"updated":"2018-08-08 02:51:27.000000000","message":"nit: We already do this validation on L201-203 which is in a class without a min_microversion/max_microversion so it will also do the same validation for 2.41+. So I think we can drop this.","commit_id":"dabba432f7a01f30cb72da2a7b93762ca2805640"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0c317e0171b71058187750b06083c70b872395b1","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                        host\u003dself.host)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        body \u003d self.client.show_aggregate(aggregate[\u0027id\u0027])[\u0027aggregate\u0027]"},{"line_number":249,"context_line":"        self.assertEqual(aggregate_name, body[\u0027name\u0027])"},{"line_number":250,"context_line":"        self.assertIsNone(body[\u0027availability_zone\u0027])"},{"line_number":251,"context_line":"        self.assertIn(self.host, body[\u0027hosts\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_1046fc50","line":251,"range":{"start_line":249,"start_character":0,"end_line":251,"end_character":47},"in_reply_to":"3f79a3b5_b0ff0800","updated":"2018-08-08 02:59:55.000000000","message":"+1, we do not need to check these here in favor of schema checks these.","commit_id":"dabba432f7a01f30cb72da2a7b93762ca2805640"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"83d158328fb77f2b16b2106759ef18383e2f9e81","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @decorators.idempotent_id(\u0027fdf24d9e-8afa-4700-b6aa-9c498351504f\u0027)"},{"line_number":238,"context_line":"    def test_aggregate_add_host_get_details(self):"},{"line_number":239,"context_line":"        # Update and add a host to the given aggregate and get details."},{"line_number":240,"context_line":"        self.useFixture(fixtures.LockFixture(\u0027availability_zone\u0027))"},{"line_number":241,"context_line":"        aggregate \u003d self._create_test_aggregate()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_7f9b66c8","line":238,"range":{"start_line":238,"start_character":8,"end_line":238,"end_character":43},"updated":"2018-08-09 01:32:15.000000000","message":"nit: test_create_update_show_aggregate_add_remove_host would be more informative","commit_id":"6a67b9bc04021b73a8f1907cedbb366b715605a3"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"dbc86bea83b28d49c20e4726872658fa9f5a8c9c","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @decorators.idempotent_id(\u0027fdf24d9e-8afa-4700-b6aa-9c498351504f\u0027)"},{"line_number":238,"context_line":"    def test_aggregate_add_host_get_details(self):"},{"line_number":239,"context_line":"        # Update and add a host to the given aggregate and get details."},{"line_number":240,"context_line":"        self.useFixture(fixtures.LockFixture(\u0027availability_zone\u0027))"},{"line_number":241,"context_line":"        aggregate \u003d self._create_test_aggregate()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_16748d98","line":238,"range":{"start_line":238,"start_character":8,"end_line":238,"end_character":43},"in_reply_to":"3f79a3b5_7f9b66c8","updated":"2018-08-09 13:59:20.000000000","message":"Done","commit_id":"6a67b9bc04021b73a8f1907cedbb366b715605a3"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"83d158328fb77f2b16b2106759ef18383e2f9e81","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    @decorators.idempotent_id(\u0027fdf24d9e-8afa-4700-b6aa-9c498351504f\u0027)"},{"line_number":238,"context_line":"    def test_aggregate_add_host_get_details(self):"},{"line_number":239,"context_line":"        # Update and add a host to the given aggregate and get details."},{"line_number":240,"context_line":"        self.useFixture(fixtures.LockFixture(\u0027availability_zone\u0027))"},{"line_number":241,"context_line":"        aggregate \u003d self._create_test_aggregate()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        new_aggregate_name \u003d data_utils.rand_name(self.aggregate_name_prefix)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_1faa72d1","line":240,"updated":"2018-08-09 01:32:15.000000000","message":"Comment saying this is just to check schema response body would be useful so people don\u0027t get confused why there are no assertions here","commit_id":"6a67b9bc04021b73a8f1907cedbb366b715605a3"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"dbc86bea83b28d49c20e4726872658fa9f5a8c9c","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    @decorators.idempotent_id(\u0027fdf24d9e-8afa-4700-b6aa-9c498351504f\u0027)"},{"line_number":238,"context_line":"    def test_aggregate_add_host_get_details(self):"},{"line_number":239,"context_line":"        # Update and add a host to the given aggregate and get details."},{"line_number":240,"context_line":"        self.useFixture(fixtures.LockFixture(\u0027availability_zone\u0027))"},{"line_number":241,"context_line":"        aggregate \u003d self._create_test_aggregate()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        new_aggregate_name \u003d data_utils.rand_name(self.aggregate_name_prefix)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_b66a79b0","line":240,"in_reply_to":"3f79a3b5_1faa72d1","updated":"2018-08-09 13:59:20.000000000","message":"Done","commit_id":"6a67b9bc04021b73a8f1907cedbb366b715605a3"}],"tempest/lib/api_schema/response/compute/v2_41/aggregates.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"f86c7d4ab63310bab8571ba1ac0aa7d3236405ea","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 NEC Corporation.  All rights reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_12d707f0","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2018-08-06 15:53:32.000000000","message":"nit: Should fix this","commit_id":"283363f41877b3516258f0035d3fbae540342bf5"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"51b3a45ca2fd957e9759ced191f162e31cb79f81","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 NEC Corporation.  All rights reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_df83d055","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"3f79a3b5_12d707f0","updated":"2018-08-07 01:55:25.000000000","message":"Done","commit_id":"283363f41877b3516258f0035d3fbae540342bf5"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"f86c7d4ab63310bab8571ba1ac0aa7d3236405ea","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# \u0027uuid\u0027 of an aggregate is returned in microversion 2.41"},{"line_number":20,"context_line":"aggregate_for_create \u003d copy.deepcopy(aggregates.aggregate_for_create)"},{"line_number":21,"context_line":"aggregate_for_create[\u0027properties\u0027].update({\u0027uuid\u0027: {\u0027type\u0027: \u0027string\u0027}})"},{"line_number":22,"context_line":"aggregate_for_create[\u0027required\u0027].append(\u0027uuid\u0027)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_523b3f37","line":21,"range":{"start_line":21,"start_character":52,"end_line":21,"end_character":69},"updated":"2018-08-06 15:53:32.000000000","message":"Should this be:\n\n   {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027uuid\u0027}\n\nExample: http://git.openstack.org/cgit/openstack/tempest/tree/tempest/lib/api_schema/response/compute/v2_1/interfaces.py#n28","commit_id":"283363f41877b3516258f0035d3fbae540342bf5"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"51b3a45ca2fd957e9759ced191f162e31cb79f81","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# \u0027uuid\u0027 of an aggregate is returned in microversion 2.41"},{"line_number":20,"context_line":"aggregate_for_create \u003d copy.deepcopy(aggregates.aggregate_for_create)"},{"line_number":21,"context_line":"aggregate_for_create[\u0027properties\u0027].update({\u0027uuid\u0027: {\u0027type\u0027: \u0027string\u0027}})"},{"line_number":22,"context_line":"aggregate_for_create[\u0027required\u0027].append(\u0027uuid\u0027)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_ff880c72","line":21,"range":{"start_line":21,"start_character":52,"end_line":21,"end_character":69},"in_reply_to":"3f79a3b5_523b3f37","updated":"2018-08-07 01:55:25.000000000","message":"yeah, better","commit_id":"283363f41877b3516258f0035d3fbae540342bf5"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b926d918df47723b211b50dca7e1dfd8c39cafe1","unresolved":false,"context_lines":[{"line_number":41,"context_line":"update_aggregate[\u0027response_body\u0027][\u0027properties\u0027].update("},{"line_number":42,"context_line":"    {\u0027aggregate\u0027: common_aggregate_info})"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"delete_aggregate \u003d copy.deepcopy(aggregates.delete_aggregate)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"create_aggregate \u003d copy.deepcopy(aggregates.create_aggregate)"},{"line_number":47,"context_line":"create_aggregate[\u0027response_body\u0027][\u0027properties\u0027].update("}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_2525fcc2","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":61},"updated":"2018-08-08 02:51:27.000000000","message":"Should we add a comment above this one saying this hasn\u0027t been updated since v2.1? Looks like rest are updated though.","commit_id":"dabba432f7a01f30cb72da2a7b93762ca2805640"}]}
