Hi Sylvain,

Thanks for checking looking it over.

I think another anvil dev has started looking at the bug but here is an 
explanation of the spec process anyway :-)

Preparing: which does the creation of the SRPMs
0. https://github.com/stackforge/anvil/blob/master/anvil/actions/prepare.py#L71
  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…)
1. https://github.com/stackforge/anvil/blob/master/anvil/packaging/yum.py#L150 
then gets called will either package the openstack dependencies or the 
openstack component itself.
  a. Lets go down the openstack component itself path for now (the other path 
is simpler).
2. https://github.com/stackforge/anvil/blob/master/anvil/packaging/yum.py#L572 
gets called
  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).

Building: aka, converting the SRPMs -> RPMs
0. https://github.com/stackforge/anvil/blob/master/anvil/actions/build.py#L44
1. https://github.com/stackforge/anvil/blob/master/anvil/packaging/yum.py#L172
  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.

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, 
https://github.com/stackforge/anvil/blob/master/anvil/components/base.py#L30 
and then easily switch on/off the spec file inclusion of the openvswitch 
packaging logic).

I hope that makes sense, try printing out the subsystems variable (which comes 
in from 
https://github.com/stackforge/anvil/blob/master/conf/personas/in-a-box/basic.yaml#L37
 , for example) .

-Josh

From: Sylvain Bauza <sylvain.ba...@bull.net<mailto:sylvain.ba...@bull.net>>
Date: Wednesday, August 14, 2013 2:23 AM
To: Joshua Harlow <harlo...@yahoo-inc.com<mailto:harlo...@yahoo-inc.com>>
Cc: OpenStack Development Mailing List 
<openstack-dev@lists.openstack.org<mailto:openstack-dev@lists.openstack.org>>
Subject: Re: [openstack-dev] [ANVIL] Missing openvswitch dependency for 
basic-neutron.yaml persona

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.

As you said, this is not enough, if asked, openvswitch should also either be 
compiled or fetched from RDO.
I filed a bug : https://bugs.launchpad.net/anvil/+bug/1212165


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 ?

Thanks,
-Sylvain


Le 13/08/2013 19:55, Joshua Harlow a écrit :
Haha, no problem. Darn time differences.

So some other useful links that I think will be helpful.

- 
https://github.com/stackforge/anvil/blob/master/conf/templates/packaging/specs/openstack-neutron.spec

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).

- One of those sub-packages is 
https://github.com/stackforge/anvil/blob/master/conf/templates/packaging/specs/openstack-neutron.spec#L274

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).

As you've seen it likely shouldn't be installing/needing that if 
https://github.com/stackforge/anvil/blob/master/anvil/components/configurators/neutron_plugins/linuxbridge.py
 is used.

This should be coming from the following config (which will come from the yaml 
files) 'get_option' 'call':

https://github.com/stackforge/anvil/blob/master/anvil/components/configurators/neutron.py#L49

So I think what can be done is a couple of things:

  1.  Don't include sub-packages that we don't want (the spec files are 
cheetah<http://www.cheetahtemplate.org/> templates, so this can be done 
dynamically).
  2.  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 (?)
  3.  Always build openvswitch (not as preferable) and include it 
(https://github.com/stackforge/anvil/blob/master/tools/build-openvswitch.sh)
     *   I think the RDO repos might have some of these components.
     *   
http://openstack.redhat.com/Frequently_Asked_Questions#For_which_distributions_does_RDO_provide_packages.3F
     *   This means we can just include the RDO repo rpm (like epel and use 
that openvswitch version there) instead of build your own.

Hope some of this offers some good pointers.

-Josh

From: Sylvain Bauza <sylvain.ba...@bull.net<mailto:sylvain.ba...@bull.net>>
Date: Tuesday, August 13, 2013 9:52 AM
To: Joshua Harlow <harlo...@yahoo-inc.com<mailto:harlo...@yahoo-inc.com>>
Cc: OpenStack Development Mailing List 
<openstack-dev@lists.openstack.org<mailto:openstack-dev@lists.openstack.org>>
Subject: Re: [openstack-dev] [ANVIL] Missing openvswitch dependency for 
basic-neutron.yaml persona

Well, then I have to read thru the docs to see how it can be done thru a config 
option... =)

Nope, I won't be able to catch you up on IRC, time difference you know :-)
Anyway, let me go thru it, I'll try to sort it out.

I RTFM'd all the anvil docs, but do you have any other pointer for me ?

Thanks,
-Sylvain

Le 13/08/2013 18:39, Joshua Harlow a écrit :
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??

The other personas don't use neutron so I think that's how they work, since 
nova-network base functionality still exists.

Any patches would be great, will be on irc soon if u want to discuss more.

Josh

Sent from my really tiny device...

On Aug 13, 2013, at 9:23 AM, "Sylvain Bauza" 
<sylvain.ba...@bull.net<mailto:sylvain.ba...@bull.net>> wrote:

Do you confirm the basic idea would be to get rid of any openvswitch reference 
in rhel.yaml ?
If so, wouldn't it be breaking other personas ?

I can provide a patch so the team would review it.

-Sylvain

Le 13/08/2013 17:57, Joshua Harlow a écrit :
It likely shouldn't be needed :)

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.

Try seeing if u can adjust the yaml file and if not I am on irc to help more.

Sent from my really tiny device...

On Aug 12, 2013, at 9:14 AM, "Sylvain Bauza" 
<sylvain.ba...@bull.net<mailto:sylvain.ba...@bull.net>> wrote:

Hi,

./smithy -a install -p conf/personas/in-a-box/basic-neutron.yaml is failing 
because of openvswitch missing.
See logs here [1].

Does anyone knows why openvswitch is needed when asking for linuxbridge in 
components/neutron.yaml ?
Shall I update distros/rhel.yaml ?

-Sylvain



[1] : http://pastebin.com/TFkDrrDc


_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to