)]}'
{"nova/tests/functional/test_external_networks.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dbc03cef479b2a15b54d3104ef2aac81b4f99bf0","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        servers on external networks that are not shared. Doing so should"},{"line_number":62,"context_line":"        result in the server failing to build with an"},{"line_number":63,"context_line":"        ExternalNetworkAttachForbidden error. Note that we do not use"},{"line_number":64,"context_line":"        SpawnIsSynchronousFixture to make _allocate_network_async synchronous"},{"line_number":65,"context_line":"        in this test since that would change the behavior of the"},{"line_number":66,"context_line":"        ComputeManager._build_resources method and abort the build which is"},{"line_number":67,"context_line":"        not how ExternalNetworkAttachForbidden is really handled in reality."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_b925870c","line":64,"updated":"2019-11-13 23:33:03.000000000","message":"Note to reviewers: I was originally using this but found that if I removed the code fix the test still passed because _build_resources gets the error and raises BuildAbortException.","commit_id":"22456ad757a1f32f5dfda82cc6ea12ab5fa323c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c979e37212f2625e3224354834fdea619717f96a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        ComputeManager._build_resources method and abort the build which is"},{"line_number":67,"context_line":"        not how ExternalNetworkAttachForbidden is really handled in reality."},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":"        server \u003d self._build_minimal_create_server_request("},{"line_number":70,"context_line":"            self.user_api, \u0027test_non_admin_create_server_on_external_network\u0027,"},{"line_number":71,"context_line":"            image_uuid\u003dfake_image.get_valid_image_id(),"},{"line_number":72,"context_line":"            networks\u003d[{\u0027uuid\u0027: uuids.external_network}])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_3d8edc31","line":69,"updated":"2019-12-12 17:18:10.000000000","message":"This changed:\n\nhttps://review.opendev.org/#/c/697694/1/nova/tests/functional/integrated_helpers.py@a98","commit_id":"e572297dec8c61a1c98c00a993a9023a56808aab"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"00416f32e8d985ea4cb4280fca910d2de39088df","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        ComputeManager._build_resources method and abort the build which is"},{"line_number":67,"context_line":"        not how ExternalNetworkAttachForbidden is really handled in reality."},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":"        server \u003d self._build_minimal_create_server_request("},{"line_number":70,"context_line":"            self.user_api, \u0027test_non_admin_create_server_on_external_network\u0027,"},{"line_number":71,"context_line":"            image_uuid\u003dfake_image.get_valid_image_id(),"},{"line_number":72,"context_line":"            networks\u003d[{\u0027uuid\u0027: uuids.external_network}])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_1bf3e86e","line":69,"in_reply_to":"3fa7e38b_3d8edc31","updated":"2019-12-12 19:28:16.000000000","message":"Done","commit_id":"e572297dec8c61a1c98c00a993a9023a56808aab"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c979e37212f2625e3224354834fdea619717f96a","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            image_uuid\u003dfake_image.get_valid_image_id(),"},{"line_number":72,"context_line":"            networks\u003d[{\u0027uuid\u0027: uuids.external_network}])"},{"line_number":73,"context_line":"        server \u003d self.user_api.post_server({\u0027server\u0027: server})"},{"line_number":74,"context_line":"        server \u003d self._wait_for_state_change(self.user_api, server, \u0027ERROR\u0027)"},{"line_number":75,"context_line":"        # The BuildAbortException should be in the server fault message."},{"line_number":76,"context_line":"        self.assertIn(\u0027aborted: Failed to allocate the network(s), not \u0027"},{"line_number":77,"context_line":"                      \u0027rescheduling.\u0027, server[\u0027fault\u0027][\u0027message\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_dd98e876","line":74,"range":{"start_line":74,"start_character":50,"end_line":74,"end_character":58},"updated":"2019-12-12 17:18:10.000000000","message":"and this https://review.opendev.org/#/c/697694/1/nova/tests/functional/integrated_helpers.py@a98","commit_id":"e572297dec8c61a1c98c00a993a9023a56808aab"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"00416f32e8d985ea4cb4280fca910d2de39088df","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            image_uuid\u003dfake_image.get_valid_image_id(),"},{"line_number":72,"context_line":"            networks\u003d[{\u0027uuid\u0027: uuids.external_network}])"},{"line_number":73,"context_line":"        server \u003d self.user_api.post_server({\u0027server\u0027: server})"},{"line_number":74,"context_line":"        server \u003d self._wait_for_state_change(self.user_api, server, \u0027ERROR\u0027)"},{"line_number":75,"context_line":"        # The BuildAbortException should be in the server fault message."},{"line_number":76,"context_line":"        self.assertIn(\u0027aborted: Failed to allocate the network(s), not \u0027"},{"line_number":77,"context_line":"                      \u0027rescheduling.\u0027, server[\u0027fault\u0027][\u0027message\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_bb93b4ff","line":74,"range":{"start_line":74,"start_character":50,"end_line":74,"end_character":58},"in_reply_to":"3fa7e38b_dd98e876","updated":"2019-12-12 19:28:16.000000000","message":"Done","commit_id":"e572297dec8c61a1c98c00a993a9023a56808aab"}]}
