)]}'
{"id":"openstack%2Fnova~980641","triplet_id":"openstack%2Fnova~master~I5d12d55f7581dc625b1631dd419e9ffe82522340","project":"openstack/nova","branch":"master","topic":"startup-time","attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-07-06 14:25:33.000000000","reason":"Someone else replied on the change"},"14228":{"account":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"last_update":"2026-03-31 19:53:59.000000000","reason":"\u003cGERRIT_ACCOUNT_14228\u003e replied on the change","reason_account":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"}},"4393":{"account":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"last_update":"2026-07-06 09:32:43.000000000","reason":"Vote got outdated and was removed: Code-Review-1"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I5d12d55f7581dc625b1631dd419e9ffe82522340","subject":"perf: add ironic startup performance simulator","status":"NEW","created":"2026-03-15 23:14:35.000000000","updated":"2026-07-15 20:08:48.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":12,"unresolved_comment_count":9,"has_review_started":true,"meta_rev_id":"7f3ccec29868ca8bafb5dbbbf24dd6092e2d92a0","_number":980641,"virtual_id_number":980641,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-13 21:00:25.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":-2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"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":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_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},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]}],"REVIEWER":[{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-03-15 23:38:36.000000000","updated_by":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-03-15 23:59:24.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-03-16 00:38:35.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-03-23 16:39:32.000000000","updated_by":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"reviewer":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"state":"REVIEWER"},{"updated":"2026-03-31 19:53:59.000000000","updated_by":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"reviewer":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"state":"REVIEWER"},{"updated":"2026-07-06 14:25:33.000000000","updated_by":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"reviewer":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"state":"CC"},{"updated":"2026-07-15 20:08:48.000000000","updated_by":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"reviewer":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"state":"CC"}],"messages":[{"id":"60dabc30d18017e10e9a3b739a45e8afd5450f20","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-15 23:14:35.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"49356ffa53b8d75f60c2ecc2014effecb8890d57","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-15 23:30:33.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"f1f464d5a6ce8973aac33afed60ac3366d7a736a","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-03-15 23:38:36.000000000","message":"Patch Set 1:\n\nBuild Failed \n\n* quobyteci:  nova_quobyteci : FAILURE, logs at: https://oscilogs.quobyte.com/logs/I5d12d55f7581dc625b1631dd419e9ffe82522340 .","accounts_in_message":[],"_revision_number":1},{"id":"662950a0c6873bc538536168e048bdfdab10f6d3","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-03-15 23:54:41.000000000","message":"Patch Set 2:\n\nBuild Failed \n\n* quobyteci:  nova_quobyteci : FAILURE, logs at: https://oscilogs.quobyte.com/logs/I5d12d55f7581dc625b1631dd419e9ffe82522340 .","accounts_in_message":[],"_revision_number":2},{"id":"94576b3ad033342d442613fd02105076a125f04b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-15 23:59:24.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/65dedc440628471cab6d480967e49fa9\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/3d0a0f29ca5f4c82b1966874a29072b2 : SUCCESS in 26m 46s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/19b5120a91634ea2884d2c9e7e7becca : SUCCESS in 20m 11s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/8bfa687f141544b2aba30ecdf8007fb4 : FAILURE in 11m 33s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"1e13c35fa64c2f55ed57deda574be6bbadc8d3c3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-16 00:38:35.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/2b12ec6c4d8c43d5a0a828806b225c5c\n\n- build-openstack-api-guide https://zuul.opendev.org/t/openstack/build/9d60b9a52bb94bf19adaffb1de961eaa : SUCCESS in 3m 13s\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/58ca3b7589844870a703fe865d230845 : SUCCESS in 3m 41s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5312c690af2a4d3eabc4306e0629e46a : FAILURE in 20m 05s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/eaa91fa4cd9145b189f294088578c09b : FAILURE in 11m 56s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/9f26bbb907b6467e8818ce701cdbb2a6 : FAILURE in 12m 38s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a951ba63291f43ae842a0ae0a2eeacba : FAILURE in 49m 49s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/855e994b3e8c4319bcfc4e1fb17fa2c7 : SUCCESS in 7m 22s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/bcd27d12a5764a93ba0c9627966b65a6 : SUCCESS in 9m 53s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/27f89f5fdaa7488a84e630c16a12cbf7 : SUCCESS in 9m 15s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/98e35dfddf9343fd8748ea529606ee51 : FAILURE in 8m 25s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/cd85db6e9f5b42a59b680cb4c909ef3e : SUCCESS in 12m 13s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/dd82e482edfe45e08b88a8858afdf9d4 : SUCCESS in 20m 45s\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/36d6761712e743548bb1f26953392faf : FAILURE in 13m 37s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/5c88476393c74f6ba62622e3ab704ea9 : POST_FAILURE in 13m 09s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/b6c4ef207a614f1faa1958f9d9f1f3c2 : SUCCESS in 1h 02m 30s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/864d7ae5949941c2b46ad64c508fc529 : POST_FAILURE in 25m 00s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/7bd3f801baad4d8fb656ff51e67c1804 : FAILURE in 28m 23s\n- nova-next https://zuul.opendev.org/t/openstack/build/36e3cdfd16334c298d46b3e389baa8f4 : POST_FAILURE in 18m 21s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/073b337b01b94fcf8aeac435e36e1559 : POST_FAILURE in 24m 57s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/9499645c485b4ca6a76eec262163ae1c : SUCCESS in 5m 54s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/596210d902f94646bb06862eafd081bf : FAILURE in 25m 42s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/a723e53a9aa34d75aeb65cb88078a43b : FAILURE in 23m 30s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/b32abe8d31d4413689bc1a6ff03587fd : FAILURE in 28m 11s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/1ead817b00b34341b719b1507d73b585 : FAILURE in 15m 36s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/e6eedd46f98d45bfbfc0d9a997f478db : FAILURE in 15m 53s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/efd4345e303241a5a19a5f3a334977ed : FAILURE in 15m 19s (non-voting)\n- nova-tox-py312-threading https://zuul.opendev.org/t/openstack/build/c1c77d31f612405eb04ed746f1e18e53 : SUCCESS in 14m 32s","accounts_in_message":[],"_revision_number":2},{"id":"f02f2457ed6b12256dfa9881c7971ffe768abcf3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-16 10:37:08.000000000","message":"Uploaded patch set 3: Commit message was updated.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"d09e9ff16441a83e8cefb0549f329988b69fcc34","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-16 11:13:05.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2406502c07934de887f479e1248bf132\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/07a8d83795784823832d326b2cc79474 : SUCCESS in 33m 16s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/cd15cbaeda23456fb0e905b9b949d6ce : SUCCESS in 12m 40s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/1a3610a26f0f4e0791571e7e9487214a : FAILURE in 23m 07s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"80238f0cead0942c14e6c180b50c36dda6020923","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-03-16 11:16:01.000000000","message":"Patch Set 3:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I5d12d55f7581dc625b1631dd419e9ffe82522340 .","accounts_in_message":[],"_revision_number":3},{"id":"84f583a97d253158510425040429278d73f13d23","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-16 12:57:58.000000000","message":"Patch Set 3: 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/e8998148f1624e8492e00f423d916077\n\n- build-openstack-api-guide https://zuul.opendev.org/t/openstack/build/2ca6ce92caa14bcdbe18abe4538cd720 : SUCCESS in 6m 18s\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/afbc08bee064429f8d3f70c581f244c7 : SUCCESS in 5m 41s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e52e7e8d08a74597951a224fa1bfc27c : SUCCESS in 1h 08m 11s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/97448211b0604efcad082dd42cde9ce9 : SUCCESS in 2h 01m 42s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/3a3a806fd16b4d32adaea6c5692d91c5 : SUCCESS in 1h 04m 21s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/caa84ebb1bf34cc283900f0be5473804 : FAILURE in 43m 16s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/90401eb0a92d4ec0b4ea46ddeb72eac5 : SUCCESS in 8m 48s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/c5066d8552674f279d6538c0841ba898 : SUCCESS in 15m 42s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4253144d311a4d0fb98de0446dcf7b06 : SUCCESS in 13m 57s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d335b26b0ba040e3954c65d42ff5b818 : FAILURE in 6m 12s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/33f7979ba45e4f9aaa287b4b94f977ff : SUCCESS in 8m 21s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f7fe451e8ffe45628fa298376679e4d8 : SUCCESS in 34m 23s\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/ed1206c03d5045bdbc0820b6e32eb897 : FAILURE in 21m 20s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/d1db13496b7a4e8d86ea85fbec86da36 : SUCCESS in 48m 59s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/f25195c29dd34af8be62ad484233051e : SUCCESS in 1h 04m 30s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/36a2e2726c9a4707a70ed34a612ac24b : SUCCESS in 58m 51s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/56409f8ca96b4666a70ad745c0ccc3d6 : SUCCESS in 1h 32m 33s\n- nova-next https://zuul.opendev.org/t/openstack/build/1fb5c473f0a944eb896080eda8564ec0 : SUCCESS in 2h 14m 39s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/b2f59c64b68d41b5bda8f5b6d65f72d2 : SUCCESS in 51m 14s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/4fb8d9094d6144a98698438f6ed7c10a : SUCCESS in 5m 11s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/8ceb6934716e474b98c3aed27355f5be : FAILURE in 37m 11s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/61befb635b164db08aebbb58376a7a26 : FAILURE in 23m 24s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/593d3c33250b467a9eb02faf2cdc950b : SUCCESS in 1h 24m 28s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e2dde35fe0994eccb3ac82b12f7c0fa2 : SUCCESS in 54m 15s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/d61503655d5246338c6f3b634ab9e71a : SUCCESS in 25m 18s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/83aaf69406a84d03a72dbac99c31d2e6 : SUCCESS in 22m 12s (non-voting)\n- nova-tox-py312-threading https://zuul.opendev.org/t/openstack/build/4030d420b6c645f19acc5b11b196b834 : SUCCESS in 17m 16s","accounts_in_message":[],"_revision_number":3},{"id":"640e5773725a58b3c66ec593951dc3783b82aaf9","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-03-23 16:39:32.000000000","message":"Patch Set 3: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"37dde0dd77f99028762c04af12a4e78b2921180e","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-23 17:00:59.000000000","message":"Patch Set 3: Workflow-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"a6f09865443ee0b0d99ae22b3357f3a30be0d332","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-03-23 17:13:11.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"25c02e0ddb17b3a1fb5d4cde1cecd548e2d853e3","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-23 17:36:18.000000000","message":"Patch Set 3:\n\n(7 comments)","accounts_in_message":[],"_revision_number":3},{"id":"94de14ae82b98652d6d8bc0dc1a17b4a535f981f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-06 09:32:43.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"9fe4e0ea6ee98c55698e5cf10971f76d19da98dd","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-06 09:45:37.000000000","message":"Patch Set 4: Workflow-1","accounts_in_message":[],"_revision_number":4},{"id":"51e85fac6a812a61af59b150cd9e66a140c9d2a9","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-07-06 10:41:10.000000000","message":"Patch Set 4:\n\nBuild Failed \n\n* quobyteci:  nova_quobyteci : FAILURE, logs at: https://oscilogs.quobyte.com/logs/I5d12d55f7581dc625b1631dd419e9ffe82522340 .","accounts_in_message":[],"_revision_number":4},{"id":"10f2b7580520ea88bd76cf52a1e29f6951d158d2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 11:46:56.000000000","message":"Patch Set 4: 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/5bd5f73a791748afbfd0bf978c0b9ab7\n\n- build-openstack-api-guide https://zuul.opendev.org/t/openstack/build/381c09525dc44f528100873b092d5070 : SUCCESS in 5m 23s\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/a98a565cd8364330a99a1e106bf624b1 : SUCCESS in 6m 19s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/58d855ac21e043cbab512e45ead5572a : SUCCESS in 59m 41s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/90457048f2964108a4780cbd45202cb2 : FAILURE in 4m 18s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/48ecc4692b1949e8b41beb2060a13256 : SUCCESS in 12m 39s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/959cf8e7cc6347018f6eb8f4d7663334 : SUCCESS in 14m 23s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a041bb3f20af489a920eaab0f885be16 : SUCCESS in 18m 45s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a73b3f6c40e24266a1ad72782d3744e2 : SUCCESS in 11m 04s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6098e0bf988841888f9e0725fbca4168 : SUCCESS in 5m 05s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/17378fbd82fa47e683b0ce49fdb63b3c : SUCCESS in 5m 05s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/ab98a07956f44a29a7393d8a3a78e377 : SUCCESS in 27m 52s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/d2bd578f2ed2470d8670e37642269bb1 : SUCCESS in 25m 30s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/21dd88fe382f4d25a3f43e01560b9cdb : TIMED_OUT in 2h 01m 15s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/226f0df6eff5488d87371b89a5cc6733 : SUCCESS in 14m 45s\n\nWarning:\n  Comments left for invalid file nova/compute/manager.py","accounts_in_message":[],"_revision_number":4},{"id":"aab636b59c89003ce530ec11d28075a935059741","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 12:43:01.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b84ab695357144f0a6d7548e85fab638\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/6ebc64b593c94ee9bd446b3d2a5cd0bf : SUCCESS in 20m 16s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/067a99f34ab94eb99d4a008683038ff4 : SUCCESS in 22m 02s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/7a1362af4a0c42d9be33e1a3337bcfd7 : SUCCESS in 22m 45s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"b2d310bec0cb856be4e00fe04d34accfa89808d8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-06 12:50:55.000000000","message":"Uploaded patch set 5: Patch Set 4 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"f7f492c5db10a1734f92e351fda8478b082a085f","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-07-06 13:51:48.000000000","message":"Patch Set 5:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I5d12d55f7581dc625b1631dd419e9ffe82522340 .","accounts_in_message":[],"_revision_number":5},{"id":"2b73f447d35baa37213c86b51bf68c3a52e58419","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 14:25:23.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/79cb554a49094d3e91062cd745b27dd3\n\n- build-openstack-api-guide https://zuul.opendev.org/t/openstack/build/92ebb8d41bf24743ad1f6264f0eb7b4c : SUCCESS in 8m 12s\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/47ed8966889241b99d717c371ca7ef79 : SUCCESS in 5m 48s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3966e9cb76da417ca164f33b848321cb : SUCCESS in 1h 28m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/048ba114ec454551b5e3f88df06156cb : SUCCESS in 9m 32s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e9d6b0cb6fd0437db45e1d260e37be49 : SUCCESS in 13m 51s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6cb92a8f7d8c4ee4aa313c97dd6db084 : SUCCESS in 13m 34s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/332ebd8b64d84844842809484c0816f0 : SUCCESS in 21m 52s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fa74a3d6d6fe41eaaeabaa656b6608f4 : SUCCESS in 12m 30s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/643a2b3eeadc4a31a07f092dee2955f0 : SUCCESS in 9m 08s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/fd645b2a1348410f938a53df94866067 : SUCCESS in 4m 53s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/954c2aacd6ef4e34a29855e9d2624526 : SUCCESS in 29m 43s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/44d994858af449c7bd330b5c4a3f2f28 : SUCCESS in 28m 29s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/fc14e467f78943bc803d513189025ce1 : FAILURE in 1h 01m 54s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/af133bdf23a24ac9b404bac67b4b2c8a : SUCCESS in 15m 00s","accounts_in_message":[],"_revision_number":5},{"id":"7cf38138e753578add416bd65f1a55dea9945a6e","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-07-06 14:36:48.000000000","message":"Patch Set 5:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":5},{"id":"65071a73ce920981eb6f7650506e2d2cadb96c77","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 15:58:42.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/538282725d4640df91673841a55e5f6b\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/1299134d89fa4da68618dfb6c54a704f : SUCCESS in 21m 10s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/4694946582a343fab6627552b8bc6bb4 : SUCCESS in 23m 06s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/5dfaccc0315a4065ac84636200d5c676 : SUCCESS in 43m 05s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"7afdbc681878c699948d67271f5224ff10182761","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-13 20:08:39.000000000","message":"Patch Set 6: Patch Set 5 was rebased\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"28c4372fa34190729eb667c185bba3fbea37c3e6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-13 21:00:25.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/33c8a48bdb9749d1955f7fd482b08034\n\n- build-openstack-api-guide https://zuul.opendev.org/t/openstack/build/96b22e53a01249da941f125accadc167 : SUCCESS in 6m 05s\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/f7b1f84e951d461e9e526a9e04ce3ee2 : SUCCESS in 5m 31s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/61cba3c819684f88b4d3e3c8f0da5e6a : SUCCESS in 50m 38s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/63bbf7e916f04b1d94bc260793cdf324 : SUCCESS in 7m 50s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/01988a3320ee4e82be3277d30e6daca6 : SUCCESS in 13m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/ec0a27eeadd24aed9b47d1df7b2e8371 : SUCCESS in 13m 03s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/2f20c0fd66644461808b518ea134d3f3 : SUCCESS in 12m 58s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9f52c47dfcca42eaab666695bb03303a : SUCCESS in 12m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8ed6f6091cd34a1a90f00d734e22ccfd : SUCCESS in 9m 18s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/f90ef599e8374916a942f79b6b6c8e19 : SUCCESS in 3m 37s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/99403bb6b025430c87c6f3ef622c3638 : SUCCESS in 27m 39s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/4320080222034cbfbaff531111deff40 : SUCCESS in 21m 10s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/352f6dd308ad4bb7a582c1cbf7884800 : SUCCESS in 32m 17s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/fe9a7e9d4b924c7f8df4bb9534507b75 : SUCCESS in 10m 24s","accounts_in_message":[],"_revision_number":6},{"id":"95d20ca2fde080e10024a1bdccb5095d977f8e23","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-07-13 21:08:33.000000000","message":"Patch Set 6:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I5d12d55f7581dc625b1631dd419e9ffe82522340 .","accounts_in_message":[],"_revision_number":6},{"id":"266e57a61732e2bbfe5c42cde389ab7c312d6db5","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-13 21:10:29.000000000","message":"Patch Set 6:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d9a613aea0a0419db870f11c90df4438\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/3faaea70cea34abcb919f1241da5b0e2 : SUCCESS in 27m 45s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/44a160d4720c44468fd8adf0859b095d : SUCCESS in 27m 29s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/971bf18503e34c538e49f7099360c9af : SUCCESS in 32m 39s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"46c14bcb472709d47e09259b387cbe3a2c34ed98","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-07-13 21:10:41.000000000","message":"Patch Set 6:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":6},{"id":"7f3ccec29868ca8bafb5dbbbf24dd6092e2d92a0","tag":"autogenerated:sap-openstack-ci~result","author":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"date":"2026-07-15 20:08:48.000000000","message":"Patch Set 6:\n\nIgnore for now: Test failed. Logs on \u003chttp://openstack-ci-logs.global.cloud.sap/openstack-nova-980641-6sc28/index.html\u003e","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"6afab66061f68d5a3e50a2f07e4395c867f3011d","revisions":{"f11b48db74c794f2c1b07909f12bcde1f1e72e09":{"kind":"REWORK","_number":1,"created":"2026-03-15 23:14:35.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/41/980641/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/41/980641/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/41/980641/1"}}},"commit":{"parents":[{"commit":"a804b01b698a2fc4c0d40ffae8e3b46d96010aa3","subject":"Merge \"api: Remove unnecessary action method prefix\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/a804b01b698a2fc4c0d40ffae8e3b46d96010aa3"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-15 21:07:20.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-15 23:14:17.000000000","tz":0},"subject":"[WIP] perf: add ironic startup perf simulator and analysis","message":"[WIP] perf: add ironic startup perf simulator and analysis\n\nAdd a standalone startup performance simulator and accompanying\nanalysis tools for profiling nova-compute startup with the Ironic\n(baremetal) virt driver at scale.\n\nComponents added:\n\n* tools/startup-perf/startup_perf_simulator.py\n  Standalone script that bootstraps a full in-process Nova control\n  plane (conductor + scheduler + API + Placement) and drives\n  compute startup at configurable node counts. Supports\n  pyinstrument flame charts and osprofiler cross-service traces.\n  CLI allows topology YAML files or inline --nodes flags; all\n  topology attributes can be overridden from the CLI.\n\n* tools/startup-perf/topologies/\n  YAML topology files for small (N\u003d20), medium (N\u003d200), large\n  (N\u003d1000) and multi-service ironic scenarios.\n\n* nova/tests/fixtures/ironic.py\n  FakeIronicConnection: in-memory OpenStack SDK baremetal proxy\n  with configurable latency, call logging, and conductor_group/\n  shard filtering. IronicFixture wires it into IronicDriver via\n  MonkeyPatch without touching production code.\n\n* nova/tests/functional/compute/test_startup_performance.py\n  CI regression tests asserting O(N) call-count scaling for\n  driver methods, Placement state correctness, and loose\n  wall-clock time bounds (N\u003c\u003d50).\n\n* startup.md\n  Deep-dive analysis of the startup sequence, six identified\n  bottlenecks (B1-B7), and profile-guided findings from\n  pyinstrument runs at N\u003d20, N\u003d200, N\u003d1000. Key findings:\n  - B2 (serial per-node loop) dominates at all scales: 96% of\n    startup time at N\u003d1000\n  - B6 (ProviderTree deepcopy) confirmed O(N^2) above N\u003d200:\n    per-call cost grows from 25ms to 77ms between N\u003d20 and N\u003d1000\n  - B7 (jsonschema response validation) dominates CPU: \u003e100% of\n    wall-clock when summed across iterations at N\u003d1000, with\n    per-call cost growing 7x due to response payload size growth\n\nGenerated-By: Cursor multiple models\nChange-Id: I5d12d55f7581dc625b1631dd419e9ffe82522340\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/f11b48db74c794f2c1b07909f12bcde1f1e72e09"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/f11b48db74c794f2c1b07909f12bcde1f1e72e09"}]},"branch":"refs/heads/master"},"c1387e611857d8c801734dc321ef5bfadd41e45d":{"kind":"REWORK","_number":2,"created":"2026-03-15 23:30:33.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/41/980641/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/41/980641/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/41/980641/2"}}},"commit":{"parents":[{"commit":"a804b01b698a2fc4c0d40ffae8e3b46d96010aa3","subject":"Merge \"api: Remove unnecessary action method prefix\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/a804b01b698a2fc4c0d40ffae8e3b46d96010aa3"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-15 21:07:20.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-15 23:30:12.000000000","tz":0},"subject":"[WIP] perf: add ironic startup perf simulator and analysis","message":"[WIP] perf: add ironic startup perf simulator and analysis\n\nAdd a standalone startup performance simulator and accompanying\nanalysis tools for profiling nova-compute startup with the Ironic\n(baremetal) virt driver at scale.\n\nComponents added:\n\n* tools/startup-perf/startup_perf_simulator.py\n  Standalone script that bootstraps a full in-process Nova control\n  plane (conductor + scheduler + API + Placement) and drives\n  compute startup at configurable node counts. Supports\n  pyinstrument flame charts and osprofiler cross-service traces.\n  CLI allows topology YAML files or inline --nodes flags; all\n  topology attributes can be overridden from the CLI.\n\n* tools/startup-perf/topologies/\n  YAML topology files for small (N\u003d20), medium (N\u003d200), large\n  (N\u003d1000) and multi-service ironic scenarios.\n\n* nova/tests/fixtures/ironic.py\n  FakeIronicConnection: in-memory OpenStack SDK baremetal proxy\n  with configurable latency, call logging, and conductor_group/\n  shard filtering. IronicFixture wires it into IronicDriver via\n  MonkeyPatch without touching production code.\n\n* nova/tests/functional/compute/test_startup_performance.py\n  CI regression tests asserting O(N) call-count scaling for\n  driver methods, Placement state correctness, and loose\n  wall-clock time bounds (N\u003c\u003d50).\n\n* startup.md\n  Deep-dive analysis of the startup sequence, six identified\n  bottlenecks (B1-B7), and profile-guided findings from\n  pyinstrument runs at N\u003d20, N\u003d200, N\u003d1000. Key findings:\n  - B2 (serial per-node loop) dominates at all scales: 96% of\n    startup time at N\u003d1000\n  - B6 (ProviderTree deepcopy) confirmed O(N^2) above N\u003d200:\n    per-call cost grows from 25ms to 77ms between N\u003d20 and N\u003d1000\n  - B7 (jsonschema response validation) dominates CPU: \u003e100% of\n    wall-clock when summed across iterations at N\u003d1000, with\n    per-call cost growing 7x due to response payload size growth\n\nGenerated-By: Cursor multiple models\nChange-Id: I5d12d55f7581dc625b1631dd419e9ffe82522340\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\nMade-with: Cursor\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/c1387e611857d8c801734dc321ef5bfadd41e45d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/c1387e611857d8c801734dc321ef5bfadd41e45d"}]},"branch":"refs/heads/master"},"3b0a05d7625710fd13857c2f6eb082ca67e92b60":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2026-03-16 10:37:08.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/41/980641/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/41/980641/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/41/980641/3"}}},"commit":{"parents":[{"commit":"a804b01b698a2fc4c0d40ffae8e3b46d96010aa3","subject":"Merge \"api: Remove unnecessary action method prefix\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/a804b01b698a2fc4c0d40ffae8e3b46d96010aa3"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-15 21:07:20.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-16 10:33:10.000000000","tz":0},"subject":"[WIP] perf: add ironic startup perf simulator and analysis","message":"[WIP] perf: add ironic startup perf simulator and analysis\n\nAdd a standalone startup performance simulator and accompanying\nanalysis tools for profiling nova-compute startup with the Ironic\n(baremetal) virt driver at scale.\n\nComponents added:\n\n* tools/startup-perf/startup_perf_simulator.py\n  Standalone script that bootstraps a full in-process Nova control\n  plane (conductor + scheduler + API + Placement) and drives\n  compute startup at configurable node counts. Supports\n  pyinstrument flame charts and osprofiler cross-service traces.\n  CLI allows topology YAML files or inline --nodes flags; all\n  topology attributes can be overridden from the CLI.\n\n* tools/startup-perf/topologies/\n  YAML topology files for small (N\u003d20), medium (N\u003d200), large\n  (N\u003d1000) and multi-service ironic scenarios.\n\n* nova/tests/fixtures/ironic.py\n  FakeIronicConnection: in-memory OpenStack SDK baremetal proxy\n  with configurable latency, call logging, and conductor_group/\n  shard filtering. IronicFixture wires it into IronicDriver via\n  MonkeyPatch without touching production code.\n\n* nova/tests/functional/compute/test_startup_performance.py\n  CI regression tests asserting O(N) call-count scaling for\n  driver methods, Placement state correctness, and loose\n  wall-clock time bounds (N\u003c\u003d50).\n\n* startup.md\n  Deep-dive analysis of the startup sequence, six identified\n  bottlenecks (B1-B7), and profile-guided findings from\n  pyinstrument runs at N\u003d20, N\u003d200, N\u003d1000. Key findings:\n  - B2 (serial per-node loop) dominates at all scales: 96% of\n    startup time at N\u003d1000\n  - B6 (ProviderTree deepcopy) confirmed O(N^2) above N\u003d200:\n    per-call cost grows from 25ms to 77ms between N\u003d20 and N\u003d1000\n  - B7 (jsonschema response validation) dominates CPU: \u003e100% of\n    wall-clock when summed across iterations at N\u003d1000, with\n    per-call cost growing 7x due to response payload size growth\n\nGenerated-By: Cursor multiple models\nChange-Id: I5d12d55f7581dc625b1631dd419e9ffe82522340\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/3b0a05d7625710fd13857c2f6eb082ca67e92b60"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/3b0a05d7625710fd13857c2f6eb082ca67e92b60"}]},"branch":"refs/heads/master"},"4581575457439b72801dba3196ce4c6cb6b0d9b5":{"kind":"REWORK","_number":4,"created":"2026-07-06 09:32:43.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/41/980641/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/41/980641/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/41/980641/4"}}},"commit":{"parents":[{"commit":"82427231e66fbb9c78d343486386cc0a1c0eaa4b","subject":"Parallelize per-node resource updates","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/82427231e66fbb9c78d343486386cc0a1c0eaa4b"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-15 21:07:20.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-07-06 09:30:46.000000000","tz":60},"subject":"perf: add ironic startup performance simulator","message":"perf: add ironic startup performance simulator\n\nAdd a standalone startup performance simulator and accompanying test\ninfrastructure for profiling nova-compute startup with the Ironic\n(baremetal) virt driver at scale.\n\nThe simulator bootstraps an in-process Nova control plane with conductor,\nscheduler, API and Placement services, then starts compute services with\nconfigurable node counts. It supports inline node-count scenarios,\nYAML-defined topologies, configurable fake Ironic API latency, optional\nprofiling backends, and JSON or table output for follow-up analysis.\n\nThe simulator can also override\n[compute]update_resources_max_workers so resource-update behavior can be\nmeasured without editing nova.conf.\n\nAdd FakeIronicConnection and IronicFixture test helpers for wiring a\nconfigurable in-memory OpenStack SDK baremetal proxy into IronicDriver.\nThese fixtures support latency injection, call logging, and conductor-group\nor shard filtering without touching production code.\n\nAdd functional tests that exercise small simulator scenarios, assert\nPlacement state correctness, and verify the simulator keeps driver method\ncall counts linear with the configured node count.\n\nGenerated-By: Cursor multiple models\nChange-Id: I5d12d55f7581dc625b1631dd419e9ffe82522340\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/4581575457439b72801dba3196ce4c6cb6b0d9b5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/4581575457439b72801dba3196ce4c6cb6b0d9b5"}]},"branch":"refs/heads/master"},"112d0395a0b65b4e760c7a51da3640dcf5cfaca7":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2026-07-06 12:50:55.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/41/980641/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/41/980641/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/41/980641/5"}}},"commit":{"parents":[{"commit":"c2806dd895846150edbd2d38363800be89d3f7a6","subject":"Parallelize per-node resource updates","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/c2806dd895846150edbd2d38363800be89d3f7a6"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-15 21:07:20.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-07-06 12:50:21.000000000","tz":60},"subject":"perf: add ironic startup performance simulator","message":"perf: add ironic startup performance simulator\n\nAdd a standalone startup performance simulator and accompanying test\ninfrastructure for profiling nova-compute startup with the Ironic\n(baremetal) virt driver at scale.\n\nThe simulator bootstraps an in-process Nova control plane with conductor,\nscheduler, API and Placement services, then starts compute services with\nconfigurable node counts. It supports inline node-count scenarios,\nYAML-defined topologies, configurable fake Ironic API latency, optional\nprofiling backends, and JSON or table output for follow-up analysis.\n\nThe simulator can also override\n[compute]update_resources_max_workers so resource-update behavior can be\nmeasured without editing nova.conf.\n\nAdd FakeIronicConnection and IronicFixture test helpers for wiring a\nconfigurable in-memory OpenStack SDK baremetal proxy into IronicDriver.\nThese fixtures support latency injection, call logging, and conductor-group\nor shard filtering without touching production code.\n\nAdd functional tests that exercise small simulator scenarios, assert\nPlacement state correctness, and verify the simulator keeps driver method\ncall counts linear with the configured node count.\n\nGenerated-By: Cursor multiple models\nChange-Id: I5d12d55f7581dc625b1631dd419e9ffe82522340\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/112d0395a0b65b4e760c7a51da3640dcf5cfaca7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/112d0395a0b65b4e760c7a51da3640dcf5cfaca7"}]},"branch":"refs/heads/master"},"6afab66061f68d5a3e50a2f07e4395c867f3011d":{"kind":"TRIVIAL_REBASE","_number":6,"created":"2026-07-13 20:08:39.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/41/980641/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/41/980641/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/41/980641/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/41/980641/6"}}},"commit":{"parents":[{"commit":"98f74e88a213ff7f0110b253b2286d3e2c740748","subject":"Parallelize per-node resource updates","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/98f74e88a213ff7f0110b253b2286d3e2c740748"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-15 21:07:20.000000000","tz":0},"committer":{"name":"sean mooney","email":"work@seanmooney.info","date":"2026-07-13 20:08:39.000000000","tz":0},"subject":"perf: add ironic startup performance simulator","message":"perf: add ironic startup performance simulator\n\nAdd a standalone startup performance simulator and accompanying test\ninfrastructure for profiling nova-compute startup with the Ironic\n(baremetal) virt driver at scale.\n\nThe simulator bootstraps an in-process Nova control plane with conductor,\nscheduler, API and Placement services, then starts compute services with\nconfigurable node counts. It supports inline node-count scenarios,\nYAML-defined topologies, configurable fake Ironic API latency, optional\nprofiling backends, and JSON or table output for follow-up analysis.\n\nThe simulator can also override\n[compute]update_resources_max_workers so resource-update behavior can be\nmeasured without editing nova.conf.\n\nAdd FakeIronicConnection and IronicFixture test helpers for wiring a\nconfigurable in-memory OpenStack SDK baremetal proxy into IronicDriver.\nThese fixtures support latency injection, call logging, and conductor-group\nor shard filtering without touching production code.\n\nAdd functional tests that exercise small simulator scenarios, assert\nPlacement state correctness, and verify the simulator keeps driver method\ncall counts linear with the configured node count.\n\nGenerated-By: Cursor multiple models\nChange-Id: I5d12d55f7581dc625b1631dd419e9ffe82522340\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/6afab66061f68d5a3e50a2f07e4395c867f3011d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/6afab66061f68d5a3e50a2f07e4395c867f3011d"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"base":"c2806dd895846150edbd2d38363800be89d3f7a6","ours":"112d0395a0b65b4e760c7a51da3640dcf5cfaca7","theirs":"98f74e88a213ff7f0110b253b2286d3e2c740748","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"},{"label":"Review-Priority","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":"Review-Priority","description":"Review Priority","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":"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":""}}}]}
