Earlier  
Posted Nick Remark
#openstack-nova - 2017-07-07
19:25:28 superdan what we need,
19:25:34 openstackgerrit melanie witt proposed openstack/nova master: Add online migration to move quotas to API database https://review.openstack.org/410946
19:25:35 openstackgerrit melanie witt proposed openstack/nova master: Limit maximum pending resizes for preventing over quota https://review.openstack.org/481739
19:25:45 superdan is to data migrate the _instance_ flavors to also report that they use one of the new resources,
19:25:59 superdan so that the computes start reporting 1 total, 1 used, 0 available
19:26:13 superdan so really,
19:26:26 superdan ops just need to run data migrations before they update the main flavors to use the override I think
19:26:31 superdan make sense/
19:27:31 mriedem yeah, that's where i was going in my head,
19:27:53 mriedem that the compute updates the existing instance embedded flavor on startup so we can fix the allocations reported in,
19:28:02 superdan right
19:28:04 mriedem and it's good that none of it turns on until you fiddle the flavors
19:28:11 superdan yeah
19:28:49 mriedem although, we don't actually pull the custom resource off the instance.flavor in the compute, we pull it off the node
19:29:02 mriedem so i'm a bit fuzzy on where the existing instance.flavor comes into play
19:29:40 mriedem this https://github.com/openstack/nova/blob/master/nova/virt/ironic/driver.py#L658
19:29:44 superdan we report inventory based on the node
19:29:50 superdan we report allocations based on the instance/flavor
19:30:00 superdan and we request from placement based on the real flavor
19:30:55 mriedem ok so RT updates allocations here https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L1012
19:31:52 mriedem and this is where we get the allocations off the instance right? https://github.com/openstack/nova/blob/master/nova/scheduler/client/report.py#L141
19:32:02 mriedem which is only ram, cpu and disk
19:32:06 mriedem not fancy pants ironic stuff
19:32:18 superdan yeah
19:32:40 superdan we kinda need the ironic driver to do the instance flavor migration though I think
19:32:58 mriedem sure, but there are 2 parts to this if i'm understanding,
19:33:00 superdan because it'd be hard to do that from nova-manage, not being 100% sure the hypervisor type of an instance I think
19:33:15 mriedem 1. ironic driver updates the instance.flavor if it doesn't have the custome rresource class but the node.resource_class is set
19:33:38 mriedem 2. scheduler report client needs to account for custom resource class allocations off the instance flavor
19:33:54 mriedem then 3. deployer fiddles the bits
19:33:58 mriedem 4. cleanup
19:34:40 mriedem i think #2 is missing from the spec, unless i'm missing something
19:34:51 superdan yeah I suppose you're right
19:34:55 superdan it's implied
19:35:00 mriedem heh
19:35:16 mriedem mayhap i'll update the spec quick
19:38:43 melwitt superdan: can you tell where I would need to put an "objects.register_all()" to call object classmethods in the websocketproxy? would it have to be here or is there a way it could only be done once? https://github.com/openstack/nova/blob/master/nova/console/websocketproxy.py#L71
19:39:41 superdan melwitt: you could do it at module-level.. it is only needed once per process
19:40:07 melwitt superdan: okay, cool. thanks
19:40:12 superdan you wouldn't want to do it per-request like that
19:41:02 melwitt yeah, that's what I was thinking
19:42:45 openstackgerrit melanie witt proposed openstack/nova master: Convert websocketproxy to use db for token validation https://review.openstack.org/333990
19:55:04 mriedem superdan: oh i guess that allocations thing was mentioned in the deps section https://specs.openstack.org/openstack/nova-specs/specs/pike/approved/custom-resource-classes-in-flavors.html#dependencies
19:55:25 superdan mriedem: that part is done already
19:55:25 mriedem maybe that was supposed to or expected to happen in http://specs.openstack.org/openstack/nova-specs/specs/ocata/implemented/custom-resource-classes.html
19:55:41 mriedem "This depends on work to change the resource tracker to allow drivers to expose allocations of custom resource classes"
19:55:43 superdan the migration of existing instances is different from what is described there, and is specific to ironic
19:55:51 superdan right that depends-on is done
19:55:56 mriedem we don't expose allocations for custom resource classes
19:56:04 mriedem we expose inventory for custom resource classess
19:56:05 superdan we can from the driver, hang on
19:56:14 superdan oh
19:56:20 mriedem that's what i was talking about in https://github.com/openstack/nova/blob/master/nova/scheduler/client/report.py#L141
19:56:28 superdan yeah okay
19:56:36 superdan I was glossing over the allocation word there
19:57:25 superdan there's still the migration work that needs doing which is neither of these
19:57:56 mriedem yeah i think i've covered that here in this spec update, hold on
19:58:06 superdan cool, I gotsta jump on a call
19:59:13 mriedem geez another one
19:59:18 mriedem these aren't 900 numbers are they?
19:59:25 superdan I have a problem
20:11:05 melwitt grr, internet is on the fritz again
20:15:11 openstackgerrit Matt Riedemann proposed openstack/nova-specs master: Amend spec for "Allow custom resource classes in flavor extra specs" https://review.openstack.org/481748
20:15:12 mriedem superdan: leakypipes: figleaf: ^
20:15:27 melwitt mriedem: I think that tempest test works because the common.get_instance() method gets the instance via compute/api and that does a set_target_cell() that targets the context to the cell the instance is in
20:15:44 mriedem melwitt: so the same reason that normal attach works
20:15:48 mriedem so even though the instance isn't on a host,
20:15:51 mriedem it's still mapped to the original cell
20:16:02 mriedem tricksy baggins
20:16:09 mriedem melwitt: i told you you were the only one that could figure it out
20:16:28 mriedem ha
20:17:58 mriedem mayhap you'd like to +W https://review.openstack.org/#/c/481683/
20:18:40 mriedem actually,
20:18:44 mriedem so maybe this means we don't need that fix
20:19:30 mriedem yeah, it was'nt failing b/c the context is already targeted
20:19:54 melwitt mriedem: yeah I was wondering, what broke that brought up the bug?
20:20:18 mriedem nothing :(
20:20:27 mriedem i noticed the local creation part during a review of something unrelated,
20:20:36 mriedem and because of how local delete has bit us with cells,
20:20:38 melwitt ah, okay
20:20:48 mriedem i immediately thought this was also busted in a similar way
20:21:32 melwitt yeah, the set_target_cell is so hidden that it's hard to tell when we need an extra target cell or not
20:33:31 openstackgerrit Andrey Kurilin proposed openstack/python-novaclient master: Fix cropping the endpoint url https://review.openstack.org/479818
20:53:21 superdan mriedem1: ah yeah, so we probably don't need that
20:53:29 superdan mriedem1: hence my asking where/how this came hup
20:53:32 superdan up even
20:55:09 mriedem1 sorry
20:55:26 mriedem the local create thing scared me because of local delete issues
20:55:37 superdan hah
20:55:47 mriedem leakypipes: i went through https://review.openstack.org/#/c/476632/ - we can't actually allocate in the scheduler until we've done the changes in the compute to not claim if the allocations are already done, right?
20:56:02 mriedem otheriwse we allocate in scheduler and still claim in compute
20:56:05 superdan mriedem: we already have that right?
20:56:11 mriedem do we?
20:56:24 superdan mriedem: compute just checks the allocations in placement, changing them only if need be
20:56:35 mriedem but i thought the big win was not doing the claim at all
20:56:38 mriedem in the resourc etracker
20:56:52 superdan we can't drop the RT until this is in place
20:56:56 mriedem plus,
20:57:04 mriedem there should be a minimum compute version check somewhere i thought,
20:57:17 mriedem we had the whole back and forth about sending the actual allocations down to the compute over rpc

Earlier   Later