<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>Hi Sylvain,</div>
<div><br>
</div>
<div>Thanks for checking looking it over.</div>
<div><br>
</div>
<div>I think another anvil dev has started looking at the bug but here is an explanation of the spec process anyway :-)</div>
<div><br>
</div>
<div><u>Preparing</u>: which does the creation of the SRPMs</div>
<div>0. <a href="https://github.com/stackforge/anvil/blob/master/anvil/actions/prepare.py#L71">https://github.com/stackforge/anvil/blob/master/anvil/actions/prepare.py#L71</a> </div>
<div>  a. This then creates a yum class (which will do the work, this was abstracted so that its relatively easy to say have deb packaging later if ever wanted…)</div>
<div>1. <a href="https://github.com/stackforge/anvil/blob/master/anvil/packaging/yum.py#L150">https://github.com/stackforge/anvil/blob/master/anvil/packaging/yum.py#L150</a> then gets called will either package the openstack dependencies or the openstack component
 itself. </div>
<div>  a. Lets go down the openstack component itself path for now (the other path is simpler). </div>
<div>2. <a href="https://github.com/stackforge/anvil/blob/master/anvil/packaging/yum.py#L572">https://github.com/stackforge/anvil/blob/master/anvil/packaging/yum.py#L572</a> gets called</div>
<div>  a. This will create the SRPM (and in that SRPM will be the spec file itself), the rest of that function creates the parameters for the spec file to be expanded with (see _write_spec_file also for how requirements, epoch get determined).</div>
<div><br>
</div>
<div><u>Building</u>: aka, converting the SRPMs -> RPMs</div>
<div>0. <a href="https://github.com/stackforge/anvil/blob/master/anvil/actions/build.py#L44">https://github.com/stackforge/anvil/blob/master/anvil/actions/build.py#L44</a> </div>
<div>1. <a href="https://github.com/stackforge/anvil/blob/master/anvil/packaging/yum.py#L172">https://github.com/stackforge/anvil/blob/master/anvil/packaging/yum.py#L172</a> </div>
<div>  a. This is actually a simpler process since yum has a nice way to easily translate SRPMs->RPMs so all we do is use a make file with a parallel number of jobs to do that. </div>
<div><br>
</div>
<div>So your hook could be at #2 if you wanted to not include the openvswitch logic in the spec file, u can hook in there to determine if say openvswitch is in this variable (which each instance/component that gets built should have populated, <a href="https://github.com/stackforge/anvil/blob/master/anvil/components/base.py#L30">https://github.com/stackforge/anvil/blob/master/anvil/components/base.py#L30</a> and
 then easily switch on/off the spec file inclusion of the openvswitch packaging logic). </div>
<div><br>
</div>
<div>I hope that makes sense, try printing out the subsystems variable (which comes in from <a href="https://github.com/stackforge/anvil/blob/master/conf/personas/in-a-box/basic.yaml#L37">https://github.com/stackforge/anvil/blob/master/conf/personas/in-a-box/basic.yaml#L37</a> ,
 for example) .</div>
<div><br>
</div>
<div>-Josh</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Sylvain Bauza <<a href="mailto:sylvain.bauza@bull.net">sylvain.bauza@bull.net</a>><br>
<span style="font-weight:bold">Date: </span>Wednesday, August 14, 2013 2:23 AM<br>
<span style="font-weight:bold">To: </span>Joshua Harlow <<a href="mailto:harlowja@yahoo-inc.com">harlowja@yahoo-inc.com</a>><br>
<span style="font-weight:bold">Cc: </span>OpenStack Development Mailing List <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [openstack-dev] [ANVIL] Missing openvswitch dependency for basic-neutron.yaml persona<br>
</div>
<div><br>
</div>
<div>
<div bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Thanks for the links, pretty useful. I do understand the process, but I have to admin I don't catch which Cheetah placeholder I would use for doing a big 'if' statement conditioning the package openstack-neutron-openvswitch on the
 core_plugin yaml option.<br>
