)]}'
{"id":"openstack%2Ftrove~1007676","triplet_id":"openstack%2Ftrove~master~Iff78c8e1d28e5f8dd1820fe4a7bbc6940828084a","project":"openstack/trove","branch":"master","topic":"drop-pyopenssl","attention_set":{},"removed_from_attention_set":{"36080":{"account":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"last_update":"2026-10-05 09:29:00.000000000","reason":"Change was abandoned"},"39300":{"account":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"last_update":"2026-09-30 05:45:57.000000000","reason":"Change was abandoned"},"7102":{"account":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"last_update":"2026-10-05 09:28:43.000000000","reason":"\u003cGERRIT_ACCOUNT_7102\u003e replied on the change","reason_account":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"}}},"hashtags":[],"change_id":"Iff78c8e1d28e5f8dd1820fe4a7bbc6940828084a","subject":"Use cryptography instead of pyOpenSSL for SSL details","status":"ABANDONED","created":"2026-09-28 09:12:43.000000000","updated":"2026-10-05 09:29:00.000000000","total_comment_count":6,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"9d81777cc27d69d7153ccf66ad9f3dc7708e3260","_number":1007676,"virtual_id_number":1007676,"owner":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-10-01 03:58:23.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":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":{"all":[{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},{"_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},"Backport-Candidate":{"all":[{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"}],"CC":[{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-28 10:18:20.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":"CC"},{"updated":"2026-09-28 11:53:52.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"},{"updated":"2026-09-28 12:27:18.000000000","updated_by":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"reviewer":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"state":"CC"},{"updated":"2026-09-29 06:29:49.000000000","updated_by":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"reviewer":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"state":"REVIEWER"}],"messages":[{"id":"c15c1534bed79c8a384281d60f56c1be4e1b3394","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"date":"2026-09-28 09:12:43.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c88c62f28d5431ea04eb63a7ddeea3a37bfdccc2","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 10:18:20.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/30847f12c13744fb8f0831290c826d7a\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/25bbd7d804624413875c0885493c9596 : SUCCESS in 7m 00s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/593f95ccc21c41bc95d3e355958f15be : SUCCESS in 13m 42s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"b4a419bccc7a61a651aac1a0bb373b2b9a6b82fb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-28 11:53:52.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/28b0473ec1f347a4853cb8cb874b6c28\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/7b87cbd85a81400c89a98d401bc18d7a : SUCCESS in 4m 31s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/451983c8b9bf469bbf4049d967df02c8 : SUCCESS in 7m 23s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/adb52b44bbcf4b43ba293ddcfd79044e : SUCCESS in 5m 15s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/6ae53ef53bbf4150b937ca55099ce8cc : SUCCESS in 3m 33s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/968724080e7149c59112122f628ed7ae : SUCCESS in 6m 25s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2f8e69d003614f359e1c24be26653566 : SUCCESS in 8m 48s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/36312cf1578747099ca6dfab218a6eff : SUCCESS in 6m 52s\n- trove-tempest-ubuntu-base-mysql https://zuul.opendev.org/t/openstack/build/d57bb44a65a24fc194193bce20b8012b : SUCCESS in 35m 24s\n- trove-tempest-ubuntu-backup-mysql https://zuul.opendev.org/t/openstack/build/7942f3187b7542268218a8e353518714 : SUCCESS in 1h 18m 29s (non-voting)\n- trove-tempest-ubuntu-replication-mysql https://zuul.opendev.org/t/openstack/build/07a6578b861b46f99ba199901f8b6611 : SUCCESS in 1h 00m 25s (non-voting)\n- trove-tempest-ubuntu-ssl-mysql https://zuul.opendev.org/t/openstack/build/d51871dd0c094b98985f2ae3257fb4f5 : SUCCESS in 53m 02s\n- trove-tempest-ubuntu-ssl-replication-mysql https://zuul.opendev.org/t/openstack/build/e1427ea76e614d6298211d8c2e55914e : SUCCESS in 1h 09m 29s (non-voting)\n- trove-tempest-cinder-storage-driver-mysql https://zuul.opendev.org/t/openstack/build/34b6f505b94d49a3b1861777e04eac20 : SUCCESS in 1h 12m 15s (non-voting)\n- trove-tempest-ubuntu-base-mariadb https://zuul.opendev.org/t/openstack/build/3b49125a8f3048a49b615bfabd75156b : SUCCESS in 35m 39s\n- trove-tempest-ubuntu-backup-mariadb https://zuul.opendev.org/t/openstack/build/f996eb605e7f408a922bd96582d541c0 : SUCCESS in 1h 11m 50s (non-voting)\n- trove-tempest-ubuntu-replication-mariadb https://zuul.opendev.org/t/openstack/build/f48c11a79c534974acb1e504fd0c9d0a : SUCCESS in 1h 01m 29s (non-voting)\n- trove-tempest-ubuntu-ssl-mariadb https://zuul.opendev.org/t/openstack/build/f564ca6c4e0b4a8aa6e31cf495ea26a1 : SUCCESS in 48m 29s\n- trove-tempest-ubuntu-ssl-replication-mariadb https://zuul.opendev.org/t/openstack/build/44c8443e6f444c3c8e633dea904c8615 : SUCCESS in 57m 34s (non-voting)\n- trove-tempest-cinder-storage-driver-mariadb https://zuul.opendev.org/t/openstack/build/21c7af62e6244414be9cedc227ff9e16 : SUCCESS in 1h 10m 58s (non-voting)\n- trove-tempest-ubuntu-base-postgresql https://zuul.opendev.org/t/openstack/build/e10c7404276140f4b8b69631cc920733 : SUCCESS in 40m 15s\n- trove-tempest-ubuntu-backup-postgresql https://zuul.opendev.org/t/openstack/build/d7a2265ffb0d4484922ad1b31c65c32c : SUCCESS in 1h 03m 00s (non-voting)\n- trove-tempest-ubuntu-ssl-postgresql https://zuul.opendev.org/t/openstack/build/9ccd26f8b71d41cfb18b9db385ad2346 : SUCCESS in 41m 06s\n- trove-tempest-ubuntu-ssl-replication-postgresql https://zuul.opendev.org/t/openstack/build/d8eba73cb5874210a47517462d53e86d : SUCCESS in 54m 12s (non-voting)\n- trove-tempest-ubuntu-replication-postgresql https://zuul.opendev.org/t/openstack/build/a28884ceacdb41a68b4823ec0b541eae : SUCCESS in 52m 33s (non-voting)\n- trove-tempest-cinder-storage-driver-postgresql https://zuul.opendev.org/t/openstack/build/94e1a2cedb8049ca9fa279b61a60eb88 : SUCCESS in 1h 09m 32s (non-voting)\n- trove-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/d78ad261eba043d3b7774ece740046af : SUCCESS in 5m 51s","accounts_in_message":[],"_revision_number":1},{"id":"2c929d0c559eb86bafa9d83f3673c5fff6f58a5f","author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"date":"2026-09-28 12:27:18.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"13cb73b0b4f0abd79b877509af4d8ff205ad3ad8","author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"date":"2026-09-29 07:12:54.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"83874582c2784f40db7a5aaacbd3037ef265817a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 07:29:31.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/86544c2673b14a4aa8ecafcf64f63e1c\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/912f833275bd4c7aadb1097eae979af7 : SUCCESS in 7m 19s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/ca434af5537f415987ade1bbf0f678d9 : SUCCESS in 14m 08s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"d79ed8a779cef08ff7d49fffa4dc0498f54956f9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-29 09:01:35.000000000","message":"Patch Set 1:\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/adc59e15b3494fc8a87627ff578732ba\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/bfd8969c16d24512accaae7140eee2de : SUCCESS in 4m 30s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/eb4354a55e7e4a73a492ff6c5dd684b8 : SUCCESS in 6m 54s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/00900394de6d46709a5c8cc56d654360 : SUCCESS in 5m 00s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/370fb19f86d64182981b83453df838d7 : SUCCESS in 4m 56s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/5a18af7455bf43c1a2d6c4866283255c : SUCCESS in 7m 08s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a7efd235c80f48c9b67563669bc5b5d1 : SUCCESS in 10m 06s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0cbf77c7aef14e1ead4997779b60657d : SUCCESS in 4m 19s\n- trove-tempest-ubuntu-base-mysql https://zuul.opendev.org/t/openstack/build/dfadf346481245079f1475b58540f14e : SUCCESS in 38m 45s\n- trove-tempest-ubuntu-backup-mysql https://zuul.opendev.org/t/openstack/build/77d350b1432e4272a62dc5de68da99f8 : SUCCESS in 1h 26m 21s (non-voting)\n- trove-tempest-ubuntu-replication-mysql https://zuul.opendev.org/t/openstack/build/1c84f65ed8104fb0840e85506cea4f60 : SUCCESS in 1h 04m 28s (non-voting)\n- trove-tempest-ubuntu-ssl-mysql https://zuul.opendev.org/t/openstack/build/0562a02be62441669a75942aefd5ef4a : SUCCESS in 59m 31s\n- trove-tempest-ubuntu-ssl-replication-mysql https://zuul.opendev.org/t/openstack/build/85e903193bd4451da39e09016f0d5468 : SUCCESS in 1h 14m 34s (non-voting)\n- trove-tempest-cinder-storage-driver-mysql https://zuul.opendev.org/t/openstack/build/7ee23bd2226e4a7d87fd93ede7f7160b : SUCCESS in 1h 07m 41s (non-voting)\n- trove-tempest-ubuntu-base-mariadb https://zuul.opendev.org/t/openstack/build/38716ed81ce1414fac6b9adb5293a639 : SUCCESS in 36m 16s\n- trove-tempest-ubuntu-backup-mariadb https://zuul.opendev.org/t/openstack/build/0e28a0846cc7436b89f3d910c20e0266 : SUCCESS in 1h 06m 41s (non-voting)\n- trove-tempest-ubuntu-replication-mariadb https://zuul.opendev.org/t/openstack/build/18939a85b2144f5996d306d1b5d34544 : SUCCESS in 1h 03m 01s (non-voting)\n- trove-tempest-ubuntu-ssl-mariadb https://zuul.opendev.org/t/openstack/build/bc6934877ed749578bdf26582955bcfd : SUCCESS in 52m 23s\n- trove-tempest-ubuntu-ssl-replication-mariadb https://zuul.opendev.org/t/openstack/build/786ebc109ab949e8ad57e1fe21c0e87e : SUCCESS in 1h 04m 53s (non-voting)\n- trove-tempest-cinder-storage-driver-mariadb https://zuul.opendev.org/t/openstack/build/230825eb25bc47a2808b74626642ed81 : SUCCESS in 1h 04m 24s (non-voting)\n- trove-tempest-ubuntu-base-postgresql https://zuul.opendev.org/t/openstack/build/a5678054f13543eaa4f38defb6527c9b : SUCCESS in 36m 53s\n- trove-tempest-ubuntu-backup-postgresql https://zuul.opendev.org/t/openstack/build/ef6d1693952340a38e37e566101e9444 : FAILURE in 22m 26s (non-voting)\n- trove-tempest-ubuntu-ssl-postgresql https://zuul.opendev.org/t/openstack/build/f636121f91f940ee9a074fcff2b0015c : SUCCESS in 43m 20s\n- trove-tempest-ubuntu-ssl-replication-postgresql https://zuul.opendev.org/t/openstack/build/600b7895c051494e9fc33ee64789773e : SUCCESS in 1h 04m 03s (non-voting)\n- trove-tempest-ubuntu-replication-postgresql https://zuul.opendev.org/t/openstack/build/e66ecb38fbcc44b28472a44cb6259833 : SUCCESS in 1h 01m 09s (non-voting)\n- trove-tempest-cinder-storage-driver-postgresql https://zuul.opendev.org/t/openstack/build/c9ded7fc065b426ab14b2ae9dbf3811d : SUCCESS in 54m 44s (non-voting)\n- trove-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/69dcb9b813d94670ab00d7df7b379d27 : SUCCESS in 4m 56s","accounts_in_message":[],"_revision_number":1},{"id":"f8311d0987f2e4ac1da87b6cd5b846e082ee6fb2","author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"date":"2026-09-30 05:45:46.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"336efc2b7fc3897d2a09c2df92e2653d41e0d216","tag":"autogenerated:gerrit:abandon","author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"date":"2026-09-30 05:45:57.000000000","message":"Abandoned\n\nin a favor of 1007836","accounts_in_message":[],"_revision_number":1},{"id":"568d0f7f22951a97cdad79ac3f7f3054c825ccc8","author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"date":"2026-10-01 03:57:49.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"b25f6a4ae14269255da52be0f3f0432991a88127","tag":"autogenerated:gerrit:restore","author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"date":"2026-10-01 03:58:00.000000000","message":"Restored","accounts_in_message":[],"_revision_number":1},{"id":"6d547ff9e8878d4afd0560f76749f1912d5f46ec","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-01 03:58:20.000000000","message":"Patch Set 1:\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.\nWarning:\n  Error merging gerrit/openstack/trove for 1007676,1","accounts_in_message":[],"_revision_number":1},{"id":"3689cd3df225bd196130fecd34c904fc7310ba10","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-01 03:58:23.000000000","message":"Patch Set 1: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.\nWarning:\n  Error merging gerrit/openstack/trove for 1007676,1","accounts_in_message":[],"_revision_number":1},{"id":"c70d0c60bca22dec6c838125639eff60b586d85f","author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"date":"2026-10-01 08:49:37.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"0538ca48bd72192cd064bb231d35bc85401d08df","author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"date":"2026-10-05 09:28:43.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"9d81777cc27d69d7153ccf66ad9f3dc7708e3260","tag":"autogenerated:gerrit:abandon","author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"date":"2026-10-05 09:29:00.000000000","message":"Abandoned\n\npyopenssl got removed already in another changeset.","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"64702cfc84c340d1c1191714313634e995b2e2a9","revisions":{"64702cfc84c340d1c1191714313634e995b2e2a9":{"kind":"REWORK","_number":1,"created":"2026-09-28 09:12:43.000000000","uploader":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"ref":"refs/changes/76/1007676/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/trove","ref":"refs/changes/76/1007676/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/trove refs/changes/76/1007676/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/trove refs/changes/76/1007676/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/trove refs/changes/76/1007676/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/trove refs/changes/76/1007676/1"}}},"commit":{"parents":[{"commit":"9fb744390e479737535e4728d37e7b749861cc79","subject":"Merge \"Fix backup deletion with naive timestamps\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/9fb744390e479737535e4728d37e7b749861cc79"}]}],"author":{"name":"Thomas Bechtold","email":"thomasbechtold@jpberlin.de","date":"2026-09-28 09:12:17.000000000","tz":120},"committer":{"name":"Thomas Bechtold","email":"thomasbechtold@jpberlin.de","date":"2026-09-28 09:12:17.000000000","tz":120},"subject":"Use cryptography instead of pyOpenSSL for SSL details","message":"Use cryptography instead of pyOpenSSL for SSL details\n\nTroveSSL.certificate_details() was the only user of pyOpenSSL. The rest\nof trove.common.ssl already uses cryptography, which is a Trove\nrequirement.\n\nRead the common name, expiry and subject alternative names with\ncryptography instead, and drop pyOpenSSL from the requirements.\n\nThe output of the instance SSL API stays the same:\n\n* cn is the first common name, or None.\n* expire_at is still a naive UTC datetime.\n* SAN entries are formatted the way OpenSSL prints them, including\n  uppercase uncompressed IPv6 addresses and the otherName types OpenSSL\n  knows by name.\n\nThe one intended change: the old code split OpenSSL\u0027s text for the\nwhole extension on commas. DirName entries and values containing a\ncomma, such as URIs, came back as several broken entries. Each SAN is\nnow one entry.\n\nx400Address and ediPartyName SANs, which cryptography cannot parse, now\nmake certificate_details() raise instead of printing\n\"\u003cunsupported\u003e\". An invalid certificate raises ValueError instead of\nOpenSSL.crypto.Error; the only caller catches neither.\n\nAdd unit tests for certificate_details(), which had none.\n\nAssisted-By: Claude Code claude-opus-5-5\nSigned-off-by: Thomas Bechtold \u003cthomasbechtold@jpberlin.de\u003e\nChange-Id: Iff78c8e1d28e5f8dd1820fe4a7bbc6940828084a\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/64702cfc84c340d1c1191714313634e995b2e2a9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/64702cfc84c340d1c1191714313634e995b2e2a9"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Backport-Candidate","description":"Backport candidate status","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":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
