)]}'
{"nova/tests/functional/test_servers.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6a202334619bdc51ad56af0da11c94906868f307","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        # BuildAbortException will not trigger a reschedule and the build"},{"line_number":144,"context_line":"        # failure update is the last step in the compute manager after"},{"line_number":145,"context_line":"        # instance state setting, fault recording and notification sending. So"},{"line_number":146,"context_line":"        # we have no other way than simply wait a bit to ensure the the"},{"line_number":147,"context_line":"        # node build failure counter updated before we assert it below."},{"line_number":148,"context_line":"        time.sleep(2)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_73e81eb2","line":146,"updated":"2020-04-02 19:42:03.000000000","message":"pep8: N343: Doubled word \u0027the\u0027 typo found","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4eee3759b3c787f1f8e6ddf382a39b6fd6278e8d","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        # BuildAbortException will not trigger a reschedule and the build"},{"line_number":144,"context_line":"        # failure update is the last step in the compute manager after"},{"line_number":145,"context_line":"        # instance state setting, fault recording and notification sending. So"},{"line_number":146,"context_line":"        # we have no other way than simply wait a bit to ensure the the"},{"line_number":147,"context_line":"        # node build failure counter updated before we assert it below."},{"line_number":148,"context_line":"        time.sleep(2)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_61edd68a","line":146,"in_reply_to":"df33271e_73e81eb2","updated":"2020-04-03 13:47:04.000000000","message":"Thank you Zuul. Done","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"206a9792defa4a1c7801b28e557aa16c4abdd337","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        # recording and notification sending. So we have no other way than"},{"line_number":219,"context_line":"        # simply wait a bit to ensure the node build failure counter updated"},{"line_number":220,"context_line":"        # before we assert it below."},{"line_number":221,"context_line":"        time.sleep(2)"},{"line_number":222,"context_line":"        self.assertEqual(1, fails)"},{"line_number":223,"context_line":"        self._run_periodics()"},{"line_number":224,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_82658f20","line":221,"range":{"start_line":221,"start_character":7,"end_line":221,"end_character":21},"updated":"2020-04-02 16:27:25.000000000","message":"i have not looked specify but is there a server event notification we could listen for?\n\nif this is the best we can do or the best we can do quickly\nto un break the gate then sure lets do this but i guess i jsut feel weired about using sleeps and hoping it completes the update in interval.","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"317d210512a85fb6790727946b861931d7b4dfcb","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        # recording and notification sending. So we have no other way than"},{"line_number":219,"context_line":"        # simply wait a bit to ensure the node build failure counter updated"},{"line_number":220,"context_line":"        # before we assert it below."},{"line_number":221,"context_line":"        time.sleep(2)"},{"line_number":222,"context_line":"        self.assertEqual(1, fails)"},{"line_number":223,"context_line":"        self._run_periodics()"},{"line_number":224,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_d63e22b8","line":221,"range":{"start_line":221,"start_character":7,"end_line":221,"end_character":21},"in_reply_to":"df33271e_0134cadd","updated":"2020-04-03 16:43:19.000000000","message":"\u003e Good point Melanie, I can create such waiter, it will hide the\n \u003e sleep at least.\n \u003e \n \u003e Done.\n\nI wasn\u0027t so concerned about hiding the sleep but rather having the arbitrary sleep which would most of the time not be needed at all. With the waiter, we are able to avoid the sleep in the majority of cases and if we do have a sleep it\u0027s likely shorter than the originally proposed 2 seconds.","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4eee3759b3c787f1f8e6ddf382a39b6fd6278e8d","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        # recording and notification sending. So we have no other way than"},{"line_number":219,"context_line":"        # simply wait a bit to ensure the node build failure counter updated"},{"line_number":220,"context_line":"        # before we assert it below."},{"line_number":221,"context_line":"        time.sleep(2)"},{"line_number":222,"context_line":"        self.assertEqual(1, fails)"},{"line_number":223,"context_line":"        self._run_periodics()"},{"line_number":224,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_81073a19","line":221,"range":{"start_line":221,"start_character":7,"end_line":221,"end_character":21},"in_reply_to":"df33271e_82658f20","updated":"2020-04-03 13:47:04.000000000","message":"\u003e i have not looked specify but is there a server event notification\n \u003e we could listen for?\n\nNope, literally placement cleanup and failed build counter update is the last thing in that RPC cast handler. :/","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7b93de15a8121616f0ae5789a66f43efb880f6f6","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        # recording and notification sending. So we have no other way than"},{"line_number":219,"context_line":"        # simply wait a bit to ensure the node build failure counter updated"},{"line_number":220,"context_line":"        # before we assert it below."},{"line_number":221,"context_line":"        time.sleep(2)"},{"line_number":222,"context_line":"        self.assertEqual(1, fails)"},{"line_number":223,"context_line":"        self._run_periodics()"},{"line_number":224,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_fcf6bb5c","line":221,"range":{"start_line":221,"start_character":7,"end_line":221,"end_character":21},"in_reply_to":"df33271e_82658f20","updated":"2020-04-02 22:53:33.000000000","message":"Yeah ... I\u0027d like to avoid adding this kind of arbitrary sleep call as well.\n\nI\u0027m wondering, could we maybe just treat the _get_node_build_failures call after running periodics more like a _wait_for_state_change? And let the test be that it \"waits\" a short time for _get_node_build_failures to return what is expected and if it does not, that will raise a test failure? Same concept as if we expect a server state to reach ERROR and we _wait_for_state_change and if we don\u0027t get that state within the time limit, we fail the test?","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4eee3759b3c787f1f8e6ddf382a39b6fd6278e8d","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        # recording and notification sending. So we have no other way than"},{"line_number":219,"context_line":"        # simply wait a bit to ensure the node build failure counter updated"},{"line_number":220,"context_line":"        # before we assert it below."},{"line_number":221,"context_line":"        time.sleep(2)"},{"line_number":222,"context_line":"        self.assertEqual(1, fails)"},{"line_number":223,"context_line":"        self._run_periodics()"},{"line_number":224,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_0134cadd","line":221,"range":{"start_line":221,"start_character":7,"end_line":221,"end_character":21},"in_reply_to":"df33271e_fcf6bb5c","updated":"2020-04-03 13:47:04.000000000","message":"Good point Melanie, I can create such waiter, it will hide the sleep at least.\n\nDone.","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6a202334619bdc51ad56af0da11c94906868f307","unresolved":false,"context_lines":[{"line_number":3674,"context_line":"        # trigger a reschedule and the placement cleanup is the last step in"},{"line_number":3675,"context_line":"        # the compute manager after instance state setting, fault recording"},{"line_number":3676,"context_line":"        # and notification sending. So we have no other way than simply wait a"},{"line_number":3677,"context_line":"        # bit to ensure the the placement cleanup happens before we assert it."},{"line_number":3678,"context_line":"        time.sleep(2)"},{"line_number":3679,"context_line":""},{"line_number":3680,"context_line":"        failed_hostname \u003d self.compute1.manager.host"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_d3d2caff","line":3677,"updated":"2020-04-02 19:42:03.000000000","message":"pep8: N343: Doubled word \u0027the\u0027 typo found","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4eee3759b3c787f1f8e6ddf382a39b6fd6278e8d","unresolved":false,"context_lines":[{"line_number":3674,"context_line":"        # trigger a reschedule and the placement cleanup is the last step in"},{"line_number":3675,"context_line":"        # the compute manager after instance state setting, fault recording"},{"line_number":3676,"context_line":"        # and notification sending. So we have no other way than simply wait a"},{"line_number":3677,"context_line":"        # bit to ensure the the placement cleanup happens before we assert it."},{"line_number":3678,"context_line":"        time.sleep(2)"},{"line_number":3679,"context_line":""},{"line_number":3680,"context_line":"        failed_hostname \u003d self.compute1.manager.host"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_c4cdd087","line":3677,"in_reply_to":"df33271e_d3d2caff","updated":"2020-04-03 13:47:04.000000000","message":"Done","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6a202334619bdc51ad56af0da11c94906868f307","unresolved":false,"context_lines":[{"line_number":8020,"context_line":"        # BuildAbortException will not trigger a reschedule and the placement"},{"line_number":8021,"context_line":"        # cleanup is the last step in the compute manager after instance state"},{"line_number":8022,"context_line":"        # setting, fault recording and notification sending. So we have no"},{"line_number":8023,"context_line":"        # other way than simply wait a bit to ensure the the placement cleanup"},{"line_number":8024,"context_line":"        # happens before we assert it."},{"line_number":8025,"context_line":"        time.sleep(2)"},{"line_number":8026,"context_line":"        server_uuid \u003d server[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_b3cd865e","line":8023,"updated":"2020-04-02 19:42:03.000000000","message":"pep8: N343: Doubled word \u0027the\u0027 typo found","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4eee3759b3c787f1f8e6ddf382a39b6fd6278e8d","unresolved":false,"context_lines":[{"line_number":8020,"context_line":"        # BuildAbortException will not trigger a reschedule and the placement"},{"line_number":8021,"context_line":"        # cleanup is the last step in the compute manager after instance state"},{"line_number":8022,"context_line":"        # setting, fault recording and notification sending. So we have no"},{"line_number":8023,"context_line":"        # other way than simply wait a bit to ensure the the placement cleanup"},{"line_number":8024,"context_line":"        # happens before we assert it."},{"line_number":8025,"context_line":"        time.sleep(2)"},{"line_number":8026,"context_line":"        server_uuid \u003d server[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_24175ca6","line":8023,"in_reply_to":"df33271e_b3cd865e","updated":"2020-04-03 13:47:04.000000000","message":"Done","commit_id":"264b5688a686f5b8ee736ae783f44931672a42f4"}]}
