)]}'
{"id":"openstack%2Fpython-openstackclient~948586","triplet_id":"openstack%2Fpython-openstackclient~master~Ia7cb1486696410e4da009c5c1652647b9398d7f3","project":"openstack/python-openstackclient","branch":"master","topic":"bug/2110035","attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-02-25 22:38:49.000000000","reason":"A robot voted negatively on a label"},"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-02-25 21:17:12.000000000","reason":"\u003cGERRIT_ACCOUNT_11604\u003e replied on the change","reason_account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}}},"removed_from_attention_set":{},"hashtags":[],"change_id":"Ia7cb1486696410e4da009c5c1652647b9398d7f3","subject":"fix openstack server backup create with --rotate","status":"NEW","created":"2025-04-30 20:22:51.000000000","updated":"2026-02-26 13:46:26.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"c6d19a5f58c9883c1af94b100f64fd6be810a7a1","_number":948586,"virtual_id_number":948586,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-02-25 22:38:49.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}],"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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}],"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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"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"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-04-30 21:40:29.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-02-25 21:17:12.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"}],"messages":[{"id":"6aa67dbafc1715699d004e31a66d11f260b9fbc5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-04-30 20:22:51.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"95458e4473f6be721c857bf246ca69457c33e1b7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-30 21:40:29.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/6ff71184836c417daa35fe0715f56e44\n\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/418762faedc94a328322f25552d5bbde : SUCCESS in 5m 44s (non-voting)\n- osc-tox-py39-tips https://zuul.opendev.org/t/openstack/build/0ba733fa1e8c4b2e8daec92988fd6baf : FAILURE in 5m 03s\n- osc-tox-py312-tips https://zuul.opendev.org/t/openstack/build/ebefb9f135eb491191474d571a5ca345 : FAILURE in 5m 37s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/1339be1d5db646c0b5550ac644e141f2 : FAILURE in 2m 08s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c8be284149654a2aa9cea2843fde87c9 : SUCCESS in 1m 56s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/13526b1d86f24e048e64d2fe3471c3f2 : FAILURE in 3m 59s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/4d0ae6f6b45248d5a56ca258d73a857c : FAILURE in 3m 41s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e88e8416252b4041b167bb739ce0e136 : FAILURE in 6m 08s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ab1a8b07b7474bf0a8639b521fdfdbaf : SUCCESS in 4m 55s\n- osc-build-image https://zuul.opendev.org/t/openstack/build/ae6998164d43416fa9b5c39d22e35361 : SUCCESS in 5m 42s (non-voting)\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/3966808be99040e7aa3a3980c8f8e8f7 : SUCCESS in 54m 36s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/dd8f377c8a524c7597028087c836f72e : SUCCESS in 1h 12m 19s","accounts_in_message":[],"_revision_number":1},{"id":"e39a3bf3dfa8cc98cf708b2ea3be3bda4ea1a44a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-02-25 21:16:50.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":2},{"id":"65fbfe44bf7c3723262bd936e3735a3f86865560","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-25 22:38:49.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/bee204a9f6244a11acf33eb1f4531ec3\n\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/03de32b089b64effb71ce72128bb07d7 : SUCCESS in 6m 36s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/7dee907e95fc4398bb1fcf7d7ee8ccbe : SUCCESS in 4m 46s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/b557fbfeafec4ae88cd693c1b998a677 : SUCCESS in 4m 27s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/5d880007dd4f47aaa4fe3e6f8f25bb50 : SUCCESS in 4m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1f59b3a829214f29b9933c8b79bba4b9 : FAILURE in 4m 20s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/9f6945b9a6a345c4be494da8cfa035cf : SUCCESS in 5m 04s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/162fcddb9be542f8a138735226140cf2 : SUCCESS in 4m 01s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/94ea74d8700f4f83bd8c1937610f4221 : FAILURE in 4m 07s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/08ae831379a845ba9a288ebb52820b76 : SUCCESS in 3m 35s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e5dab2249a094241985447874e40b989 : SUCCESS in 5m 28s\n- osc-build-image https://zuul.opendev.org/t/openstack/build/fb5bdf70fef14fe3ba0887d0972bec7f : FAILURE in 4m 06s (non-voting)\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/de0a7622f3a845c59602e89192fa7d29 : FAILURE in 1h 16m 06s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/63b70d0792db4c4d85c1500b94965b1e : SUCCESS in 1h 04m 14s\n\nWarning:\n  Comments left for invalid file openstackclient/tests/functional/common/test_extension.py\n  Comments left for invalid file openstackclient/tests/functional/common/test_help.py\n  Comments left for invalid file openstackclient/tests/functional/common/test_quota.py\n  Comments left for invalid file openstackclient/tests/functional/compute/v2/test_flavor.py\n  Comments left for invalid file openstackclient/tests/functional/compute/v2/test_server.py\n  Comments left for invalid file openstackclient/tests/functional/identity/v2/common.py\n  Comments left for invalid file openstackclient/tests/functional/identity/v2/test_role.py\n  Comments left for invalid file openstackclient/tests/functional/identity/v3/common.py\n  Comments left for invalid file openstackclient/tests/functional/identity/v3/test_group.py\n  Comments left for invalid file openstackclient/tests/functional/identity/v3/test_project.py\n  Comments left for invalid file openstackclient/tests/functional/identity/v3/test_role.py\n  Comments left for invalid file openstackclient/tests/functional/identity/v3/test_role_assignment.py\n  Comments left for invalid file openstackclient/tests/functional/identity/v3/test_user.py\n  Comments left for invalid file openstackclient/tests/functional/image/base.py\n  Comments left for invalid file openstackclient/tests/functional/image/v1/test_image.py\n  Comments left for invalid file openstackclient/tests/functional/image/v2/test_image.py\n  Comments left for invalid file openstackclient/tests/functional/network/v2/common.py\n  Comments left for invalid file openstackclient/tests/functional/network/v2/test_floating_ip.py\n  Comments left for invalid file openstackclient/tests/functional/network/v2/test_ip_availability.py\n  Comments left for invalid file openstackclient/tests/functional/network/v2/test_network.py\n  Comments left for invalid file openstackclient/tests/functional/network/v2/test_network_meter_rule.py\n  Comments left for invalid file openstackclient/tests/functional/network/v2/test_network_segment.py\n  Comments left for invalid file openstackclient/tests/functional/network/v2/test_port.py\n  Comments left for invalid file openstackclient/tests/functional/network/v2/test_subnet.py\n  Comments left for invalid file openstackclient/tests/functional/object/v1/common.py\n  Comments left for invalid file openstackclient/tests/functional/object/v1/test_container.py\n  Comments left for invalid file openstackclient/tests/functional/object/v1/test_object.py\n  Comments left for invalid file openstackclient/tests/functional/volume/v2/common.py\n  Comments left for invalid file openstackclient/tests/functional/volume/v2/test_volume_snapshot.py\n  Comments left for invalid file openstackclient/tests/functional/volume/v3/common.py\n  Comments left for invalid file openstackclient/tests/functional/volume/v3/test_volume_snapshot.py","accounts_in_message":[],"_revision_number":2},{"id":"7137d15eea9c4ae2ac7ed7d62fe29b031a5b3df6","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-02-26 13:46:24.000000000","message":"Topic server_backup removed","accounts_in_message":[],"_revision_number":2},{"id":"c6d19a5f58c9883c1af94b100f64fd6be810a7a1","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-02-26 13:46:26.000000000","message":"Topic set to bug/2110035","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"e9f82e6caac0785715b96c2db9d6d7eab5c2f070","revisions":{"b6d7582d1b1fd93c2f8cfeecafbcf70c2bfbd883":{"kind":"REWORK","_number":1,"created":"2025-04-30 20:22:51.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/86/948586/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/86/948586/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/86/948586/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/86/948586/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/86/948586/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/86/948586/1"}}},"commit":{"parents":[{"commit":"a49a290a2bbd6d090c186bfecbfa97d168e019b8","subject":"Merge \"Update README\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/a49a290a2bbd6d090c186bfecbfa97d168e019b8"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-04-30 20:18:38.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-04-30 20:22:50.000000000","tz":0},"subject":"[WIP] fix opnestack server backup create","message":"[WIP] fix opnestack server backup create\n\nthe openstack server backup create command calls nova\ncreate backup server action\n\nThe server action requries a name for the backup image to be created\nand it uses that name on future calls to determin which images to\ndelete when --roate is specifed.\n\nThe way that works is teh name most be the same across invocations.\nthe openstack client however assumed the name would be unique\nand looked up the image that was create by name\n\nThat works the first time but on future backup there are multiple images\nwith the same name.\n\nThe fix, simple make the sdk return the image that is created\nthen use that instead of looking it up by name.\n\nDepends-On: https://review.opendev.org/c/openstack/openstacksdk/+/948584\nChange-Id: Ia7cb1486696410e4da009c5c1652647b9398d7f3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/b6d7582d1b1fd93c2f8cfeecafbcf70c2bfbd883"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/b6d7582d1b1fd93c2f8cfeecafbcf70c2bfbd883"}]},"branch":"refs/heads/master"},"e9f82e6caac0785715b96c2db9d6d7eab5c2f070":{"kind":"REWORK","_number":2,"created":"2026-02-25 21:16:50.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/86/948586/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/86/948586/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/86/948586/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/86/948586/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/86/948586/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/86/948586/2"}}},"commit":{"parents":[{"commit":"3c609105586e1189cd758c46d7d2f2a67098e671","subject":"Merge \"trivial: Enable ruff-specific (RUF) rules\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/3c609105586e1189cd758c46d7d2f2a67098e671"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-04-30 20:18:38.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-25 21:16:26.000000000","tz":0},"subject":"fix openstack server backup create with --rotate","message":"fix openstack server backup create with --rotate\n\nThe openstack server backup create command calls the Nova\ncreateBackup server action, which requires a name for the backup\nimage to be created. Nova uses that name on future calls to determine\nwhich images to delete when --rotate is specified.\n\nFor --rotate to work correctly the name must be the same across\ninvocations. The client previously assumed the name would be unique\nand looked up the created image by name. That works the first time\nbut on future backups there are multiple images with the same name,\ncausing the lookup to fail.\n\nThe fix is to use the image object returned directly by the SDK\u0027s\nbackup_server() call (which in turn returns the image from the Nova\nAPI response headers), capturing its ID immediately. We then always\ncall image_client.find_image(image_id) at the end to retrieve a\nfresh, up-to-date image object from Glance before display. This\nmirrors the pattern used by server image create.\n\nThe unit tests are updated to mock backup_server() returning the\nimage object and to remove dead code that set get_image mock return\nvalues (wait_for_status is mocked at the osc_lib level so get_image\nis never invoked in those tests).\n\nA release note is added for bug #2110035.\n\nAssisted-By: claude-code sonnet 4.6\nDepends-On: https://review.opendev.org/c/openstack/openstacksdk/+/948584\nCloses-Bug: #2110035\nChange-Id: Ia7cb1486696410e4da009c5c1652647b9398d7f3\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/e9f82e6caac0785715b96c2db9d6d7eab5c2f070"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/e9f82e6caac0785715b96c2db9d6d7eab5c2f070"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"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":"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":""}}}]}
