Earlier  
Posted Nick Remark
#openstack-nova - 2019-08-14
15:52:10 tssurya mriedem: and yea the downside point is valid
15:52:13 mriedem dansmith: i think so, but if the driver raises the nthe compute manager code has to handle it and not barf for the other events in the same request
15:52:53 dansmith mriedem: I think the driver should just not raise, I think the driver should handle all of this, because it's only one
15:53:29 mriedem so if the driver gets UnexpectedTaskStateError, it just logs and returns?
15:53:34 dansmith yeah
15:53:38 mriedem wfm
15:53:48 dansmith it will be contextually relevant,
15:53:52 tssurya dansmith, mriedem: wait the instance.save(expected_Task_state=None) is happening in the manager no ?
15:53:56 dansmith where compute manager won't know what the eff it means
15:54:00 tssurya and the instance.save(expected_task_state=task_states.POWERING_ON)
15:54:05 tssurya will happen in the driver
15:54:13 mriedem tssurya: no, your code is doing that in the driver
15:54:14 dansmith tssurya: I don't think so
15:54:21 mriedem it's like the only thing the driver does
15:54:30 mriedem https://review.opendev.org/#/c/645611/12/nova/virt/ironic/driver.py
15:54:38 tssurya ok so we record an instance action start before setting the task_state to POWERING_ON ?
15:54:55 mriedem imo
15:54:55 mriedem the instance actoin stuff in the api doesn't change
15:55:10 dansmith I dunno
15:55:13 mriedem that's how you know from the api if the event failed or not
15:55:14 tssurya so isn't it confusing to the user that the task_state hasn't changed
15:55:22 tssurya but there is an instance-action record/notification
15:55:25 tssurya emitted
15:55:26 dansmith mriedem: if I send this event for libvirt instance, it will record an action but nothing really happened
15:55:45 mriedem dansmith: and i'll say, you shouldn't really do that
15:55:57 mriedem same with trying to swap volumes on anything other than libvirt
15:56:29 dansmith :/
15:57:06 mriedem or extend an attached volume, or do host-assised snapshot, or anything with pmems :)
15:58:13 mriedem so https://review.opendev.org/#/c/645611/12/nova/compute/api.py@250 would move to the compute manager, or the ironic driver?
15:58:25 dansmith yeah, well, this is a minor detail
15:58:32 mriedem i'm cool with that moving to the driver too
15:58:40 mriedem until some other driver needs this same thing for whatever reason
15:58:52 dansmith I would think it moves to the driver, and really doesn't need to be all that detailed I would think, but yeah
15:59:02 dansmith I mean, I guess it could stay, I don't really care that much
15:59:04 tssurya ok I can move that whole chunk with the no-op
15:59:09 tssurya all into the driver
15:59:27 tssurya only the instance action and notification stuff remain in place in the api and manager right ?
15:59:49 mriedem the state checking in the api could save you some rpc traffic i guess, but you could be racing either way
16:00:01 dansmith the thing I think makes the biggest difference, is changing the power state before we know if we're going to do anything
16:00:01 tssurya but then again, is it ok for the task_state to still be None when we emit the state notification ?
16:00:07 tssurya start*
16:00:45 dansmith I don't know the semantics of any expectations around that
16:01:10 tssurya ok yea then maybe its fine :)
16:01:12 dansmith I didn't really think notifications are required to be realtime and synchronous, so I don't think it'd matter
16:01:35 mriedem tssurya: you can set the task_state on the instance in the compute manager before calling the driver method if we care - but then you have to handle UnexpectedTaskStateError there as well
16:01:49 dansmith but if we do that,
16:01:50 dansmith we
16:02:01 dansmith are changing it for non-ironic instances,
16:02:12 tssurya hmm yea
16:02:13 dansmith then catch the NotImplementedError, and then change it right back, yeah?
16:02:18 mriedem which won't actually power off or on the guest
16:02:33 mriedem @reverts_task_state would set the task_state back to None yes
16:03:08 mriedem but i'm not too worried about non-ironic instances because this is admin-only api stuff and if someone is abusing it for non-ironic instances and it doesn't work as expected....meh?
16:03:18 dansmith okay
16:03:45 tssurya so what't it going to be: manager or driver ?
16:03:55 tssurya at this point I don't mind either
16:04:12 dansmith "at this point" .. translation: "at this point I'm about to shoot both of you guys"
16:04:13 mriedem i forgot the question
16:04:26 tssurya dansmith: ;)
16:04:35 dansmith tssurya: I think it doesn't matter that much, figure it out when you move the code and it's probably okay
16:04:44 tssurya mriedem: meaning we move the task state and https://review.opendev.org/#/c/645611/12/nova/compute/api.py@250
16:04:46 dansmith tssurya: also when are you actually leaving?
16:05:13 mriedem right now :)
16:05:32 dansmith lol
16:05:36 dansmith #ragequit
16:05:37 mriedem (11:04:47 AM) dansmith: tssurya: also when are you actually leaving?
16:05:38 tssurya sorry bad connection
16:05:49 tssurya I leave on Friday
16:05:53 dansmith okay
16:05:56 tssurya so I can work on it this evening and tomorrow
16:06:02 dansmith okay cool
16:06:24 dansmith tssurya: so I said I think manager vs. driver probably doesn't matter that much, you choose while moving the code and it'll probably be okay
16:06:37 dansmith I don't have a strong opinion without seeing it, so maybe just have to pick one and see
16:06:41 tssurya ok awesome thanks
16:06:48 dansmith mriedem: sound okay?
16:06:49 tssurya so first I'll try with the manager and then we can see
16:06:50 mriedem i'll leave a couple of comments
16:07:22 tssurya thanks a lot dansmith and mriedem :D
16:10:48 mriedem done https://review.opendev.org/#/c/645611/12
16:13:10 tssurya ty
16:13:49 openstackgerrit Merged openstack/nova stable/stein: Fix misuse of nova.objects.base.obj_equal_prims https://review.opendev.org/676289
16:13:49 dansmith mriedem: yeah, so assuming your "don't do this for libvirt" assertion I think what you said in there is fine
16:42:22 alex_xu dansmith: mriedem sean-k-mooney anyway thanks for your time today, it is indeed I use a lot today :)
16:43:17 dansmith alex_xu: it's okay, and I think sean-k-mooney has more than 24 hours in his days, so he has plenty to spare :)
16:43:59 mriedem no problem
16:44:39 dansmith mars has 25 hour long days, so maybe sean-k-mooney is from mars
16:45:05 openstackgerrit Matt Riedemann proposed openstack/nova stable/pike: Hook resource_tracker to remove stale node information https://review.opendev.org/676461
16:52:11 openstackgerrit Matt Riedemann proposed openstack/nova stable/pike: rt: only map compute node if we created it https://review.opendev.org/676463
16:54:51 openstackgerrit Matt Riedemann proposed openstack/nova stable/pike: Hook resource_tracker to remove stale node information https://review.opendev.org/676461
16:55:04 openstackgerrit Matt Riedemann proposed openstack/nova stable/pike: rt: only map compute node if we created it https://review.opendev.org/676463
17:00:52 efried dustinc: Ima rebase the sdk series and bump ksa/sdk requirements and get it tracking against this devstack patch https://review.opendev.org/#/c/676268/
17:01:02 efried as soon as sdk 0.34.0 lands in u-c
17:01:36 efried when I say rebase - it's currently based on a really old nova commit, so I'm going to bring it up to current master.
17:05:03 openstackgerrit Matt Riedemann proposed openstack/nova stable/ocata: Hook resource_tracker to remove stale node information https://review.opendev.org/676467
17:12:37 rouk is there a particular reason why OS-FLV-DISABLED:disabled is not exposed via api client? is it intended to be manual api queries only?
17:15:28 rouk i see an old proposed patch from... a long time ago, but it was abandoned.
17:18:43 dansmith efried: on this:
17:18:44 dansmith https://review.opendev.org/#/c/675705/2/nova/tests/functional/regressions/test_bug_1839560.py
17:19:20 efried yah
17:19:22 dansmith efried: you're just noting that in real life we have a service with hostname "host1" but would normally get uuids for the node names, is that right?

Earlier   Later