<p dir="ltr"></p>
<p dir="ltr">On 8 Sep 2016 10:12 a.m., "Dmitry Tantsur" <<a href="mailto:dtantsur@redhat.com">dtantsur@redhat.com</a>> wrote:<br>
><br>
> On 09/07/2016 05:25 PM, Dmitry Tantsur wrote:<br>
>><br>
>> Hi all!<br>
>><br>
>> Today while playing with my installation I noticed that we do try to run<br>
>> cleaning for nodes in maintenance mode. This leads to a somewhat<br>
>> confusing result, because we no-op heartbeats for such nodes. So<br>
>> cleaning gets stuck in "clean wait" forever [1].<br>
>><br>
>> However, it seems like some folks find it a convenient feature. This way<br>
>> they can ask Ironic to boot the ramdisk and make it wait for operator's<br>
>> commands. It's a fair use case, but I still find the current situation<br>
>> confusing.<br>
>><br>
>> We've ended up with these few options:<br>
>><br>
>> 1. Ensure we don't run cleaning for nodes in maintenance mode. I've<br>
>> proposed a patch [2] banning most of provision verbs from working in<br>
>> maintenance. However, we still want to allow deleting an instance, which<br>
>> still results in cleaning.<br>
>><br>
>> 2. On receiving a heartbeat in {CLEAN,DEPLOY}WAIT and maintenance on<br>
>> [3], move the node to {CLEAN,DEPLOY}FAIL (optionally without powering it<br>
>> off, so that IPA stays running).<br>
><br>
><br>
> It looks like this approach does not cause contention, so I'll look into it first. I will keep patch for option #1 around as well, in case we want to explore it.<br>
></p>
<p dir="ltr">Yes, this is what makes the most sense to me with leaving the possibility to launch ramdisk, so my vote is for #2. Thanks Dmitry!</p>
<p dir="ltr">><br>
>><br>
>> 3. Document this as a desired feature and don't change anything.<br>
>><br>
>> What do you think?<br>
>><br>
>> [1] <a href="https://bugs.launchpad.net/ironic/+bug/1621006">https://bugs.launchpad.net/ironic/+bug/1621006</a><br>
>> [2] <a href="https://review.openstack.org/#/c/366793/">https://review.openstack.org/#/c/366793/</a><br>
>> [3]<br>
>> <a href="https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/agent_base_vendor.py#L474-L478">https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/agent_base_vendor.py#L474-L478</a>.<br>
>><br>
>><br>
>> __________________________________________________________________________<br>
>> OpenStack Development Mailing List (not for usage questions)<br>
>> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
><br>
><br>
> __________________________________________________________________________<br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br></p>