Earlier  
Posted Nick Remark
#openstack-nova - 2020-08-26
16:23:33 sean-k-mooney yep
16:23:42 sean-k-mooney so they should be the same unless you change that config option
16:24:04 sean-k-mooney if you use socket.fqdn() in your code it may not agreee
16:24:08 sean-k-mooney i fixed this in cyborg
16:24:14 yoctozepto then I would be changing the thing for nova-compute but not for the hypervisor, right?
16:24:32 sean-k-mooney yes
16:24:46 sean-k-mooney if you set [default]/host to something
16:25:03 yoctozepto ok, so where does the name for the hypervisor spawn and how's it kept linked? :D
16:25:03 sean-k-mooney hyperviour_hostname and host will not be the same for libvirt
16:25:08 sean-k-mooney or other virt dirvers
16:25:54 sean-k-mooney host is the compute service host and is set by that config and hypervisor_hostname is set by the virt driver
16:26:04 openstackgerrit Stephen Finucane proposed openstack/nova master: functional: Don't inherit from 'ProviderUsageBaseTestCase' https://review.opendev.org/748271
16:26:13 sean-k-mooney the libvirt driver get it form libvirt
16:26:25 sean-k-mooney and it calls socket.gethostname internally in c
16:26:29 stephenfin bauzas: https://review.opendev.org/748271
16:26:52 sean-k-mooney socket.gethostname is a fucntion provided by libc and pythons socket module jsut call the libc version
16:27:19 sean-k-mooney socket.gethostname() reads /etc/hostname if it exits on linux
16:27:23 yoctozepto sean-k-mooney: ah, so it's consulted each time with libvirt? I guess that's why I had a hard time figuring this one out
16:27:32 sean-k-mooney yes
16:27:37 yoctozepto yeah, the rest makes sense
16:27:40 stephenfin sean-k-mooney: https://review.opendev.org/#/c/748250/
16:27:49 yoctozepto I do wonder how noonedeadpunk (and some others) ended up desynchronizing them
16:28:05 bauzas stephenfin: I don't get your comment, you're saying you can't just use the InstanceMixin ?
16:28:08 noonedeadpunk I have situnation where socket.gethostname and socket.getfqdn are different things
16:28:13 bauzas stephenfin: directly I mean ?
16:28:31 yoctozepto noonedeadpunk: hmm, ah
16:28:40 yoctozepto but then sean-k-mooney was only about gethostname
16:28:52 yoctozepto you mean libvirt is actually doing getfqdn?
16:28:52 bauzas stephenfin: of course, you'd have to specify the latest microversion but is that terrible to do ?
16:29:01 stephenfin bauzas: Not really. I'd have to copy-paste all of this https://github.com/openstack/nova/blob/master/nova/tests/functional/integrated_helpers.py#L1107-L1132
16:29:10 sean-k-mooney yoctozepto: no its getting the hostname
16:29:23 stephenfin bauzas: Which seems worse than having functions available that I'm not using
16:29:51 noonedeadpunk sean-k-mooney: but I think that libvirt checks for the socket.getfqdn...
16:29:52 sean-k-mooney stephenfin: lol ok
16:29:54 stephenfin '_IntegratedTestBase' is basically what you're asking for but with all that boilerplate inline
16:29:59 yoctozepto then there is a conflict between your testimonies, noonedeadpunk and sean-k-mooney :-)
16:30:00 sean-k-mooney noonedeadpunk: it does not
16:30:05 yoctozepto investigation ongoing!
16:30:07 yoctozepto :D
16:30:12 sean-k-mooney noonedeadpunk: unless they changed it wich would be a breaking change
16:30:20 stephenfin there are some differences around policy but I'm resolving those in separate patches
16:30:57 noonedeadpunk sean-k-mooney: http://paste.openstack.org/show/797181/
16:31:03 yoctozepto https://github.com/libvirt/libvirt/blob/7ba4838a18afb609d900190c57b0cbfb842ccbdf/src/util/virutil.c#L470
16:31:08 noonedeadpunk I can judge only by this...
16:31:25 stephenfin melwitt: want to unbork cloning on Windows? https://review.opendev.org/#/c/748250/
16:31:43 yoctozepto it seems they are training to canonicalize on master
16:31:51 yoctozepto that's how they ended up with an fqdn
16:31:55 bauzas stephenfin: technically, you'd need to do things like https://github.com/openstack/nova/blob/master/nova/tests/functional/regressions/test_bug_1849409.py
16:32:09 sean-k-mooney yoctozepto: noonedeadpunk we cant change this behavior
16:32:12 yoctozepto so yeah, they b0rked
16:32:14 sean-k-mooney its used in plamcnet
16:32:14 bauzas stephenfin: but that should be it
16:32:27 yoctozepto sean-k-mooney: what's plamcnet? ;d
16:32:42 noonedeadpunk sean-k-mooney: yeah, that's fine) just sharing feedback about fqdn vs gethostname - fighting this 3 years I guess...
16:32:49 sean-k-mooney the placement service
16:32:56 yoctozepto noonedeadpunk: but now we know
16:32:58 yoctozepto sean-k-mooney: ack
16:33:23 elod lyarwood: no need to squash, it's good as it is. will review now
16:33:31 sean-k-mooney noonedeadpunk: it is technially allowed to return an fqdn if you put an fqdn in /etc/hostname which you should not do but some people do
16:33:33 stephenfin bauzas: Yes, but those are nearly identical. The only difference is the use of the CinderFixture and fake image service (essentially GlanceFixture)
16:33:34 yoctozepto ok, this was a very worthwhile chat, thanks sean-k-mooney, stephenfin and noonedeadpunk
16:33:52 yoctozepto sean-k-mooney: you can also get trapped by dns
16:33:58 stephenfin bauzas: oh, and the cast as call
16:34:05 sean-k-mooney the masikari patch is not correct by the way
16:34:10 melwitt stephenfin: sure, but curious what does your comment mean about sphinx not finding the reno? does that mean the release note will disappear from the release notes? I had thought it would still be included even if the name is changed?
16:34:29 yoctozepto sean-k-mooney: any reviews appreciated!
16:34:35 yoctozepto any and all* I mean
16:34:41 stephenfin melwitt: it'll find the reno with the new name but complain about a file matching the old name being missing
16:34:51 bauzas stephenfin: yup, we would probably just need another base testclass which wouldn't pull all the placementesque methods
16:34:52 sean-k-mooney yoctozepto: the seach is using hyperviour_hostname in the host filed
16:34:54 noonedeadpunk sean-k-mooney: it's more complicated than that.. In /etc/hostname I have uacloud-nova03. But the thing is that python gets it not from /etc/hostname, but from /etc/hosts
16:34:56 stephenfin i.e. "this existed in the past but I can't find it now; skipping"
16:35:01 sean-k-mooney that only works for libvirt
16:35:09 melwitt stephenfin: ah ok. thanks
16:35:11 bauzas stephenfin: but in the meantime, instancemixin seems better to use IMHO + those extra lines
16:35:13 yoctozepto sean-k-mooney: nah, that's bad naming
16:35:28 stephenfin bauzas: We have it. It's call '_IntegratedTestBase'
16:35:29 yoctozepto actually masakari uses this-called-string for corosync and nova-compute
16:35:36 yoctozepto and asssumes that they are the same
16:35:41 stephenfin bauzas: look at the superclasses for that https://github.com/openstack/nova/blob/master/nova/tests/functional/integrated_helpers.py#L1008
16:35:47 yoctozepto somehow they thought it always equals hypervisors...
16:35:59 yoctozepto well, I would have as well probably
16:36:08 stephenfin *It's called
16:36:30 bauzas stephenfin: I do remember the pain writing functional tests that were requiring duplicate code
16:37:09 sean-k-mooney yoctozepto: maybe its not clear if https://docs.openstack.org/api-ref/compute/?expanded=list-compute-services-detail#list-compute-services is the hyperviour_hostname or the host value form teh cofnig
16:37:16 sean-k-mooney i suppect its the host value form the config
16:38:05 yoctozepto sean-k-mooney: it is, it's just that noonedeadpunk kept the old name, I commented on that too
16:38:27 sean-k-mooney ok so its the host value
16:38:31 sean-k-mooney not the hypervisor_hostname
16:38:36 noonedeadpunk At fisrt I was trying to keep changes minimal)
16:38:54 yoctozepto noonedeadpunk: all in all, this patch makes masakari a bit better but still kinda delays the issue that one could actually want to monitor the hypervisors, and have their names agree with those in corosync cluster
16:39:09 bauzas either way, it's becoming late for me, \o
16:39:12 sean-k-mooney noonedeadpunk: thats an good goal generaly but but names existingon the compute node recored in teh db
16:39:34 sean-k-mooney so we should try to use hypervisor_hostname and host name differently depending on which we mean
16:40:10 noonedeadpunk Yeah, I see it now. Just wanted to made it as bug fix to get backported at first :p
16:40:38 noonedeadpunk but you're totally right
16:41:53 yoctozepto noonedeadpunk: if we straighten the logic right, then you know who's the core who will accept those backports :-)
16:42:35 sean-k-mooney noonedeadpunk: these are teh rules libvirt uses by the way
16:42:38 sean-k-mooney https://github.com/libvirt/libvirt/blob/7ba4838a18afb609d900190c57b0cbfb842ccbdf/src/util/virutil.c#L470-L489
16:45:37 sean-k-mooney the did modify this 8 months ago https://github.com/libvirt/libvirt/commit/26d9748ff114a060ee751959d108d062f737f5d9

Earlier   Later