)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"17e4fd3cb46ceb16e792f4c91308a5a56293b0e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"60ba0fd6_879935c8","updated":"2022-06-28 08:19:31.000000000","message":"Hi Baptiste. I understand the motivation for this, however we need to consider the impact on Ironic. Currently we synchronously update the port binding, meaning that provisioning will not proceed until the network is configured. If we make binding asynchronous from network configuration we will have a race condition, where the network may not be ready when the node boots.\n\nYears ago there was an effort to fix this in Ironic to make it asynchronous and handle the port state notifications, however it was not finished. Perhaps it would be easier now with deploy steps in Ironic, but I expect it will still be difficult. \n\nAn alternative would be to poll the port in Ironic to wait until it becomes active.","commit_id":"c225b79af4129bc53d2c98c4bfde3e8236f8e1de"},{"author":{"_account_id":34936,"name":"Baptiste Jonglez","email":"baptiste.jonglez@inria.fr","username":"bjonglez"},"change_message_id":"00176cad98bce0ff4cda260fd7378de6d42bc2d8","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"dbbf66a4_ff1d1b06","in_reply_to":"3e37c9d2_262d76be","updated":"2022-06-29 16:28:20.000000000","message":"Hi,\n\nJust to clarify: with this initial patch, port creation/update is still synchronous. That being said, I haven\u0027t tested the impact of the patch on Ironic (we don\u0027t use Ironic), and the goal was to trigger a discussion.\n\nYou\u0027re right, our end-goal is to make port creation asynchronous to be able to apply optimizations in NGS. One of the ways I\u0027m exploring would be to return ports with status\u003d\"BUILD\" while they are still being configured, and the client would then have to poll the port status or wait for a notification from Neutron.\n\nLooking at the Ironic code, it\u0027s already doing this for smartnic ports in several places, such as:\n\n    wait_for_port_status(client, port.id, \u0027ACTIVE\u0027)\n\nhttps://opendev.org/openstack/ironic/src/commit/8aaf2e08c074e786767a24adbbe3afec5ff622c3/ironic/common/neutron.py#L352\n\nIt looks like the same could be done for baremetal ports managed by NGS, but again I\u0027m not well versed in Ironic.\n\nIn any case, I\u0027m happy to leave this patch on hold while we explore applicable solutions.","commit_id":"c225b79af4129bc53d2c98c4bfde3e8236f8e1de"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f988232268376cd97a703b255082f80792aa1eda","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3e37c9d2_262d76be","in_reply_to":"60ba0fd6_879935c8","updated":"2022-06-28 08:19:50.000000000","message":"https://opendev.org/openstack/ironic/src/commit/8aaf2e08c074e786767a24adbbe3afec5ff622c3/ironic/drivers/modules/network/common.py#L296","commit_id":"c225b79af4129bc53d2c98c4bfde3e8236f8e1de"},{"author":{"_account_id":34936,"name":"Baptiste Jonglez","email":"baptiste.jonglez@inria.fr","username":"bjonglez"},"change_message_id":"8f8ed26cca391eb5cc0a0959fbee9581e4308db3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6e513654_5adf8960","in_reply_to":"dbbf66a4_ff1d1b06","updated":"2023-07-04 15:28:19.000000000","message":"Updated to fix merge conflicts.\n\nThis patch is the first step to move to an agent-based design, as described in https://bugs.launchpad.net/networking-generic-switch/+bug/2024385\nMore patches are coming.\n\nOur overall plan no longer involves asynchronous port creation, so I\u0027m marking this comment as resolved.","commit_id":"c225b79af4129bc53d2c98c4bfde3e8236f8e1de"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"2f9894fbb1fe4d5446c4d75e8c8b1d55882c7a6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"53e8231e_162dfb7c","updated":"2023-09-21 01:15:38.000000000","message":"recheck","commit_id":"0088fde1debfd80ab2508bfea9f2cff2a1602e80"}]}