<br>
As you said, this is not enough, if asked, openvswitch should also either be compiled or fetched from RDO.<br>
I filed a bug : <a href="https://bugs.launchpad.net/anvil/+bug/1212165">https://bugs.launchpad.net/anvil/+bug/1212165</a><br>
<br>
<br>
Anyway, I'm pretty much interested in doing the 1. you mentioned, I still need to understand things, tho. Could you be more precise on the way the spec files are populated ?<br>
<br>
Thanks,<br>
-Sylvain<br>
<br>
<br>
Le 13/08/2013 19:55, Joshua Harlow a écrit :<br>
</div>
<blockquote cite="mid:CE2FBA1D.42EE5%25harlowja@yahoo-inc.com" type="cite">
<div>Haha, no problem. Darn time differences.</div>
<div><br>
</div>
<div>So some other useful links that I think will be helpful.</div>
<div><br>
</div>
<div>- <a moz-do-not-send="true" href="https://github.com/stackforge/anvil/blob/master/conf/templates/packaging/specs/openstack-neutron.spec">https://github.com/stackforge/anvil/blob/master/conf/templates/packaging/specs/openstack-neutron.spec</a> </div>
<div><br>
</div>
<div>This one is likely the biggest part of the issue, since it is the combination of all of neutron into 1 package (which has sub-packages).</div>
<div><br>
</div>
<div>- One of those sub-packages is <a moz-do-not-send="true" href="https://github.com/stackforge/anvil/blob/master/conf/templates/packaging/specs/openstack-neutron.spec#L274">https://github.com/stackforge/anvil/blob/master/conf/templates/packaging/specs/openstack-neutron.spec#L274</a></div>
<div><br>
</div>
<div>This is pulling in the openvswitch part, that I think u don't want (at least not always want, it's wanted if neutron is going to use it, which under certain plugins it will).</div>
<div><br>
</div>
<div>As you've seen it likely shouldn't be installing/needing that if <a moz-do-not-send="true" href="https://github.com/stackforge/anvil/blob/master/anvil/components/configurators/neutron_plugins/linuxbridge.py">https://github.com/stackforge/anvil/blob/master/anvil/components/configurators/neutron_plugins/linuxbridge.py</a> is
 used.</div>
