Earlier  
Posted Nick Remark
#openstack-nova - 2017-04-24
15:06:53 jaypipes bauzas: in a "normal" DELETE /servers call, the allocations are indeed deleted.
15:07:05 bauzas okay, looking at code
15:07:41 sean-k-mooney sfinucan: moshele: on the vnic type i dont think this should be documented seperatly per plugin as they are common across all plugins
15:08:09 sfinucan sean-k-mooney: Have you seen the patches themselves
15:08:31 sfinucan They're common, yes, but not all VIF types are supported across all plugins
15:08:41 sfinucan I didn't grasp that nuance until this morning
15:09:30 bauzas jaypipes: mmm, can't find where we call DELETE /allocations in the compute manager, but only in the RT
15:09:42 sean-k-mooney sfinucan: no i havent atleast not lately. correct that is why im working on https://review.openstack.org/#/c/441590/
15:10:09 sean-k-mooney i am hoping to implement the nova neutron negociation this cycle if i can ever finish the supprot for ovs-dpdk in kolla
15:10:15 jaypipes bauzas: https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L716-L731
15:10:38 jaypipes bauzas: that's called at the end of the manager's _delete_instance() method.
15:10:49 bauzas ok, seeing it noxw
15:10:54 bauzas we force a RT update
15:11:00 bauzas which will delete the allocation, gotcha
15:11:02 jaypipes bauzas: the _update_resource_tracker() call eventually calls the scheduler client.
15:11:06 jaypipes right.
15:11:14 sean-k-mooney sfinucan: the host_info object discribes what vif types are supported by each plugin and it will with that patch allso describe what port profiles are supporte db each vif_type per plugin
15:11:27 bauzas jaypipes: okay, no explicit allocation delete, RT handles that
15:11:45 bauzas jaypipes: thanks, so nothing needed from a scheduler claims spec perspective
15:11:51 bauzas jaypipes: except the local delete problem
15:12:01 sean-k-mooney sfinucan: this object will be serialsed into the neutron binding profile and read by the mechanisum drivers as part of the port binding call.
15:12:11 jaypipes bauzas: no, that's still called for soft deletes.
15:12:20 sfinucan sean-k-mooney: Nice. I wasn't aware of host_info either
15:12:23 bauzas jaypipes: local delete != soft delete
15:12:37 jaypipes bauzas: no?
15:12:38 bauzas jaypipes: if the RPC compute service is down, we local delete in the api worker
15:12:57 bauzas totally unrelated to soft deletes, which are just a specific VM state
15:12:59 jaypipes bauzas: right. the api worker sets instance to SOFT_DELETED
15:13:04 bauzas no no
15:13:07 jaypipes no?
15:13:07 bauzas sec
15:13:14 bauzas yet another fun
15:13:22 sfinucan sean-k-mooney: Do you think there's value in documenting the built-in plugins, in that case, as done here https://review.openstack.org/#/c/459258/2
15:14:01 bauzas jaypipes: https://github.com/openstack/nova/blob/master/nova/compute/api.py#L2001 and https://github.com/openstack/nova/blob/master/nova/compute/api.py#L2027-L2032
15:14:05 sfinucan i.e. the plugins themselves along with a little summary of how a given VIF type works in the given plugin/networking backend
15:14:08 sean-k-mooney sfinucan: so the other part of this is that in the future the mapping we currently do between teh existing vif types and the os-vif ones will go away with neutron specifying plugin,vif_type and port prifile in a single os-vif object as a responce to nova in the port binding call
15:14:15 sean-k-mooney sfinucan: ill take a look at it now
15:14:33 mriedem melwitt: dansmith: some easy dead code cleanup in conductor https://review.openstack.org/#/c/434615/
15:14:35 bauzas jaypipes: mriedem mentioned a bug report because we do delete the instance but we don't delete the allocation
15:14:51 bauzas jaypipes: https://bugs.launchpad.net/nova/+bug/1679750
15:14:52 openstack Launchpad bug 1679750 in OpenStack Compute (nova) "Allocations are not cleaned up in placement for instance 'local delete' case" [Medium,Confirmed]
15:15:04 bauzas FWIW, I'll assign myself to the bug since it's related to the claims spec
15:15:09 mriedem jaypipes: we don't soft delete in the api if the compute host is down
15:15:28 mriedem jaypipes: we send out notifications saying we're soft deleting, but really we don't
15:15:30 mriedem we hard delete that mofo
15:15:41 mriedem this has been keeping gibi awake at night
15:15:41 sean-k-mooney sfinucan: so i dont think we should have redefinition of the vif types per plugin but i would be ok with referencing the vif types that are definded globally
15:16:06 sean-k-mooney sfinucan: essentailly like you have done with the glossary
15:16:26 sean-k-mooney define each fo them as a term or link back to the singel definition.
15:16:28 dansmith mriedem: I don't think that's dead code
15:16:31 mriedem jaypipes: https://review.openstack.org/#/c/443764/1/nova/compute/api.py@2066
15:16:32 bauzas oh man, just got an email asking me to take all my holidays before end of May
15:16:40 bauzas that's going to be legendary
15:16:53 sfinucan sean-k-mooney: Basic VIF definitions do exist - see 'doc/source/vif_types'
15:16:59 sfinucan bauzas: dibs!
15:17:43 mriedem dansmith: you can't upgrade the schema if you don't have cell0 in ocata
15:17:46 sean-k-mooney each plugin could discibe the the vif types it support but i would prefer to auto generate that documention form https://github.com/openstack/os-vif/blob/e133b8a3771ce6a49594af83b90586bdd88630ae/vif_plug_ovs/ovs.py#L67-L83 if we could
15:17:53 bauzas I'm always ashamed to speak about that here, but if I would take all my holidays, it could probably require me to stop working right after I come back from BOS :/
15:18:02 dansmith mriedem: unless you have an empty database because you're installing ocata for the first time
15:18:03 bauzas like not working for May
15:18:16 dansmith mriedem: and if you miss putting that record in, you get a unhelpful error condition
15:18:21 mriedem dansmith: if you have any empty db, how are you creating instances?
15:18:23 jaypipes mriedem: lovely..
15:18:25 sean-k-mooney sfinucan: any chance we could use something like your sphix click intergration to do taht
15:18:40 sean-k-mooney if not im sure i coudl script something up
15:18:57 dansmith mriedem: you had an empty database when applying the schema migrations, which made it past the cell0 check, then you start creating instances without doing your cell record setup
15:19:02 mriedem dansmith: this https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api_migrations/migrate_repo/versions/030_require_cell_setup.py
15:19:13 dansmith mriedem: right but that doesn't do anything for a fresh install
15:19:15 mriedem oh the gd flavor thing
15:19:21 mriedem ffs
15:19:52 mriedem jaypipes: yes soft delete is a turd
15:19:55 mriedem which should be flushed
15:21:21 mdbooth +1
15:21:38 sean-k-mooney sfinucan: basically in the docs job all we would need to do is load os-vif. loop over all the in tree plugins, call discribe and template our a descripts into a folder and then have sphinx auto include it in the docs that way its automatic and always up to date
15:22:37 sfinucan sean-k-mooney: I could but it might be overkill
15:22:50 sfinucan Realistically, how often are those lines going to change
15:23:25 sfinucan and, iirc, the plan is not to add any more plugins in os-vif (they should live in separate repos)
15:23:38 sean-k-mooney not that often we could just make it a requirement for adding more vif_types or port profiles to existing plugins as part of ongoing reviews
15:23:50 sean-k-mooney yep
15:24:31 mriedem dansmith: ok left a reply - but if we don't have cell0 to bury, we still have the build requests to list 'instances' and delete that 'instance', but we don't update the vm_state on the build request to ERROR
15:24:43 mriedem so those 'instances' just get stuck in scheduling state until you delete them (i think)
15:24:50 sean-k-mooney more vif types will be added to both plugins though and more port poriles but it wont be a large overhead to manually update the docs.
15:25:19 sfinucan sean-k-mooney: Yeah, I don't think it would be too much of a requirement
15:25:36 sfinucan docs usually help reviews anyway because they give way more context
15:26:33 sean-k-mooney sfinucan: one of the requests i got from the neutron folks was to allow os-vif to plug non vm interfaces so they could use it to plug the dhcp,l3 and tunnel ports when its intergrated into neutron
15:26:52 sean-k-mooney i opened some bugs for those with too do to fill them out later
15:27:47 dansmith mriedem: yep, but we have to have the big red warning I think
15:28:31 mriedem yeah i suppose.
15:28:45 sean-k-mooney we will need about 5 or 6 new vif_types to cover that (patch,vif_pair,vxlan,gre,geneve) i think im missing one but basically same pattern as vms and form and os vif point of view we dont really care what uses the port anyway.
15:29:00 mriedem dansmith: if we wanted to get the instance into ERROR state, we'd have to deserialize the build_request.instance, set it's vm/task state and then update the build_request right?
15:29:07 sfinucan sean-k-mooney: nova wouldn't care about those new ones, right?
15:29:41 dansmith mriedem: I dunno if that would do it, but perhaps.. I'm not too concerned about that I guess, since this is early setup you failed to do, so API semantics aren't that big of a deal, but..
15:30:16 sean-k-mooney on the one i was missing was tap. correct nova should not care though the tap vif type which is basically the existing generic vif type(i would proably just use that) could be used with calico
15:31:59 sfinucan sean-k-mooney: Yup, sounds good to me so
15:32:14 sfinucan sean-k-mooney: Going back to those docs then, I could probably put a note in saying that those supported vif_types are exposed using that host_info object, right?
15:33:11 sean-k-mooney sfinucan: yes if you could make them a link or somehow include the previous defintions of the docs from the global definiton that would also be good
15:33:43 sean-k-mooney i would prefer not to have multiple definitions of the same vif_type that could get out of sync if sphix supports that
15:33:57 sean-k-mooney if not its fine we can just keep them in sync with reviews
15:34:50 mriedem dansmith: fair enough
15:35:08 mriedem at some point if i care i might see how hard it is to reproduce and change the build request to error, but i might not care later either

Earlier   Later