)]}'
{"id":"openstack%2Fopenstacksdk~890441","triplet_id":"openstack%2Fopenstacksdk~master~I52c1321e00aff1b2dfeaad2adfd4c02455b6eda7","project":"openstack/openstacksdk","branch":"master","topic":"exceptions","attention_set":{},"removed_from_attention_set":{"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2023-08-10 16:43:12.000000000","reason":"\u003cGERRIT_ACCOUNT_15334\u003e replied on the change","reason_account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}}},"hashtags":[],"change_id":"I52c1321e00aff1b2dfeaad2adfd4c02455b6eda7","subject":"Stop randomly sorting error lines","status":"MERGED","created":"2023-08-03 16:47:50.000000000","updated":"2023-08-10 18:16:32.000000000","submitted":"2023-08-10 18:14:57.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"890441-exceptions","meta_rev_id":"625f556e465c7a3b839c43429865f3ce7b22fb45","_number":890441,"virtual_id_number":890441,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2023-08-10 18:14:56.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":2,"date":"2023-08-03 16:52:02.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":1,"date":"2023-08-10 16:43:12.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Allow-Post-Review":{"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Abstain","+1":"Approved for Zuul Post Review Pipeline"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2023-08-03 16:52:02.000000000","updated_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"reviewer":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"state":"REVIEWER"},{"updated":"2023-08-03 18:36:26.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"b65a9d4e40fb6df205f940da3e785779195222fc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2023-08-03 16:47:50.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"1b71fef986145b3a76bb0c735bfa0b2c1de42204","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2023-08-03 16:52:02.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"8f0eda9de4670ba178c0e5e4caa7d86305883b23","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-08-03 18:36:26.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/efabe559187b44e9ad255436f176801b\n\n- ironic-inspector-tempest-openstacksdk-src https://zuul.opendev.org/t/openstack/build/2b5766d13b1a44e4b918b2fecdd34616 : SUCCESS in 49m 43s (non-voting)\n- bifrost-integration-openstacksdk-src https://zuul.opendev.org/t/openstack/build/7a36a5070ce340cb8cb1861c69ae1b32 : SUCCESS in 33m 01s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/59fb50f6580140619a49ad7c23cfcb8a : SUCCESS in 3m 30s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/50d7b6f29abe409f92781dc4a32e08b5 : SUCCESS in 3m 11s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/2cb5505ce3c14569a14c5708778a24bd : SUCCESS in 3m 25s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/0d9dd1647bcf487b89644da03d831a40 : SUCCESS in 4m 28s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/f1f14963ea3c4926b12b46c2d002673a : SUCCESS in 52m 57s\n- os-client-config-tox-py38-tips https://zuul.opendev.org/t/openstack/build/cc8c184d93c547a397c52a901ac487c7 : SUCCESS in 3m 02s\n- osc-tox-py38-tips https://zuul.opendev.org/t/openstack/build/dd497b7b5e33441ebcd32be3d4e3090a : SUCCESS in 4m 01s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/494de79fe2f74e749d1689407d63c8e9 : SUCCESS in 5m 30s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/80a8eb47313a47aaa5397b63dc3ed236 : SUCCESS in 7m 28s\n- opendev-buildset-registry https://zuul.opendev.org/t/openstack/build/69042927f804442a98cc9b187add9c4f : SUCCESS in 56m 25s\n- nodepool-build-image-siblings https://zuul.opendev.org/t/openstack/build/22e623f23ec4452fb8bea306d90ca6b3 : SUCCESS in 13m 48s (non-voting)\n- dib-nodepool-functional-openstack-centos-8-stream-src https://zuul.opendev.org/t/openstack/build/ddacc3cd20f44f99aa77ba652fd9f444 : SUCCESS in 36m 15s (non-voting)\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/beacf19fda87458f9dd1f99cca961dfa : SUCCESS in 1h 01m 49s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/ee744508f5444f9eac2b1a913506294d : SUCCESS in 1h 14m 56s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/bf08a04de1ec4064b4e062dd1f8fd56e : SUCCESS in 1h 41m 42s\n- openstacksdk-functional-devstack-senlin https://zuul.opendev.org/t/openstack/build/e2cd511a21054361982d8797db8a102f : SUCCESS in 54m 55s\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/d18b4eaa719d400e9220da5cbb7d4cd9 : FAILURE in 58m 17s (non-voting)\n- openstacksdk-functional-devstack-manila https://zuul.opendev.org/t/openstack/build/294b9a68333c493c80e918f295b6772f : SUCCESS in 38m 33s (non-voting)\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/3f491fc62f7d48818c5f18975424982e : SUCCESS in 35m 49s (non-voting)\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/a844c3b362ab4a939c39a725e113f19b : SUCCESS in 45m 53s (non-voting)\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/3ce39985f7124b6faf0b621126759b56 : SUCCESS in 1h 08m 41s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/f72360b9d5e849bda3b8594cf13eea08 : SUCCESS in 1h 20m 54s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"6f7cf937d7288e68a284138ff10ba8a9988076c3","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2023-08-10 16:43:12.000000000","message":"Patch Set 1: Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"5d656887ded830416902272c54f296c5169c9d1c","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-08-10 16:43:52.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"222fd74ea6bbdd8890798e14ae5eb28c9ff5dc53","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-08-10 18:14:56.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/34b7f08073ed44b1a816228ab6182e82\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fa87672061994228bb8d9e3bfcecd255 : SUCCESS in 3m 59s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/942b5529905f4f7b9b93f95495ce28f9 : SUCCESS in 3m 47s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/0b70df86ff5949fb8ac3d017074f1fc8 : SUCCESS in 3m 58s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/6dac4893adf0408abfff13ef128a81f2 : SUCCESS in 5m 00s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/eb41b68883ab4b40966b481c07e22c3c : SUCCESS in 1h 00m 27s\n- os-client-config-tox-py38-tips https://zuul.opendev.org/t/openstack/build/304aca0ba42a43a08cb42ff0bac27d3d : SUCCESS in 4m 35s\n- osc-tox-py38-tips https://zuul.opendev.org/t/openstack/build/6255cfb46f9a405daefb588dc2f2aba5 : SUCCESS in 4m 34s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/8fd52238613f40d78cb9b36e4913be7c : SUCCESS in 4m 12s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7b43b769e69546038922cc114dbb89ee : SUCCESS in 11m 01s\n- opendev-buildset-registry https://zuul.opendev.org/t/openstack/build/9265d6caabcb44e39d72f2d92b9fb105 : SUCCESS in 1h 03m 40s\n- nodepool-build-image-siblings https://zuul.opendev.org/t/openstack/build/dab9a589c5cf4ccd92d20b74a025757d : SUCCESS in 13m 23s (non-voting)\n- dib-nodepool-functional-openstack-centos-8-stream-src https://zuul.opendev.org/t/openstack/build/d235c0fc32934a30a017341123a1817c : SUCCESS in 43m 29s (non-voting)\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/600a86b9b42a4ac6aba302fa2edd262a : SUCCESS in 53m 06s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/cdef74dd3baf412e88379013258de775 : SUCCESS in 1h 25m 25s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/179807ea10684a128dfcd9192877e420 : SUCCESS in 1h 27m 55s\n- openstacksdk-functional-devstack-senlin https://zuul.opendev.org/t/openstack/build/3c3c615b07664274ac788047a7fb0efc : SUCCESS in 52m 33s","accounts_in_message":[],"_revision_number":1},{"id":"c7824112fb82b5e165821970092b6629c5d0e2cf","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-08-10 18:14:57.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"625f556e465c7a3b839c43429865f3ce7b22fb45","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-08-10 18:16:32.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/37fd429102d748cd8cadabb6351fd804\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4ea50e27eb6b48e08019fec1df25872f : SUCCESS in 1m 18s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"8ee8f57a434ee42c5daa12b556066244dcf2af73","revisions":{"8ee8f57a434ee42c5daa12b556066244dcf2af73":{"kind":"REWORK","_number":1,"created":"2023-08-03 16:47:50.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/41/890441/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/41/890441/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/41/890441/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/41/890441/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/41/890441/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/41/890441/1"}}},"commit":{"parents":[{"commit":"88fc0c2cf6269dd2d3f8620e674851320316f887","subject":"Merge \"cloud: Remove \u0027_object_store_client\u0027\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/88fc0c2cf6269dd2d3f8620e674851320316f887"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2023-08-03 16:36:47.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2023-08-03 16:47:23.000000000","tz":60},"subject":"Stop randomly sorting error lines","message":"Stop randomly sorting error lines\n\nWhen we receive a HTML formatted error page e.g. from Apache, we convert\nthe HTML to plain text that we can output. This conversion effectively\namounts to stripping all the HTML and newline characters from the body\nof the page and then removing duplicated lines. This last step is\nproving problematic. Way back when, we did this the \"dumb\" way, by\nhaving a list to store lines and only adding lines to this list if they\nwere not already present. This changed in change\nI7b46e263a76d84573bdfbbece57b1048764ed939 when we switched to calling\nset() on the generated list. However, sets are unordered which means we\nend up with confusing, nonsensical error message in this case. For\nexample, given the following error page:\n\n  \u003c!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\"\u003e\n  \u003chtml\u003e\u003chead\u003e\n  \u003ctitle\u003e502 Bad Gateway\u003c/title\u003e\n  \u003ch1\u003eBad Gateway\u003c/h1\u003e\n  \u003cp\u003eThe proxy server received an invalid\n  response from an upstream server.\u003cbr /\u003e\n  \u003c/p\u003e\n  \u003cp\u003eAdditionally, a 201 Created\n  error was encountered while trying to use an ErrorDocument to handle the request.\u003c/p\u003e\n  \u003chr\u003e\n  \u003caddress\u003eApache/2.4.52 (Ubuntu) Server at 10.0.110.85 Port 80\u003c/address\u003e\n  \u003c/body\u003e\u003c/html\u003e\n\nWe would expect to see the following:\n\n  502 Bad Gateway: Bad Gateway: The proxy server received an invalid:\n  response from an upstream server.: Additionally, a 201 Created: error\n  was encountered while trying to use an ErrorDocument to handle the\n  request.: Apache/2.4.52 (Ubuntu) Server at 10.0.110.85 Port 80\n\nInstead, we\u0027re getting:\n\n  Apache/2.4.52 (Ubuntu) Server at 10.0.110.85 Port 80: error was\n  encountered while trying to use an ErrorDocument to handle the\n  request.: Additionally, a 201 Created: The proxy server received an\n  invalid: response from an upstream server.: 502 Bad Gateway: Bad\n  Gateway\n\nWhich is total nonsense.\n\nFix this by iterating as we used to, rather than relying on unsorted\nsets.\n\nPS: We also change variable names to keep mypy happy, since we\u0027d like to\nintegrate that soon.\n\nChange-Id: I52c1321e00aff1b2dfeaad2adfd4c02455b6eda7\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/8ee8f57a434ee42c5daa12b556066244dcf2af73"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/8ee8f57a434ee42c5daa12b556066244dcf2af73"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Allow-Post-Review","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Allow-Post-Review","description":"Allow Post Review","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
