<div dir="ltr">Kevin, thanks for reply,<br><br><div class="gmail_extra"></div><div class="gmail_extra"><div class="gmail_quote">On Fri, Jul 22, 2016 at 11:50 AM, Kevin Benton <span dir="ltr"><<a href="mailto:kevin@benton.pub" target="_blank">kevin@benton.pub</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>Once you solve the issue of getting the baremetal ports to transition to the ACTIVE state, a notification will automatically be emitted to Nova of 'network-vif-plugged' with the port ID. Will ironic not have access to that event via Nova?</div><div><br></div></div></blockquote><div>To solve issues of getting the baremetal ports to transition to the ACTIVE state we should do the following:<br><ol><li>Use FLAT network instead of VXLAN for Ironic gate jobs [3].</li><li>On Nova side set vnic_type to baremetal for Ironic hypervisor [0].</li><li>On Neutron side, perform fake 'baremetal' port binding [2] in case of FLAT network.<br></li></ol></div><div>We need to receive direct notifications from Neutron to Ironic, because Ironic creates ports in provisioning network by his own.<br></div><div></div><div></div><div>Nova doesn't know anything about provisioning ports. <br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>If not, Ironic could develop a service plugin that just listens for port update events and relays them to Ironic.</div></div><div class="gmail_extra"><br></div></blockquote><div><br>I already prepared PoC [4] to Neutron that allows to send notifications to Ironic on port_update event.<br><br></div><div>Reference:<br>[0] <a href="https://review.openstack.org/339143">https://review.openstack.org/339143</a><br>[1] <a href="https://review.openstack.org/339129">https://review.openstack.org/339129</a><br>[3] <a href="https://review.openstack.org/340695">https://review.openstack.org/340695</a><br>[4] <a href="https://review.openstack.org/345211">https://review.openstack.org/345211</a><br> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5">On Tue, Jul 12, 2016 at 4:07 AM, Vasyl Saienko <span dir="ltr"><<a href="mailto:vsaienko@mirantis.com" target="_blank">vsaienko@mirantis.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="h5"><div dir="ltr"><div>Hello Community,<br><br></div><div>I'm working to make Ironic be aware about  Neutron port state changes [0].<br></div><div></div><div>The issue consists of two parts:<br><ul><li>Neutron ports for baremetal instances remain in DOWN state [1]. The issue occurs because there is no mechanism driver that binds ports. To solve it we need to create port with  vnic_type='baremetal' in Nova [2], and bind in Neutron. New mechanism driver that supports baremetal vnic_type is needed [3].<br><br></li><li>Sync Neutron events with Ironic. According to Neutron architecture [4] mechanism drivers work synchronously. When the port is bound by ml2 mechanism driver it becomes ACTIVE. While updating dhcp information Neutron uses dhcp agent, which is asynchronous call. I'm confused here, since ACTIVE port status doesn't mean that it operates (dhcp agent may fail to setup port). The issue was solved by [5]. So starting from [5] when ML2 uses new port status update flow, port update is always asynchronous operation. And the most efficient way is to implement callback mechanism between Neutron and Ironic is like it's done for Neutron/Nova.<br><br></li></ul><p></p><p>Neutron/Nova/Ironic teams let me know your thoughts on this.<br></p></div><div><br></div><div>Reference:<br>[0] <a href="https://bugs.launchpad.net/ironic/+bug/1304673" target="_blank">https://bugs.launchpad.net/ironic/+bug/1304673</a><br>[1] <a href="https://bugs.launchpad.net/neutron/+bug/1599836" target="_blank">https://bugs.launchpad.net/neutron/+bug/1599836</a><br>[2] <a href="https://review.openstack.org/339143" target="_blank">https://review.openstack.org/339143</a><br>[3] <a href="https://review.openstack.org/#/c/339129/" target="_blank">https://review.openstack.org/#/c/339129/</a><br>[4] <a href="https://www.packtpub.com/sites/default/files/Article-Images/B04751_01.png" target="_blank">https://www.packtpub.com/sites/default/files/Article-Images/B04751_01.png</a><br>[5] <a href="https://github.com/openstack/neutron/commit/b672c26cb42ad3d9a17ed049b506b5622601e891" target="_blank">https://github.com/openstack/neutron/commit/b672c26cb42ad3d9a17ed049b506b5622601e891</a><br></div></div>
<br></div></div>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>
<br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div></div>