)]}'
{".zuul.yaml":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"42ff268ee4e0445813d700b31d7a471c766d637c","unresolved":true,"context_lines":[{"line_number":248,"context_line":"            workarounds:"},{"line_number":249,"context_line":"              # This wa is an improvement on hard reboot that cannot be turned"},{"line_number":250,"context_line":"              # on unconditionally. But we know that ml2/ovs sends plug time"},{"line_number":251,"context_line":"              # events so we can enable this in this ovs job for vnic_type "},{"line_number":252,"context_line":"              # normal"},{"line_number":253,"context_line":"              wait_for_vif_plugged_event_during_hard_reboot:"},{"line_number":254,"context_line":"                - normal"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"4bce4310_b644d1d2","line":251,"updated":"2021-11-02 10:08:11.000000000","message":"nit: the last empty char is unneeded.","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"23f0ca1eee9b233fee8991775076d1fa965a5cfc","unresolved":true,"context_lines":[{"line_number":250,"context_line":"              # on unconditionally. But we know that ml2/ovs sends plug time"},{"line_number":251,"context_line":"              # events so we can enable this in this ovs job for vnic_type"},{"line_number":252,"context_line":"              # normal"},{"line_number":253,"context_line":"              wait_for_vif_plugged_event_during_hard_reboot: normal"},{"line_number":254,"context_line":"          $NOVA_CONF:"},{"line_number":255,"context_line":"            quota:"},{"line_number":256,"context_line":"              # Added in Train."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"ceafbe47_4a49ec70","line":253,"updated":"2021-11-09 09:56:35.000000000","message":"++","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5af0f627f94c36c591603b25eb2fc31c19ccbcaa","unresolved":false,"context_lines":[{"line_number":250,"context_line":"              # on unconditionally. But we know that ml2/ovs sends plug time"},{"line_number":251,"context_line":"              # events so we can enable this in this ovs job for vnic_type"},{"line_number":252,"context_line":"              # normal"},{"line_number":253,"context_line":"              wait_for_vif_plugged_event_during_hard_reboot: normal"},{"line_number":254,"context_line":"          $NOVA_CONF:"},{"line_number":255,"context_line":"            quota:"},{"line_number":256,"context_line":"              # Added in Train."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"84cef551_5e071fe0","line":253,"in_reply_to":"ceafbe47_4a49ec70","updated":"2021-11-09 16:18:17.000000000","message":"Ack","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"}],"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c243ea9102510ef6707572466f47a6a717c5e71","unresolved":true,"context_lines":[{"line_number":18,"context_line":"for this event during new instance spawn."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This logic cannot be enable unconditionally as not all neutron"},{"line_number":21,"context_line":"networking backend sending plug time events to wait for."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Ie904d1513b5cf76d6d5f6877545e8eb378dd5499"},{"line_number":24,"context_line":"Closes-Bug: #1946729"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a6df9e3_e580360e","line":21,"updated":"2021-10-13 07:38:06.000000000","message":"humm, that\u0027s sad. I don\u0027t like to have this kind of workaround option running for a long time and this is then neutron-backend specific.\n\nLooks honestly something like a tribal knowledge: if you\u0027re an operator who\u0027s not seasoned about Neutron backends and the events they provide, you don\u0027t know whether you need to use this option.\n\nCould we have a better way to fix this issue for a longer time ?","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"de1f5da032043414962e30c918927d248ee5c89c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"for this event during new instance spawn."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This logic cannot be enable unconditionally as not all neutron"},{"line_number":21,"context_line":"networking backend sending plug time events to wait for."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Ie904d1513b5cf76d6d5f6877545e8eb378dd5499"},{"line_number":24,"context_line":"Closes-Bug: #1946729"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5ccede1f_a5ecfdbf","line":21,"in_reply_to":"3a6df9e3_e580360e","updated":"2021-10-18 17:12:49.000000000","message":"There is a better way sure. But it need cooperation with Neutron. We will discuss this in the PTG https://etherpad.opendev.org/p/nova-yoga-ptg L120","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f45bb84e4b0cf56c4293c77bd940c5550f04606e","unresolved":true,"context_lines":[{"line_number":21,"context_line":"networking backend sending plug time events to wait for."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Ie904d1513b5cf76d6d5f6877545e8eb378dd5499"},{"line_number":24,"context_line":"Closes-Bug: #1946729"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"4e53fcfe_fa505404","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":1},"updated":"2021-10-12 10:24:02.000000000","message":"bug looks good to me i have triaged it and assigned it to you.","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"de1f5da032043414962e30c918927d248ee5c89c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"networking backend sending plug time events to wait for."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Ie904d1513b5cf76d6d5f6877545e8eb378dd5499"},{"line_number":24,"context_line":"Closes-Bug: #1946729"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"289b0bca_22675519","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":1},"in_reply_to":"4e53fcfe_fa505404","updated":"2021-10-18 17:12:49.000000000","message":"Ack","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"dc0c71fbee7db91dafa730d2051dc9ba5441f36f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"95eada79_d1198bc9","updated":"2021-10-11 13:35:30.000000000","message":"I need to add unit test coverage but this WA works for me locally with ml2/ovn in a devstack https://paste.opendev.org/show/809901/","commit_id":"0a3cf1b00d285875f4421ae434db7683c7a9961f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ed97ed4d0c40d8c0aa57f0ef4e76708720a0d467","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"edaac091_78c5ca8a","in_reply_to":"23fda69e_3d536027","updated":"2021-10-11 15:52:48.000000000","message":"Btw the nova-next run now shows that if the wa flag is enabled then nova waits for the vif-plug at reboot https://zuul.opendev.org/t/openstack/build/940f47fab74249a6826d29e070fa12ba/log/compute1/logs/screen-n-cpu.txt#44284-44306","commit_id":"0a3cf1b00d285875f4421ae434db7683c7a9961f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e633e57cb3d83340bb832079fd6d84273d015b4c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"23fda69e_3d536027","in_reply_to":"7a8720f1_217287f5","updated":"2021-10-11 14:55:12.000000000","message":"/o\\ I wanted to say ml2/ovs damn.","commit_id":"0a3cf1b00d285875f4421ae434db7683c7a9961f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dd08c8d02f4cd0b7931a67f69e7f8544d1278965","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7a8720f1_217287f5","in_reply_to":"95eada79_d1198bc9","updated":"2021-10-11 14:33:33.000000000","message":"am that is od becasue ml2/ovn does not send plug time events currently as far as i am aware so it should fial.\n\ndo you mean it work when its not enabeld with ml2/ovn\n\nneutron were planning to add the ablity to reprot this but i did not think that had merged yet. when the vm is terminated that tap will be removed.\non spwan we then unplug and then plug the vif that shoudl remvoe the ovs configurtion and recreate it. my understandign was that the neutron ml2/ovn dirver was missing the code to detech that in ovn and notify nova of that change.","commit_id":"0a3cf1b00d285875f4421ae434db7683c7a9961f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8d496b66bfbe275a2bbd578ec9b88074130ea6e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"126bae8e_19f759e6","in_reply_to":"edaac091_78c5ca8a","updated":"2021-10-11 16:46:34.000000000","message":"yes that seams to work, we might want to consider waiting for the unplug event too but nice to see this pass the integration tests.","commit_id":"0a3cf1b00d285875f4421ae434db7683c7a9961f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c243ea9102510ef6707572466f47a6a717c5e71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b4cf6f59_a35c3391","updated":"2021-10-13 07:38:06.000000000","message":"I\u0027m OK with this bugfix but I\u0027m afraid to have this workaround option for a long time. I\u0027d prefer to find a better solution for a longer time in this cycle if we could.\n\n-1 just for the relnote missing.","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f45bb84e4b0cf56c4293c77bd940c5550f04606e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ad42dc35_9f1b6dc6","updated":"2021-10-12 10:24:02.000000000","message":"assuming this now passese the unit/func test that were previously failing i think this looks good to me. it is tested via nova next and that passed in the previous run.\nthe mypy issue has been adress so i expect the pep8 job to pass so a providional +1 assuming zull will be green","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"08bc4c7c539104cc417ad5238f4c9f4f222857e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d1097e09_1cd470cb","updated":"2021-10-12 11:02:10.000000000","message":"by the way i dont know if we also whant to have a release not for this or other docs beyond the config option but i think im ok with it as is.  a fixes rel note might","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"39d10ab19bb0b3d55b334cb94a055d771de932c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"eddfd522_e5bdc880","updated":"2021-10-19 17:17:37.000000000","message":"-1 to start (continue?) the discussion.\n\nI guess we\u0027ll talk about this during PTG, but I\u0027m conflicted on this. On the one hand, the precedent we currently have is that Nova decides on its own - based on the VM operation that\u0027s being performed (resize revert, live migration, etc) and the Neutron backend - what kind of event it should wait for. On the other hand, that logic is suuuuuper buggy, so maybe making it operator-defined via config is the better course of action.","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ecb46f81_37bb1d92","updated":"2021-10-20 11:22:09.000000000","message":"Fair enough, I can get behind backporting this as a stop-gap.\n\nA bunch of English language suggestions for the release note and CONF doc, the -1 is for the overly-big-in-scope unit test.\n\nAlso some notes for myself inline to help me follow the eternal_events -\u003e pause logic.","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cfecfb4137d3dd1e36b7ff922574e0d49441ece7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"06928833_9f48eec5","updated":"2021-10-20 10:53:17.000000000","message":"recheck bug 1940812\n\nhttps://zuul.opendev.org/t/openstack/build/51a81d41ec404096ac130b18b60fb94c/log/controller/logs/screen-n-api.txt?severity\u003d0#20625","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a0419b280702569fb047ebe864e46d5f985b2463","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"40d3799f_b795f783","updated":"2021-10-19 08:45:24.000000000","message":"recheck bug 1947687","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f3b97a57_8409708a","in_reply_to":"ecb46f81_37bb1d92","updated":"2021-10-21 17:09:55.000000000","message":"Thanks for fixing up my flaky English. I\u0027ve also reduced the unit test scope.","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e4e0572f7ea96587c6c12fb6d8c45668a060ad6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"82e9a4b9_69049af8","in_reply_to":"eddfd522_e5bdc880","updated":"2021-10-20 10:47:49.000000000","message":"Having a config is a stop-gap solution that is created to be backportable to old stable branches (I might need this on stable/pike internally). I do believe that the good solution, if feasibly, a cooperation between neutron and nova. E.g. when nova does vif.plug it checks with neutron first to see vif-plugged event is expected or not. If expected then nova waits for it. But I don\u0027t think such solution can be done sort term and I\u0027m pretty sure the solution will not be backportable to stable branches. So I\u0027d like to get this merged as a stop-gap and backport it. On master I\u0027m happy to deprecate this option as soon as the \"good\" solution is available as a replacement.","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e61d170bd556f8308cb7913f083fbf7829d458d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e3cc62d7_86db6ae8","updated":"2021-10-21 17:22:53.000000000","message":"Let\u0027s get rid of those out-of-scope asserts in the unit tests, then LGTM.","commit_id":"8ce4954dd987eac01feffcf65a6c8fbf95ef6c51"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e2f807db18068caf590c61a21a439912cb003e76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5a797269_a941c01c","updated":"2021-10-22 07:36:20.000000000","message":"recheck post failure","commit_id":"89aee2a35f8173e0f454dbdb0892d92d19a76af2"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0a569641c953e6d65c8a7cb27fdd373d3263fe2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"63444d18_fa97931e","updated":"2021-10-22 08:10:44.000000000","message":"/o\\ pushed the backport to master :/","commit_id":"dd9d7fc5c648d449909500c3585d2212d689e4fa"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"83e1899f41d989e09684456b13676d7cb045eb1f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"0e9f3397_e05acfe5","updated":"2021-10-25 14:10:59.000000000","message":"Still cool with this, you\u0027ve even made the unit test better between PS5 and 8.","commit_id":"dee914d60910384f2169779607770ec8ea6c58e0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ba39d2aead6840fdcf310dffc43af61e582cc7d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"b84bc2e3_65134ab4","updated":"2021-10-22 09:56:04.000000000","message":"recheck","commit_id":"dee914d60910384f2169779607770ec8ea6c58e0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"211d8e95f3e9f2547f6b2c2cbfb962ed753c36e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3b52b272_7c471cb8","updated":"2021-10-22 12:15:26.000000000","message":"recheck nova-next showed a bunch of unrealted failures I suspect broken infra","commit_id":"dee914d60910384f2169779607770ec8ea6c58e0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cd4f37eb4b0951cb43f1c58ce9b066614b04961a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b0c0782d_bdbb12fb","updated":"2021-10-26 14:00:24.000000000","message":"I verified this in a local env where I have both ml2/ovs and sriov on the same node. I can mix normal and direct/direct-physical ports in the same instance without issue if the config is set to [normal], if it is set to [normal, direct] then sometimes the hard reboot fails with timeout as the sriov agent misses the down-up of the VF during the reboot. I will wait for the CI test result and then I will respin this to fix my local variable naming issue noted inline","commit_id":"d14f3cfaad63b883e3ad513c3e0dc1d6c20a8791"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"20118e02e69adf8c40817c32a629575969e33e89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2e1c3d19_0dff38b3","updated":"2021-10-26 13:31:49.000000000","message":"ah good/bad timing looks like while i was doing my last review you push an implemetaion of the vnic_type filtering so the config option is now a list of vnic_types to wait for on hard reboot and you have updated nova/next to wait for vnic_type\u003dnormal\n\nso i think that adresses my last open issue with this.","commit_id":"d14f3cfaad63b883e3ad513c3e0dc1d6c20a8791"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c88e7ccfbb522912c7204b712adb6849ea6cbc3e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2b78b700_0ff298a2","updated":"2021-10-26 14:12:54.000000000","message":"doc generation failure is relavant:\n\n2021-10-26 13:53:04.956155 | ubuntu-focal | /home/zuul/src/opendev.org/openstack/nova/doc/source/configuration/config.rst:12992: WARNING: Unexpected indentation.\n2021-10-26 13:53:04.956259 | ubuntu-focal | /home/zuul/src/opendev.org/openstack/nova/doc/source/configuration/config.rst:13008: WARNING: Inline literal start-string without end-string.\n2021-10-26 13:53:04.956329 | ubuntu-focal | /home/zuul/src/opendev.org/openstack/nova/doc/source/configuration/config.rst:13015: WARNING: Inline literal start-string without end-string.\n","commit_id":"d14f3cfaad63b883e3ad513c3e0dc1d6c20a8791"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bdc2c6298e50acc830568de606e2d45cfa2b53cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d79874af_f301ea79","updated":"2021-10-26 13:27:18.000000000","message":"i have no objection or stong opion on boolean vs vnic_type list by the way as long as we can support the mix of sriov and ovs/odl on the same host with this option enabled.\n\nas an aside if we get an enuma form neutron of when then send events\n[bind-time, plug-time, plug-time-unreliable]\n\ni think i actully realise what the plug-time-unreliable sematics should be reading this patch.\n\nif the backedn declares itself as plug-time-unreliable we should wait for events at plug time but not\ntreat the lack of the event as fatal. that woudl mean that if we get the event before teh timeout exires we proceed imideatly and if not we will wait for it to expire then start the vm.\n\nthat will allow operators to tweak the wait time by tweaking the vif_plug_timeout so that it always wait long enouch for there deployment.\n\n\nwe could also have the port that are bind time only just sleep for the same inverval if we wanted too.\n\ni think over all that would be a simple an elegant way to handel the different behaviors longterm once we have that info without impacting the normal spwan/first-boot performance.\n\nthat is just an  aside for how we could impove this in the future and not something i think needs to be part of this patch so once we resolve the vnic_type question i think im good with merging this as is.\n","commit_id":"d14f3cfaad63b883e3ad513c3e0dc1d6c20a8791"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c69ea69cba8df84d1604d13a2c3f00aabd9caa6c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b051bfa6_b14eb9c0","in_reply_to":"2b78b700_0ff298a2","updated":"2021-10-27 09:38:33.000000000","message":"fixed","commit_id":"d14f3cfaad63b883e3ad513c3e0dc1d6c20a8791"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"42ff268ee4e0445813d700b31d7a471c766d637c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"34e0b9db_263124cb","updated":"2021-11-02 10:08:11.000000000","message":"I think we should verify what the operator provides, or only accept some values for the conf option.","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c4162811c7f1ec439af4931bfd11a76da9b57304","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"15cd922a_ff9f4db7","updated":"2021-10-27 11:11:32.000000000","message":"zuul is now happy with the docs indentaion and the reset is the same so im still good with this as written","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"23f0ca1eee9b233fee8991775076d1fa965a5cfc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"6fb3c4bb_319f691a","updated":"2021-11-09 09:56:35.000000000","message":"I don\u0027t wanna hold this change b/c I\u0027d prefer to have a Neutron document so I +2 this.","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"7f0797578d820d4caa539a666a39ea48b067292e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"a894ddf3_df1cea5e","updated":"2021-11-17 12:01:29.000000000","message":"It\u0027s unfortunate that we can\u0027t handle this as a boolean workaround or straight up fix by knowing more about the actual backend being used but your workaround here of limiting this to vnic_type LGTM.","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8839c84180da21b10b62ec9d83f43c035d7ffd96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"42bddb46_d5e72048","updated":"2021-11-05 09:55:40.000000000","message":"Testing in nova-next shows that nova waits for the vif-plugged event now during hard reboot[1]\n\n[1] https://zuul.opendev.org/t/openstack/build/f61b7f2ec0ec44e3a9ff55394914448f/log/compute1/logs/screen-n-cpu.txt#32654-32660","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"42be0304ae5b80e4209843b2a2473f52c6c844d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"a5ffc605_1531384b","updated":"2021-11-18 16:04:24.000000000","message":"recheck is centos 8 steam issue resolved? we have one green run since the last failure.","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f7bf36bc8efa93b82ddbbfe6991f9f6f7727e352","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"764f9c1d_72f94538","updated":"2021-11-17 15:59:55.000000000","message":"recheck something is wrong with metadata?","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"206d8cfae8b3028325be3b0f219068e8c834fec5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"9fe3cf24_68cba312","updated":"2021-11-18 11:51:52.000000000","message":"recheck volume timeout","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"}],"nova/conf/workarounds.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c243ea9102510ef6707572466f47a6a717c5e71","unresolved":true,"context_lines":[{"line_number":300,"context_line":"emulation of an apic to be disabled per host however it is not recommended to"},{"line_number":301,"context_line":"use outside of a CI or developer cloud."},{"line_number":302,"context_line":"\"\"\"),"},{"line_number":303,"context_line":"    cfg.BoolOpt(\u0027wait_for_vif_plugged_event_during_hard_reboot\u0027,"},{"line_number":304,"context_line":"               default\u003dFalse,"},{"line_number":305,"context_line":"               help\u003d\"\"\""},{"line_number":306,"context_line":"The libvirt virt driver implements power on and hard reboot by tearing down"}],"source_content_type":"text/x-python","patch_set":3,"id":"dcf39e4d_62650fd8","line":303,"updated":"2021-10-13 07:38:06.000000000","message":"I\u0027d appreciate a release note describing this fix.","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"de1f5da032043414962e30c918927d248ee5c89c","unresolved":false,"context_lines":[{"line_number":300,"context_line":"emulation of an apic to be disabled per host however it is not recommended to"},{"line_number":301,"context_line":"use outside of a CI or developer cloud."},{"line_number":302,"context_line":"\"\"\"),"},{"line_number":303,"context_line":"    cfg.BoolOpt(\u0027wait_for_vif_plugged_event_during_hard_reboot\u0027,"},{"line_number":304,"context_line":"               default\u003dFalse,"},{"line_number":305,"context_line":"               help\u003d\"\"\""},{"line_number":306,"context_line":"The libvirt virt driver implements power on and hard reboot by tearing down"}],"source_content_type":"text/x-python","patch_set":3,"id":"e2195975_264bd501","line":303,"in_reply_to":"dcf39e4d_62650fd8","updated":"2021-10-18 17:12:49.000000000","message":"Done","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c243ea9102510ef6707572466f47a6a717c5e71","unresolved":true,"context_lines":[{"line_number":317,"context_line":"Please note that not all neutron networking backend sends plug time events"},{"line_number":318,"context_line":"therefore this flag False by default. The ml2/ovs backend is known to send plug"},{"line_number":319,"context_line":"time events so it is safe to set this flag to True if you are using that"},{"line_number":320,"context_line":"backend."},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"Related options:"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"8b8804eb_e43dac3d","line":320,"updated":"2021-10-13 07:38:06.000000000","message":"OK, hopefully you say if you use the ml2/ovs backend, you have to use this option.","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"de1f5da032043414962e30c918927d248ee5c89c","unresolved":true,"context_lines":[{"line_number":317,"context_line":"Please note that not all neutron networking backend sends plug time events"},{"line_number":318,"context_line":"therefore this flag False by default. The ml2/ovs backend is known to send plug"},{"line_number":319,"context_line":"time events so it is safe to set this flag to True if you are using that"},{"line_number":320,"context_line":"backend."},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"Related options:"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fdd108bc_0eae9b20","line":320,"in_reply_to":"4cc7fd97_4d999ab7","updated":"2021-10-18 17:12:49.000000000","message":"Agree with Sean.\n\nDownstream we hit the reliability issue when 50 computes was restarted at the same time and then every VM was restarted on those 50 computes (\u003e500 VMs). It caused that ODL got overloaded and slowed down, causing that VMs started without the networking backend was set up and the DHCP requests was lost.","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"508b8c9242719f4719a0e7e090033028b80c7850","unresolved":true,"context_lines":[{"line_number":317,"context_line":"Please note that not all neutron networking backend sends plug time events"},{"line_number":318,"context_line":"therefore this flag False by default. The ml2/ovs backend is known to send plug"},{"line_number":319,"context_line":"time events so it is safe to set this flag to True if you are using that"},{"line_number":320,"context_line":"backend."},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"Related options:"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"4cc7fd97_4d999ab7","line":320,"in_reply_to":"8b8804eb_e43dac3d","updated":"2021-10-13 16:30:29.000000000","message":"you do not have too. but you can to have better reliability.\nthis is only really needed when neutron takes a long time to wire up the network.\n\nwe proably shoudl do this by default howver we cant enable it today by default as a number of backend dont send the event during a reboot or dont send it reliable.","commit_id":"1c22c4815e7496d806eb22bc15573ff99fe8aa73"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":305,"context_line":"               help\u003d\"\"\""},{"line_number":306,"context_line":"The libvirt virt driver implements power on and hard reboot by tearing down"},{"line_number":307,"context_line":"every vif of the instance being rebooted then plug them again. By default nova"},{"line_number":308,"context_line":"does not wait for network-vif-plugged event from neutron before let the"},{"line_number":309,"context_line":"instance run. This can cause that the instance requests the IP via DHCP before"},{"line_number":310,"context_line":"the neutron backend has a chance to set up the networking backend after the vif"},{"line_number":311,"context_line":"plug."}],"source_content_type":"text/x-python","patch_set":4,"id":"5d0516c7_fb9ad9a5","line":308,"range":{"start_line":308,"start_character":64,"end_line":308,"end_character":67},"updated":"2021-10-20 11:22:09.000000000","message":"\"it lets\"","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":305,"context_line":"               help\u003d\"\"\""},{"line_number":306,"context_line":"The libvirt virt driver implements power on and hard reboot by tearing down"},{"line_number":307,"context_line":"every vif of the instance being rebooted then plug them again. By default nova"},{"line_number":308,"context_line":"does not wait for network-vif-plugged event from neutron before let the"},{"line_number":309,"context_line":"instance run. This can cause that the instance requests the IP via DHCP before"},{"line_number":310,"context_line":"the neutron backend has a chance to set up the networking backend after the vif"},{"line_number":311,"context_line":"plug."}],"source_content_type":"text/x-python","patch_set":4,"id":"97776f75_a380651d","line":308,"range":{"start_line":308,"start_character":64,"end_line":308,"end_character":67},"in_reply_to":"5d0516c7_fb9ad9a5","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":306,"context_line":"The libvirt virt driver implements power on and hard reboot by tearing down"},{"line_number":307,"context_line":"every vif of the instance being rebooted then plug them again. By default nova"},{"line_number":308,"context_line":"does not wait for network-vif-plugged event from neutron before let the"},{"line_number":309,"context_line":"instance run. This can cause that the instance requests the IP via DHCP before"},{"line_number":310,"context_line":"the neutron backend has a chance to set up the networking backend after the vif"},{"line_number":311,"context_line":"plug."},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"228ef237_134cc108","line":309,"range":{"start_line":309,"start_character":29,"end_line":309,"end_character":62},"updated":"2021-10-20 11:22:09.000000000","message":"\"the instance to request an IP\"","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":306,"context_line":"The libvirt virt driver implements power on and hard reboot by tearing down"},{"line_number":307,"context_line":"every vif of the instance being rebooted then plug them again. By default nova"},{"line_number":308,"context_line":"does not wait for network-vif-plugged event from neutron before let the"},{"line_number":309,"context_line":"instance run. This can cause that the instance requests the IP via DHCP before"},{"line_number":310,"context_line":"the neutron backend has a chance to set up the networking backend after the vif"},{"line_number":311,"context_line":"plug."},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d277efa4_30c7b50b","line":309,"range":{"start_line":309,"start_character":29,"end_line":309,"end_character":62},"in_reply_to":"228ef237_134cc108","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":310,"context_line":"the neutron backend has a chance to set up the networking backend after the vif"},{"line_number":311,"context_line":"plug."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"By setting this flag to True nova will wait for network-vif-plugged event for"},{"line_number":314,"context_line":"each vif of the instance before unpause the instance. Similarly how it is done"},{"line_number":315,"context_line":"during new instance creation."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"Please note that not all neutron networking backend sends plug time events"},{"line_number":318,"context_line":"therefore this flag False by default. The ml2/ovs backend is known to send plug"}],"source_content_type":"text/x-python","patch_set":4,"id":"c0966d79_9ffa9fb8","line":315,"range":{"start_line":313,"start_character":0,"end_line":315,"end_character":29},"updated":"2021-10-20 11:22:09.000000000","message":"\"Setting this flag to True makes Nova wait for a network-vif-plugged event for each of the instance\u0027s vifs before unpausing the instance, similar to how new instance creation works.\"","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":310,"context_line":"the neutron backend has a chance to set up the networking backend after the vif"},{"line_number":311,"context_line":"plug."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"By setting this flag to True nova will wait for network-vif-plugged event for"},{"line_number":314,"context_line":"each vif of the instance before unpause the instance. Similarly how it is done"},{"line_number":315,"context_line":"during new instance creation."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"Please note that not all neutron networking backend sends plug time events"},{"line_number":318,"context_line":"therefore this flag False by default. The ml2/ovs backend is known to send plug"}],"source_content_type":"text/x-python","patch_set":4,"id":"66857576_13bb3190","line":315,"range":{"start_line":313,"start_character":0,"end_line":315,"end_character":29},"in_reply_to":"c0966d79_9ffa9fb8","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":314,"context_line":"each vif of the instance before unpause the instance. Similarly how it is done"},{"line_number":315,"context_line":"during new instance creation."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"Please note that not all neutron networking backend sends plug time events"},{"line_number":318,"context_line":"therefore this flag False by default. The ml2/ovs backend is known to send plug"},{"line_number":319,"context_line":"time events so it is safe to set this flag to True if you are using that"},{"line_number":320,"context_line":"backend."}],"source_content_type":"text/x-python","patch_set":4,"id":"f2dab45c_fbb07f13","line":317,"range":{"start_line":317,"start_character":44,"end_line":317,"end_character":51},"updated":"2021-10-20 11:22:09.000000000","message":"\"backends\u0027","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":314,"context_line":"each vif of the instance before unpause the instance. Similarly how it is done"},{"line_number":315,"context_line":"during new instance creation."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"Please note that not all neutron networking backend sends plug time events"},{"line_number":318,"context_line":"therefore this flag False by default. The ml2/ovs backend is known to send plug"},{"line_number":319,"context_line":"time events so it is safe to set this flag to True if you are using that"},{"line_number":320,"context_line":"backend."}],"source_content_type":"text/x-python","patch_set":4,"id":"e5a4b91e_a57c505d","line":317,"range":{"start_line":317,"start_character":68,"end_line":317,"end_character":74},"updated":"2021-10-20 11:22:09.000000000","message":"\"events,\" [added the comma]","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":314,"context_line":"each vif of the instance before unpause the instance. Similarly how it is done"},{"line_number":315,"context_line":"during new instance creation."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"Please note that not all neutron networking backend sends plug time events"},{"line_number":318,"context_line":"therefore this flag False by default. The ml2/ovs backend is known to send plug"},{"line_number":319,"context_line":"time events so it is safe to set this flag to True if you are using that"},{"line_number":320,"context_line":"backend."}],"source_content_type":"text/x-python","patch_set":4,"id":"5ca19ce7_5e29431f","line":317,"range":{"start_line":317,"start_character":68,"end_line":317,"end_character":74},"in_reply_to":"e5a4b91e_a57c505d","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":314,"context_line":"each vif of the instance before unpause the instance. Similarly how it is done"},{"line_number":315,"context_line":"during new instance creation."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"Please note that not all neutron networking backend sends plug time events"},{"line_number":318,"context_line":"therefore this flag False by default. The ml2/ovs backend is known to send plug"},{"line_number":319,"context_line":"time events so it is safe to set this flag to True if you are using that"},{"line_number":320,"context_line":"backend."}],"source_content_type":"text/x-python","patch_set":4,"id":"43d95c80_b2059633","line":317,"range":{"start_line":317,"start_character":44,"end_line":317,"end_character":51},"in_reply_to":"f2dab45c_fbb07f13","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"42ff268ee4e0445813d700b31d7a471c766d637c","unresolved":true,"context_lines":[{"line_number":301,"context_line":"use outside of a CI or developer cloud."},{"line_number":302,"context_line":"\"\"\"),"},{"line_number":303,"context_line":"    cfg.ListOpt(\u0027wait_for_vif_plugged_event_during_hard_reboot\u0027,"},{"line_number":304,"context_line":"                default\u003d[],"},{"line_number":305,"context_line":"                help\u003d\"\"\""},{"line_number":306,"context_line":"The libvirt virt driver implements power on and hard reboot by tearing down"},{"line_number":307,"context_line":"every vif of the instance being rebooted then plug them again. By default nova"}],"source_content_type":"text/x-python","patch_set":10,"id":"6d08ed6a_ecde98a1","line":304,"updated":"2021-11-02 10:08:11.000000000","message":"is there a good reason why you haven\u0027t provided a \u0027choices\u0027 param for all the vnic types ?\nI guess because of backports ?","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"888485daa1688fc730521c87955e4ed5dc5396cf","unresolved":false,"context_lines":[{"line_number":301,"context_line":"use outside of a CI or developer cloud."},{"line_number":302,"context_line":"\"\"\"),"},{"line_number":303,"context_line":"    cfg.ListOpt(\u0027wait_for_vif_plugged_event_during_hard_reboot\u0027,"},{"line_number":304,"context_line":"                default\u003d[],"},{"line_number":305,"context_line":"                help\u003d\"\"\""},{"line_number":306,"context_line":"The libvirt virt driver implements power on and hard reboot by tearing down"},{"line_number":307,"context_line":"every vif of the instance being rebooted then plug them again. By default nova"}],"source_content_type":"text/x-python","patch_set":10,"id":"9983b519_80aa3fc3","line":304,"in_reply_to":"6d08ed6a_ecde98a1","updated":"2021-11-04 15:31:27.000000000","message":"I can add choices here to validate the input, I have to be carefully backport it and remove invalid values as I\u0027m moving backward in time.","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"42ff268ee4e0445813d700b31d7a471c766d637c","unresolved":true,"context_lines":[{"line_number":336,"context_line":"for ports with ``normal`` ``vnic_type`` so it is safe to add ``normal`` to this"},{"line_number":337,"context_line":"config if you are using only those backends in the compute host."},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"The neutron in tree SRIOV backed does not reliably send network-vif-plugged"},{"line_number":340,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":341,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":342,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"}],"source_content_type":"text/x-python","patch_set":10,"id":"dbbb74e8_f1a2d078","line":339,"range":{"start_line":339,"start_character":26,"end_line":339,"end_character":32},"updated":"2021-11-02 10:08:11.000000000","message":"nit: backend","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"42ff268ee4e0445813d700b31d7a471c766d637c","unresolved":true,"context_lines":[{"line_number":336,"context_line":"for ports with ``normal`` ``vnic_type`` so it is safe to add ``normal`` to this"},{"line_number":337,"context_line":"config if you are using only those backends in the compute host."},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"The neutron in tree SRIOV backed does not reliably send network-vif-plugged"},{"line_number":340,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":341,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":342,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"}],"source_content_type":"text/x-python","patch_set":10,"id":"9fc9dcd9_4f8eee6a","line":339,"range":{"start_line":339,"start_character":12,"end_line":339,"end_character":19},"updated":"2021-11-02 10:08:11.000000000","message":"nit: in-tree","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"888485daa1688fc730521c87955e4ed5dc5396cf","unresolved":false,"context_lines":[{"line_number":336,"context_line":"for ports with ``normal`` ``vnic_type`` so it is safe to add ``normal`` to this"},{"line_number":337,"context_line":"config if you are using only those backends in the compute host."},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"The neutron in tree SRIOV backed does not reliably send network-vif-plugged"},{"line_number":340,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":341,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":342,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"}],"source_content_type":"text/x-python","patch_set":10,"id":"d0465eec_cbabc1b1","line":339,"range":{"start_line":339,"start_character":12,"end_line":339,"end_character":19},"in_reply_to":"9fc9dcd9_4f8eee6a","updated":"2021-11-04 15:31:27.000000000","message":"Done","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"888485daa1688fc730521c87955e4ed5dc5396cf","unresolved":false,"context_lines":[{"line_number":336,"context_line":"for ports with ``normal`` ``vnic_type`` so it is safe to add ``normal`` to this"},{"line_number":337,"context_line":"config if you are using only those backends in the compute host."},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"The neutron in tree SRIOV backed does not reliably send network-vif-plugged"},{"line_number":340,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":341,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":342,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"}],"source_content_type":"text/x-python","patch_set":10,"id":"0c2fe586_0bf43aa6","line":339,"range":{"start_line":339,"start_character":26,"end_line":339,"end_character":32},"in_reply_to":"dbbb74e8_f1a2d078","updated":"2021-11-04 15:31:27.000000000","message":"Done","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"42ff268ee4e0445813d700b31d7a471c766d637c","unresolved":true,"context_lines":[{"line_number":339,"context_line":"The neutron in tree SRIOV backed does not reliably send network-vif-plugged"},{"line_number":340,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":341,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":342,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"},{"line_number":343,"context_line":"backend."},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"Related options:"},{"line_number":346,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f1a45b8_5d51eed8","line":343,"range":{"start_line":342,"start_character":39,"end_line":343,"end_character":8},"updated":"2021-11-02 10:08:11.000000000","message":"I\u0027d prefer to ask to consult the Neutron documentation...","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"23f0ca1eee9b233fee8991775076d1fa965a5cfc","unresolved":true,"context_lines":[{"line_number":339,"context_line":"The neutron in tree SRIOV backed does not reliably send network-vif-plugged"},{"line_number":340,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":341,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":342,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"},{"line_number":343,"context_line":"backend."},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"Related options:"},{"line_number":346,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"e1318d9f_ad67ccca","line":343,"range":{"start_line":342,"start_character":39,"end_line":343,"end_character":8},"in_reply_to":"283b71eb_6fa5c8ca","updated":"2021-11-09 09:56:35.000000000","message":"I know, but someone from the Neutron team said during the PTG session he would help.","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"888485daa1688fc730521c87955e4ed5dc5396cf","unresolved":true,"context_lines":[{"line_number":339,"context_line":"The neutron in tree SRIOV backed does not reliably send network-vif-plugged"},{"line_number":340,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":341,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":342,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"},{"line_number":343,"context_line":"backend."},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"Related options:"},{"line_number":346,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"283b71eb_6fa5c8ca","line":343,"range":{"start_line":342,"start_character":39,"end_line":343,"end_character":8},"in_reply_to":"9f1a45b8_5d51eed8","updated":"2021-11-04 15:31:27.000000000","message":"Unfortunately today there is no such documentation in Neutron that describes which networking backend sends which event during plugtime.","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5af0f627f94c36c591603b25eb2fc31c19ccbcaa","unresolved":false,"context_lines":[{"line_number":339,"context_line":"The neutron in tree SRIOV backed does not reliably send network-vif-plugged"},{"line_number":340,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":341,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":342,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"},{"line_number":343,"context_line":"backend."},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"Related options:"},{"line_number":346,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"29833b6f_4449c2e9","line":343,"range":{"start_line":342,"start_character":39,"end_line":343,"end_character":8},"in_reply_to":"e1318d9f_ad67ccca","updated":"2021-11-09 16:18:17.000000000","message":"Yepp ralonso promised during the PTG. I definitely don\u0027t want to wait for it with this patch. I\u0027m happy to create a follow up patch to amend the reno and the config doc when such neutron doc becomes awailable.","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"23f0ca1eee9b233fee8991775076d1fa965a5cfc","unresolved":true,"context_lines":[{"line_number":313,"context_line":"                        \"vdpa\","},{"line_number":314,"context_line":"                        \"accelerator-direct\","},{"line_number":315,"context_line":"                        \"accelerator-direct-physical\","},{"line_number":316,"context_line":"                    ]),"},{"line_number":317,"context_line":"                default\u003d[],"},{"line_number":318,"context_line":"                help\u003d\"\"\""},{"line_number":319,"context_line":"The libvirt virt driver implements power on and hard reboot by tearing down"}],"source_content_type":"text/x-python","patch_set":11,"id":"154aac38_dca8831c","line":316,"updated":"2021-11-09 09:56:35.000000000","message":"thanks !","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5af0f627f94c36c591603b25eb2fc31c19ccbcaa","unresolved":false,"context_lines":[{"line_number":313,"context_line":"                        \"vdpa\","},{"line_number":314,"context_line":"                        \"accelerator-direct\","},{"line_number":315,"context_line":"                        \"accelerator-direct-physical\","},{"line_number":316,"context_line":"                    ]),"},{"line_number":317,"context_line":"                default\u003d[],"},{"line_number":318,"context_line":"                help\u003d\"\"\""},{"line_number":319,"context_line":"The libvirt virt driver implements power on and hard reboot by tearing down"}],"source_content_type":"text/x-python","patch_set":11,"id":"f142e08a_b8cfc7e1","line":316,"in_reply_to":"154aac38_dca8831c","updated":"2021-11-09 16:18:17.000000000","message":"Ack","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"23f0ca1eee9b233fee8991775076d1fa965a5cfc","unresolved":true,"context_lines":[{"line_number":352,"context_line":"The neutron in-tree SRIOV backend does not reliably send network-vif-plugged"},{"line_number":353,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":354,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":355,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"},{"line_number":356,"context_line":"backend."},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"Related options:"},{"line_number":359,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1128dd1f_8b2d6169","line":356,"range":{"start_line":355,"start_character":39,"end_line":356,"end_character":8},"updated":"2021-11-09 09:56:35.000000000","message":"as I said in PS11, we could ask the Neutron contributors to provide the documentation, as they already accepted it during our cross-project PTG session","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5af0f627f94c36c591603b25eb2fc31c19ccbcaa","unresolved":false,"context_lines":[{"line_number":352,"context_line":"The neutron in-tree SRIOV backend does not reliably send network-vif-plugged"},{"line_number":353,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":354,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":355,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"},{"line_number":356,"context_line":"backend."},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"Related options:"},{"line_number":359,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1d1e54a4_1fe0361e","line":356,"range":{"start_line":355,"start_character":39,"end_line":356,"end_character":8},"in_reply_to":"1128dd1f_8b2d6169","updated":"2021-11-09 16:18:17.000000000","message":"Ack","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"7f0797578d820d4caa539a666a39ea48b067292e","unresolved":false,"context_lines":[{"line_number":352,"context_line":"The neutron in-tree SRIOV backend does not reliably send network-vif-plugged"},{"line_number":353,"context_line":"event during plug time for ports with  ``direct`` vnic_type and never sends"},{"line_number":354,"context_line":"that event for port with ``direct-physical`` vnic_type during plug time. For"},{"line_number":355,"context_line":"other ``vnic_type`` and backend pairs, please consult the developers of the"},{"line_number":356,"context_line":"backend."},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"Related options:"},{"line_number":359,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"131d8eb7_9bfaf4ad","line":356,"range":{"start_line":355,"start_character":39,"end_line":356,"end_character":8},"in_reply_to":"1d1e54a4_1fe0361e","updated":"2021-11-17 12:01:29.000000000","message":"Yeah a fup pointing to some eventual documentation from the Neutron folks here would be appreciated.","commit_id":"68c970ea9915a95f9828239006559b84e4ba2581"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e61d170bd556f8308cb7913f083fbf7829d458d4","unresolved":true,"context_lines":[{"line_number":16264,"context_line":"            network_info, mock.ANY, mock.ANY,"},{"line_number":16265,"context_line":"            block_device_info\u003dblock_device_info, mdevs\u003d[],"},{"line_number":16266,"context_line":"            accel_info\u003daccel_info)"},{"line_number":16267,"context_line":"        mock_create_guest_with_network.assert_called_once_with("},{"line_number":16268,"context_line":"            self.context, mock.sentinel.xml, instance, network_info,"},{"line_number":16269,"context_line":"            block_device_info,"},{"line_number":16270,"context_line":"            vifs_already_plugged\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":5,"id":"6c09585e_b2cbcfe2","line":16267,"updated":"2021-10-21 17:22:53.000000000","message":"We really only care about this assert, we can drop the previous 3 as not withing the scope of what you\u0027re trying to unit test.","commit_id":"8ce4954dd987eac01feffcf65a6c8fbf95ef6c51"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"73671342518bdc8bccd210f4abb033c056bb83e1","unresolved":false,"context_lines":[{"line_number":16264,"context_line":"            network_info, mock.ANY, mock.ANY,"},{"line_number":16265,"context_line":"            block_device_info\u003dblock_device_info, mdevs\u003d[],"},{"line_number":16266,"context_line":"            accel_info\u003daccel_info)"},{"line_number":16267,"context_line":"        mock_create_guest_with_network.assert_called_once_with("},{"line_number":16268,"context_line":"            self.context, mock.sentinel.xml, instance, network_info,"},{"line_number":16269,"context_line":"            block_device_info,"},{"line_number":16270,"context_line":"            vifs_already_plugged\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5c4f3f49_75dca84d","line":16267,"in_reply_to":"6c09585e_b2cbcfe2","updated":"2021-10-21 17:31:06.000000000","message":"Done","commit_id":"8ce4954dd987eac01feffcf65a6c8fbf95ef6c51"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6a4f1fbd8b4527f2f4aa1b160e48f60d29566363","unresolved":true,"context_lines":[{"line_number":3831,"context_line":"            # https://bugs.launchpad.net/neutron/+bug/1821058 first in Neutron"},{"line_number":3832,"context_line":"            # then create a driver -\u003e plug-time event mapping in nova."},{"line_number":3833,"context_line":"            external_events \u003d ["},{"line_number":3834,"context_line":"                (\u0027network-vif-plugged\u0027, vif[\u0027id\u0027]) for vif in network_info]"},{"line_number":3835,"context_line":"            vifs_already_plugged \u003d False"},{"line_number":3836,"context_line":""},{"line_number":3837,"context_line":"        # NOTE(efried): The instance should already have a vtpm_secret_uuid"}],"source_content_type":"text/x-python","patch_set":2,"id":"6e426d0e_fab0fca7","line":3834,"range":{"start_line":3834,"start_character":18,"end_line":3834,"end_character":49},"updated":"2021-10-11 16:47:55.000000000","message":"as noted in the top level comment we could also wait for the unplug event.\nwe normally dont  do that but it would get rid fo the unexpect vif unplugged event warning.","commit_id":"0a3cf1b00d285875f4421ae434db7683c7a9961f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"32d4c80b09107b4ce61a3bffb5883e58b39eebca","unresolved":true,"context_lines":[{"line_number":3831,"context_line":"            # https://bugs.launchpad.net/neutron/+bug/1821058 first in Neutron"},{"line_number":3832,"context_line":"            # then create a driver -\u003e plug-time event mapping in nova."},{"line_number":3833,"context_line":"            external_events \u003d ["},{"line_number":3834,"context_line":"                (\u0027network-vif-plugged\u0027, vif[\u0027id\u0027]) for vif in network_info]"},{"line_number":3835,"context_line":"            vifs_already_plugged \u003d False"},{"line_number":3836,"context_line":""},{"line_number":3837,"context_line":"        # NOTE(efried): The instance should already have a vtpm_secret_uuid"}],"source_content_type":"text/x-python","patch_set":2,"id":"abd081a1_5ee162c3","line":3834,"range":{"start_line":3834,"start_character":18,"end_line":3834,"end_character":49},"in_reply_to":"6e426d0e_fab0fca7","updated":"2021-10-12 10:32:56.000000000","message":"Nova never waits for the unplug event. Technically we can wait for it during hard_reboot. However then we need two separate workaround config flags as networking-odl only sends plug events but not unplug events during unplug/plug. See the limitation here [1]. \n\nAlso I think waiting for the plug is enough if we can assume that the networking backend does not have a race between unplug and plug. (and I do assume that :D)\n\n[1] https://opendev.org/openstack/networking-odl/src/branch/master/networking_odl/ml2/port_status_update.py#L89-L90","commit_id":"0a3cf1b00d285875f4421ae434db7683c7a9961f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"08bc4c7c539104cc417ad5238f4c9f4f222857e6","unresolved":true,"context_lines":[{"line_number":3831,"context_line":"            # https://bugs.launchpad.net/neutron/+bug/1821058 first in Neutron"},{"line_number":3832,"context_line":"            # then create a driver -\u003e plug-time event mapping in nova."},{"line_number":3833,"context_line":"            external_events \u003d ["},{"line_number":3834,"context_line":"                (\u0027network-vif-plugged\u0027, vif[\u0027id\u0027]) for vif in network_info]"},{"line_number":3835,"context_line":"            vifs_already_plugged \u003d False"},{"line_number":3836,"context_line":""},{"line_number":3837,"context_line":"        # NOTE(efried): The instance should already have a vtpm_secret_uuid"}],"source_content_type":"text/x-python","patch_set":2,"id":"e3300800_8f9032fe","line":3834,"range":{"start_line":3834,"start_character":18,"end_line":3834,"end_character":49},"in_reply_to":"abd081a1_5ee162c3","updated":"2021-10-12 11:02:10.000000000","message":"ack, i wonder if we shoudl add a log filter to just ignore unplug events at some point but ya thats fair im more or less happy with this as it is now assuming the ci is clean. a second config option is not really required.","commit_id":"0a3cf1b00d285875f4421ae434db7683c7a9961f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f8aa498ecd38f4e6c340616daa6fb24ef7e9a17f","unresolved":false,"context_lines":[{"line_number":3831,"context_line":"            # https://bugs.launchpad.net/neutron/+bug/1821058 first in Neutron"},{"line_number":3832,"context_line":"            # then create a driver -\u003e plug-time event mapping in nova."},{"line_number":3833,"context_line":"            external_events \u003d ["},{"line_number":3834,"context_line":"                (\u0027network-vif-plugged\u0027, vif[\u0027id\u0027]) for vif in network_info]"},{"line_number":3835,"context_line":"            vifs_already_plugged \u003d False"},{"line_number":3836,"context_line":""},{"line_number":3837,"context_line":"        # NOTE(efried): The instance should already have a vtpm_secret_uuid"}],"source_content_type":"text/x-python","patch_set":2,"id":"89fbc126_cbf49854","line":3834,"range":{"start_line":3834,"start_character":18,"end_line":3834,"end_character":49},"in_reply_to":"e3300800_8f9032fe","updated":"2021-10-13 07:07:10.000000000","message":"Ack","commit_id":"0a3cf1b00d285875f4421ae434db7683c7a9961f"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":3821,"context_line":"        # registered if appropriate."},{"line_number":3822,"context_line":"        self._create_guest_with_network("},{"line_number":3823,"context_line":"            context, xml, instance, network_info, block_device_info,"},{"line_number":3824,"context_line":"            vifs_already_plugged\u003dTrue)"},{"line_number":3825,"context_line":""},{"line_number":3826,"context_line":"        def _wait_for_reboot():"},{"line_number":3827,"context_line":"            \"\"\"Called at an interval until the VM is running again.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"9eaeea46_b108b6c3","side":"PARENT","line":3824,"updated":"2021-10-20 11:22:09.000000000","message":"So we used to call this with vifs_already_plugged\u003dTrue...","commit_id":"fdfdba265833d237e22676f9a223ab8ca0fe1e03"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":3821,"context_line":"        # registered if appropriate."},{"line_number":3822,"context_line":"        self._create_guest_with_network("},{"line_number":3823,"context_line":"            context, xml, instance, network_info, block_device_info,"},{"line_number":3824,"context_line":"            vifs_already_plugged\u003dTrue)"},{"line_number":3825,"context_line":""},{"line_number":3826,"context_line":"        def _wait_for_reboot():"},{"line_number":3827,"context_line":"            \"\"\"Called at an interval until the VM is running again.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f4ba6b9_7581f1f4","side":"PARENT","line":3824,"in_reply_to":"9eaeea46_b108b6c3","updated":"2021-10-21 17:09:55.000000000","message":"Ack","commit_id":"fdfdba265833d237e22676f9a223ab8ca0fe1e03"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":3765,"context_line":"        \"\"\""},{"line_number":3766,"context_line":"        # NOTE(sbauza): Since we undefine the guest XML when destroying, we"},{"line_number":3767,"context_line":"        # need to remember the existing mdevs for reusing them."},{"line_number":3768,"context_line":"        mdevs \u003d self._get_all_assigned_mediated_devices(instance)"},{"line_number":3769,"context_line":"        mdevs \u003d list(mdevs.keys())"},{"line_number":3770,"context_line":"        # NOTE(mdbooth): In addition to performing a hard reboot of the domain,"},{"line_number":3771,"context_line":"        # the hard reboot operation is relied upon by operators to be an"}],"source_content_type":"text/x-python","patch_set":4,"id":"00ea1635_c8a45914","line":3768,"updated":"2021-10-20 11:22:09.000000000","message":"I feel like the unit test is too big in scope for its own good...\n\nIf we mock this _get_all_assigned_mediated_devices() call to return a {}...","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":3765,"context_line":"        \"\"\""},{"line_number":3766,"context_line":"        # NOTE(sbauza): Since we undefine the guest XML when destroying, we"},{"line_number":3767,"context_line":"        # need to remember the existing mdevs for reusing them."},{"line_number":3768,"context_line":"        mdevs \u003d self._get_all_assigned_mediated_devices(instance)"},{"line_number":3769,"context_line":"        mdevs \u003d list(mdevs.keys())"},{"line_number":3770,"context_line":"        # NOTE(mdbooth): In addition to performing a hard reboot of the domain,"},{"line_number":3771,"context_line":"        # the hard reboot operation is relied upon by operators to be an"}],"source_content_type":"text/x-python","patch_set":4,"id":"2ec074a7_bc20f2c6","line":3768,"in_reply_to":"00ea1635_c8a45914","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":3774,"context_line":"        # With this goal in mind, we tear down all the aspects of an instance"},{"line_number":3775,"context_line":"        # we can here without losing data. This allows us to re-initialise from"},{"line_number":3776,"context_line":"        # scratch, and hopefully fix, most aspects of a non-functioning guest."},{"line_number":3777,"context_line":"        self.destroy(context, instance, network_info, destroy_disks\u003dFalse,"},{"line_number":3778,"context_line":"                     block_device_info\u003dblock_device_info,"},{"line_number":3779,"context_line":"                     destroy_secrets\u003dFalse)"},{"line_number":3780,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"537ccfec_01f6e89c","line":3777,"updated":"2021-10-20 11:22:09.000000000","message":"And this destroy() call","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":3774,"context_line":"        # With this goal in mind, we tear down all the aspects of an instance"},{"line_number":3775,"context_line":"        # we can here without losing data. This allows us to re-initialise from"},{"line_number":3776,"context_line":"        # scratch, and hopefully fix, most aspects of a non-functioning guest."},{"line_number":3777,"context_line":"        self.destroy(context, instance, network_info, destroy_disks\u003dFalse,"},{"line_number":3778,"context_line":"                     block_device_info\u003dblock_device_info,"},{"line_number":3779,"context_line":"                     destroy_secrets\u003dFalse)"},{"line_number":3780,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9d17d844_7c20f5db","line":3777,"in_reply_to":"537ccfec_01f6e89c","updated":"2021-10-21 17:09:55.000000000","message":"it is mocked already","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":3782,"context_line":"        # NOTE(mdbooth): This is a workaround for stateless Nova compute"},{"line_number":3783,"context_line":"        #                https://bugs.launchpad.net/nova/+bug/1349978"},{"line_number":3784,"context_line":"        instance_dir \u003d libvirt_utils.get_instance_path(instance)"},{"line_number":3785,"context_line":"        fileutils.ensure_tree(instance_dir)"},{"line_number":3786,"context_line":""},{"line_number":3787,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":3788,"context_line":"                                            instance,"}],"source_content_type":"text/x-python","patch_set":4,"id":"a5f0c18f_7f22407c","line":3785,"updated":"2021-10-20 11:22:09.000000000","message":"And these two","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":3782,"context_line":"        # NOTE(mdbooth): This is a workaround for stateless Nova compute"},{"line_number":3783,"context_line":"        #                https://bugs.launchpad.net/nova/+bug/1349978"},{"line_number":3784,"context_line":"        instance_dir \u003d libvirt_utils.get_instance_path(instance)"},{"line_number":3785,"context_line":"        fileutils.ensure_tree(instance_dir)"},{"line_number":3786,"context_line":""},{"line_number":3787,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":3788,"context_line":"                                            instance,"}],"source_content_type":"text/x-python","patch_set":4,"id":"eeedb5fb_7d75c4cb","line":3785,"in_reply_to":"a5f0c18f_7f22407c","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":3784,"context_line":"        instance_dir \u003d libvirt_utils.get_instance_path(instance)"},{"line_number":3785,"context_line":"        fileutils.ensure_tree(instance_dir)"},{"line_number":3786,"context_line":""},{"line_number":3787,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":3788,"context_line":"                                            instance,"},{"line_number":3789,"context_line":"                                            instance.image_meta,"},{"line_number":3790,"context_line":"                                            block_device_info)"}],"source_content_type":"text/x-python","patch_set":4,"id":"6aa56010_5f29d3ba","line":3787,"updated":"2021-10-20 11:22:09.000000000","message":"And this","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":3784,"context_line":"        instance_dir \u003d libvirt_utils.get_instance_path(instance)"},{"line_number":3785,"context_line":"        fileutils.ensure_tree(instance_dir)"},{"line_number":3786,"context_line":""},{"line_number":3787,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":3788,"context_line":"                                            instance,"},{"line_number":3789,"context_line":"                                            instance.image_meta,"},{"line_number":3790,"context_line":"                                            block_device_info)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3950568f_7a685c97","line":3787,"in_reply_to":"6aa56010_5f29d3ba","updated":"2021-10-21 17:09:55.000000000","message":"seem like not effecting the test case complexity","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":3794,"context_line":"        #             regenerate raw backend images, however, so when it"},{"line_number":3795,"context_line":"        #             does we need to (re)generate the xml after the images"},{"line_number":3796,"context_line":"        #             are in place."},{"line_number":3797,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info, disk_info,"},{"line_number":3798,"context_line":"                                  instance.image_meta,"},{"line_number":3799,"context_line":"                                  block_device_info\u003dblock_device_info,"},{"line_number":3800,"context_line":"                                  mdevs\u003dmdevs, accel_info\u003daccel_info)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ada9e120_a9e12db1","line":3797,"updated":"2021-10-20 11:22:09.000000000","message":"And even this","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":3794,"context_line":"        #             regenerate raw backend images, however, so when it"},{"line_number":3795,"context_line":"        #             does we need to (re)generate the xml after the images"},{"line_number":3796,"context_line":"        #             are in place."},{"line_number":3797,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info, disk_info,"},{"line_number":3798,"context_line":"                                  instance.image_meta,"},{"line_number":3799,"context_line":"                                  block_device_info\u003dblock_device_info,"},{"line_number":3800,"context_line":"                                  mdevs\u003dmdevs, accel_info\u003daccel_info)"}],"source_content_type":"text/x-python","patch_set":4,"id":"2243599b_4b3419ee","line":3797,"in_reply_to":"ada9e120_a9e12db1","updated":"2021-10-21 17:09:55.000000000","message":"it is already mocked","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":3801,"context_line":""},{"line_number":3802,"context_line":"        # NOTE(mdbooth): context.auth_token will not be set when we call"},{"line_number":3803,"context_line":"        #                _hard_reboot from resume_state_on_host_boot()"},{"line_number":3804,"context_line":"        if context.auth_token is not None:"},{"line_number":3805,"context_line":"            # NOTE (rmk): Re-populate any missing backing files."},{"line_number":3806,"context_line":"            config \u003d vconfig.LibvirtConfigGuest()"},{"line_number":3807,"context_line":"            config.parse_str(xml)"}],"source_content_type":"text/x-python","patch_set":4,"id":"0d75c6e9_b323e577","line":3804,"updated":"2021-10-20 11:22:09.000000000","message":"And set this to None","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":3801,"context_line":""},{"line_number":3802,"context_line":"        # NOTE(mdbooth): context.auth_token will not be set when we call"},{"line_number":3803,"context_line":"        #                _hard_reboot from resume_state_on_host_boot()"},{"line_number":3804,"context_line":"        if context.auth_token is not None:"},{"line_number":3805,"context_line":"            # NOTE (rmk): Re-populate any missing backing files."},{"line_number":3806,"context_line":"            config \u003d vconfig.LibvirtConfigGuest()"},{"line_number":3807,"context_line":"            config.parse_str(xml)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ea90faf4_0bf1e035","line":3804,"in_reply_to":"0d75c6e9_b323e577","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":3836,"context_line":""},{"line_number":3837,"context_line":"        # NOTE(efried): The instance should already have a vtpm_secret_uuid"},{"line_number":3838,"context_line":"        # registered if appropriate."},{"line_number":3839,"context_line":"        self._create_guest_with_network("},{"line_number":3840,"context_line":"            context, xml, instance, network_info, block_device_info,"},{"line_number":3841,"context_line":"            vifs_already_plugged\u003dvifs_already_plugged,"},{"line_number":3842,"context_line":"            external_events\u003dexternal_events)"}],"source_content_type":"text/x-python","patch_set":4,"id":"c70b6828_b44bb673","line":3839,"updated":"2021-10-20 11:22:09.000000000","message":"And mock this...\n\nAll that remains is to assert we call _create_guest_with_network() with vifs_already_plugged\u003dFalse and a non-None extenal_events if the CONF.workarounds.wait_for_vif_plugged_event_during_hard_reboot was set to True...","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":3836,"context_line":""},{"line_number":3837,"context_line":"        # NOTE(efried): The instance should already have a vtpm_secret_uuid"},{"line_number":3838,"context_line":"        # registered if appropriate."},{"line_number":3839,"context_line":"        self._create_guest_with_network("},{"line_number":3840,"context_line":"            context, xml, instance, network_info, block_device_info,"},{"line_number":3841,"context_line":"            vifs_already_plugged\u003dvifs_already_plugged,"},{"line_number":3842,"context_line":"            external_events\u003dexternal_events)"}],"source_content_type":"text/x-python","patch_set":4,"id":"af6d4109_51a68d0e","line":3839,"in_reply_to":"c70b6828_b44bb673","updated":"2021-10-21 17:09:55.000000000","message":"this is also already mocked.","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":7234,"context_line":"        timeout \u003d CONF.vif_plugging_timeout"},{"line_number":7235,"context_line":"        if ("},{"line_number":7236,"context_line":"            CONF.libvirt.virt_type in (\u0027kvm\u0027, \u0027qemu\u0027) and"},{"line_number":7237,"context_line":"            not vifs_already_plugged and power_on and timeout"},{"line_number":7238,"context_line":"        ):"},{"line_number":7239,"context_line":"            events \u003d (external_events if external_events"},{"line_number":7240,"context_line":"                      else self._get_neutron_events(network_info))"}],"source_content_type":"text/x-python","patch_set":4,"id":"6c619fcf_410b0e0a","line":7237,"updated":"2021-10-20 11:22:09.000000000","message":"... which made `not vifs_already_plugged` False...","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":7234,"context_line":"        timeout \u003d CONF.vif_plugging_timeout"},{"line_number":7235,"context_line":"        if ("},{"line_number":7236,"context_line":"            CONF.libvirt.virt_type in (\u0027kvm\u0027, \u0027qemu\u0027) and"},{"line_number":7237,"context_line":"            not vifs_already_plugged and power_on and timeout"},{"line_number":7238,"context_line":"        ):"},{"line_number":7239,"context_line":"            events \u003d (external_events if external_events"},{"line_number":7240,"context_line":"                      else self._get_neutron_events(network_info))"}],"source_content_type":"text/x-python","patch_set":4,"id":"b59a71cf_30f93d4e","line":7237,"in_reply_to":"6c619fcf_410b0e0a","updated":"2021-10-21 17:09:55.000000000","message":"Ack","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":7239,"context_line":"            events \u003d (external_events if external_events"},{"line_number":7240,"context_line":"                      else self._get_neutron_events(network_info))"},{"line_number":7241,"context_line":"        else:"},{"line_number":7242,"context_line":"            events \u003d []"},{"line_number":7243,"context_line":""},{"line_number":7244,"context_line":"        pause \u003d bool(events)"},{"line_number":7245,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"37aa60dc_ef6ceaca","line":7242,"updated":"2021-10-20 11:22:09.000000000","message":"... so we had no events...","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":7239,"context_line":"            events \u003d (external_events if external_events"},{"line_number":7240,"context_line":"                      else self._get_neutron_events(network_info))"},{"line_number":7241,"context_line":"        else:"},{"line_number":7242,"context_line":"            events \u003d []"},{"line_number":7243,"context_line":""},{"line_number":7244,"context_line":"        pause \u003d bool(events)"},{"line_number":7245,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"8a61e77b_e2679857","line":7242,"in_reply_to":"37aa60dc_ef6ceaca","updated":"2021-10-21 17:09:55.000000000","message":"Ack","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":7241,"context_line":"        else:"},{"line_number":7242,"context_line":"            events \u003d []"},{"line_number":7243,"context_line":""},{"line_number":7244,"context_line":"        pause \u003d bool(events)"},{"line_number":7245,"context_line":"        try:"},{"line_number":7246,"context_line":"            with self.virtapi.wait_for_instance_event("},{"line_number":7247,"context_line":"                instance, events, deadline\u003dtimeout,"}],"source_content_type":"text/x-python","patch_set":4,"id":"6b1c7bb8_cee65548","line":7244,"updated":"2021-10-20 11:22:09.000000000","message":"... and we didn\u0027t start the domain paused...","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":7241,"context_line":"        else:"},{"line_number":7242,"context_line":"            events \u003d []"},{"line_number":7243,"context_line":""},{"line_number":7244,"context_line":"        pause \u003d bool(events)"},{"line_number":7245,"context_line":"        try:"},{"line_number":7246,"context_line":"            with self.virtapi.wait_for_instance_event("},{"line_number":7247,"context_line":"                instance, events, deadline\u003dtimeout,"}],"source_content_type":"text/x-python","patch_set":4,"id":"91021694_4fe0548a","line":7244,"in_reply_to":"6b1c7bb8_cee65548","updated":"2021-10-21 17:09:55.000000000","message":"Ack","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bdc2c6298e50acc830568de606e2d45cfa2b53cc","unresolved":true,"context_lines":[{"line_number":3819,"context_line":"        # vifs_already_plugged\u003dTrue means \"do not wait for neutron plug events\""},{"line_number":3820,"context_line":"        external_events \u003d []"},{"line_number":3821,"context_line":"        vifs_already_plugged \u003d True"},{"line_number":3822,"context_line":"        if CONF.workarounds.wait_for_vif_plugged_event_during_hard_reboot:"},{"line_number":3823,"context_line":"            # NOTE(gibi): We unplugged every vif during destroy above and we"},{"line_number":3824,"context_line":"            # will replug them with _create_guest_with_network so we expect"},{"line_number":3825,"context_line":"            # vif-plugged events for every vif. We cannot rely on"}],"source_content_type":"text/x-python","patch_set":8,"id":"bc41a9d1_6b106993","line":3822,"range":{"start_line":3822,"start_character":7,"end_line":3822,"end_character":74},"updated":"2021-10-26 13:27:18.000000000","message":"-1 for now based on our discussion on irc related to vnic_type.\n\ntl;dr is we proably only want to wait for vnic_type normal.\n\nin a case where you have ml2/ovs or ml2/ovn  deploy  on the same host as the sriov nic agent we need to be a little more granular.\n\nThe sriov nic agent does send plug time event but because it poll it send unreliable plug time event on hard reboot because it might miss the device being removed and readded. typically it wont happen but if we set this to true today it might fail.\n\nso likely we need to allso check vif[vnic_type]\u003dnormal and or make the value fo rht eocnfig option be a list of vnic types to wait for isntead of a boolean.\n\ngibi was going to ask their internal consumer of this for feedback on which they woudl prefer operationally so  -1 for now until we get that feedback.\n\nwe can either hard code to waith only for normal port or make it configurable.","commit_id":"dee914d60910384f2169779607770ec8ea6c58e0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c45bc772e8d24f02c817fa55753518212532161d","unresolved":false,"context_lines":[{"line_number":3819,"context_line":"        # vifs_already_plugged\u003dTrue means \"do not wait for neutron plug events\""},{"line_number":3820,"context_line":"        external_events \u003d []"},{"line_number":3821,"context_line":"        vifs_already_plugged \u003d True"},{"line_number":3822,"context_line":"        if CONF.workarounds.wait_for_vif_plugged_event_during_hard_reboot:"},{"line_number":3823,"context_line":"            # NOTE(gibi): We unplugged every vif during destroy above and we"},{"line_number":3824,"context_line":"            # will replug them with _create_guest_with_network so we expect"},{"line_number":3825,"context_line":"            # vif-plugged events for every vif. We cannot rely on"}],"source_content_type":"text/x-python","patch_set":8,"id":"1d50a4c0_d11674c3","line":3822,"range":{"start_line":3822,"start_character":7,"end_line":3822,"end_character":74},"in_reply_to":"bc41a9d1_6b106993","updated":"2021-10-26 13:57:23.000000000","message":"yepp, addressed in the latest patch set","commit_id":"dee914d60910384f2169779607770ec8ea6c58e0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c45bc772e8d24f02c817fa55753518212532161d","unresolved":true,"context_lines":[{"line_number":3819,"context_line":"        # vifs_already_plugged\u003dTrue means \"do not wait for neutron plug events\""},{"line_number":3820,"context_line":"        external_events \u003d []"},{"line_number":3821,"context_line":"        vifs_already_plugged \u003d True"},{"line_number":3822,"context_line":"        event_expected_for_vif_types \u003d ("},{"line_number":3823,"context_line":"            CONF.workarounds.wait_for_vif_plugged_event_during_hard_reboot)"},{"line_number":3824,"context_line":"        if event_expected_for_vif_types:"},{"line_number":3825,"context_line":"            # NOTE(gibi): We unplugged every vif during destroy above and we"}],"source_content_type":"text/x-python","patch_set":9,"id":"1dec7a9c_fdad5c26","line":3822,"range":{"start_line":3822,"start_character":27,"end_line":3822,"end_character":36},"updated":"2021-10-26 13:57:23.000000000","message":"vnic_types :/","commit_id":"d14f3cfaad63b883e3ad513c3e0dc1d6c20a8791"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c69ea69cba8df84d1604d13a2c3f00aabd9caa6c","unresolved":false,"context_lines":[{"line_number":3819,"context_line":"        # vifs_already_plugged\u003dTrue means \"do not wait for neutron plug events\""},{"line_number":3820,"context_line":"        external_events \u003d []"},{"line_number":3821,"context_line":"        vifs_already_plugged \u003d True"},{"line_number":3822,"context_line":"        event_expected_for_vif_types \u003d ("},{"line_number":3823,"context_line":"            CONF.workarounds.wait_for_vif_plugged_event_during_hard_reboot)"},{"line_number":3824,"context_line":"        if event_expected_for_vif_types:"},{"line_number":3825,"context_line":"            # NOTE(gibi): We unplugged every vif during destroy above and we"}],"source_content_type":"text/x-python","patch_set":9,"id":"d54e72c3_d8e3ef15","line":3822,"range":{"start_line":3822,"start_character":27,"end_line":3822,"end_character":36},"in_reply_to":"1dec7a9c_fdad5c26","updated":"2021-10-27 09:38:33.000000000","message":"fixed","commit_id":"d14f3cfaad63b883e3ad513c3e0dc1d6c20a8791"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"42ff268ee4e0445813d700b31d7a471c766d637c","unresolved":true,"context_lines":[{"line_number":3820,"context_line":"        external_events \u003d []"},{"line_number":3821,"context_line":"        vifs_already_plugged \u003d True"},{"line_number":3822,"context_line":"        event_expected_for_vnic_types \u003d ("},{"line_number":3823,"context_line":"            CONF.workarounds.wait_for_vif_plugged_event_during_hard_reboot)"},{"line_number":3824,"context_line":"        if event_expected_for_vnic_types:"},{"line_number":3825,"context_line":"            # NOTE(gibi): We unplugged every vif during destroy above and we"},{"line_number":3826,"context_line":"            # will replug them with _create_guest_with_network. As the"}],"source_content_type":"text/x-python","patch_set":10,"id":"6d3ed99d_e3283990","line":3823,"updated":"2021-11-02 10:08:11.000000000","message":"see,you\u0027re not verifying the","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"888485daa1688fc730521c87955e4ed5dc5396cf","unresolved":false,"context_lines":[{"line_number":3820,"context_line":"        external_events \u003d []"},{"line_number":3821,"context_line":"        vifs_already_plugged \u003d True"},{"line_number":3822,"context_line":"        event_expected_for_vnic_types \u003d ("},{"line_number":3823,"context_line":"            CONF.workarounds.wait_for_vif_plugged_event_during_hard_reboot)"},{"line_number":3824,"context_line":"        if event_expected_for_vnic_types:"},{"line_number":3825,"context_line":"            # NOTE(gibi): We unplugged every vif during destroy above and we"},{"line_number":3826,"context_line":"            # will replug them with _create_guest_with_network. As the"}],"source_content_type":"text/x-python","patch_set":10,"id":"9db42fa7_8adbddbb","line":3823,"in_reply_to":"6d3ed99d_e3283990","updated":"2021-11-04 15:31:27.000000000","message":"Now I\u0027m, via \"choices\".","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"42ff268ee4e0445813d700b31d7a471c766d637c","unresolved":true,"context_lines":[{"line_number":3833,"context_line":"            external_events \u003d ["},{"line_number":3834,"context_line":"                (\u0027network-vif-plugged\u0027, vif[\u0027id\u0027])"},{"line_number":3835,"context_line":"                for vif in network_info"},{"line_number":3836,"context_line":"                if vif[\u0027vnic_type\u0027] in event_expected_for_vnic_types"},{"line_number":3837,"context_line":"            ]"},{"line_number":3838,"context_line":"            vifs_already_plugged \u003d False"},{"line_number":3839,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"cf23d170_bbc0b089","line":3836,"updated":"2021-11-02 10:08:11.000000000","message":"I\u0027d prefer, if you don\u0027t use a \"choices\" param for the option, to only verify the vnic types by a specific global variable, because operators could have some typing issues.\n\nSomething like:\n\n  if event_expected_for_vnic_types and not any(map(lambda e: e in DEFAULT_VNIC_TYPES, event_expected_for_vnic_types)):\n    \u003cyell the operator they\u0027re asking for vnic types that are not existing\u003e","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"888485daa1688fc730521c87955e4ed5dc5396cf","unresolved":false,"context_lines":[{"line_number":3833,"context_line":"            external_events \u003d ["},{"line_number":3834,"context_line":"                (\u0027network-vif-plugged\u0027, vif[\u0027id\u0027])"},{"line_number":3835,"context_line":"                for vif in network_info"},{"line_number":3836,"context_line":"                if vif[\u0027vnic_type\u0027] in event_expected_for_vnic_types"},{"line_number":3837,"context_line":"            ]"},{"line_number":3838,"context_line":"            vifs_already_plugged \u003d False"},{"line_number":3839,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1e0d93c9_8b28b033","line":3836,"in_reply_to":"cf23d170_bbc0b089","updated":"2021-11-04 15:31:27.000000000","message":"I uses \"choices\" now","commit_id":"165b009bfa6ec1f77ef135089d93aff034a3bd84"}],"releasenotes/notes/bug-1946729-wait-for-vif-plugged-event-during-hard-reboot-fb491f6a68370bab.yaml":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    destroying the domain first and unpluging the vifs then recreating the"},{"line_number":6,"context_line":"    domain and replugging the vifs. However nova does not wait for the"},{"line_number":7,"context_line":"    network-vif-plugged event before unpause the domain. This can cause"},{"line_number":8,"context_line":"    that the domain starts running and requesting IP via DHCP before the"},{"line_number":9,"context_line":"    networking backend finished plugging the vifs. We added a  config"},{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ff394ea3_d9e4505c","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":34},"updated":"2021-10-20 11:22:09.000000000","message":"\"the domain to start running\"","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    destroying the domain first and unpluging the vifs then recreating the"},{"line_number":6,"context_line":"    domain and replugging the vifs. However nova does not wait for the"},{"line_number":7,"context_line":"    network-vif-plugged event before unpause the domain. This can cause"},{"line_number":8,"context_line":"    that the domain starts running and requesting IP via DHCP before the"},{"line_number":9,"context_line":"    networking backend finished plugging the vifs. We added a  config"},{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"82729665_9ef5d189","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":34},"in_reply_to":"ff394ea3_d9e4505c","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    domain and replugging the vifs. However nova does not wait for the"},{"line_number":7,"context_line":"    network-vif-plugged event before unpause the domain. This can cause"},{"line_number":8,"context_line":"    that the domain starts running and requesting IP via DHCP before the"},{"line_number":9,"context_line":"    networking backend finished plugging the vifs. We added a  config"},{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"33728a4d_04dafce8","line":9,"range":{"start_line":9,"start_character":23,"end_line":9,"end_character":31},"updated":"2021-10-20 11:22:09.000000000","message":"\"has finished\"","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    domain and replugging the vifs. However nova does not wait for the"},{"line_number":7,"context_line":"    network-vif-plugged event before unpause the domain. This can cause"},{"line_number":8,"context_line":"    that the domain starts running and requesting IP via DHCP before the"},{"line_number":9,"context_line":"    networking backend finished plugging the vifs. We added a  config"},{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"defc6ace_24402563","line":9,"range":{"start_line":9,"start_character":23,"end_line":9,"end_character":31},"in_reply_to":"33728a4d_04dafce8","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":7,"context_line":"    network-vif-plugged event before unpause the domain. This can cause"},{"line_number":8,"context_line":"    that the domain starts running and requesting IP via DHCP before the"},{"line_number":9,"context_line":"    networking backend finished plugging the vifs. We added a  config"},{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"},{"line_number":13,"context_line":"    hard reboot. However this should only be used if the deployment uses a "}],"source_content_type":"text/x-yaml","patch_set":4,"id":"a77b2c4b_18473348","line":10,"updated":"2021-10-20 11:22:09.000000000","message":"trailing whitespace (and below)?","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    network-vif-plugged event before unpause the domain. This can cause"},{"line_number":8,"context_line":"    that the domain starts running and requesting IP via DHCP before the"},{"line_number":9,"context_line":"    networking backend finished plugging the vifs. We added a  config"},{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"},{"line_number":13,"context_line":"    hard reboot. However this should only be used if the deployment uses a "}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5aa9294f_9ae59194","line":10,"in_reply_to":"a77b2c4b_18473348","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    domain and replugging the vifs. However nova does not wait for the"},{"line_number":7,"context_line":"    network-vif-plugged event before unpause the domain. This can cause"},{"line_number":8,"context_line":"    that the domain starts running and requesting IP via DHCP before the"},{"line_number":9,"context_line":"    networking backend finished plugging the vifs. We added a  config"},{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"},{"line_number":13,"context_line":"    hard reboot. However this should only be used if the deployment uses a "},{"line_number":14,"context_line":"    networking backend that sends such event at vif plug time. From in-tree"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"080cc0ed_d530ac0d","line":11,"range":{"start_line":9,"start_character":51,"end_line":11,"end_character":22},"updated":"2021-10-20 11:22:09.000000000","message":"\"The config option [workarounds]wait_for_vif_plugged_event_during_hard_reboot has been added, defaulting to False\"","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    domain and replugging the vifs. However nova does not wait for the"},{"line_number":7,"context_line":"    network-vif-plugged event before unpause the domain. This can cause"},{"line_number":8,"context_line":"    that the domain starts running and requesting IP via DHCP before the"},{"line_number":9,"context_line":"    networking backend finished plugging the vifs. We added a  config"},{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"},{"line_number":13,"context_line":"    hard reboot. However this should only be used if the deployment uses a "},{"line_number":14,"context_line":"    networking backend that sends such event at vif plug time. From in-tree"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"53e88599_ab259a5d","line":11,"range":{"start_line":9,"start_character":51,"end_line":11,"end_character":22},"in_reply_to":"080cc0ed_d530ac0d","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":9,"context_line":"    networking backend finished plugging the vifs. We added a  config"},{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"},{"line_number":13,"context_line":"    hard reboot. However this should only be used if the deployment uses a "},{"line_number":14,"context_line":"    networking backend that sends such event at vif plug time. From in-tree"},{"line_number":15,"context_line":"    networking backends we know that ml2/ovs and networking-odl are such "}],"source_content_type":"text/x-yaml","patch_set":4,"id":"67f4281a_4c5b1547","line":12,"range":{"start_line":12,"start_character":51,"end_line":12,"end_character":58},"updated":"2021-10-20 11:22:09.000000000","message":"\"it unpauses\"","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    networking backend finished plugging the vifs. We added a  config"},{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"},{"line_number":13,"context_line":"    hard reboot. However this should only be used if the deployment uses a "},{"line_number":14,"context_line":"    networking backend that sends such event at vif plug time. From in-tree"},{"line_number":15,"context_line":"    networking backends we know that ml2/ovs and networking-odl are such "}],"source_content_type":"text/x-yaml","patch_set":4,"id":"36a7529c_2e49b53d","line":12,"range":{"start_line":12,"start_character":51,"end_line":12,"end_character":58},"in_reply_to":"67f4281a_4c5b1547","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"},{"line_number":13,"context_line":"    hard reboot. However this should only be used if the deployment uses a "},{"line_number":14,"context_line":"    networking backend that sends such event at vif plug time. From in-tree"},{"line_number":15,"context_line":"    networking backends we know that ml2/ovs and networking-odl are such "},{"line_number":16,"context_line":"    backends. For more information see "}],"source_content_type":"text/x-yaml","patch_set":4,"id":"0dff6084_a9e61065","line":13,"range":{"start_line":13,"start_character":17,"end_line":13,"end_character":24},"updated":"2021-10-20 11:22:09.000000000","message":"Drop the word.","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    option [workarounds]wait_for_vif_plugged_event_during_hard_reboot, "},{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"},{"line_number":13,"context_line":"    hard reboot. However this should only be used if the deployment uses a "},{"line_number":14,"context_line":"    networking backend that sends such event at vif plug time. From in-tree"},{"line_number":15,"context_line":"    networking backends we know that ml2/ovs and networking-odl are such "},{"line_number":16,"context_line":"    backends. For more information see "}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bb5713af_77288122","line":13,"range":{"start_line":13,"start_character":17,"end_line":13,"end_character":24},"in_reply_to":"0dff6084_a9e61065","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5ce6c3dd114ac5542e7178bd8f7e6f5229bdb316","unresolved":true,"context_lines":[{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"},{"line_number":13,"context_line":"    hard reboot. However this should only be used if the deployment uses a "},{"line_number":14,"context_line":"    networking backend that sends such event at vif plug time. From in-tree"},{"line_number":15,"context_line":"    networking backends we know that ml2/ovs and networking-odl are such "},{"line_number":16,"context_line":"    backends. For more information see "},{"line_number":17,"context_line":"    https://bugs.launchpad.net/nova/+bug/1946729"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"271afa4a_a5428c3a","line":16,"range":{"start_line":14,"start_character":63,"end_line":16,"end_character":12},"updated":"2021-10-20 11:22:09.000000000","message":"\"The only in-tree Neutron backends that are known to do this are ml2/ovs and networking-odl.\"","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"62c7dbaf32f9bd1d07b00682132e2970555d67ba","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    defaulted to False, that can be used to ensure that the libvirt driver"},{"line_number":12,"context_line":"    waits for the network-vif-plugged event before unpause the domain during"},{"line_number":13,"context_line":"    hard reboot. However this should only be used if the deployment uses a "},{"line_number":14,"context_line":"    networking backend that sends such event at vif plug time. From in-tree"},{"line_number":15,"context_line":"    networking backends we know that ml2/ovs and networking-odl are such "},{"line_number":16,"context_line":"    backends. For more information see "},{"line_number":17,"context_line":"    https://bugs.launchpad.net/nova/+bug/1946729"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"b78c1c7f_0e7d1f84","line":16,"range":{"start_line":14,"start_character":63,"end_line":16,"end_character":12},"in_reply_to":"271afa4a_a5428c3a","updated":"2021-10-21 17:09:55.000000000","message":"Done","commit_id":"cc7e7b7ae7cfa6958b95a012365771704ef5f826"}]}
