Earlier  
Posted Nick Remark
#openstack-nova - 2017-06-20
22:09:46 mriedem if it ends up on a compute that doesn't support tagged devices, it's a BuildAbortException
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

Earlier   Later