Earlier  
Posted Nick Remark
#openstack-nova - 2017-06-20
22:09:49 mriedem remember me freaking out about this earlier in the week?
22:10:48 mriedem on normal server create we check here https://github.com/openstack/nova/blob/4e6a7c18b1c8340b9fdc93ee02e56b5a29a99648/nova/compute/manager.py#L1930
22:11:05 mriedem if that fails (it's a vmware host), we abort the build
22:11:05 mriedem fin
22:12:01 mriedem i was thinking we could allow attaching a tagged bdm to a shelved offloaded instance, and during unshelve we basically have the same flag check, and if the compute doesn't support it then we fail the unshelve
22:17:22 dansmith mriedem: well, the options are:
22:17:23 dansmith 1. refuse to attach with a tag to offloaded instances
22:17:26 dansmith 2. allow it and fail on unshelve
22:17:47 Guest96259 ...I guess that's it, right?
22:18:06 mriedem Guest96259: basically
22:19:16 Guest96259 I dunno, #1 seems not that terrible to me, given how much stuff doesn't really work with shelve
22:19:53 mriedem Guest96259: failing in unshelve seems like a can of worms given we don't do anything with the instance if spawn fails
22:20:34 Guest96259 yeah
22:20:39 mriedem we'll revert the task_state,
22:20:39 mriedem record a fault
22:20:41 mriedem but we don't clean anything up, i.e. https://bugs.launchpad.net/nova/+bug/1627694
22:20:49 mriedem i guess you don't want the instance in ERROR state b/c then you can't attempt to unshelve it again
22:21:50 openstack Launchpad bug 1627694 in OpenStack Compute (nova) "unshelving an instance doesn't rollback volumes connections on failure" [Low,In progress] - Assigned to Shoham Peller (shoham-peller)
22:24:48 mriedem mordred: is your new api user ML a place i can ask if people are actually using some of the compute APIs? like shelve?
22:37:14 openstackgerrit Merged openstack/nova master: libvirt: Extract method _guest_add_video_device https://review.openstack.org/470783
22:37:48 openstackgerrit Merged openstack/nova master: libvirt: Extract method _guest_add_pci_devices https://review.openstack.org/470784
22:41:27 openstackgerrit Merged openstack/nova master: libvirt: Extract method _guest_add_watchdog_action https://review.openstack.org/470785
22:42:01 openstackgerrit Merged openstack/nova master: libvirt: Extract method _guest_add_memory_balloon https://review.openstack.org/470786
22:44:29 openstackgerrit Merged openstack/nova master: libvirt: Extract method _guest_add_spice_channel https://review.openstack.org/470787
22:49:56 mordred mriedem: sure!
22:54:14 openstackgerrit Merged openstack/nova master: remove null_safe_int from module scope https://review.openstack.org/455778
22:56:37 Guest96259 oh double rage
23:09:56 openstackgerrit Ildiko Vancsa proposed openstack/nova master: WIP: Add Cinder v3 detach to swap_volume https://review.openstack.org/456971
23:27:39 openstackgerrit Merged openstack/nova master: Use plain routes list for os-remote-consoles instead of stevedore https://review.openstack.org/474930
23:28:19 gmann alex_xu, mriedem1 its ready now - https://review.openstack.org/#/c/467999/
23:31:18 mriedem1 ok
23:36:31 mriedem alex_xu: i'm not sure if i'll be in the next api meeting but i added something to open discussion in the agenda https://wiki.openstack.org/wiki/Meetings/NovaAPI#Agenda
23:40:34 openstackgerrit melanie witt proposed openstack/nova master: Add get_count_by_vm_state() to InstanceList object https://review.openstack.org/446244
23:40:35 openstackgerrit melanie witt proposed openstack/nova master: Remove 'reserved' count from used limits https://review.openstack.org/446242
23:40:36 openstackgerrit melanie witt proposed openstack/nova master: Remove useless quota_usage_refresh from nova-manage https://review.openstack.org/446243
23:40:38 openstackgerrit melanie witt proposed openstack/nova master: Count instances to check quota https://review.openstack.org/416521
23:40:41 openstackgerrit melanie witt proposed openstack/nova master: Make Quotas object favor the API database https://review.openstack.org/410945
23:40:45 openstackgerrit melanie witt proposed openstack/nova master: Add online migration to move quotas to API database https://review.openstack.org/410946
23:40:45 openstackgerrit melanie witt proposed openstack/nova master: Add scatter_gather_all_cells() utility https://review.openstack.org/475957
#openstack-nova - 2017-06-21
00:05:27 openstackgerrit Dan Smith proposed openstack/nova master: Fix and optimize external_events for multiple cells https://review.openstack.org/445142
00:16:52 cfriesen_ mriedem: dansmith: why would we allow attaching volumes to a shelved instance? do we allow attaching volumes to an instance on a compute node that is "down"?
00:17:05 openstackgerrit Takashi NATSUME proposed openstack/nova master: api-ref: Add X-OpenStack-Request-Id description https://review.openstack.org/474847
00:17:34 mriedem cfriesen_: the rpc call/cast would fail if the compute was down
00:17:39 mriedem and the instance wasn't shelved offloaded
00:17:51 mriedem but that's true of any instance operation for the guest
00:18:07 mriedem so i don't really consider that case here
00:18:18 cfriesen_ mriedem: it seems to me to be an analogous situation...the instance exists but we can't talk to its compute node (since the shelved one doesn't have one)
00:20:36 cfriesen_ I think it would be resonable to say that the only legal state-changing operations on a shelved instance are to delete it or unshelve it
00:21:10 cfriesen_ no IP address attach/detach, no port attach/detach, no volume attach/detach
00:22:44 cfriesen_ mriedem: in other news, looks like nobody cares about "nova show --minimal" so I'll go ahead and redo it to only show the original name
00:37:08 mriedem cfriesen_: well the cat is already out of the bag with being able to attach a volume to a shelved offloaded instance
00:37:10 mriedem in 2.20
00:38:02 mriedem so one question is, if i'm an api user and i can attach a volume to a shelved offloaded instance in 2.20+, should i have a reasonable expectation to be able to apply a tag when attaching a volume to a shelved offloaded instance in 2.49?
00:38:29 mriedem because if i'm just looking at it from an api pov, how much different does tagging the thing make that operation?
00:38:36 mriedem or are we just being lazy by not supporting it
00:40:08 mriedem i'm definitely not enjoying thinking about adding more complexity to this change or the shelve/unshelve flow
01:06:14 openstackgerrit STEW TY proposed openstack/nova master: Transform rescue/unrescue instance notifications https://review.openstack.org/385644
01:10:34 oomichi takashin: hi, can you take a look at https://review.openstack.org/#/c/474847 again ? some nits
01:16:34 alex_xu mriedem: got it
01:17:21 Kevin_Zheng ping mriedem
01:46:35 openstackgerrit Ngo Quoc Cuong proposed openstack/nova master: Remove translation of log messages https://review.openstack.org/466637
01:52:49 mriedem Kevin_Zheng: hey what's up?
01:53:24 Kevin_Zheng Hi, it's about the delete neutron port thing
01:54:04 mriedem ok
01:54:26 Kevin_Zheng it seems instance obj's info_cache didn't got refreshed
01:54:54 Kevin_Zheng https://github.com/openstack/nova/blob/9ed0d611453aee7a27debd773bdbe146510be0ad/nova/network/neutronv2/api.py#L1274
01:55:28 Kevin_Zheng after compute_utils.refresh_info_cache_for_instance(context, instance) instance.info_cache still have only one record
01:56:22 Kevin_Zheng and if I do instance.info_cache_refresh() again after nw_info = self._build_network_info_model(context, instance, networks,port_ids, admin_client, preexisting_port_ids)
01:56:42 Kevin_Zheng it contains the new record, and everything will be correct
01:57:17 mriedem so it starts from here correct? https://github.com/openstack/nova/blob/9ed0d611453aee7a27debd773bdbe146510be0ad/nova/network/neutronv2/api.py#L881
01:57:34 mriedem ordered_ports and preexisting_port_ids are the same there i think
01:57:46 mriedem when attaching a preexisting port to an instance
01:58:09 mriedem so that's calling this https://github.com/openstack/nova/blob/9ed0d611453aee7a27debd773bdbe146510be0ad/nova/network/base_api.py#L246
01:58:26 mriedem which calls back into the neutronv2 api code https://github.com/openstack/nova/blob/9ed0d611453aee7a27debd773bdbe146510be0ad/nova/network/base_api.py#L249
01:58:37 mriedem https://github.com/openstack/nova/blob/9ed0d611453aee7a27debd773bdbe146510be0ad/nova/network/neutronv2/api.py#L1274
01:58:57 mriedem at that point, compute_utils.refresh_info_cache_for_instance(context, instance) won't have the newly attached port in it
01:59:04 Kevin_Zheng yeah
01:59:11 Kevin_Zheng Thats what I tested
01:59:12 mriedem because _build_network_info_model is going to process it
01:59:20 Kevin_Zheng yeah
01:59:32 mriedem so we call _build_network_info_model with the port_ids and preexisting_port_ids list, which are going to have the same single entry
01:59:52 mriedem and network_info returned from that will have a single vif in it
02:00:18 mriedem which is asserted here https://github.com/openstack/nova/blob/9ed0d611453aee7a27debd773bdbe146510be0ad/nova/compute/manager.py#L5080
02:00:37 mriedem ok, so that explains it
02:00:53 mriedem that also explains a bug that vladikr is trying to fix
02:00:59 mriedem https://review.openstack.org/#/c/468758/
02:02:26 Kevin_Zheng so, should we do instance.info_cache.refresh() again after _build_network_info_model ?
02:02:54 openstackgerrit Ngo Quoc Cuong proposed openstack/nova master: Remove translation of log messages https://review.openstack.org/466957
02:02:55 openstackgerrit Li Yingjun proposed openstack/nova master: Fix duplicate Neutron ports on instance reschedule https://review.openstack.org/467509
02:06:01 mriedem Kevin_Zheng: that won't do it i don't think
02:06:11 mriedem the info cache is updated on the instance here https://github.com/openstack/nova/blob/9ed0d611453aee7a27debd773bdbe146510be0ad/nova/network/base_api.py#L255
02:06:48 Kevin_Zheng it seems it only saved info_cache to DB
02:07:05 mriedem yes this right? https://github.com/openstack/nova/blob/9ed0d611453aee7a27debd773bdbe146510be0ad/nova/network/base_api.py#L50
02:07:14 Kevin_Zheng the instance obj in memory still didn't contain new record
02:07:37 mriedem hmm, why don't we just set instance.info_cache = ic there?
02:08:03 Kevin_Zheng yeah, that will also work
02:08:34 artom mriedem, re "care about supporting attaching tagged volumes to a shelved offloaded instance" - I think it's less bad in the create BuildAbort case because the feedback the user gets is more immediate
02:09:27 artom Whereas with shelved offloaded there could be a delay between attaching a tagged volume and unshelving the instance
02:09:31 artom I dunno
02:09:47 mriedem Kevin_Zheng: can you test that out and see if it fixes the bug? because that would be much easier and convenient since we'd have the object we need right there

Earlier   Later