)]}'
{"id":"openstack%2Ftacker~999137","triplet_id":"openstack%2Ftacker~master~I7ce7df2dc1117f89ac86af392ccb0e4c5a063d05","project":"openstack/tacker","branch":"master","topic":"fix-scale-status-update-order","attention_set":{"25701":{"account":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"last_update":"2026-07-29 16:16:48.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I7ce7df2dc1117f89ac86af392ccb0e4c5a063d05","subject":"Save VNF instance before scale is marked as COMPLETED","status":"NEW","created":"2026-07-29 14:16:52.000000000","updated":"2026-07-30 14:21:11.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":"71f7878b4c6ad24d1a4ebc29b28fa5f7fbd93b8f","_number":999137,"virtual_id_number":999137,"owner":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-30 14:21:11.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":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":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}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-29 16:16:48.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":"8cba1732820c4f411c3ae1ba88a4c7722f5cafe8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"date":"2026-07-29 14:16:52.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"154db41b8faad1772e2bbadf612c60d58084a0bb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-29 16:16:48.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/8da9dc052478410eb1fab7887c443a82\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a2ee81893ac845ae98075739ac0f0f85 : FAILURE in 7m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d7360696d14643babf43ebce8ce97e5a : SUCCESS in 5m 16s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1b8a5c4ea4cd47b6a4831c1caef50a4b : FAILURE in 9m 34s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/1549fa3113254378a4653bfe99bb6a0f : FAILURE in 8m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/2a3fbd1b1b3842958fb9bad3fc6f160f : FAILURE in 12m 36s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/212b7f717d2741c3b6616ae578fb93a3 : SUCCESS in 9m 12s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f2d2f3038f46443785a72fcef0f6868b : SUCCESS in 6m 13s\n- tacker-ft-v2-k8s https://zuul.opendev.org/t/openstack/build/9cae0005d2024dcb87e100f5028c5b63 : SUCCESS in 48m 25s\n- tacker-ft-v2-df-userdata-basic-min https://zuul.opendev.org/t/openstack/build/f1a8293ac0a94ea2b9d6a881f47d167c : SUCCESS in 58m 55s\n- tacker-ft-v2-df-userdata-update https://zuul.opendev.org/t/openstack/build/8099e35b105340568ce16cd74d82e3d8 : SUCCESS in 54m 43s\n- tacker-ft-v2-df-userdata-scale https://zuul.opendev.org/t/openstack/build/df556e0624d745a08c95658f23ffe155 : SUCCESS in 38m 39s\n- tacker-ft-v2-df-userdata-ccvp https://zuul.opendev.org/t/openstack/build/e156b839de484cabb04674c99ef4d03f : SUCCESS in 57m 48s\n- tacker-ft-v2-df-userdata-err-handling https://zuul.opendev.org/t/openstack/build/c545ae32fc264fb1a3d4e6dea7f7d3a3 : SUCCESS in 36m 48s\n- tacker-ft-v2-st-userdata-basic https://zuul.opendev.org/t/openstack/build/d22bf3cbff6641eeb1fb862af1b58335 : SUCCESS in 1h 07m 50s\n- tacker-ft-v2-st-userdata-basic-min https://zuul.opendev.org/t/openstack/build/cca115314be94200a5598faa26c40679 : SUCCESS in 46m 29s\n- tacker-ft-v2-st-userdata-ccvp https://zuul.opendev.org/t/openstack/build/8a022dbbdff043c88e9fadc5f2eb4a86 : SUCCESS in 58m 17s\n- tacker-ft-v2-df-userdata-https https://zuul.opendev.org/t/openstack/build/20771c671f0449baa0051d02f8480bc9 : FAILURE in 53m 57s (non-voting)\n- tacker-ft-v2-df-userdata-notification https://zuul.opendev.org/t/openstack/build/fe4828d65fb4426dbc7325db983ea219 : SUCCESS in 1h 02m 52s (non-voting)\n- tacker-ft-v2-terraform https://zuul.opendev.org/t/openstack/build/47a919b3b1244c7d8f159c1ad2e1146f : RETRY_LIMIT in 20m 09s (non-voting)\n- tacker-ft-v1-vnfpkgm https://zuul.opendev.org/t/openstack/build/d67870a081d346df8210348bf03b7bf5 : SUCCESS in 58m 57s\n- tacker-ft-v1-k8s https://zuul.opendev.org/t/openstack/build/2d043a63cbc54db7877faa1481bf424e : FAILURE in 1h 28m 32s\n- tacker-ft-v1-compliance-sol https://zuul.opendev.org/t/openstack/build/5214883c43f64a01910998fe0ba36d5d : FAILURE in 1h 48m 02s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"4787b1db74da66141b2f3698d0b89ee879f76b91","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"date":"2026-07-30 12:01:34.000000000","message":"Patch Set 2: Patch Set 1 was rebased\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"71f7878b4c6ad24d1a4ebc29b28fa5f7fbd93b8f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-30 14:21:11.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d65623b75fab42139cf3976496060cc0\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/cc4f58aa80cb440d9ebbc933e2e8307f : SUCCESS in 8m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b15e3b46dd744b82962707a9ecd0dd87 : SUCCESS in 5m 39s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f63f4efadff04f4d9cda7cc4e61c680d : SUCCESS in 9m 32s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b2ce80e9ae274e6297354c20b716f3e6 : SUCCESS in 10m 23s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/8e5b99436bd2440f94597666dee74f26 : SUCCESS in 15m 01s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/52be8503287f448f8d4bdbc1160960ef : SUCCESS in 7m 08s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/415bb48a589b44bbb6d8290c06a0a1db : SUCCESS in 3m 05s\n- tacker-ft-v2-k8s https://zuul.opendev.org/t/openstack/build/066310b437784e68b68d861eae6e6a53 : SUCCESS in 58m 13s\n- tacker-ft-v2-df-userdata-basic-min https://zuul.opendev.org/t/openstack/build/2ab9bb6be5bf4435aa229a3df3afd974 : SUCCESS in 50m 43s\n- tacker-ft-v2-df-userdata-update https://zuul.opendev.org/t/openstack/build/aade2b4989514ab1a7382e0603961249 : SUCCESS in 45m 32s\n- tacker-ft-v2-df-userdata-scale https://zuul.opendev.org/t/openstack/build/9be1092427af41c19f4886089ebbc368 : SUCCESS in 53m 13s\n- tacker-ft-v2-df-userdata-ccvp https://zuul.opendev.org/t/openstack/build/718812cd8ea04975b97f13d90d44dbae : SUCCESS in 44m 45s\n- tacker-ft-v2-df-userdata-err-handling https://zuul.opendev.org/t/openstack/build/cea384252746423ab03c4fb7b2d7d6b4 : SUCCESS in 58m 39s\n- tacker-ft-v2-st-userdata-basic https://zuul.opendev.org/t/openstack/build/fd18d4183ab84dbdb6fab09db18b4ace : SUCCESS in 1h 01m 04s\n- tacker-ft-v2-st-userdata-basic-min https://zuul.opendev.org/t/openstack/build/62756c4b242a4a2b9f3089c206de2dbb : SUCCESS in 53m 45s\n- tacker-ft-v2-st-userdata-ccvp https://zuul.opendev.org/t/openstack/build/76684ef5e6384d32a9b6490df45e6f1a : SUCCESS in 58m 17s\n- tacker-ft-v2-df-userdata-https https://zuul.opendev.org/t/openstack/build/f22dfbb5e6f541b08552d8ac66b5df5a : FAILURE in 50m 46s (non-voting)\n- tacker-ft-v2-df-userdata-notification https://zuul.opendev.org/t/openstack/build/db197124caf54f639c935150191c258f : SUCCESS in 1h 05m 55s (non-voting)\n- tacker-ft-v2-terraform https://zuul.opendev.org/t/openstack/build/f2b2596574284843adfc3ebdd4b5ee7a : RETRY_LIMIT in 19m 04s (non-voting)\n- tacker-ft-v1-vnfpkgm https://zuul.opendev.org/t/openstack/build/48423532e8bc430b8de520af5e0c330c : SUCCESS in 56m 40s\n- tacker-ft-v1-k8s https://zuul.opendev.org/t/openstack/build/56ef6660e61446ffab9c96f2f7ab3029 : SUCCESS in 1h 15m 03s\n- tacker-ft-v1-compliance-sol https://zuul.opendev.org/t/openstack/build/8faa881c2cee4ed9b3833078b57382f2 : FAILURE in 2h 12m 00s (non-voting)","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"bba3b243d8d045754260434b8e353a151d945f36","revisions":{"8cdcbf0902a742f0234d7fa62e9f487eb9bdbda5":{"kind":"REWORK","_number":1,"created":"2026-07-29 14:16:52.000000000","uploader":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"ref":"refs/changes/37/999137/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/tacker","ref":"refs/changes/37/999137/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/tacker refs/changes/37/999137/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/tacker refs/changes/37/999137/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/tacker refs/changes/37/999137/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/tacker refs/changes/37/999137/1"}}},"commit":{"parents":[{"commit":"f3615fce08fa37af57636b5346cd42df607f3d38","subject":"Merge \"Refactor access to hash object\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/tacker/commit/f3615fce08fa37af57636b5346cd42df607f3d38"}]}],"author":{"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","date":"2026-07-29 12:29:51.000000000","tz":540},"committer":{"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","date":"2026-07-29 12:34:34.000000000","tz":540},"subject":"Save VNF instance before scale is marked as COMPLETED","message":"Save VNF instance before scale is marked as COMPLETED\n\nIn the v1 scale operation, _scale_vnf_post() updated the vnflcm_op_occs\nrecord to COMPLETED and committed it before saving the VNF instance. The\nnew scaleLevel is set on the in-memory object in _scale_resource_update()\nand is persisted only by that vnf_instance.save(), so a client reacting to\nthe COMPLETED state could read the scaleLevel before the scaling.\n\nSave the VNF instance first so that its scaleStatus is already updated once\nthe operation has reached COMPLETED. This is the same order as instantiate,\nwhich updates the VNF instance before reporting COMPLETED. It also avoids\nleaving the operation as COMPLETED when saving the VNF instance fails.\n\nThe window is usually about 50 milliseconds, but it grows when the database\nis slow to respond. Let the functional test wait for scaleStatus to be\nupdated instead of reading it just once, so that it does not depend on how\nfast the two commits follow each other.\n\nCloses-Bug: #2162060\nSigned-off-by: Yasufumi Ogawa \u003cyasufum.o@gmail.com\u003e\nChange-Id: I7ce7df2dc1117f89ac86af392ccb0e4c5a063d05\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/tacker/commit/8cdcbf0902a742f0234d7fa62e9f487eb9bdbda5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/tacker/commit/8cdcbf0902a742f0234d7fa62e9f487eb9bdbda5"}]},"branch":"refs/heads/master"},"bba3b243d8d045754260434b8e353a151d945f36":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-07-30 12:01:34.000000000","uploader":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"ref":"refs/changes/37/999137/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/tacker","ref":"refs/changes/37/999137/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/tacker refs/changes/37/999137/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/tacker refs/changes/37/999137/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/tacker refs/changes/37/999137/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/tacker refs/changes/37/999137/2"}}},"commit":{"parents":[{"commit":"04d16910590999c7c4056c87dd993a614bd0ed87","subject":"Remove enforce_scope override in tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/tacker/commit/04d16910590999c7c4056c87dd993a614bd0ed87"}]}],"author":{"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","date":"2026-07-29 12:29:51.000000000","tz":540},"committer":{"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","date":"2026-07-30 12:01:34.000000000","tz":0},"subject":"Save VNF instance before scale is marked as COMPLETED","message":"Save VNF instance before scale is marked as COMPLETED\n\nIn the v1 scale operation, _scale_vnf_post() updated the vnflcm_op_occs\nrecord to COMPLETED and committed it before saving the VNF instance. The\nnew scaleLevel is set on the in-memory object in _scale_resource_update()\nand is persisted only by that vnf_instance.save(), so a client reacting to\nthe COMPLETED state could read the scaleLevel before the scaling.\n\nSave the VNF instance first so that its scaleStatus is already updated once\nthe operation has reached COMPLETED. This is the same order as instantiate,\nwhich updates the VNF instance before reporting COMPLETED. It also avoids\nleaving the operation as COMPLETED when saving the VNF instance fails.\n\nThe window is usually about 50 milliseconds, but it grows when the database\nis slow to respond. Let the functional test wait for scaleStatus to be\nupdated instead of reading it just once, so that it does not depend on how\nfast the two commits follow each other.\n\nCloses-Bug: #2162060\nSigned-off-by: Yasufumi Ogawa \u003cyasufum.o@gmail.com\u003e\nChange-Id: I7ce7df2dc1117f89ac86af392ccb0e4c5a063d05\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/tacker/commit/bba3b243d8d045754260434b8e353a151d945f36"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/tacker/commit/bba3b243d8d045754260434b8e353a151d945f36"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"base":"f3615fce08fa37af57636b5346cd42df607f3d38","ours":"8cdcbf0902a742f0234d7fa62e9f487eb9bdbda5","theirs":"04d16910590999c7c4056c87dd993a614bd0ed87","merge_strategy":"recursive","contains_conflicts":false}}},"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":""}}}]}
