| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2023-10-16 | |||
| 16:35:08 | sean-k-mooney | ah i assume your watching the live output | |
| 16:35:55 | dansmith | yup | |
| 16:36:09 | dansmith | just passed the main job as well | |
| 16:39:02 | sean-k-mooney | added link to the passing job where it ran and left a +2 | |
| 16:39:48 | sean-k-mooney | if we start seeing this type of dep issue often i woudl prefer to use bindep or similar to store the packages in a file or move the list of packagges to a role default | |
| 16:39:54 | sean-k-mooney | but for now this is fine | |
| 16:41:42 | dansmith | ack, well, I'd like to get the gate unblocked at least | |
| 16:42:26 | dansmith | I know bindep is what we use for that stuff normally, but I figured it was more aimed at setup for running the services and not just for ansible stuff to work | |
| 16:42:34 | dansmith | I suppose it's also usable | |
| 16:42:45 | sean-k-mooney | bindep has tags | |
| 16:42:51 | sean-k-mooney | so we can use [ansible] | |
| 16:43:02 | sean-k-mooney | for example if we wanted to store ansible only deps or whatever | |
| 16:43:22 | dansmith | ack | |
| 16:43:44 | sean-k-mooney | we do use the "test" tag for functional/unit tests deps | |
| 16:43:47 | dansmith | so maybe I should just slap this into bindep.txt instead of doing this in the ansible? | |
| 16:43:59 | dansmith | or maybe just follow this up with that so we can unblock the gate | |
| 16:44:20 | sean-k-mooney | well bindep is likely not aviable on the host outside of the venv where devstack installed it | |
| 16:44:33 | sean-k-mooney | so if we want to go that way lets do it in a followup | |
| 16:44:47 | sean-k-mooney | as first we need to decied how to make bindep avaialable | |
| 16:45:30 | dansmith | oh, we install bindep in the venv to manage deps on the host? I figured that was installed and managed before we got to devstack at all | |
| 16:45:46 | dansmith | yeah, let me queue up something behind this if for no other reason than to serve as a reminder | |
| 16:46:05 | sean-k-mooney | for the devstack job i belive its in the venv for the unit test jobs its installed in the job | |
| 16:46:09 | sean-k-mooney | before we invoke tox | |
| 16:46:45 | sean-k-mooney | https://github.com/openstack/nova/blob/9dceb735f6926c71a8c2e2c6ef8b5e0a1363041d/bindep.txt#L24 | |
| 16:46:58 | sean-k-mooney | lxml is a dep in bindep already for what its worth | |
| 16:47:04 | sean-k-mooney | but its marked as a test dep | |
| 16:47:21 | sean-k-mooney | so its not installed by default by devstack | |
| 16:47:45 | sean-k-mooney | actully no | |
| 16:47:50 | sean-k-mooney | thats not the python bindings | |
| 16:48:01 | sean-k-mooney | that the clib that lxml uses | |
| 16:48:09 | dansmith | yeah, neither is libvirt-python, but that's clearly installed which is weird that it works | |
| 16:48:17 | dansmith | er, python3-libvirt | |
| 16:48:52 | sean-k-mooney | i belive that will be install by devstack seperatly | |
| 16:49:15 | sean-k-mooney | https://github.com/openstack/devstack/blob/ca4d5132e63752878620c4e4f374d98d433b3f52/lib/nova_plugins/functions-libvirt#L96 | |
| 16:49:42 | sean-k-mooney | and here for ubuntu https://github.com/openstack/devstack/blob/ca4d5132e63752878620c4e4f374d98d433b3f52/lib/nova_plugins/functions-libvirt#L72C87-L72C102 | |
| 16:49:49 | opendevreview | Dan Smith proposed openstack/nova master: Move lxml dep to bindep.txt https://review.opendev.org/c/openstack/nova/+/898439 | |
| 16:50:14 | dansmith | sean-k-mooney: right but I would expect python3-libvirt to have a hard dep on python3-lxml, but perhaps not | |
| 16:50:35 | sean-k-mooney | i dont think it does | |
| 16:50:41 | sean-k-mooney | we need lxml to parse the xml | |
| 16:50:49 | sean-k-mooney | but the xml is generated by libvirt | |
| 16:50:54 | sean-k-mooney | which would use the c lib | |
| 16:50:59 | sean-k-mooney | not the python bindings | |
| 16:51:49 | dansmith | I guess I expected some of the python bindings to manipulate xml chunks themselves, but perhaps not | |
| 16:52:46 | sean-k-mooney | so just confirmign that his would work devstack invokes bindep if teh bindep file exits for a project here in setup_package https://github.com/openstack/devstack/blob/ca4d5132e63752878620c4e4f374d98d433b3f52/inc/python#L465 | |
| 16:55:49 | sean-k-mooney | that is called form _setup_package_with_constraints_edit which is called form setup_deploy here https://github.com/openstack/devstack/blob/ca4d5132e63752878620c4e4f374d98d433b3f52/inc/python#L359 | |
| 16:56:08 | sean-k-mooney | and we call that for nova here https://github.com/openstack/devstack/blob/ca4d5132e63752878620c4e4f374d98d433b3f52/lib/nova#L971 | |
| 16:56:25 | sean-k-mooney | so based on that call graph | |
| 16:56:31 | sean-k-mooney | we are not specifying any profile | |
| 16:56:54 | sean-k-mooney | i.e. it sthe same as just runing bindep in the nova root effectivly | |
| 16:57:26 | sean-k-mooney | so we just need to confirm that https://review.opendev.org/c/openstack/nova/+/898439 make it included in that properly | |
| 16:57:43 | sean-k-mooney | ah you added no tag so yes it will be | |
| 17:36:26 | dansmith | bauzas: can you +W this to unblock the gate please? https://review.opendev.org/c/openstack/nova/+/898435 | |
| 17:36:45 | bauzas | the quickiest I was able to | |
| 17:36:55 | dansmith | thanks | |
| 17:38:47 | dansmith | sean-k-mooney: the bindep approach doesn't leave us with lxml installed | |
| 17:41:30 | sean-k-mooney | ack i wonder if we are removing it in devstack to aovid pip issues | |
| 17:42:41 | sean-k-mooney | id dont see anything that would remove it but lets stick with teh simple solution for now | |
| 17:42:56 | dansmith | idk, but glad we approved the first solution in the short term :) | |
| 17:51:04 | sean-k-mooney | dansmith: for what its worth i dont see any packages being installed | |
| 17:51:17 | dansmith | sean-k-mooney: bindep packages you mean? | |
| 17:51:30 | dansmith | I didn't see it try lxml that's for sure | |
| 17:51:48 | sean-k-mooney | ya bindep is installed bu ti dont see ay execution of setup_package that actully installs anything | |
| 17:52:16 | sean-k-mooney | so that might have silently been broken at some point | |
| 17:52:38 | sean-k-mooney | im sing things like inc/python:_setup_package_with_constraints_edit:387 : [[ /opt/stack/neutron == -bindep* ]] | |
| 17:53:06 | dansmith | I'd have expected more breakage in that case | |
| 17:54:01 | sean-k-mooney | ah so reading the code | |
| 17:54:08 | sean-k-mooney | https://github.com/openstack/devstack/blob/master/inc/python#L385 | |
| 17:54:20 | sean-k-mooney | the fintion is checkign if it was invoked with -bindep | |
| 17:54:23 | sean-k-mooney | as a flag | |
| 17:54:33 | sean-k-mooney | and poping it | |
| 17:54:39 | sean-k-mooney | and we are not doign that | |
| 17:55:04 | sean-k-mooney | we do not pass -bindep when seting up nova | |
| 17:55:22 | dansmith | probably need to get gmann to consult here I think | |
| 17:55:35 | sean-k-mooney | https://github.com/openstack/devstack/blob/ca4d5132e63752878620c4e4f374d98d433b3f52/lib/nova#L971 | |
| 17:55:53 | sean-k-mooney | i dont see any usage of this in tree so maybe this was added for out of tree plugins to call | |
| 17:56:22 | sean-k-mooney | https://github.com/openstack/devstack/commit/58243f6203f3385039fe7124b037d5abf7e1d59e | |
| 17:58:59 | sean-k-mooney | we can always follow up in #openstack-qa but my read on this is the infra is in place but not hooked up to be called | |
| 17:59:34 | sean-k-mooney | this seams to be the only? usage https://github.com/openstack/devstack/commit/dd3731c86a13334125715e44880491042526227c | |
| 18:00:06 | sean-k-mooney | so it be used if we use libs_from_git=nova i guess but that shoudl be the case in teh ci job | |
| 18:01:39 | sean-k-mooney | am not quite its still only takign that path for specific lib | |
| 18:02:01 | sean-k-mooney | not anything listed in libs form git so ya it is not hooked up for nova/service proejcts | |
| 18:02:49 | sean-k-mooney | it shoudl be simple enough to hook up but we shoudl check with gmann et al first to see if there is a reason to only do this for libs | |
| 18:03:09 | dansmith | yeah seems like there must be something missing | |
| 18:05:31 | sean-k-mooney | i think to really do this properly and get the most use out of it we woudl want to modify lib/nova and the nova hypervisor plugsin to pass a diffetn tag (the virt driver) and on the nova side group driver deps by tag .e.g libvirt or ironic in the bindeps file | |
| 18:06:03 | sean-k-mooney | it would be a nice enhancement but a lot of work to fully get right. | |
| 18:06:09 | sean-k-mooney | im honestly fine with your first patch | |
| 18:06:51 | sean-k-mooney | i would only look at hooking up bindep in devstack if we find ourselve needing to do this more hten once or twice a cycle | |
| 18:08:32 | gmann | dansmith: sean-k-mooney hi | |
| 18:08:46 | sean-k-mooney | o/ | |
| 18:09:15 | gmann | bindeps can be installed two way, via flag while installing nova or have file in devstack/file/bindep.txt itself which will be indalled by default | |
| 18:09:19 | gmann | installed | |
| 18:09:54 | gmann | but nova needs to have that in-tree under devstack directory with plugin setup | |
| 18:10:13 | sean-k-mooney | gmann: yep so in this case its a dep for an ansible module we are using in one specific ci job post playbook | |
| 18:10:15 | gmann | I mean here - https://github.com/openstack/nova/tree/master/devstack | |
| 18:10:28 | sean-k-mooney | the dep also happens to be a dep nova has | |
| 18:11:01 | sean-k-mooney | we are assumign that until last week lxml was insallsed transitivly via a weak dep somewhere | |
| 18:11:07 | sean-k-mooney | so the ci playbook worked | |
| 18:11:18 | sean-k-mooney | and that weak dep got lost over the weekend | |
| 18:11:43 | gmann | ohk so we want to have explicit in nova bindep right? | |
| 18:12:21 | sean-k-mooney | well for now we jsut installed it in the job. but then i mentioned bindep to dansmith but that dint work becasue we dont install nova's bindep currently | |