<div><br>
</div>
<div>This should be coming from the following config (which will come from the yaml files) 'get_option' 'call':</div>
<div><br>
</div>
<div><a moz-do-not-send="true" href="https://github.com/stackforge/anvil/blob/master/anvil/components/configurators/neutron.py#L49">https://github.com/stackforge/anvil/blob/master/anvil/components/configurators/neutron.py#L49</a></div>
<div><br>
</div>
<div>So I think what can be done is a couple of things:</div>
<ol>
<li>Don't include sub-packages that we don't want (the spec files are <a moz-do-not-send="true" href="http://www.cheetahtemplate.org/">
cheetah</a> templates, so this can be done dynamically). </li><li>See if there is a way to make yum (or via yyoom) not pull in the dependencies for a sub-package when it won't be used (?)
</li><li>Always build openvswitch (not as preferable) and include it (<a moz-do-not-send="true" href="https://github.com/stackforge/anvil/blob/master/tools/build-openvswitch.sh">https://github.com/stackforge/anvil/blob/master/tools/build-openvswitch.sh</a>)
<ul>
<li>I think the RDO repos might have some of these components. </li><li><a moz-do-not-send="true" href="http://openstack.redhat.com/Frequently_Asked_Questions#For_which_distributions_does_RDO_provide_packages.3F">http://openstack.redhat.com/Frequently_Asked_Questions#For_which_distributions_does_RDO_provide_packages.3F</a></li><li>This means we can just include the RDO repo rpm (like epel and use that openvswitch version there) instead of build your own.
</li></ul>
</li></ol>
<div>Hope some of this offers some good pointers.</div>
<div><br>
</div>
<div>-Josh</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt;
          text-align:left; color:black; BORDER-BOTTOM: medium none;
          BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT:
          0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid;
          BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Sylvain Bauza <<a moz-do-not-send="true" href="mailto:sylvain.bauza@bull.net">sylvain.bauza@bull.net</a>><br>
<span style="font-weight:bold">Date: </span>Tuesday, August 13, 2013 9:52 AM<br>
<span style="font-weight:bold">To: </span>Joshua Harlow <<a moz-do-not-send="true" href="mailto:harlowja@yahoo-inc.com">harlowja@yahoo-inc.com</a>><br>
<span style="font-weight:bold">Cc: </span>OpenStack Development Mailing List <<a moz-do-not-send="true" href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [openstack-dev] [ANVIL] Missing openvswitch dependency for basic-neutron.yaml persona<br>
</div>
<div><br>
</div>
<div>
<div bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Well, then I have to read thru the docs to see how it can be done thru a config option... =)<br>
<br>
Nope, I won't be able to catch you up on IRC, time difference you know :-)<br>
Anyway, let me go thru it, I'll try to sort it out.<br>
<br>
I RTFM'd all the anvil docs, but do you have any other pointer for me ?<br>
<br>
Thanks,<br>
-Sylvain <br>
<br>
Le 13/08/2013 18:39, Joshua Harlow a écrit :<br>
</div>
<blockquote cite="mid:AA59D608-914D-4B10-965B-2B584D19592B@yahoo-inc.com" type="cite">
<div>Well open switch is likely needed still when it's really needed right? So I think there is a need for it. It just might have to be a dynamic choice (based on a config option) instead of a static choice. Make sense??</div>
<div><br>
</div>
<div>The other personas don't use neutron so I think that's how they work, since nova-network base functionality still exists. </div>
<div><br>
</div>
<div>Any patches would be great, will be on irc soon if u want to discuss more.</div>
<div><br>
</div>
<div>Josh<br>
<br>
Sent from my really tiny device...</div>
<div><br>
On Aug 13, 2013, at 9:23 AM, "Sylvain Bauza" <<a moz-do-not-send="true" href="mailto:sylvain.bauza@bull.net">sylvain.bauza@bull.net</a>> wrote:<br>
<br>
</div>
<blockquote type="cite">
<div>
<div class="moz-cite-prefix">Do you confirm the basic idea would be to get rid of any openvswitch reference in rhel.yaml ?<br>
If so, wouldn't it be breaking other personas ?<br>
<br>
I can provide a patch so the team would review it.<br>
<br>
-Sylvain<br>
<br>
Le 13/08/2013 17:57, Joshua Harlow a écrit :<br>
</div>
<blockquote cite="mid:4FD0B567-A1CF-4E7D-9AAB-6A5B418370E7@yahoo-inc.com" type="cite">
<div>It likely shouldn't be needed :)</div>
<div><br>
</div>
<div>I haven't personally messes around with the neutron persona to much and I know that it just underwent the "great rename of 2013" so u might be hitting issues due to that.</div>
<div><br>
</div>
<div>Try seeing if u can adjust the yaml file and if not I am on irc to help more. </div>
<div><br>
Sent from my really tiny device...</div>
<div><br>
On Aug 12, 2013, at 9:14 AM, "Sylvain Bauza" <<a moz-do-not-send="true" href="mailto:sylvain.bauza@bull.net">sylvain.bauza@bull.net</a>> wrote:<br>
<br>
</div>
<blockquote type="cite">
<div>Hi,<br>
<br>
./smithy -a install -p conf/personas/in-a-box/basic-neutron.yaml is failing because of openvswitch missing.<br>
See logs here [1].<br>
<br>
Does anyone knows why openvswitch is needed when asking for linuxbridge in components/neutron.yaml ?
<br>
Shall I update distros/rhel.yaml ?<br>
<br>
-Sylvain<br>
<br>
<br>
<br>
[1] : <a moz-do-not-send="true" href="http://pastebin.com/TFkDrrDc">http://pastebin.com/TFkDrrDc</a><br>
<br>
<br>
</div>
</blockquote>
<blockquote type="cite">
<div><span>_______________________________________________</span><br>
<span>OpenStack-dev mailing list</span><br>
<span><a moz-do-not-send="true" href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a></span><br>
<span><a moz-do-not-send="true" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></span><br>
</div>
</blockquote>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset> <br>
<pre wrap="">_______________________________________________
OpenStack-dev mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></pre>
</blockquote>
<br>
</div>
</blockquote>
</blockquote>
<br>
</div>
</div>
</span></blockquote>
<br>
</div>
</div>
</span>
</body>
</html>