)]}'
{"id":"openstack%2Fironic-python-agent~770746","triplet_id":"openstack%2Fironic-python-agent~stable%2Fvictoria~If17d4b4c06df5504987e61a1fde6662e9acd6989","project":"openstack/ironic-python-agent","branch":"stable/victoria","hashtags":[],"change_id":"If17d4b4c06df5504987e61a1fde6662e9acd6989","subject":"Prevent broken partition image UEFI deploys","status":"MERGED","created":"2021-01-14 12:50:11.000000000","updated":"2021-02-11 18:23:41.000000000","submitted":"2021-02-11 18:21:26.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"770746","cherry_pick_of_change":748049,"cherry_pick_of_patch_set":32,"meta_rev_id":"f20c1138f5be2cd5f3a6d763fcc97ca434749581","_number":770746,"virtual_id_number":770746,"owner":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2021-02-11 18:21:25.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"value":0,"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},{"value":0,"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2021-02-11 16:40:13.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"value":0,"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},{"value":2,"date":"2021-02-08 01:31:58.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2021-02-11 16:40:13.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"value":0,"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},{"value":0,"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"value":0,"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},{"value":0,"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"}],"values":{"-1":"Do Not Backport"," 0":"Backport Review Needed","+1":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"}],"reviewers":{"REVIEWER":[{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-01-14 12:50:11.000000000","updated_by":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"reviewer":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"state":"REVIEWER"},{"updated":"2021-01-14 14:52:04.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":"2021-02-08 01:31:58.000000000","updated_by":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"reviewer":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"state":"REVIEWER"},{"updated":"2021-02-11 16:40:13.000000000","updated_by":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"reviewer":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"state":"REVIEWER"}],"messages":[{"id":"a91d8c500f73f70b97c8accaa86011aaf9a6c5a9","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2021-01-14 12:50:11.000000000","message":"Patch Set 1: Cherry Picked from branch master.\n\nThe following files contain Git conflicts:\n* ironic_python_agent/extensions/image.py\n* ironic_python_agent/tests/unit/extensions/test_image.py","accounts_in_message":[],"_revision_number":1},{"id":"0f27f5d8220f2e159261e6cda14cccb6a36b8214","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-01-14 14:52:04.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\n\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c3db900fa66444f58e25dee686f48aaf : FAILURE in 3m 46s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/9c365c10c7e04beda0ff24853a007bce : FAILURE in 4m 29s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/0b0d14f7936848a392da34b646bc250e : FAILURE in 6m 03s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/308308628deb4e878df7c1b89074838b : FAILURE in 3m 51s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/36b468a165784c4ea23375b9e42a5aeb : SUCCESS in 5m 55s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6cd53da3281a4c018e2964875778708e : SUCCESS in 3m 08s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/8b01c49728d84cbcb24a8be64929fcd8 : SUCCESS in 4m 40s\n- ipa-tox-examples https://zuul.opendev.org/t/openstack/build/d54f6c5434a14314b3b03699b195cedc : SUCCESS in 6m 08s\n- ipa-tempest-bios-ipmi-direct-src https://zuul.opendev.org/t/openstack/build/b8208d2336c84f4ab2b8cb4a901e442a : SUCCESS in 1h 42m 44s\n- ipa-tempest-bios-ipmi-iscsi-src https://zuul.opendev.org/t/openstack/build/1998c592a8574913b78a8796b173d55f : SUCCESS in 1h 19m 05s\n- ironic-standalone-ipa-src https://zuul.opendev.org/t/openstack/build/01347a166cd443018c002802a65d33d9 : SUCCESS in 1h 38m 49s (non-voting)\n- metalsmith-integration-ipa-src https://zuul.opendev.org/t/openstack/build/cd49da257452484b9487abb6fab0bcb9 : FAILURE in 1h 24m 45s\n- ironic-python-agent-check-image-tinyipa https://zuul.opendev.org/t/openstack/build/67a7a84466944fdab686cf494895a91a : SUCCESS in 13m 58s (non-voting)\n- ironic-python-agent-check-image-dib-centos8 https://zuul.opendev.org/t/openstack/build/f79b7226b24d46c2b4db72652ebb4818 : SUCCESS in 7m 17s (non-voting)\n- ipa-tempest-ironic-inspector-src https://zuul.opendev.org/t/openstack/build/4db4421e76354133af69a2ba5e8c27a5 : SUCCESS in 1h 45m 37s (non-voting)\n- ipa-tox-bandit https://zuul.opendev.org/t/openstack/build/94ce2f44f07b4bfbb2a36411050a0498 : SUCCESS in 3m 45s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"6907906db122aff906d5c53ae563a58917178fd6","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2021-02-03 14:46:24.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"a2f9db083adad153469c1d70e4a5697fc6fb0d74","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2021-02-03 14:47:17.000000000","message":"Patch Set 2: Workflow-1\n\nmmm something wrong in the rebase","accounts_in_message":[],"_revision_number":2},{"id":"c53be1ae3430bc9e8622b6de43ad6a56cc132b83","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2021-02-03 14:53:44.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"c2a245c6b8060a13b60c872912fee02b6209988d","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2021-02-03 14:56:00.000000000","message":"Patch Set 3: Workflow-1\n\nkeep rebasing wrong, weird","accounts_in_message":[],"_revision_number":3},{"id":"63b4e692938394668f2894c2bc19e619535c9d98","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2021-02-03 15:04:25.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"6cf9693b5fc55610a39314807c0795e7c96c62c9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-03 17:16:47.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f0915b72b3114d80b7d4556e708d5b8a : SUCCESS in 4m 28s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/b4a85717c74f4ae9bd655f17230cf573 : SUCCESS in 4m 48s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/9c5dc65b302648e28c892e79d14e2f1b : SUCCESS in 5m 45s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/28719bb91db343108ec99d7a668e9e71 : SUCCESS in 6m 05s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/17e3d7c2937f4987b6bb7a3d5465e0da : SUCCESS in 6m 10s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/648926e97de24b23ac9666cda731d6c2 : SUCCESS in 3m 24s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/3f7036e8b14245b4b66f3f74f91bde91 : SUCCESS in 3m 45s\n- ipa-tox-examples https://zuul.opendev.org/t/openstack/build/042338dbbefe42ceae3e166c6ee6f795 : SUCCESS in 4m 38s\n- ipa-tempest-bios-ipmi-direct-src https://zuul.opendev.org/t/openstack/build/89fab1d250dc475f922d8a8a9d2251fc : SUCCESS in 1h 17m 39s\n- ipa-tempest-bios-ipmi-iscsi-src https://zuul.opendev.org/t/openstack/build/8d1dce6b54254832b3aa2231464e2100 : SUCCESS in 1h 13m 28s\n- ironic-standalone-ipa-src https://zuul.opendev.org/t/openstack/build/577d711a0f914cc490bbcab929d22f38 : SUCCESS in 1h 16m 55s (non-voting)\n- metalsmith-integration-ipa-src https://zuul.opendev.org/t/openstack/build/6dcba4627898470294996c3f2df401fc : SUCCESS in 1h 11m 01s\n- ironic-python-agent-check-image-tinyipa https://zuul.opendev.org/t/openstack/build/41d1f2c7615f4b3e99180306c791b075 : FAILURE in 5m 38s (non-voting)\n- ironic-python-agent-check-image-dib-centos8 https://zuul.opendev.org/t/openstack/build/9abe6b8d212a41ca90abd97e2673b311 : SUCCESS in 10m 11s (non-voting)\n- ipa-tempest-ironic-inspector-src https://zuul.opendev.org/t/openstack/build/8846c83043f4469dbf33c6a585b511dc : SUCCESS in 1h 59m 28s (non-voting)\n- ipa-tox-bandit https://zuul.opendev.org/t/openstack/build/06d577aa04f94fcc95a70c86765169ac : SUCCESS in 3m 31s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"cf371c02c3ad1cfe8b5fdadd0a7f6362e749c0c4","author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"date":"2021-02-08 01:31:58.000000000","message":"Patch Set 4: Code-Review+2","accounts_in_message":[],"_revision_number":4},{"id":"9469be9ba4ca516c1cfa91c3056332ab93ae01ec","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2021-02-11 16:40:13.000000000","message":"Patch Set 4: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":4},{"id":"a23de538d5a1b217ae88fb530b29b0702ab87ccc","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-11 16:40:27.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"0ae205144a044e2e53a210e591936231a09c1eb2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-11 18:21:25.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/974c61000c894b86a969f818d9c781f1 : SUCCESS in 4m 31s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/23329851165a4c37ba53bdf4d9a99224 : SUCCESS in 4m 40s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/6d12701f073f42c0b4fe03e54f80c085 : SUCCESS in 5m 46s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a554709cdb5a4e4fb3fce413e858921f : SUCCESS in 8m 51s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/29fdd4cd1d194aa58b82e39108bda7f7 : SUCCESS in 4m 22s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/58778454e7de4dc2acd57fbe25842d35 : SUCCESS in 4m 14s\n- ipa-tempest-bios-ipmi-direct-src https://zuul.opendev.org/t/openstack/build/d5682fcb9ab34c8a9a7af51ebc2af51e : SUCCESS in 1h 21m 25s\n- ipa-tempest-bios-ipmi-iscsi-src https://zuul.opendev.org/t/openstack/build/3a3551d24590487aa3563a15f55870b3 : SUCCESS in 1h 17m 06s\n- metalsmith-integration-ipa-src https://zuul.opendev.org/t/openstack/build/5d9cb0f4b5224878b7ffdd5498412ff5 : SUCCESS in 1h 31m 11s","accounts_in_message":[],"_revision_number":4},{"id":"49e7e1c9908c412ae85a347f39497ac74201169d","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-11 18:21:26.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":4},{"id":"f20c1138f5be2cd5f3a6d763fcc97ca434749581","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-02-11 18:23:41.000000000","message":"Patch Set 4:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/91329ffbe32d4f998083a6c17bc1cfdf : SUCCESS in 1m 35s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/39744eb65caf4e72981cbadbfed66c1f : SUCCESS in 1m 37s","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"9961ed629582c73b977b7829c28f60b797e5ce63","revisions":{"506df5319f993f596b69f845edfc75d255e02f9b":{"kind":"REWORK","_number":1,"created":"2021-01-14 12:50:11.000000000","uploader":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"ref":"refs/changes/46/770746/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic-python-agent","ref":"refs/changes/46/770746/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/1"}}},"commit":{"parents":[{"commit":"d9105e4062dfd8f9b5dca3926868890d086744d8","subject":"Fix default disk label with partition images","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/d9105e4062dfd8f9b5dca3926868890d086744d8"}]}],"author":{"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","date":"2020-08-25 23:14:45.000000000","tz":-420},"committer":{"name":"Riccardo Pittau","email":"elfosardo@gmail.com","date":"2021-01-14 12:50:11.000000000","tz":0},"subject":"Prevent broken partition image UEFI deploys","message":"Prevent broken partition image UEFI deploys\n\nPartition images can sometimes contain a /boot folder structure\nevent he assets for EFI booting on that filesystem. Which is a\ngood thing. The conundrum is that Ironic does not handle this\nproperly and potentially replaces the bootloader in this sequence\nsuch that grub2-install is used instead of signed bootloader assets.\n\nAs such, we should be preserving the assets and using them from\na partition image much like we do when we have a wholedisk\nimage and can identify the assets.\n\nNow we will preserve the EFI boot assets, copy them to the new EFI\nboot partition, and call the EFI setup methods to manage the EFI\nnvram.\n\nNote, this change also splits the logic path out that performs the\nend call of the EFI boot manager into a reusable method but does\nnot retool all of the testing as it is intertwined in the\ninstall_grub2 testing.\n\nAlso adds some additional debug logging, as much of the bootloader\ninstallation code has multiple fallback/cleanup points which makes\nit difficult to debug from logs.\n\nStory: 2008070\nTask: 40753\nChange-Id: If17d4b4c06df5504987e61a1fde6662e9acd6989\n(cherry picked from commit f9870d58120a493c40493df6ef22662364138c31)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/506df5319f993f596b69f845edfc75d255e02f9b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/506df5319f993f596b69f845edfc75d255e02f9b"}]},"branch":"refs/heads/stable/victoria"},"49e166b83ab184ac12ded08d605780b8431a6778":{"kind":"REWORK","_number":2,"created":"2021-02-03 14:46:24.000000000","uploader":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"ref":"refs/changes/46/770746/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic-python-agent","ref":"refs/changes/46/770746/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/2"}}},"commit":{"parents":[{"commit":"07cf2c1b7921f37adf0dbf633fd0efed07ddbfd8","subject":"Option to enable bootloader config failure bypass","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/07cf2c1b7921f37adf0dbf633fd0efed07ddbfd8"}]}],"author":{"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","date":"2020-08-25 23:14:45.000000000","tz":-420},"committer":{"name":"Riccardo Pittau","email":"elfosardo@gmail.com","date":"2021-02-03 14:46:13.000000000","tz":60},"subject":"Prevent broken partition image UEFI deploys","message":"Prevent broken partition image UEFI deploys\n\nPartition images can sometimes contain a /boot folder structure\nevent he assets for EFI booting on that filesystem. Which is a\ngood thing. The conundrum is that Ironic does not handle this\nproperly and potentially replaces the bootloader in this sequence\nsuch that grub2-install is used instead of signed bootloader assets.\n\nAs such, we should be preserving the assets and using them from\na partition image much like we do when we have a wholedisk\nimage and can identify the assets.\n\nNow we will preserve the EFI boot assets, copy them to the new EFI\nboot partition, and call the EFI setup methods to manage the EFI\nnvram.\n\nNote, this change also splits the logic path out that performs the\nend call of the EFI boot manager into a reusable method but does\nnot retool all of the testing as it is intertwined in the\ninstall_grub2 testing.\n\nAlso adds some additional debug logging, as much of the bootloader\ninstallation code has multiple fallback/cleanup points which makes\nit difficult to debug from logs.\n\nStory: 2008070\nTask: 40753\nChange-Id: If17d4b4c06df5504987e61a1fde6662e9acd6989\n(cherry picked from commit f9870d58120a493c40493df6ef22662364138c31)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/49e166b83ab184ac12ded08d605780b8431a6778"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/49e166b83ab184ac12ded08d605780b8431a6778"}]},"branch":"refs/heads/stable/victoria"},"828853d31e48471545c0c46fe5a73ae83f5c6cdd":{"kind":"REWORK","_number":3,"created":"2021-02-03 14:53:44.000000000","uploader":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"ref":"refs/changes/46/770746/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic-python-agent","ref":"refs/changes/46/770746/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/3"}}},"commit":{"parents":[{"commit":"07cf2c1b7921f37adf0dbf633fd0efed07ddbfd8","subject":"Option to enable bootloader config failure bypass","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/07cf2c1b7921f37adf0dbf633fd0efed07ddbfd8"}]}],"author":{"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","date":"2020-08-25 23:14:45.000000000","tz":-420},"committer":{"name":"Riccardo Pittau","email":"elfosardo@gmail.com","date":"2021-02-03 14:53:37.000000000","tz":60},"subject":"Prevent broken partition image UEFI deploys","message":"Prevent broken partition image UEFI deploys\n\nPartition images can sometimes contain a /boot folder structure\nevent he assets for EFI booting on that filesystem. Which is a\ngood thing. The conundrum is that Ironic does not handle this\nproperly and potentially replaces the bootloader in this sequence\nsuch that grub2-install is used instead of signed bootloader assets.\n\nAs such, we should be preserving the assets and using them from\na partition image much like we do when we have a wholedisk\nimage and can identify the assets.\n\nNow we will preserve the EFI boot assets, copy them to the new EFI\nboot partition, and call the EFI setup methods to manage the EFI\nnvram.\n\nNote, this change also splits the logic path out that performs the\nend call of the EFI boot manager into a reusable method but does\nnot retool all of the testing as it is intertwined in the\ninstall_grub2 testing.\n\nAlso adds some additional debug logging, as much of the bootloader\ninstallation code has multiple fallback/cleanup points which makes\nit difficult to debug from logs.\n\nStory: 2008070\nTask: 40753\nChange-Id: If17d4b4c06df5504987e61a1fde6662e9acd6989\n(cherry picked from commit f9870d58120a493c40493df6ef22662364138c31)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/828853d31e48471545c0c46fe5a73ae83f5c6cdd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/828853d31e48471545c0c46fe5a73ae83f5c6cdd"}]},"branch":"refs/heads/stable/victoria"},"9961ed629582c73b977b7829c28f60b797e5ce63":{"kind":"REWORK","_number":4,"created":"2021-02-03 15:04:25.000000000","uploader":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"ref":"refs/changes/46/770746/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic-python-agent","ref":"refs/changes/46/770746/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic-python-agent refs/changes/46/770746/4"}}},"commit":{"parents":[{"commit":"07cf2c1b7921f37adf0dbf633fd0efed07ddbfd8","subject":"Option to enable bootloader config failure bypass","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/07cf2c1b7921f37adf0dbf633fd0efed07ddbfd8"}]}],"author":{"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","date":"2020-08-25 23:14:45.000000000","tz":-420},"committer":{"name":"Riccardo Pittau","email":"elfosardo@gmail.com","date":"2021-02-03 15:04:19.000000000","tz":60},"subject":"Prevent broken partition image UEFI deploys","message":"Prevent broken partition image UEFI deploys\n\nPartition images can sometimes contain a /boot folder structure\nevent he assets for EFI booting on that filesystem. Which is a\ngood thing. The conundrum is that Ironic does not handle this\nproperly and potentially replaces the bootloader in this sequence\nsuch that grub2-install is used instead of signed bootloader assets.\n\nAs such, we should be preserving the assets and using them from\na partition image much like we do when we have a wholedisk\nimage and can identify the assets.\n\nNow we will preserve the EFI boot assets, copy them to the new EFI\nboot partition, and call the EFI setup methods to manage the EFI\nnvram.\n\nNote, this change also splits the logic path out that performs the\nend call of the EFI boot manager into a reusable method but does\nnot retool all of the testing as it is intertwined in the\ninstall_grub2 testing.\n\nAlso adds some additional debug logging, as much of the bootloader\ninstallation code has multiple fallback/cleanup points which makes\nit difficult to debug from logs.\n\nStory: 2008070\nTask: 40753\nChange-Id: If17d4b4c06df5504987e61a1fde6662e9acd6989\n(cherry picked from commit f9870d58120a493c40493df6ef22662364138c31)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/9961ed629582c73b977b7829c28f60b797e5ce63"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/9961ed629582c73b977b7829c28f60b797e5ce63"}]},"branch":"refs/heads/stable/victoria"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}},{"label":"Workflow","status":"OK","applied_by":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Workflow\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}}]}
