<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Title" content="">
<meta name="Keywords" content="">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:Calibri;
        color:windowtext;}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">Hi Julia,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">Thanks for discussing with Sam and sending out this email. I like the 5 steps described below!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">--ruby<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><o:p> </o:p></span></p>
<div>
<div>
<p class="MsoNormal">On 2016-08-11, 1:37 PM, "Julia Kreger" <<a href="mailto:juliaashleykreger@gmail.com">juliaashleykreger@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-right:0cm" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<div>
<div>
<p class="MsoNormal">Yesterday as a group (jroll, rloo, dtantsur, matt128, devananda,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">vdrok, and myself) discussed defaults for driver composition.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">The options we discussed were:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">* The existing specification[0] - Global and hardware_type<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">default_FOO_interface configuration, global enabled_FOO_interfaces in<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">configs, supported_FOO_interface in the hardware_type.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">* Sambetts proposal[1] - To base any defaults on the intersection of<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">enabled_FOO_interfaces and the supported_FOO_interface lists taking<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">the first common option.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">During the discussion the group came to the conclusion that if we were<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">to enable the ability to set defaults solely by list ordering, as put<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">forth in sambetts proposal, the question would then shift to who knows<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">best. The operator, or the vendor via the hardware_type. This further<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">evolved into substantial amounts of potential configuration which we<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">seemed to agree was confusing and unrealistic. We eventually circled<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">back to the original intent of the global configuration<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">default_FOO_interface which was to make an operator’s life easier by<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">allowing the definition of what would by in large be an explicitly<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">chosen environmental or operating default.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Circling back to the intent allowed us to focus the discussion further<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">and decide the following:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">1. If the client creating the node does not set an explicit<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">FOO_interface, we must save whatever is determined as the default, in<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">node.FOO_interface.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">2. To determine a default if one is not explicitly set via a<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">default_FOO_interface, the intersection between the hardware_type<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">definition supported_FOO_interfaces and the enabled_FOO_interfaces<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">global configuration would be used to determine the default.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Having determined the two preceding items, we reached a consensus that<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">the resulting default that is determined, must be present in<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">enabled_FOO_interfaces list. The result of this is that there should<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">be no implicit enablement of drivers, and the operator should be<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">selecting the interfaces possible for their environment in the<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">enabled_FOO_interfaces global configuration setting.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">In following up with sambetts this morning and discussing the concerns<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">that drove his proposal initially, Sam and I determined that any<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">implicit enablement of drivers was not ideal, that an operator<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">explicit default override for its intended purpose seemed okay, and<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">that the determination of any default should come from the the<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">intersection of what is supported versus what is enabled, as the<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">larger group reached a consensus on.  That this would ultimately<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">result in default_FOO_interface dropping from the hardware_type and<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">only being present as global configuration option for an operator to<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">use if they so choose to do so.  This seems in-line with what the<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">group reached while on the call yesterday.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Conceptually, this leaves us with something that looks like the<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">following when nodes are created without a valid FOO_interface in the<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">initial API post.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">1. The hardware_type's supported_FOO_interfaces is in order of<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">preference by the vendor, for example: supported_FOO_interface = [BAR,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">CAR, DAR] this represents: if BAR enabled then use BAR else if CAR<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">enabled then use CAR else if DAR enabled then use DAR.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">2. possible_FOO_interfaces to use for a hardware_type are calculated<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">by intersecting enabled_FOO_interfaces and the hardware_type's<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">supported_FOO_interfaces, order as in supported_FOO_interface is<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">maintained.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">3. If configuration option default_FOO_interface is set AND<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">default_FOO_interface is in possible_FOO_interfaces THEN<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">node.FOO_interface is set to default_FOO_interface<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">4. If configuration option default_FOO_interface is set AND<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">default_FOO_interface is NOT in possible_FOO_interfaces THEN node<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">create fails<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">5. If configuration option default_FOO_interface is NOT set THEN<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">node.FOO_interface is set to the first interface in<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">possible_FOO_interface<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thank you Sam for typing out the above logic.  I think this means we<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">seem to have some consensus on the direction to move forward, at least<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I hope. :)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">-Julia<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">[0] <a href="http://specs.openstack.org/openstack/ironic-specs/specs/approved/driver-composition-reform.html">
http://specs.openstack.org/openstack/ironic-specs/specs/approved/driver-composition-reform.html</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">[1] <a href="http://lists.openstack.org/pipermail/openstack-dev/2016-July/099257.html">
http://lists.openstack.org/pipermail/openstack-dev/2016-July/099257.html</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">On Mon, Aug 8, 2016 at 8:51 AM, Julia Kreger<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><<a href="mailto:juliaashleykreger@gmail.com">juliaashleykreger@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-right:0cm" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class="MsoNormal">Thank you for sending the corrected link Mathieu!  I thought I fixed it<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">before I sent the email, but... *shrug*<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Anyway!  Looking at the doodle, the mutually available time is 4 PM UTC on<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">this Wednesday (8/10/16).  If there are no objections, I guess we will hear<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">those seeking to discuss defaults on conferencing[0] bridge number 7777 at<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">that time.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">-Julia<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">[0] <a href="https://wiki.openstack.org/wiki/Infrastructure/Conferencing">
https://wiki.openstack.org/wiki/Infrastructure/Conferencing</a><o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">__________________________________________________________________________<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">OpenStack Development Mailing List (not for usage questions)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org">
OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>