opendevreview | Doug Goldstein proposed openstack/nova stable/2024.1: ironic: Fix ConflictException when deleting server https://review.opendev.org/c/openstack/nova/+/940846 | 01:07 |
---|---|---|
gmann | mikal: as you might have seen spice test running now but failing that is because of schema versions missing in tempest change, I forgot to check it before. I commented in tempest change https://review.opendev.org/c/openstack/tempest/+/940943/2/tempest/lib/services/compute/servers_client.py | 02:51 |
gmann | sean-k-mooney: ^^ i think you are debugging the failure | 02:56 |
sean-k-mooney | ya so tempest reponce schema rejected the respone | 03:00 |
sean-k-mooney | the schema looked ok | 03:01 |
sean-k-mooney | so i was wonderign is the patch missing something to apply it | 03:01 |
gmann | yeah, it is missing this part https://review.opendev.org/c/openstack/tempest/+/940943/comment/4b1cc154_361f1c5e/ | 03:01 |
sean-k-mooney | oh cool ya so it was not registered in the schema_versions_info list | 03:02 |
sean-k-mooney | i should proably go to bed since its like 3 am but this all looks liek it is pretty close | 03:03 |
sean-k-mooney | by the way if anyone fells like +2w ing https://review.opendev.org/c/openstack/nova/+/939476 or https://review.opendev.org/c/openstack/nova/+/938523 it would be nice to wake up with those merged :) | 03:05 |
opendevreview | Rajesh Tailor proposed openstack/nova master: Add support for showing image properties in server show response https://review.opendev.org/c/openstack/nova/+/939649 | 05:29 |
mikal | gmann / sean-k-mooney: I fix that tempest schema thing and am retesting now. | 07:11 |
opendevreview | Vasyl Saienko proposed openstack/nova master: Add trunk subports to network metadata https://review.opendev.org/c/openstack/nova/+/941227 | 08:52 |
opendevreview | Ghanshyam proposed openstack/nova master: Add project manager role in Nova API policy rule https://review.opendev.org/c/openstack/nova/+/941347 | 09:33 |
opendevreview | Balazs Gibizer proposed openstack/nova master: Update InstanceNUMACell version in more cases https://review.opendev.org/c/openstack/nova/+/940953 | 12:56 |
opendevreview | ribaudr proposed openstack/nova master: Add managed flag to PCI device specification https://review.opendev.org/c/openstack/nova/+/937649 | 13:52 |
opendevreview | ribaudr proposed openstack/nova master: Update driver to deal with managed flag https://review.opendev.org/c/openstack/nova/+/938405 | 13:52 |
opendevreview | ribaudr proposed openstack/nova-specs master: Amend the specification about the data in LiveMigrate object https://review.opendev.org/c/openstack/nova-specs/+/941417 | 14:00 |
bauzas | dansmith: doh, somehow items() is already used for o.vo objects https://4c92e32258abec426e9c-a1b3a735e9c0af824100c02f6885a5ce.ssl.cf1.rackcdn.com/940642/6/check/openstack-tox-py39/266ccf7/testr_results.html | 14:38 |
dansmith | bauzas: for the dict-based one yes, that's my point | 14:38 |
bauzas | so I need to provide another method name | 14:38 |
dansmith | if this a dict-compat object? if so you already have items() :) | 14:38 |
bauzas | dansmith: see, this is calling my own method | 14:38 |
bauzas | instead of the original dict() one | 14:38 |
bauzas | items() one | 14:38 |
dansmith | why can't you use the base one? | 14:39 |
bauzas | dansmith: I'll test this | 14:40 |
bauzas | I haven't seen this method before tbh | 14:40 |
dansmith | your object inherits from https://github.com/openstack/oslo.versionedobjects/blob/master/oslo_versionedobjects/base.py#L728 ? | 14:40 |
bauzas | looking | 14:41 |
bauzas | that's ImageMetaProps | 14:43 |
bauzas | which inherits from the base NovaObject | 14:43 |
bauzas | which apparently isn't using this mixin | 14:44 |
dansmith | okay I'm not sure what you're saying.. you said your items conflicted with the base items right? | 14:45 |
dansmith | that error looks more like you're overriding obj_to_primitive? | 14:46 |
bauzas | yeah, see the stacktrace | 14:46 |
bauzas | nope, I'm not overriding it, I'm using it | 14:46 |
bauzas | https://review.opendev.org/c/openstack/nova/+/940642/6/nova/objects/base.py | 14:46 |
dansmith | ohh, I see, you're overriding items on the NovaObject base | 14:47 |
dansmith | but the dict compat is a mix-in, | 14:47 |
dansmith | so you're messing up *other* objects I guess | 14:47 |
bauzas | right | 14:47 |
bauzas | yeah that | 14:47 |
bauzas | for the imageprops object, we're good | 14:47 |
bauzas | but when trying to call the original items() on some other object, then it calls out my own items() | 14:48 |
bauzas | because it takes precedence | 14:48 |
dansmith | even still, obj_to_primitive().items() is not what you want right? that won't get you the actual fields of the object | 14:48 |
bauzas | well, I want to get the key/values of the fields that are set | 14:48 |
bauzas | and obj_to_primitive gives me all I want | 14:49 |
dansmith | right, did you look at what obj_to_primitive() returns? | 14:49 |
bauzas | the base one, not the one we use for passing over the bus | 14:49 |
dansmith | it's a nested dict, but the keys in that dict will be metadata | 14:49 |
dansmith | *object metadata, not your imagemeta fields | 14:49 |
dansmith | looks like this: https://github.com/openstack/oslo.versionedobjects/blob/master/oslo_versionedobjects/base.py#L565 | 14:50 |
dansmith | anyway, so you can't override items in the base class because of the mixing in.. seems like the easiest thing is to just grab the fields in your weigher instead of add a new field/method to all our objects (especially since it duplicates what the dict-compat objects already have), but whatever you want | 14:51 |
bauzas | no, look, I'm calling our https://github.com/openstack/nova/blob/master/nova/objects/base.py#L331 | 14:53 |
bauzas | but yeah, I can use that function in the weigher directly | 14:53 |
dansmith | ohh, the helper not the actual object.obj_to_primitive()? gotcha, sorry | 14:56 |
bauzas | yeah | 14:56 |
bauzas | or something else I'm thinking | 14:56 |
dansmith | yeah I see, sorry.. that's old, totally forgot it was there, but fair enough | 14:57 |
bauzas | do you think I can just add the mixin directly in the ImageMetaProperties object ? | 14:57 |
bauzas | I think we don't need to bump a version for this, right? | 14:57 |
dansmith | you don't but IIRC lots of work was done to remove it :) | 14:57 |
bauzas | okay, then lemme use this function directly by the weigher | 14:58 |
bauzas | thanks | 14:58 |
dansmith | I would just move it to the weigher, yeh | 14:59 |
sean-k-mooney | you know i provided an implentation of the method in my comment | 15:17 |
sean-k-mooney | that grabbed only the populated field form the obejct | 15:17 |
sean-k-mooney | and idd not need to primative | 15:17 |
sean-k-mooney | https://review.opendev.org/c/openstack/nova/+/940642/comment/489497dc_ec3feaf3/ | 15:18 |
sean-k-mooney | is there a reson we are not doing that | 15:18 |
sean-k-mooney | perhaps with a better name | 15:18 |
sean-k-mooney | if needed | 15:18 |
sean-k-mooney | i speicifcly suggested puting it in ImageMetaProps https://github.com/openstack/nova/blob/master/nova/objects/image_meta.py#L158 | 15:20 |
sean-k-mooney | so we coudl give it a good name and keep it targeted to the usecase we needed for the weigher | 15:20 |
sean-k-mooney | the implemenmtaion i descibed would work for any obejct too for what its worth so it could be in base which is why i used the generic name set_fields | 15:22 |
bauzas | sean-k-mooney: sorry was on a meeting | 16:00 |
bauzas | sean-k-mooney: there are many possibilities, what would be the one you would prefer ? either I use that method only in the weigher or I provide it in the ImageMetaProps object, as you want | 16:01 |
sean-k-mooney | so i wanted to put it in ImageMetaProps because i tought that was cleaner btu i dont want you to call obj_to_primitae at all | 16:03 |
sean-k-mooney | so if you want to do it in the wegiehr we could but i tough it was more useful on the object | 16:04 |
ratailor__ | sean-k-mooney, gibi could you please provide your feedback on https://review.opendev.org/q/topic:"bp/image-props-in-server-show" patches. | 16:04 |
sean-k-mooney | to me its better encapsulation of code | 16:04 |
bauzas | sean-k-mooney: https://github.com/openstack/nova/blob/master/nova/objects/base.py#L331 does all the magic that we need and I don't want to copy it, so I'd call that helper | 16:19 |
sean-k-mooney | it does more then you need and is ineefect | 16:23 |
sean-k-mooney | so i dont think you shoudl use that | 16:23 |
sean-k-mooney | wehn you do obj_to_primitive it produces a dict which asl has all the ovo version info | 16:24 |
sean-k-mooney | unless that is diffent then obj.obj_to_primitive() | 16:25 |
sean-k-mooney | oh this is form nova object base so maybe it is diffent then the ovo version fo the funtion | 16:26 |
sean-k-mooney | ok so its going to take this branch https://github.com/openstack/nova/blob/master/nova/objects/base.py#L340-L344 | 16:26 |
sean-k-mooney | bauzas: ok ya the nova obj_to_primitive does what you need | 16:27 |
bauzas | yup, I just need to call it and adapt the response in order to get a set of tuples instead of a dict | 16:28 |
sean-k-mooney | lightly more then you need in that it provides the full dict | 16:28 |
sean-k-mooney | so you shoudl call .keys() on teh result | 16:28 |
bauzas | set(mydict.items()) would give me what I need | 16:28 |
sean-k-mooney | you do not want items | 16:28 |
bauzas | provided mydict is returned by base.obj_to_prim | 16:29 |
bauzas | I want the values of the properties, that's important | 16:29 |
bauzas | I'll compare the tuples (key, value), not only the keys | 16:29 |
sean-k-mooney | i dont think the values shoudl be considered | 16:30 |
sean-k-mooney | well | 16:30 |
bauzas | os_type values need to be considered :) | 16:30 |
sean-k-mooney | ok so you want to mage on the key and value for think like os_type | 16:30 |
sean-k-mooney | ok | 16:30 |
sean-k-mooney | i see why you want both | 16:30 |
bauzas | gibi's point was to optionally provide a conf option that would tell which keys to look at | 16:30 |
sean-k-mooney | ok then ya itmes | 16:30 |
sean-k-mooney | ya i really dont like that | 16:31 |
bauzas | I leave that comment open | 16:31 |
dansmith | I was really hoping we would not need to do that too | 16:31 |
sean-k-mooney | to me this is getting overly complex if we need per image prop wights | 16:31 |
dansmith | even though I gave a concrete example of how, I also gave a concrete example of how it would break down | 16:31 |
bauzas | but I'll repropose a new patch for fixing my items() method | 16:31 |
bauzas | dansmith: sean-k-mooney: well, the weigher would be defaulting to check for all props, but we could optionally change its behaviour by looking at only a few of them | 16:32 |
bauzas | that's the proposal I made on my last comment but I leave the comment open | 16:33 |
bauzas | feel free to chime in | 16:33 |
sean-k-mooney | filterign properties is one thing | 16:33 |
sean-k-mooney | per property multiplers is another | 16:33 |
sean-k-mooney | that the bit that im not really fond of althogh im not super happy with either | 16:33 |
dansmith | well my point is that I feel like the minute you start making some properties worth more than others (filtered properties count as $weight, unfiltered properties count as zero) then, | 16:34 |
dansmith | the ask will be to make something important (os type) more important than something less (numa, or disk or something) | 16:34 |
sean-k-mooney | ya | 16:34 |
sean-k-mooney | so ignoring the compelxity this was ment to be a very simple weigher with littel overhead | 16:35 |
sean-k-mooney | i.e. you could enable it with very littel conisdiertation to the schduilign performace impact | 16:35 |
dansmith | I think the question is not about just simplicity, but also how well it works | 16:35 |
dansmith | the originally-proposed mechanism was very simple and also very weak, and I assumed that was the goal... to help clump some things, but not be very strong (which needs more complexity to be effective I think) | 16:36 |
dansmith | honestly, this might be the kind of thing where "fix it in post" via watcher is more effective | 16:36 |
sean-k-mooney | right os i have wanted to do soemthign similar but idffernt for a number of years, so i propose that loose affintiy apprch" | 16:36 |
sean-k-mooney | what i have wanted ot add is a diffent weigher that i call the boreign host wiether that perfer hosts with less traitsand less complicate RP trees | 16:37 |
dansmith | correct me if I'm wrong, | 16:38 |
dansmith | but if you want to clump your windows instances on windows machines you can set a trait on those hosts, and a requested-but-not-required trait on the image, right? | 16:38 |
sean-k-mooney | baiscly avoiding host with complciated things unless you ask for it. in this uescase they wanted to group similar isntances together based on the image properies | 16:38 |
sean-k-mooney | dansmith: no | 16:38 |
dansmith | it won't dynamically scale the pool, but otherwise that will be a strong but uncomplicated magnet right? | 16:39 |
sean-k-mooney | we dont have prefered traits | 16:39 |
dansmith | no? | 16:39 |
sean-k-mooney | if we did have a prefered trait wiegher for that it woudl be ideal | 16:39 |
sean-k-mooney | but we would also have to dynmical export the widnows trait once an instnace lands on the host in that case | 16:39 |
dansmith | we have trait=required but no trait=anythignelse? | 16:40 |
dansmith | no we wouldn't | 16:40 |
dansmith | we could | 16:40 |
dansmith | but not strictly required, IMHO | 16:40 |
sean-k-mooney | i guess you could pre export it with provider yaml | 16:41 |
dansmith | right | 16:41 |
sean-k-mooney | i.e. tag the nodes up front | 16:41 |
dansmith | I think I've made this mistake before, I guess because I assume if there's an =required there must be an =somethingelse :) | 16:41 |
dansmith | right.. that doesn't make it fully automatic, but also makes it less complicated, predictable, and strong | 16:41 |
sean-k-mooney | so we coudl do both. the simple automatic clumping | 16:42 |
sean-k-mooney | and in the future add prefered traits supprot | 16:42 |
sean-k-mooney | with another weither | 16:42 |
sean-k-mooney | https://github.com/openstack/glance/blob/5cfecc79995c6a9524f0dbc4553b4a88761b382f/doc/source/admin/useful-image-properties.rst?plain=1#L277-L306 | 16:42 |
sean-k-mooney | ^ we only supprot required but not forbiden or prefered in the image | 16:43 |
dansmith | preferred traits needs no placement support, right? just a weigher | 16:43 |
dansmith | yep | 16:43 |
sean-k-mooney | just a weigher and much of the work is done | 16:43 |
sean-k-mooney | we jsut need to put the provider summeries in the hoststate object | 16:43 |
dansmith | is that not basically the same amount of work as this? why not just do that? | 16:43 |
dansmith | oh, do we not have the ability to see traits on hosts from the weighers now | 16:44 |
sean-k-mooney | no but we already have the info in the host manger | 16:44 |
sean-k-mooney | we only pass the allcoations | 16:44 |
sean-k-mooney | so we can see what you asked for but not what is on the host | 16:44 |
sean-k-mooney | so we can just pass both | 16:44 |
sean-k-mooney | because we have both in the schduler alrady so no change to the placement request | 16:45 |
dansmith | ack, seems like that would be a non-trivial increase in the hoststate though | 16:45 |
sean-k-mooney | its more like a exnetion in the time before its garbage collected maybe | 16:46 |
sean-k-mooney | i think we end up keepign them in memory anyway because of the function call path but i might eb wrong | 16:46 |
dansmith | so we already report we just don't expose it to the weighers?/ | 16:46 |
sean-k-mooney | yes | 16:46 |
sean-k-mooney | so i was randomly hackign on https://review.opendev.org/c/openstack/nova/+/933478 a while ago and wanted to use them and found its not aviabel | 16:47 |
sean-k-mooney | dansmith: we didnt have ether aviabel to the weiers untile pci in palcemnt and gibi only passed the allcoation since that is all they needed | 16:48 |
bauzas | okay, I hear your voices, I'll keep that weigher stupidly simple | 16:49 |
dansmith | maybe we should have a gmeet amongst the four of us and make sure we have a path forward | 16:50 |
dansmith | I don't think gibi is going to be happy with simple, and it may not address the actual concern according to him, so we might just want to get on the same page | 16:50 |
sean-k-mooney | we can if we want too | 16:51 |
sean-k-mooney | but i wonder if we should be rushing into the design | 16:51 |
sean-k-mooney | im find we havign a call to see if we have a common undersanding | 16:52 |
sean-k-mooney | i just wonder if we shoudl disucss this at the ptg instead. we can totally do it now if we think there is a useful veriosn we coudl deviler this cycle | 16:52 |
sean-k-mooney | but i dont want to merge somethign we think wont acutlly be useful | 16:53 |
dansmith | I don't want to rush, but I also don't think this is complicated enough that we need to push it off... it doesn't affect rpc or api, which means getting it perfect the first time is not really a big deal, IMHO | 16:53 |
sean-k-mooney | ack | 16:54 |
sean-k-mooney | fyi https://github.com/openstack/nova/blob/32326d48949525a995d132bddc90e710c229947f/nova/scheduler/manager.py#L195-L205 is where we have the allcoation and the provider summeries already | 16:54 |
sean-k-mooney | we also pass them into _schedule https://github.com/openstack/nova/blob/32326d48949525a995d132bddc90e710c229947f/nova/scheduler/manager.py#L195-L343 | 16:55 |
sean-k-mooney | we are just not assocating them with the host or pasing them to get_sorted_hosts https://github.com/openstack/nova/blob/32326d48949525a995d132bddc90e710c229947f/nova/scheduler/manager.py#L421 | 16:56 |
gibi | sorry I was not able to follow this discussion as I had parallel back to back meetings. At this point I only care about solving the real use case. | 17:28 |
gibi | If there is an agreement that the current proposal solves the real use case, or even solve a real use case, then I'm OK with it. | 17:31 |
opendevreview | Sylvain Bauza proposed openstack/nova master: Add a new ImagePropertiesWeigher https://review.opendev.org/c/openstack/nova/+/940642 | 17:35 |
bauzas | I just uploaded a new rev | 17:35 |
bauzas | but I'm fried for today | 17:35 |
bauzas | I'll rather grab a beer and hardstop | 17:35 |
bauzas | -ETOOMUCHCONTEXTSWITCHING | 17:36 |
sean-k-mooney | ya im feeling really unproductive today for the same reason | 17:37 |
gibi | indeed a lot of parallel things these days | 17:44 |
bauzas | this chan is logged and public, but you guys know and I'm just a sad panda to not have decent time for reviewing | 17:49 |
bauzas | tomorrow, I'll litterally block my agenda for such thing | 17:49 |
sean-k-mooney | gibi: bauzas i comemted on the latest version. i think the best path forward would be to have a second patch to copy the metric where imple for matching on indiviual properteis if we really want to supprot that | 18:06 |
sean-k-mooney | that way we keep the syntax common between the two weigher and if we agree we want both then we can merge both pathces | 18:06 |
sean-k-mooney | if we think we just want to keep it simple then we merge the first one | 18:07 |
mikal | What user do tempest tests run as? Because https://zuul.opendev.org/t/openstack/build/a2c28aa2ebc248509f5b586411172955 is getting {'code': 403, 'message': "Policy doesn't allow os_compute_api:os-console-auth-tokens to be performed."} which it shouldn't if its an admin user. | 18:43 |
dansmith | depends on the test and the client you use | 18:48 |
dansmith | there's like a self.client and self.admin_client on most test classes, but I think maybe not always if the setup didn't foresee the need | 18:49 |
dansmith | but that might give you a grep thread to follow | 18:49 |
sean-k-mooney | if you want to call admin apis you expelcity need to use an admin client in the test ya | 18:49 |
mikal | Hmmm, ok. I cargo culted the vnc tests, and its using "self.servers_client", whatever that is. | 18:50 |
sean-k-mooney | you might be ablle to just pass admin=ture to that | 18:50 |
sean-k-mooney | there are diffent helpers in different parts to do that | 18:51 |
sean-k-mooney | https://github.com/openstack/tempest/blob/master/tempest/api/compute/base.py#L691C13-L691C33 | 18:51 |
sean-k-mooney | you can maybe just copy paste cls.admin_servers_client = cls.os_admin.servers_client | 18:52 |
mikal | Oh, I can just inherit from BaseV2ComputeAdminTest not BaseV2ComputeTest I think. | 18:53 |
sean-k-mooney | that would proably work too | 18:53 |
sean-k-mooney | if you do that you might want to move the test to https://github.com/openstack/tempest/tree/master/tempest/api/compute/admin | 18:54 |
dansmith | just curious though, why is admin required here? | 18:54 |
sean-k-mooney | the hypervior ip/ports are only shown to the admin | 18:54 |
mikal | Turning a console token into hypervisor IP and port requires admin. | 18:54 |
dansmith | oh because no proxy like normal I guess? | 18:55 |
sean-k-mooney | right so we allow kerbside to get them but not the normal user | 18:55 |
dansmith | gotcha | 18:55 |
mikal | Yeah, a normal user can request a console but then has to ask kerbside to connect to it for them. | 18:56 |
mikal | Oh, which I guess means I need two clients in this test... | 18:56 |
mikal | Attempt 11! | 18:56 |
sean-k-mooney | well you could cheat and jsut do everythin as admin but if you wanted to have a negitive test adn show normal user cant see this then ya | 18:58 |
opendevreview | Alan Bishop proposed openstack/nova master: Show swap_progress in attachment details https://review.opendev.org/c/openstack/nova/+/941476 | 19:01 |
opendevreview | Mengyang Zhang proposed openstack/nova master: Add Burst Length Support to Cinder QoS https://review.opendev.org/c/openstack/nova/+/939490 | 20:10 |
opendevreview | Mengyang Zhang proposed openstack/nova master: Add Burst Length Support to Cinder QoS https://review.opendev.org/c/openstack/nova/+/939490 | 20:15 |
opendevreview | Artom Lifshitz proposed openstack/nova master: WIP: Add [libvirt]default_tpm_secret_security https://review.opendev.org/c/openstack/nova/+/940194 | 20:25 |
opendevreview | Artom Lifshitz proposed openstack/nova master: WIP: Add [libvirt]supported_tpm_secret_security https://review.opendev.org/c/openstack/nova/+/940195 | 20:25 |
opendevreview | Artom Lifshitz proposed openstack/nova master: WIP: Add hw_tpm_secret_security image property https://review.opendev.org/c/openstack/nova/+/940196 | 20:25 |
opendevreview | Artom Lifshitz proposed openstack/nova master: WIP: Add hw:tpm_secret_security extra spec validation https://review.opendev.org/c/openstack/nova/+/940197 | 20:25 |
opendevreview | Artom Lifshitz proposed openstack/nova master: WIP: Ensure secret security policy for TPM instances https://review.opendev.org/c/openstack/nova/+/941062 | 20:25 |
opendevreview | Artom Lifshitz proposed openstack/nova master: WIP: Allow vTPM live migration for `deployment` secret security https://review.opendev.org/c/openstack/nova/+/925771 | 20:25 |
opendevreview | Artom Lifshitz proposed openstack/nova master: WIP: Modify vTPM LM block to block legacy instances https://review.opendev.org/c/openstack/nova/+/941483 | 20:25 |
mikal | oh nice, because os-console-auth-tokens previously had zero testing, I also need to define what schema it should have in tempest. | 21:22 |
mikal | Does anyone have an opinion on if I should just add that schema in the new microversion, or try to work out when it was actually introduced and add it back then? | 21:23 |
melwitt | gmann: ^ | 21:28 |
opendevreview | Tobias Urdin proposed openstack/nova master: Add minute to instance_usage_audit_period https://review.opendev.org/c/openstack/nova/+/941488 | 21:45 |
opendevreview | Michael Still proposed openstack/nova master: libvirt: direct SPICE console object changes https://review.opendev.org/c/openstack/nova/+/926876 | 22:34 |
opendevreview | Michael Still proposed openstack/nova master: libvirt: direct SPICE console database changes https://review.opendev.org/c/openstack/nova/+/926877 | 22:34 |
opendevreview | Michael Still proposed openstack/nova master: libvirt: allow direct SPICE connections to qemu https://review.opendev.org/c/openstack/nova/+/924844 | 22:34 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!