Earlier  
Posted Nick Remark
#openstack-nova - 2018-01-11
20:32:29 mriedem you pulled my approved changes out of the gate
20:32:52 mriedem stvnoyes: i thought you were going to push a separate patch on top of https://review.openstack.org/#/c/266605/ ? not add to it.
20:33:17 stvnoyes hmm cr*p. what's the best way to undo that?
20:33:55 stvnoyes i can submit a new change that pulls it out...
20:34:10 claudiub mriedem: so, at the moment, hyperv-neutron-agent is still used in the CI. But i've fetched that patch and instances still spawn when using OVS.
20:34:21 mriedem stvnoyes: too late now
20:34:31 mriedem well too late for the git review -R
20:34:38 mriedem stvnoyes: you could just put the resize test on top in a different change
20:34:41 mriedem just don't git commit --amend
20:35:20 stvnoyes just to be clear, on top, you mean by using depends on?
20:35:35 mriedem no
20:35:40 mriedem stack the changes like i've done in that series
20:35:49 mriedem you don't need depends-on within the same repo
20:36:13 mriedem so just remove the resize test from the top patch, then commit it into a new change at the top of the series,
20:36:14 sean-k-mooney claudiub: ya the way os-vif is written it should work with or without the patch but it annoys me that it works just because we happened ot make the functions not fail if there preconditions were violated
20:36:19 mriedem and then git review -R -y
20:36:24 stvnoyes ok
20:36:51 mriedem if you need to go back within the series to change something, you do an interactive rebase (git rebase -i HEAD~4) or whatever
20:39:44 efried git restack is your friend
20:40:00 efried Well, *my* friend, anyway.
20:40:13 sean-k-mooney efried: git restack?
20:41:00 sean-k-mooney i use git rebase -i often but never heard of git restack
20:41:01 efried sean-k-mooney It rolls up rebase -i and some of the other paperwork associated with managing a big series.
20:41:24 efried sean-k-mooney I think it was developed by stackers. Separate plugin. pip install git-restack (I think)
20:41:36 sean-k-mooney https://github.com/openstack-infra/git-restack so yes
20:41:56 sean-k-mooney git review is also an infra tool
20:42:16 efried no kidding, really? TIL
20:42:40 efried Was using that long before I got involved with openstack.
20:42:43 sean-k-mooney yep https://github.com/openstack-infra/git-review
20:44:17 sean-k-mooney efried: stephenfin: also intoduced me to gerrithub.io which allows you to add gerrit to any github project so you can use the openstack/gerrit workflow with it insteadk of pull requests
20:44:41 efried oooooooo
20:44:44 bauzas I don't like git restack
20:44:51 bauzas I prefer the old but clean way
20:45:12 efried Would you like it better if it was git restaque?
20:45:16 bauzas because something you can be messed up in a long series and then git reflog is your friend
20:45:52 dansmith bauzas: you never started talking
20:46:07 bauzas dansmith: I was holding my breath till your email :p
20:46:08 dansmith bauzas: I was expecting you to start asking your question and I'd get to it when I was done
20:46:18 dansmith bauzas: but then I got distracted with no ping :)
20:46:23 bauzas my bad, misunderstanding
20:46:24 dansmith anyway, shoot
20:46:26 bauzas so
20:47:13 bauzas dansmith: in case you don't know yet, we're attaching a mdev device based on the allocation
20:47:22 bauzas that works fine
20:47:57 bauzas but the issue we have is that there are a shit ton of other methods that rebuild that guest XML, and those don't have the allocations passed yet
20:48:20 dansmith 1.0 shit tons?\
20:49:25 bauzas I mean, spawn() is calling it, but also for example hard_reboot
20:49:52 bauzas which itself is called by power_on()...
20:49:53 bauzas https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L2658
20:49:54 dansmith yeah, I get it
20:50:30 bauzas so, I tested on my node, and indeed, if you stop/start your instance, you're not missing the mdev
20:50:39 dansmith not missing?
20:50:39 bauzas you're missing*
20:50:42 dansmith heh yeah okay
20:50:58 bauzas so there are 2 options
20:51:18 bauzas #1 pass the allocations down to where we need, exactly like we did for spawn()
20:51:33 bauzas that means we need to modify every caller
20:51:53 bauzas #2 introspect the flavor rather than allocations
20:52:05 dansmith #2 is cheating
20:52:24 dansmith the reason I asked about the fraction of shit tons is... how many actual calls are we talking about here?
20:53:43 bauzas lemme grep that
20:54:37 bauzas my grep tells me 6 times
20:54:54 dansmith that doesn't seem untenable to me
20:55:13 dansmith granted you have to do it in multiple drivers, but.. it's not a billion
20:55:19 dansmith that's like 0.0001 shit tons :)
20:55:24 bauzas resume, unrescue, finish_migration, power_on and so far
20:55:43 dansmith I guess the other thing we need to do is cache those in compute manager for when we need them because spawn brings them, but the other calls won't
20:55:53 dansmith so the other way to look at this is,
20:56:00 bauzas dansmith: 'those' == allocs ?
20:56:06 dansmith that maybe this is a libvirt problem
20:56:09 dansmith yes those == allocs
20:56:45 dansmith like, I wonder if the other drivers would have this problem, or if they would just not blindly regenerate the vm definition
20:57:02 dansmith you could just read the xml to get the mdev info before you blow it away, right?
20:57:07 bauzas dansmith: that's something I wondered earlier in the day
20:57:07 dansmith and you wouldn't need the full allocation
20:57:29 bauzas I mean I was surprised to see we were generating the XML every time
20:57:35 dansmith well,
20:57:44 dansmith I don't think that refreshing it all the time is bad,
20:58:00 dansmith because it gives us a chance to update things like the ceph monitor ip address and such
20:58:07 dansmith but we don't have to do it blindly
20:58:14 bauzas yeah I can understand that reasoning
20:58:43 bauzas but yeah, instead of just amending what's needed, we're just wiping out the whole config
20:58:49 bauzas anyway
20:58:53 bauzas this is what it is
20:58:56 dansmith you could probably write a clean utility method that is "get me the mdev(s) from $guest" and just call that everywhere
20:59:18 dansmith everywhere you need it that is.. don't call it EVERYWHERE :P
20:59:28 dansmith and don't call it everywhere() because that won't be very obvious
21:00:07 bauzas I need to look at the driver code
21:00:08 openstackgerrit Matt Riedemann proposed openstack/python-novaclient master: Remove deprecated MigrationManager.list cell_name kwarg https://review.openstack.org/532972
21:00:08 openstackgerrit Matt Riedemann proposed openstack/python-novaclient master: Fix being able to create a reno using tox -e venv https://review.openstack.org/532971
21:02:25 cfriesen Is it documented anywhere that deleting a quota-set for a tenant will also delete it for any users within that tenant? (This seems to be how it behaves, but I don't see it in the API ref.)
21:03:41 melwitt cfriesen: user quota is a subset of tenant quota so I think it would behave that way. and I doubt it's documented
21:04:36 cfriesen melwitt: I can see the rationale, was just a bit unexpected.
21:05:05 bauzas dansmith: mmm, your last approach could work, except for migrations (but I think it's a silverlining)
21:05:27 dansmith bauzas: we should have allocations passed for migrations I imagine
21:05:30 bauzas dansmith: I mean, we can get the guest, hence its mdevs, before we regenerate it
21:05:31 dansmith we have to look them up anyway
21:05:40 melwitt cfriesen: yeah. user quota was an afterthought. originally it was tenant quota only (and I think it might go back that way eventually). so to tack on user quota, all they did was add a user column and filter on project AND user if user quota
21:06:04 bauzas dansmith: right, I just feel migrations are off the scope for queens
21:06:44 dansmith yeah, but it's good to think about how it'd be handled

Earlier   Later