<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 19 October 2017 at 15:38, Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 10/16/2017 05:31 AM, Nisha Agarwal wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Matt,<br>
<br>
As i understand John's spec <a href="https://review.openstack.org/#/c/507052/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/507052/</a> <<a href="https://review.openstack.org/#/c/507052/" rel="noreferrer" target="_blank">https://review.openstack.org/<wbr>#/c/507052/</a>>, it is actually a replacement for capabilities(qualitative only) for ironic. It doesnt cover the quantitative capabilities as 'traits' are meant only for qualitative capabilities. Quantitative capabilities are covered by resource classes in Nova. We have few (one or two) quantitative capabilities already supported in ironic.<br>
</blockquote>
<br>
Hi Nisha,<br>
<br>
This may be a case of mixed terminology. We do not refer to anything quantitative as a "capability". Rather, we use the term "resource class" (or sometimes just "resource") to represent quantitative things that may be consumed by the instance.<br>
<br>
Traits, on the other hand, are qualitative. They represent a binary on/off capability that the compute host (or baremetal node in the case of Ironic) exposes.<br>
<br>
There's no limit on the number of traits that may be associated with a particular Ironic baremetal node. However, for Ironic baremetal nodes, if the node.resource_class attribute is set, the Nova Ironic virt driver will create a single inventory record for the node containing a quantity of 1 and a resource class equal to whatever is in the node.resource_class attribute. This resource class is auto-created by Nova as a custom resource class.<br></blockquote><div><br></div><div>Just to follow up on this one...</div><div><br></div><div>I hope my traits spec will replace the need for the non-exact filters.</div><div><br></div><div>Consider two flavors Gold and Gold_Plus. Lets say Gold_plus gives you a slightly newer CPU, or something.<br></div><div><br></div><div>Consider this setup:</div><div><br></div><div>* both GOLD and GOLD_PLUS ironic nodes have Resource Class: CUSTOM_GOLD</div><div>* but you can have some have trait: GOLD_REGULAR and some with GOLD_PLUS</div><div><br></div><div>Now you can have the flavors:</div><div><br></div><div>* GOLD flavor requests resources:CUSTOM_GOLD=1</div><div>* GOLD_PLUS flavor also has resources:CUSTOM_GOLD=1 but also trait:GOLD_PLUS:requires</div><div><br></div><div>Now eventually we could modify the GOLD flavor to say:</div><div><br></div><div>* resources:CUSTOM_GOLD=1 and trait:GOLD_REGULAR:prefer</div><div><br></div><div>@Nisha I think that should largely allow you to construct the same behavior you have today, or am I totally missing what you are wanting to do?</div><div><br></div><div>Thanks,<br></div><div>John</div></div></div></div>