)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Reduce gen conflict in COMPUTE_STATUS_DISABLED handling"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The COMPUTE_STATUS_DISABLED trait is supposed to be added to the compute"},{"line_number":10,"context_line":"RP when the compute service is disabled, and the trait supposed to be"},{"line_number":11,"context_line":"removed when the service is enabled again. However adding and removing"},{"line_number":12,"context_line":"traits is subject to generation conflict in placement. The original"},{"line_number":13,"context_line":"implementation of blueprint pre-filter-disabled-computes noticed this"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_048f22cd","line":10,"range":{"start_line":10,"start_character":54,"end_line":10,"end_character":55},"updated":"2020-07-10 09:38:19.000000000","message":"is","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"642b992086b675614f6041bf6f668cfcd435a210","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Reduce gen conflict in COMPUTE_STATUS_DISABLED handling"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The COMPUTE_STATUS_DISABLED trait is supposed to be added to the compute"},{"line_number":10,"context_line":"RP when the compute service is disabled, and the trait supposed to be"},{"line_number":11,"context_line":"removed when the service is enabled again. However adding and removing"},{"line_number":12,"context_line":"traits is subject to generation conflict in placement. The original"},{"line_number":13,"context_line":"implementation of blueprint pre-filter-disabled-computes noticed this"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_0d5105da","line":10,"range":{"start_line":10,"start_character":54,"end_line":10,"end_character":55},"in_reply_to":"bf51134e_048f22cd","updated":"2020-07-10 12:10:02.000000000","message":"Done","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The COMPUTE_STATUS_DISABLED trait is supposed to be added to the compute"},{"line_number":10,"context_line":"RP when the compute service is disabled, and the trait supposed to be"},{"line_number":11,"context_line":"removed when the service is enabled again. However adding and removing"},{"line_number":12,"context_line":"traits is subject to generation conflict in placement. The original"},{"line_number":13,"context_line":"implementation of blueprint pre-filter-disabled-computes noticed this"},{"line_number":14,"context_line":"and prints a detailed warning message while the API operation succeeds."},{"line_number":15,"context_line":"We can ignore the conflict this way because the periodic"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_44be3a65","line":12,"range":{"start_line":12,"start_character":10,"end_line":12,"end_character":17},"updated":"2020-07-10 09:38:19.000000000","message":"prone?","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"642b992086b675614f6041bf6f668cfcd435a210","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The COMPUTE_STATUS_DISABLED trait is supposed to be added to the compute"},{"line_number":10,"context_line":"RP when the compute service is disabled, and the trait supposed to be"},{"line_number":11,"context_line":"removed when the service is enabled again. However adding and removing"},{"line_number":12,"context_line":"traits is subject to generation conflict in placement. The original"},{"line_number":13,"context_line":"implementation of blueprint pre-filter-disabled-computes noticed this"},{"line_number":14,"context_line":"and prints a detailed warning message while the API operation succeeds."},{"line_number":15,"context_line":"We can ignore the conflict this way because the periodic"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_8d56b5cd","line":12,"range":{"start_line":12,"start_character":10,"end_line":12,"end_character":17},"in_reply_to":"bf51134e_44be3a65","updated":"2020-07-10 12:10:02.000000000","message":"Done","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Setting the compute service disable is the smaller problem as the"},{"line_number":22,"context_line":"scheduler still uses the ComputeFilter that filters the computes based"},{"line_number":23,"context_line":"on the service api. So during the enable -\u003edisable race window we only"},{"line_number":24,"context_line":"lose scheduling performance as the placement filter is ineffective."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"In case of setting the compute service to enabled the race is more"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_c4b1aa91","line":23,"range":{"start_line":23,"start_character":40,"end_line":23,"end_character":41},"updated":"2020-07-10 09:38:19.000000000","message":"drop","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"642b992086b675614f6041bf6f668cfcd435a210","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Setting the compute service disable is the smaller problem as the"},{"line_number":22,"context_line":"scheduler still uses the ComputeFilter that filters the computes based"},{"line_number":23,"context_line":"on the service api. So during the enable -\u003edisable race window we only"},{"line_number":24,"context_line":"lose scheduling performance as the placement filter is ineffective."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"In case of setting the compute service to enabled the race is more"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_6d5b61f5","line":23,"range":{"start_line":23,"start_character":40,"end_line":23,"end_character":41},"in_reply_to":"bf51134e_c4b1aa91","updated":"2020-07-10 12:10:02.000000000","message":"Done","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"7622d92e9c40ff646197ac0619c18d5f8f32cf22","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Setting the compute service disable is the smaller problem as the"},{"line_number":22,"context_line":"scheduler still uses the ComputeFilter that filters the computes based"},{"line_number":23,"context_line":"on the service api. So during the enable -\u003edisable race window we only"},{"line_number":24,"context_line":"lose scheduling performance as the placement filter is ineffective."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"In case of setting the compute service to enabled the race is more"},{"line_number":27,"context_line":"visible as the placement pre_filter will filter out the compute that"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_a43bd635","line":24,"range":{"start_line":24,"start_character":55,"end_line":24,"end_character":66},"updated":"2020-07-10 09:32:41.000000000","message":"nit - inefficient","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"642b992086b675614f6041bf6f668cfcd435a210","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Setting the compute service disable is the smaller problem as the"},{"line_number":22,"context_line":"scheduler still uses the ComputeFilter that filters the computes based"},{"line_number":23,"context_line":"on the service api. So during the enable -\u003edisable race window we only"},{"line_number":24,"context_line":"lose scheduling performance as the placement filter is ineffective."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"In case of setting the compute service to enabled the race is more"},{"line_number":27,"context_line":"visible as the placement pre_filter will filter out the compute that"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_2d0a09d1","line":24,"range":{"start_line":24,"start_character":55,"end_line":24,"end_character":66},"in_reply_to":"bf51134e_a43bd635","updated":"2020-07-10 12:10:02.000000000","message":"Done","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"In case of setting the compute service to enabled the race is more"},{"line_number":27,"context_line":"visible as the placement pre_filter will filter out the compute that"},{"line_number":28,"context_line":"is enable by the admin until the re-sync happens. If the de-sync would"},{"line_number":29,"context_line":"only happen due to high load on the given compute the such delay could"},{"line_number":30,"context_line":"be explained by the load itself. However de-sync can happen simply due"},{"line_number":31,"context_line":"to a new instance boot on the compute."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_a45c764b","line":28,"range":{"start_line":28,"start_character":33,"end_line":28,"end_character":40},"updated":"2020-07-10 09:38:19.000000000","message":"aside: I tempted to say resynchronization is a word, but the only references I can find to it is some type of cardiovascular therapy. Odd","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":27,"context_line":"visible as the placement pre_filter will filter out the compute that"},{"line_number":28,"context_line":"is enable by the admin until the re-sync happens. If the de-sync would"},{"line_number":29,"context_line":"only happen due to high load on the given compute the such delay could"},{"line_number":30,"context_line":"be explained by the load itself. However de-sync can happen simply due"},{"line_number":31,"context_line":"to a new instance boot on the compute."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Fortunately the solution is easy and cheap. The current service state"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_646ede00","line":30,"range":{"start_line":30,"start_character":41,"end_line":30,"end_character":43},"updated":"2020-07-10 09:38:19.000000000","message":"re?","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"642b992086b675614f6041bf6f668cfcd435a210","unresolved":false,"context_lines":[{"line_number":27,"context_line":"visible as the placement pre_filter will filter out the compute that"},{"line_number":28,"context_line":"is enable by the admin until the re-sync happens. If the de-sync would"},{"line_number":29,"context_line":"only happen due to high load on the given compute the such delay could"},{"line_number":30,"context_line":"be explained by the load itself. However de-sync can happen simply due"},{"line_number":31,"context_line":"to a new instance boot on the compute."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Fortunately the solution is easy and cheap. The current service state"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_8db23505","line":30,"range":{"start_line":30,"start_character":41,"end_line":30,"end_character":43},"in_reply_to":"bf51134e_646ede00","updated":"2020-07-10 12:10:02.000000000","message":"replaced the word with \u0027conflict\u0027","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":31,"context_line":"to a new instance boot on the compute."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Fortunately the solution is easy and cheap. The current service state"},{"line_number":34,"context_line":"handler code path has already query placement about the existing traits"},{"line_number":35,"context_line":"on the compute RP and therefore it receives the current RP generation as"},{"line_number":36,"context_line":"well. But it does not really use this information but instead rely on"},{"line_number":37,"context_line":"the potentially stale provide_tree cache."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_2436a604","line":34,"range":{"start_line":34,"start_character":30,"end_line":34,"end_character":35},"updated":"2020-07-10 09:38:19.000000000","message":"queried","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"642b992086b675614f6041bf6f668cfcd435a210","unresolved":false,"context_lines":[{"line_number":31,"context_line":"to a new instance boot on the compute."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Fortunately the solution is easy and cheap. The current service state"},{"line_number":34,"context_line":"handler code path has already query placement about the existing traits"},{"line_number":35,"context_line":"on the compute RP and therefore it receives the current RP generation as"},{"line_number":36,"context_line":"well. But it does not really use this information but instead rely on"},{"line_number":37,"context_line":"the potentially stale provide_tree cache."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_6db7e1f6","line":34,"range":{"start_line":34,"start_character":30,"end_line":34,"end_character":35},"in_reply_to":"bf51134e_2436a604","updated":"2020-07-10 12:10:02.000000000","message":"Done","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":36,"context_line":"well. But it does not really use this information but instead rely on"},{"line_number":37,"context_line":"the potentially stale provide_tree cache."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This patch uses the lot fresher RP generation known by the service state"},{"line_number":40,"context_line":"handling code instead of the potentially stale provider_tree cache."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The change in the notification test is also due to the fixed behavior."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_44311a0b","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":23},"updated":"2020-07-10 09:38:19.000000000","message":"much","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"7622d92e9c40ff646197ac0619c18d5f8f32cf22","unresolved":false,"context_lines":[{"line_number":36,"context_line":"well. But it does not really use this information but instead rely on"},{"line_number":37,"context_line":"the potentially stale provide_tree cache."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This patch uses the lot fresher RP generation known by the service state"},{"line_number":40,"context_line":"handling code instead of the potentially stale provider_tree cache."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The change in the notification test is also due to the fixed behavior."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_6436de53","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":23},"updated":"2020-07-10 09:32:41.000000000","message":"nit - much","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"642b992086b675614f6041bf6f668cfcd435a210","unresolved":false,"context_lines":[{"line_number":36,"context_line":"well. But it does not really use this information but instead rely on"},{"line_number":37,"context_line":"the potentially stale provide_tree cache."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This patch uses the lot fresher RP generation known by the service state"},{"line_number":40,"context_line":"handling code instead of the potentially stale provider_tree cache."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The change in the notification test is also due to the fixed behavior."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_adcc5989","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":23},"in_reply_to":"bf51134e_44311a0b","updated":"2020-07-10 12:10:02.000000000","message":"Done","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":44,"context_line":"FilterScheduler detected that there is no valid host. Now it is already"},{"line_number":45,"context_line":"detect by the scheduler manager based on the empty placement response."},{"line_number":46,"context_line":"This causes now that that the FilterScheduler is not called and"},{"line_number":47,"context_line":"therefore the select_destination.start notification is not sent."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Closes-Bug: #1886418"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf51134e_241fc66c","line":47,"updated":"2020-07-10 09:38:19.000000000","message":"Thanks for the context ++","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"}],"nova/scheduler/client/report.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"    @safe_connect"},{"line_number":1001,"context_line":"    def set_traits_for_provider("},{"line_number":1002,"context_line":"            self, context, rp_uuid, traits, generation\u003dNone):"},{"line_number":1003,"context_line":"        \"\"\"Replace a provider\u0027s traits with those specified."},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"        The provider must exist - this method does not attempt to create it."}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_a738f8d2","line":1002,"updated":"2020-07-10 09:38:19.000000000","message":"you know what would have been really cool here: type annotations ;)\n\nthen again, if we\u0027re backporting, maybe not","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"642b992086b675614f6041bf6f668cfcd435a210","unresolved":false,"context_lines":[{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"    @safe_connect"},{"line_number":1001,"context_line":"    def set_traits_for_provider("},{"line_number":1002,"context_line":"            self, context, rp_uuid, traits, generation\u003dNone):"},{"line_number":1003,"context_line":"        \"\"\"Replace a provider\u0027s traits with those specified."},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"        The provider must exist - this method does not attempt to create it."}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_4d9bfdc7","line":1002,"in_reply_to":"bf51134e_a738f8d2","updated":"2020-07-10 12:10:02.000000000","message":"Done","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"7622d92e9c40ff646197ac0619c18d5f8f32cf22","unresolved":false,"context_lines":[{"line_number":1008,"context_line":"        :param rp_uuid: The UUID of the provider whose traits are to be updated"},{"line_number":1009,"context_line":"        :param traits: Iterable of traits to set on the provider"},{"line_number":1010,"context_line":"        :param generation: The resource provider generation if known. If not"},{"line_number":1011,"context_line":"            provided then the value from the provider tree cache will be used."},{"line_number":1012,"context_line":"        :raises: ResourceProviderUpdateConflict if the provider\u0027s generation"},{"line_number":1013,"context_line":"                 doesn\u0027t match the generation in the cache.  Callers may choose"},{"line_number":1014,"context_line":"                 to retrieve the provider and its associations afresh and"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_247ea6e3","line":1011,"range":{"start_line":1011,"start_character":12,"end_line":1011,"end_character":78},"updated":"2020-07-10 09:32:41.000000000","message":"supernit - not that I really care tbh but shouldn\u0027t this be indented inline with the `The` above?","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":1008,"context_line":"        :param rp_uuid: The UUID of the provider whose traits are to be updated"},{"line_number":1009,"context_line":"        :param traits: Iterable of traits to set on the provider"},{"line_number":1010,"context_line":"        :param generation: The resource provider generation if known. If not"},{"line_number":1011,"context_line":"            provided then the value from the provider tree cache will be used."},{"line_number":1012,"context_line":"        :raises: ResourceProviderUpdateConflict if the provider\u0027s generation"},{"line_number":1013,"context_line":"                 doesn\u0027t match the generation in the cache.  Callers may choose"},{"line_number":1014,"context_line":"                 to retrieve the provider and its associations afresh and"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_e4002e05","line":1011,"range":{"start_line":1011,"start_character":12,"end_line":1011,"end_character":78},"in_reply_to":"bf51134e_247ea6e3","updated":"2020-07-10 09:38:19.000000000","message":"Personally, I hate that indentation and much prefer the hanging indent gibi used here. Local consistency and all that, but maybe not when what\u0027s there is just so....wrong.\n\nKenneth Reitz agrees [1] (not that this is necessarily a good thing but hey :))\n\n[1] https://requests.readthedocs.io/en/master/dev/contributing/#kenneth-reitz-s-code-style","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"642b992086b675614f6041bf6f668cfcd435a210","unresolved":false,"context_lines":[{"line_number":1008,"context_line":"        :param rp_uuid: The UUID of the provider whose traits are to be updated"},{"line_number":1009,"context_line":"        :param traits: Iterable of traits to set on the provider"},{"line_number":1010,"context_line":"        :param generation: The resource provider generation if known. If not"},{"line_number":1011,"context_line":"            provided then the value from the provider tree cache will be used."},{"line_number":1012,"context_line":"        :raises: ResourceProviderUpdateConflict if the provider\u0027s generation"},{"line_number":1013,"context_line":"                 doesn\u0027t match the generation in the cache.  Callers may choose"},{"line_number":1014,"context_line":"                 to retrieve the provider and its associations afresh and"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_4d849d5e","line":1011,"range":{"start_line":1011,"start_character":12,"end_line":1011,"end_character":78},"in_reply_to":"bf51134e_e4002e05","updated":"2020-07-10 12:10:02.000000000","message":"I use both indent and try to make it consistent locally. I failed here as the raises lines are indented differently.","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9454d25ca874a2f5b8fa8d6bdefde1148a48fc64","unresolved":false,"context_lines":[{"line_number":1000,"context_line":""},{"line_number":1001,"context_line":"    @safe_connect"},{"line_number":1002,"context_line":"    def set_traits_for_provider("},{"line_number":1003,"context_line":"            self,"},{"line_number":1004,"context_line":"            context: \u0027nova.context.RequestContext\u0027,"},{"line_number":1005,"context_line":"            rp_uuid: str,"},{"line_number":1006,"context_line":"            traits: ty.Iterable[str],"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf51134e_13bc8204","line":1003,"range":{"start_line":1003,"start_character":8,"end_line":1003,"end_character":12},"updated":"2020-07-10 13:42:55.000000000","message":"nit","commit_id":"05cfc187d2b06aa560245250709362d45ea1a80b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"16425249782138f50af79d0107d9a0d7f176f639","unresolved":false,"context_lines":[{"line_number":1000,"context_line":""},{"line_number":1001,"context_line":"    @safe_connect"},{"line_number":1002,"context_line":"    def set_traits_for_provider("},{"line_number":1003,"context_line":"            self,"},{"line_number":1004,"context_line":"            context: \u0027nova.context.RequestContext\u0027,"},{"line_number":1005,"context_line":"            rp_uuid: str,"},{"line_number":1006,"context_line":"            traits: ty.Iterable[str],"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf51134e_19a8231e","line":1003,"range":{"start_line":1003,"start_character":8,"end_line":1003,"end_character":12},"in_reply_to":"bf51134e_13bc8204","updated":"2020-07-10 15:40:26.000000000","message":"Done","commit_id":"05cfc187d2b06aa560245250709362d45ea1a80b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9454d25ca874a2f5b8fa8d6bdefde1148a48fc64","unresolved":false,"context_lines":[{"line_number":1001,"context_line":"    @safe_connect"},{"line_number":1002,"context_line":"    def set_traits_for_provider("},{"line_number":1003,"context_line":"            self,"},{"line_number":1004,"context_line":"            context: \u0027nova.context.RequestContext\u0027,"},{"line_number":1005,"context_line":"            rp_uuid: str,"},{"line_number":1006,"context_line":"            traits: ty.Iterable[str],"},{"line_number":1007,"context_line":"            generation: int \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf51134e_d3c5ea8f","line":1004,"range":{"start_line":1004,"start_character":21,"end_line":1004,"end_character":50},"updated":"2020-07-10 13:42:55.000000000","message":"this will fail because nova_context isn\u0027t defined. Maybe not now, because we\u0027re not scanning this file yet, but in the future.\n\nI\u0027m actually surprised flake8 doesn\u0027t complain.","commit_id":"05cfc187d2b06aa560245250709362d45ea1a80b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"16425249782138f50af79d0107d9a0d7f176f639","unresolved":false,"context_lines":[{"line_number":1001,"context_line":"    @safe_connect"},{"line_number":1002,"context_line":"    def set_traits_for_provider("},{"line_number":1003,"context_line":"            self,"},{"line_number":1004,"context_line":"            context: \u0027nova.context.RequestContext\u0027,"},{"line_number":1005,"context_line":"            rp_uuid: str,"},{"line_number":1006,"context_line":"            traits: ty.Iterable[str],"},{"line_number":1007,"context_line":"            generation: int \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf51134e_f9a44f4d","line":1004,"range":{"start_line":1004,"start_character":21,"end_line":1004,"end_character":50},"in_reply_to":"bf51134e_d3c5ea8f","updated":"2020-07-10 15:40:26.000000000","message":"Done","commit_id":"05cfc187d2b06aa560245250709362d45ea1a80b"}],"nova/tests/functional/notification_sample_tests/test_compute_task.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2ab3473c7d7572d20502856999e5ed57ee2cbed4","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        self.admin_api.post_server_action(server[\u0027id\u0027], {\u0027migrate\u0027: None})"},{"line_number":111,"context_line":"        self._wait_for_notification(\u0027compute_task.migrate_server.error\u0027)"},{"line_number":112,"context_line":"        # 0. scheduler.select_destinations.start"},{"line_number":113,"context_line":"        # 1. compute_task.migrate_server.error"},{"line_number":114,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS),"},{"line_number":115,"context_line":"                         fake_notifier.VERSIONED_NOTIFICATIONS)"},{"line_number":116,"context_line":"        self._verify_notification("}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_bbf29b05","side":"PARENT","line":113,"updated":"2020-02-25 15:21:22.000000000","message":"probably unnecessary but might have been good remove 0. and relabel 1. as 0. ?","commit_id":"bfe8fa44c388464b8176d00dbf9ab893a7a0d9c8"}],"nova/tests/functional/regressions/test_bug_1886418.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a10ca69624f1c791888b5a0e2c75f07702804ea","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        self.assertNotIn("},{"line_number":90,"context_line":"            \"COMPUTE_STATUS_DISABLED\","},{"line_number":91,"context_line":"            self._get_traits_on_compute())"},{"line_number":92,"context_line":"        self.assertNotIn("},{"line_number":93,"context_line":"            \u0027An error occurred while updating COMPUTE_STATUS_DISABLED trait \u0027"},{"line_number":94,"context_line":"            \u0027on compute node resource provider\u0027,"},{"line_number":95,"context_line":"            self.stdlog.logger.output)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_4728fc84","line":92,"updated":"2020-07-10 09:38:19.000000000","message":"A reference to the bug that this fixed (i.e. why this is here) would be helpful, just in case this regressed. Alternatively, we could pass a third argument which is the error that gets printed if this fails","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"642b992086b675614f6041bf6f668cfcd435a210","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        self.assertNotIn("},{"line_number":90,"context_line":"            \"COMPUTE_STATUS_DISABLED\","},{"line_number":91,"context_line":"            self._get_traits_on_compute())"},{"line_number":92,"context_line":"        self.assertNotIn("},{"line_number":93,"context_line":"            \u0027An error occurred while updating COMPUTE_STATUS_DISABLED trait \u0027"},{"line_number":94,"context_line":"            \u0027on compute node resource provider\u0027,"},{"line_number":95,"context_line":"            self.stdlog.logger.output)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_ea6f5725","line":92,"in_reply_to":"bf51134e_4728fc84","updated":"2020-07-10 12:10:02.000000000","message":"the test file name contains the bug number :) but I added it to the assert too now.","commit_id":"9f725630add2154a3cc0d33ac1e03332592d1147"}]}
