)]}'
{"nova/tests/functional/wsgi/test_services.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5f6a5e478fb3d1021c8d94e01eb6977356462c28","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        self.start_service(\u0027scheduler\u0027)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        # Create our single compute service."},{"line_number":66,"context_line":"        fake.set_nodes([\u0027host1\u0027])"},{"line_number":67,"context_line":"        self.addCleanup(fake.restore_nodes)"},{"line_number":68,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_compute_service_delete_ensure_related_cleanup(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_c48aaa62","line":67,"range":{"start_line":66,"start_character":8,"end_line":67,"end_character":43},"updated":"2018-04-11 20:19:15.000000000","message":"I can remove this, or else need to pass host\u003d\u0027host1\u0027 to start_service.","commit_id":"fa2dbf49c69dd8cdd593f692b3e6873250415766"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5f6a5e478fb3d1021c8d94e01eb6977356462c28","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_compute_service_delete_ensure_related_cleanup(self):"},{"line_number":71,"context_line":"        \"\"\"Tests deleting a compute service and the related cleanup associated"},{"line_number":72,"context_line":"        with that like the compute_nodes table entry and removing the host"},{"line_number":73,"context_line":"        from any aggregates."},{"line_number":74,"context_line":"        \"\"\""},{"line_number":75,"context_line":"        # Make sure our compute host is represented as expected."},{"line_number":76,"context_line":"        services \u003d self.admin_api.get_services(binary\u003d\u0027nova-compute\u0027)"},{"line_number":77,"context_line":"        self.assertEqual(1, len(services))"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_64371eb2","line":74,"range":{"start_line":71,"start_character":8,"end_line":74,"end_character":11},"updated":"2018-04-11 20:19:15.000000000","message":"Should mention host mapping and resource provider here.","commit_id":"fa2dbf49c69dd8cdd593f692b3e6873250415766"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cd3338bf29b3c2fb5881f7f4682bf6ff54b38590","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        resource provider in Placement."},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        # Make sure our compute host is represented as expected."},{"line_number":77,"context_line":"        services \u003d self.admin_api.get_services(binary\u003d\u0027nova-compute\u0027)"},{"line_number":78,"context_line":"        self.assertEqual(1, len(services))"},{"line_number":79,"context_line":"        service \u003d services[0]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        # Now create a host aggregate and add our host to it."},{"line_number":82,"context_line":"        aggregate \u003d self.admin_api.post_aggregate("}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_45ed8489","line":79,"range":{"start_line":77,"start_character":0,"end_line":79,"end_character":29},"updated":"2018-04-18 15:22:19.000000000","message":"You could (confusingly) combine these three lines as\n\n service, \u003d self.admin_api.get_services(binary\u003d\u0027nova-compute\u0027)\n\nBut don\u0027t do that.","commit_id":"aee7ae91469c203bd07d91a0220af9394f34e88f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cd3338bf29b3c2fb5881f7f4682bf6ff54b38590","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        # Assert the allocations for the instance are against our compute node"},{"line_number":128,"context_line":"        # resource provider and for the flavor used for the instance."},{"line_number":129,"context_line":"        allocations \u003d self.placement_api.get("},{"line_number":130,"context_line":"            \u0027/allocations/%s\u0027 % server[\u0027id\u0027]).body[\u0027allocations\u0027]"},{"line_number":131,"context_line":"        self.assertIn(rp_uuid, allocations)"},{"line_number":132,"context_line":"        allocations \u003d allocations[rp_uuid]"},{"line_number":133,"context_line":"        expected_resources \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_e57618d9","line":130,"range":{"start_line":130,"start_character":46,"end_line":130,"end_character":50},"updated":"2018-04-18 15:22:19.000000000","message":"I guess this must work; but I expected you to have to use json() instead of body","commit_id":"aee7ae91469c203bd07d91a0220af9394f34e88f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c14e8b3c5e44bfc59ed64050a35d9b272d5816b8","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        # Assert the allocations for the instance are against our compute node"},{"line_number":128,"context_line":"        # resource provider and for the flavor used for the instance."},{"line_number":129,"context_line":"        allocations \u003d self.placement_api.get("},{"line_number":130,"context_line":"            \u0027/allocations/%s\u0027 % server[\u0027id\u0027]).body[\u0027allocations\u0027]"},{"line_number":131,"context_line":"        self.assertIn(rp_uuid, allocations)"},{"line_number":132,"context_line":"        allocations \u003d allocations[rp_uuid]"},{"line_number":133,"context_line":"        expected_resources \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_3d23c007","line":130,"range":{"start_line":130,"start_character":46,"end_line":130,"end_character":50},"in_reply_to":"9f6a8fd7_e57618d9","updated":"2018-04-18 18:17:29.000000000","message":"It\u0027s because the fixture uses this APIResponse class:\n\nhttps://github.com/openstack/nova/blob/324899c621ee02d877122ba3412712ebb92831f2/nova/tests/fixtures.py#L1665\n\nWhich converts the content to a body variable:\n\nhttps://github.com/openstack/nova/blob/324899c621ee02d877122ba3412712ebb92831f2/nova/tests/functional/api/client.py#L59\n\nIn other words, it\u0027s not a real requests.Response. I can feel you cringing.","commit_id":"aee7ae91469c203bd07d91a0220af9394f34e88f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cd3338bf29b3c2fb5881f7f4682bf6ff54b38590","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # provider is not deleted. Once the bug is fixed, this should result"},{"line_number":174,"context_line":"        # in a 404 response."},{"line_number":175,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers/%s\u0027 % rp_uuid)"},{"line_number":176,"context_line":"        self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_c502f40b","line":176,"updated":"2018-04-18 15:22:19.000000000","message":"Should we check for the allocation records as well?\n\n(Factor out L129-138 into a helper)","commit_id":"aee7ae91469c203bd07d91a0220af9394f34e88f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d6482b82a14e4ca7b17c50df4f401ff3e56b9280","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # provider is not deleted. Once the bug is fixed, this should result"},{"line_number":174,"context_line":"        # in a 404 response."},{"line_number":175,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers/%s\u0027 % rp_uuid)"},{"line_number":176,"context_line":"        self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_89f08e69","line":176,"in_reply_to":"9f6a8fd7_69817a4a","updated":"2018-04-18 21:49:15.000000000","message":"oh, nice, didn\u0027t know about that one.","commit_id":"aee7ae91469c203bd07d91a0220af9394f34e88f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0215588c2f0bf24a23ca6f069eb5594026b68259","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # provider is not deleted. Once the bug is fixed, this should result"},{"line_number":174,"context_line":"        # in a 404 response."},{"line_number":175,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers/%s\u0027 % rp_uuid)"},{"line_number":176,"context_line":"        self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_69817a4a","line":176,"in_reply_to":"9f6a8fd7_7325e9aa","updated":"2018-04-18 21:38:04.000000000","message":"OK I can do that, or just make this test extend ProviderUsageBaseTestCase.","commit_id":"aee7ae91469c203bd07d91a0220af9394f34e88f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2636179f9da66dfaf22b30cb87debc67290a91d4","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # provider is not deleted. Once the bug is fixed, this should result"},{"line_number":174,"context_line":"        # in a 404 response."},{"line_number":175,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers/%s\u0027 % rp_uuid)"},{"line_number":176,"context_line":"        self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_7325e9aa","line":176,"in_reply_to":"9f6a8fd7_7d8618de","updated":"2018-04-18 19:30:16.000000000","message":"Right - so that later you can assert that they\u0027re *gone*.  I.e. making sure our new code path to delete the provider *also* deletes its allocations.","commit_id":"aee7ae91469c203bd07d91a0220af9394f34e88f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"81ae160f3d1edb7d465d177c12948eb60d00d615","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # provider is not deleted. Once the bug is fixed, this should result"},{"line_number":174,"context_line":"        # in a 404 response."},{"line_number":175,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers/%s\u0027 % rp_uuid)"},{"line_number":176,"context_line":"        self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_1f658ce1","line":176,"in_reply_to":"9f6a8fd7_89f08e69","updated":"2018-04-18 23:05:23.000000000","message":"Done","commit_id":"aee7ae91469c203bd07d91a0220af9394f34e88f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c14e8b3c5e44bfc59ed64050a35d9b272d5816b8","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # provider is not deleted. Once the bug is fixed, this should result"},{"line_number":174,"context_line":"        # in a 404 response."},{"line_number":175,"context_line":"        resp \u003d self.placement_api.get(\u0027/resource_providers/%s\u0027 % rp_uuid)"},{"line_number":176,"context_line":"        self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_7d8618de","line":176,"in_reply_to":"9f6a8fd7_c502f40b","updated":"2018-04-18 18:17:29.000000000","message":"So assert the allocations are still there? I could, but I\u0027m not especially motivated to...","commit_id":"aee7ae91469c203bd07d91a0220af9394f34e88f"}]}
