Earlier  
Posted Nick Remark
#openstack-nova - 2017-01-06
22:12:50 melwitt well, I mean the compute cell will never run the code that changes the cell_name I mean
22:13:13 melwitt I dunno, I'm getting confused. anyway
22:15:08 openstackgerrit Dan Smith proposed openstack/nova: WTFWIP: Multicell support for instance listing https://review.openstack.org/396775
22:15:09 superdan hack @3
22:15:11 superdan er, #2
22:19:41 melwitt superdan: I think that might not work because I think the instance.create() goes only to the api cell db, then later when instance.save() happens in the api cell, that's when it gets written to the compute cell db :\
22:21:11 melwitt as part of the sync down
22:21:53 superdan melwitt: we have to create() once in the child cell
22:21:55 superdan we can't just save
22:23:33 melwitt superdan: okay. I had thought when we were looking at replays of compute/api the instance create isn't one of them and so I went looking around for how the record ever ends up in the compute cell db
22:24:25 superdan melwitt: well, we have to call db.instance_create() at least
22:24:42 superdan but I can't imagine we don't go through the object, because we'd miss out on the other stuff we create there,
22:24:54 superdan like instance_extra and such
22:24:56 superdan but if you know other, please point to it
22:25:13 smcginnis Does Nova actual use limits? "nova limits"
22:25:40 smcginnis And if so, where are these set? I've found references that limits are set in the project.conf file, but nothing stating what needs to actually be set.
22:25:57 melwitt superdan: yeah, double checking to see if I missed something last time
22:26:14 smcginnis Cinder has absolute limits too, but it appears to be left over from the Nova split. Trying to figure out if they are actually used/working.
22:38:51 mriedem smcginnis: limits == quotas
22:38:55 mriedem os-quota-sets API
22:39:04 smcginnis mriedem: nope
22:39:14 mriedem the limits API is just the read-only API for getting the quota limits
22:39:22 smcginnis mriedem: Not from what I've seen. Though maybe that's changed in Nova?
22:39:33 smcginnis mriedem: Ah, that might explain some things. :)
22:39:36 mriedem smcginnis: well,
22:39:39 mriedem ...
22:39:40 mriedem ...
22:39:47 smcginnis mriedem: Some really misleading stuff out there.
22:39:47 mriedem trying to figure out how long i want to make this
22:39:57 mriedem quotas come from 3 different places in nova,
22:40:01 mriedem 1. config
22:40:06 smcginnis mriedem: It's late on Friday. Probably better just to tell me to step off.
22:40:11 mriedem 2. quota classes
22:40:12 melwitt superdan: this is where I don't see how instance.create() is ever called in compute cells https://github.com/openstack/nova/blob/master/nova/compute/cells_api.py#L194-L198 so ... I dunno, we'll see
22:40:20 mriedem 3. i might only be thinking of 2
22:40:43 mriedem basically if you don't have default quotas overridden in the API, then the default quotas for all projects comes from config,
22:40:56 mriedem but if you change default quota in the REST API, then it's in the nova DB
22:41:03 mriedem and we never read from config for that resource type again
22:41:11 mriedem and you can tailor default quota globally or per-tenant
22:41:17 mriedem i think that was my #4
22:41:19 mriedem *#3
22:41:31 mriedem 1. check if there is quota in the db for this project and resource, if not,
22:41:37 smcginnis mriedem: OK, that makes sense. Maybe just thrown off by having two different names and some old or incorrect comments I read.
22:41:41 smcginnis mriedem: Thanks
22:41:43 mriedem 2. check if there is default quota in the db for this resource, if not,
22:41:45 mriedem 3, check config
22:41:56 superdan melwitt: okay, but.. the only thing in db_api that will create an instance row is db.instance_create(), and I don't see us calling that from anywhere other than the object, right?
22:42:15 mriedem smcginnis: http://lists.openstack.org/pipermail/openstack-dev/2016-December/108997.html and the linked spec might help a bit
22:42:26 mriedem the spec gives more background in a distilled way on how this all works today
22:42:59 mriedem i should actually move the problem description from https://review.openstack.org/#/c/411035/2/specs/pike/approved/deprecate-os-quota-class-sets.rst into the devref
22:43:13 mriedem since it took me a day plus sanity checking from melwitt to sort it out
22:43:23 smcginnis heh, how timely.
22:43:28 melwitt superdan: that's what I wasn't sure about, I assumed db.instance_update_and_get_original can somehow create an instance row, being that I never found a place instance.create() was called
22:43:45 superdan pretty sure not.. it should fail immediately if you do
22:44:09 superdan melwitt: https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L2696-L2697
22:44:11 superdan should fail right there
22:45:09 melwitt oh, hmm. I'm stumped then
22:45:52 superdan ah
22:46:53 superdan well,
22:46:59 superdan there is this weird automatic hijack of the compute rpc,
22:47:06 superdan which might have had it before
22:47:18 superdan where we neuter the rpc at the api level, and auto-call to the child in some cases
22:47:20 superdan but create isn't in there
22:47:24 superdan build is though
22:47:55 superdan anyway, seems like it has to be something like that
22:48:17 superdan if not, I have no idea how it works,
22:48:26 superdan but I've said that like three times today already so,..
22:49:07 melwitt yeah ... well, at least that means the hack will probably work, so yey for that at least
22:49:10 superdan oh yeah, here
22:49:28 superdan https://github.com/openstack/nova/blob/master/nova/compute/cells_api.py#L85-L86
22:49:59 superdan which is set somewhere so that we get to hijack calls
22:50:01 melwitt O.o
22:50:13 superdan and I think there's some split of things that are new (objecty) and old (not objecty) somewhere, but I always forget that piece
22:50:19 superdan maybe that's in messaging
22:50:19 melwitt on top of the whole cells_api thing? damn
22:50:36 superdan yeah, there is a ton of indirection and magic in here
22:50:54 superdan this is why I'm always talking about all the replaying :)
22:51:16 superdan because there's .. a .. lot of it
22:51:21 superdan and several ways of doing it
22:51:57 melwitt yeah, I thought all of the replaying could be seen in the ComputeCellsAPI methods and never realized there are separate bits that can interleave in there from the RPCProxy whatever
22:52:53 superdan yeah, there are implicit paths in tere
22:52:54 superdan *there
22:53:52 melwitt "good times"
23:01:10 melwitt superdan: gdi http://logs.openstack.org/75/396775/25/check/gate-tempest-dsvm-cells-ubuntu-xenial/7105ddd/logs/screen-n-api.txt.gz?level=TRACE#_2017-01-06_22_45_29_711
23:01:25 superdan gah
23:01:57 openstackgerrit Dan Smith proposed openstack/nova: WTFWIP: Multicell support for instance listing https://review.openstack.org/396775
23:17:15 mriedem jroll: when can we get an ironicclient release for https://review.openstack.org/#/c/335964/ ?
23:17:22 mriedem jroll: like, early next week?
23:17:28 mriedem or is that already in the works?
23:18:26 jroll mriedem: see the comments there. tl;dr nova won't use portgroups for things until attach/detach is implemented. that still has a client patch out there. so no point in releasing now
23:18:34 jroll er, not there, but on the nova patch
23:19:33 mriedem hmm
23:19:35 mriedem so https://review.openstack.org/#/c/206163/
23:19:46 mriedem has a comment from vdrok: "This patch is not needed anymore, as after this one https://review.openstack.org/364413 it will be happening on ironic side."
23:20:06 mriedem oh which is https://review.openstack.org/#/c/364413/
23:20:10 mriedem for attach/detach
23:20:13 jroll right, so here's the two ways we can do this
23:20:32 jroll 1) (the way we're doing it) do attach/detach first, nova just makes an api call, ironic does the ports/portgroup/order/etc logic
23:20:51 jroll 2) implement portgroups in plug_vifs now, make that work, then rip it all out to do attach/detach
23:21:06 mriedem 2 is https://review.openstack.org/#/c/206163/ right?

Earlier   Later