Earlier  
Posted Nick Remark
#openstack-nova - 2020-04-14
20:45:03 artom bauzas, yeah, there's not much you can do with the global CONF.host...
20:45:19 artom Although the computes should keep their hostnames...
20:45:24 artom So maybe there's a bug somewhere?
20:45:48 bauzas artom: that's not really a bug
20:45:51 artom Oh, wait, melwitt linked the "wrong" helper
20:45:55 bauzas artom: it's just a problem for tests
20:46:15 artom bauzas, are you using the fake driver, or the libvirt driver?
20:46:22 bauzas the latter
20:46:31 bauzas hence the problem
20:46:58 bauzas anyway, I found the solution
20:47:00 melwitt artom: what do you mean "wrong" helper?
20:47:12 artom bauzas, https://github.com/openstack/nova/blob/9001d7e3459d97f507e8ce638d1fc3935401252d/nova/tests/functional/libvirt/base.py#L117
20:47:32 bauzas I all know about it
20:47:58 bauzas but again, CONF.host will be overrided by the last value
20:48:16 bauzas given it's a global variable
20:48:21 artom bauzas, no way around it, then
20:48:26 artom CONF is global per process
20:48:37 bauzas we only run by a single process fwiw
20:48:43 artom Yep
20:48:44 bauzas (for testing)
20:48:59 artom OK, my kids are impatiently calling me to literally go fly a kite
20:49:04 artom So I'm off again
20:49:06 mriedem if the driver code uses the host set on the compute manager (via virtapi) then you get whatever host name was used when the service was started
20:49:12 mriedem so, ween off global conf
20:49:16 bauzas anyway, I got the workaround (changing the value before calling the post api), and I'll create a new change for libvirt
20:49:54 bauzas I mean, I'll propose the functional test first, and then another change for just using virtapi in libvirt
20:49:58 sean-k-mooney i think you could mock it to have different values in different greenthread/coroutiens but ya the currnet constution makes having different values chalanging
20:50:02 bauzas done.
20:50:48 bauzas sean-k-mooney: oh yeah of course, we could start the services by each greenthread... and then we would see problems :p
20:50:56 bauzas or I dunno
20:51:02 bauzas anyway
20:51:06 bauzas I'm done
21:51:13 sean-k-mooney bauzas: mriedem melwitt this is how we can mock the globals i think http://paste.openstack.org/show/792118/
21:51:41 melwitt sean-k-mooney: ahhh mine eyes!
21:52:43 sean-k-mooney hehe i have to create an event loop to get it to interleave and emulate two compute services so there is a bit of boiler plate
21:53:03 mriedem or just stop using globals
21:53:05 bauzas sean-k-mooney: lol
21:53:11 openstackgerrit Sylvain Bauza proposed openstack/nova master: Pass allocations to virt drivers when resizing https://review.opendev.org/589085
21:53:12 openstackgerrit Sylvain Bauza proposed openstack/nova master: Allocate mdevs when resizing or reverting resize https://review.opendev.org/712741
21:53:12 openstackgerrit Sylvain Bauza proposed openstack/nova master: Pass allocations to virt drivers when reverting resize https://review.opendev.org/712118
21:53:19 bauzas sean-k-mooney: I'm just uploading the series ^
21:53:41 bauzas aaaaaand I'm done today (well, tomorrow is in 7 mins)
21:53:51 melwitt time to start again in 7 minutes!
21:53:51 sean-k-mooney well stop using gloabals means deviate form how oslo conf is used everywhere else in openstack
21:53:52 artom mriedem, well, a global per-process CONF makes sense
21:54:07 artom It's not like different bits of a single nova process can have different configs
21:54:08 sean-k-mooney not that im saying we should not stop using globals
21:54:43 bauzas sean-k-mooney: artom: melwitt: honestly, let's discuss it on the change I'll provide tomorrow morning my time (ie. using virtapi.host field instead of CONF.host)
21:54:45 artom Though I suppose single global config != single global variable
21:54:45 mriedem sean-k-mooney: it's not used globally in placement, intentionally
21:54:48 sean-k-mooney i just wanted to point out we cauld create muliple patchers for the config an activate them as needed
21:54:49 mriedem cdent burned all of that out
21:55:12 artom Smart man
21:55:12 bnemec Ugh, really?
21:55:14 sean-k-mooney mriedem: ya well that was because they had the same proablem and bit the bullet
21:55:16 mriedem and it's not meant to be used globally, the oslo docs even say that i think, but that's what's happened
21:55:16 bnemec Please don't do that.
21:55:46 artom Anyways, I have to make supper
21:55:53 sean-k-mooney bnemec: stop using global or my fun with mock
21:55:55 artom I do enjoy these drive-by discussions :P
21:56:25 mriedem https://docs.openstack.org/oslo.config/latest/reference/faq.html#why-does-oslo-config-have-a-conf-object-global-objects-suck
21:56:44 mriedem artom: i was summoned earlier
21:57:11 artom mriedem, summoned eh? You're an Eldrich God?
21:57:18 bauzas again, I agree with mriedem, I think the simpliest would be to just stopping to use CONF.host everytime in libvirt
21:57:20 artom At least you don't talk of yourself in the third person ;)
21:57:21 bnemec mriedem: That's saying you _should_ use the global object because it's what everyone else is doing.
21:57:27 mriedem more like a pit fiend
21:57:43 mriedem bnemec: it concedes
21:57:50 mriedem "yes it sucks but everyone is doing it so sure"
21:58:19 bnemec I can tell you it would break parts of the policy generator if you dropped it.
21:58:19 artom Ah, the old jump off a bridge debate
21:58:29 artom mriedem, dammit, jinx!
21:59:09 mriedem bnemec: tbc, the suggestion was to stop using the global config to access one variable in one very specific place in the libvirt driver so that functional tests weren't mocking or hacking global config to workaround its global-ness
21:59:28 mriedem bnemec: nova is never going to fully move off global config usage, it's just that one spot i was talking about
22:00:07 bnemec That sounds perfectly reasonable.
22:00:33 bauzas again, I think the easiest is to just stop using global objects as much as we can
22:00:46 bauzas so, bye CONF.host and just check what we need once
22:01:05 bnemec The one danger of not looking it up from the conf object each time is that mutable config won't work correctly, unless you write a hook to update it.
22:01:27 bnemec But that's both solvable and not an issue if that config opt isn't marked mutable.
22:05:51 sean-k-mooney this is a cleaner verion of the same thing by the way http://paste.openstack.org/show/792119/
22:08:11 sean-k-mooney compute-1 and comptue-2 have there own view of the global object that they can modify without affecting each other.
22:09:26 sean-k-mooney this is still rather archane so im not really sure i would want to do this but if i coudl make it into a nice decorator to hide this i could be an option. anyway i just wanted to play with mocking and see what i could do
22:12:32 sean-k-mooney bnemec: we dont really support mutable config for many config options today in nova
22:13:00 sean-k-mooney bnemec: some stuff yes but you cant change the virt dirver while its runing or many of the virt driver options
22:19:43 openstackgerrit Ghanshyam Mann proposed openstack/nova master: Fix servers policy for admin_or_owner https://review.opendev.org/718501
22:19:59 openstackgerrit Ghanshyam Mann proposed openstack/nova master: Add test coverage of existing server policies https://review.opendev.org/718348
22:21:27 gmann stephenfin: can you re approve these, I lost +A due to rebase - https://review.opendev.org/#/c/718348/ https://review.opendev.org/#/c/718501
22:28:38 mriedem bnemec: in this case it's CONF.host which isn't mutable, and if you change the hostname on a compute node you're ... kind of destroying that node
22:48:09 sean-k-mooney mriedem: we often want to change other value that also are not mutable when we do multi node functional test and simple using another value is not always an option
22:48:51 sean-k-mooney im thinking of the cpu_dedicated_set and other values like that where it would be really nice to have a two node functional test with different values.
22:49:43 sean-k-mooney anyway its not relavent to bauzas patch but its frequently a problem we hit.
22:59:39 ianw hi, nodepool testing hit the removal of "user_data" from the nova client https://opendev.org/openstack/python-novaclient/commit/03dca4bc823c82054869dfaf6925d5e1e068ac51
22:59:56 ianw we were testing that the user_data specified in the nodepool config makes it through to nova
23:00:06 ianw is there another suggested way to check that?
23:03:55 melwitt ianw: hm, yeah I wondered if anyone would be affected by that change when I saw it go through. I can't immediately think of anything other than using the novaclient python binding. or calling the API directly
23:05:44 ianw yeah, i think maybe using the binding might work; it doesn't seem like it's generically useful enough to put back in behind a switch or something
23:06:24 ianw unless others think it is ...
23:07:39 melwitt yeah, I wondered the same.
23:09:20 melwitt it's been years but I've looked at it before as an end user, as a "did I do that right?" sanity check
23:11:33 openstackgerrit Merged openstack/nova master: Add test coverage of existing flavor extra spec policies https://review.opendev.org/719372

Earlier   Later