20:00:30 #startmeeting nova notification 20:00:34 Meeting started Tue Nov 17 20:00:30 2015 UTC and is due to finish in 60 minutes. The chair is gibi_. Information about MeetBot at http://wiki.debian.org/MeetBot. 20:00:35 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 20:00:37 The meeting name has been set to 'nova_notification' 20:00:42 o/ 20:00:52 hi rlrossit 20:01:00 hi gibi_! 20:01:25 HI! 20:01:31 <3 notifications 20:01:42 hi mriedem! 20:01:43 :) 20:01:52 rlrossit said you guys were lonely 20:02:17 yes, it was a quite place last time :) 20:02:41 anyhow, let's get started 20:02:47 #topic specs 20:02:57 * bauzas lurks 20:03:06 both notification specs has been approved 20:03:11 woo 20:03:19 thanks for all the comments and help with that 20:04:14 at the moment I don't know about any other specs targeting notifications directly, if there any please tell 20:05:15 I guess it is a no 20:05:26 anything else regarding specs? 20:05:26 i haven't seen any 20:05:49 if i see things about notification impacts in specs i say they are dependent on the versioned notifications overhaul 20:06:07 that sounds reasonable 20:06:19 I guess all the specs are in the specs etherpad ? 20:06:44 bauzas: the two notification related from me are in the etherpad 20:06:51 coolness then 20:06:56 #link https://etherpad.openstack.org/p/mitaka-nova-spec-review-tracking 20:07:13 thanks for the link :) 20:07:36 https://blueprints.launchpad.net/nova/+spec/add-swap-volume-notifications 20:07:36 anything else regarding specs? 20:07:42 ohh 20:07:47 looks like that is dependent on the versioned notifications bp, but not marked in lp, i can do that 20:08:08 which is https://blueprints.launchpad.net/nova/+spec/versioned-notification-api right? 20:08:25 mriedem: yes. thanks! 20:09:11 done 20:09:30 great 20:10:33 if nothing else on specs then lets move forward 20:10:55 #topic patches 20:11:22 I published a work in progress patch adding the service status notification 20:11:35 #link https://review.openstack.org/#/c/245678/ 20:11:48 rlrossit made some fine points there already 20:12:08 but more eyes are welcome 20:12:21 i'm confused 20:12:30 bp service-status-notification is the bottom bp 20:12:38 and versioned-notification-api is dependent on that 20:12:43 mriedem: no, it is the first one in the line 20:12:53 mriedem: on the summit we agreed that this will be the carrot 20:13:06 so the dep tree here is correct? https://blueprints.launchpad.net/nova/+spec/versioned-notification-api 20:13:06 mriedem: for the operators to move to consuming versioned notifications 20:13:27 those first 2 look backward 20:13:36 mriedem: yes it is correct 20:14:14 I also feel that it is confusing but that was the agreement 20:14:45 so I started with that 20:15:15 gibi_: first we're doing the notification base, and then we'll base the service-status-notification on that base, and then we'll finish the rest of the versioned notifications after that right? 20:15:39 rlrossit: yes, this is my plan 20:15:46 yeah, so i'm wondering what the code changes are for https://blueprints.launchpad.net/nova/+spec/versioned-notification-api 20:15:57 since it looks like some of that infrastructure is in https://review.openstack.org/#/c/245678/ 20:16:50 these should be split up 20:17:07 +1 20:17:08 the versioned-notification-api bits should be in change 1, then the service status stuff should build on that with change 2 20:17:30 mriedem: yes this is the confusing part, that some of the infra we need already for the service status notification. The versioned-notification-api will add documentation, sample generation, and it will transform three notifications instance.update keypair.* and api_fault notification 20:17:33 i understand the carrot part, and we can approve them in order when we're happy with the service status change 20:17:35 that should be at least 2 changes 20:18:03 Ok, I will split up the current so that the infra is in a separate patch 20:18:12 just make sure they are in a dependent series 20:18:14 s/current/current patch/ 20:18:29 gibi_: just create NotificationBase stuff in this change, and have that paritally implementing bp versioned-notification. Then do the service notifications stuff in a dependent patch, with that one on bp-service-status-notification 20:18:31 "and it will transform three notifications instance.update keypair.* and api_fault notification" 20:18:35 those conversions should all be separate changes 20:18:47 well, handle keypair and faults separately 20:18:51 which is part of the notifications bp right? 20:18:57 mriedem: of course they will be separate dependent patches 20:18:57 not service-status-notification? 20:19:09 rlrossit: looks like a good plan 20:19:17 ok, sounds like this is sorted out 20:19:26 mega patches are not fun to review 20:19:39 I'll note this on the review too gibi_ 20:19:45 rlrossit: thanks 20:19:48 mriedem: I agree 20:20:37 I feel we have one thing that we shall discuss regarding the current published implementation proposal 20:21:00 currently the notification payload object has an object field pointing to a Service object 20:21:19 this makes the version of the payload dependent on the version of the Service object 20:21:26 there are pros and cons 20:21:49 #link https://review.openstack.org/#/c/245678/2/nova/objects/service.py,cm 20:22:29 cons: 1) the payload version needs to be bumped if the Service object is updated 20:23:00 gibi_: it actually doesn't 20:23:19 rlrossit: doesn't it enforced by some test? 20:23:23 now that we do manifest-related backports we don't need to bump that every time 20:23:39 they're only enforced if you add a new field or remotable method 20:23:49 underlying object changes don't affect it anymore 20:24:04 rlrossit: do you have some reference regarding manifest-related backports. I have to check this out :) 20:24:21 granted, with that, we can still have the carpet pulled out from underneath us 20:24:39 gibi_: I don't get a problem with that? 20:25:38 bauzas: the payload is yet another object in the dependency chain that needs to be bumped, somebody refered to this as an update hell in the spec review 20:25:50 but honestly I'm also hesitant droping the dependency 20:26:00 gibi_: that was me, but now we don't need to worry :) 20:26:02 it feels more future proof to keep it 20:26:34 gibi_: here's the dependency removal change 20:26:36 #link https://review.openstack.org/#/c/231271/ 20:26:42 rlrossit: thanks, I wil check 20:26:49 gibi_: using version manifests solves the problem, right? 20:27:06 bauzas: I have a long-winded explanation of my concern with this 20:28:08 bauzas: it feels like it is less of a problem but I will read that change to understand it better 20:28:15 If Service updates to v2.0 and removes some fields, the notification receiver won't be able to know what fields are deleted, because it has no concept of the versioned objects, just the dicts it receives. Because manifest backports only occur within nova, they're dangerous for the listeners outside of nova 20:29:06 rlrossit: Does it mean that only major version update can cause problems? 20:29:36 gibi_: well, major version updates are the only cases in which we delete fields, so it was the easiest counterexample to come up with :) 20:29:47 rlrossit: right 20:29:48 but in reality, I think that is our only problem 20:29:55 because listeners don't care about remotable methods 20:30:14 nor do they care about changes of fields from string to *Enum because the serialized format is the same 20:30:32 the last thing would be is if fields are added, they just may not be able to access them because they aren't aware of them 20:31:05 but then again if a field is added in like 1.5, the listener may start to expect it. Then if a compute spits out 1.4, the listener will explode again because it's expecting to get 1.5 20:31:23 which would basically require a double implementation of compat code 20:31:24 this sounds good to me. If there will be major version change then we can even add some backporting code for a time period for the payload object 20:33:01 rlrossit: so consumers shall not be eager to consume 1.5 to early 20:33:08 correct 20:33:21 I may just be overthinking this too... I have no idea what consumers actually do 20:33:32 those are just all of the scenarios I have thought of 20:34:58 I think if we go out with the versioned implementation and the consumers has problems with the compat code then we can add backporting to nova 20:35:34 but it was intentionally left out from the current scope as there might be no need for it 20:36:11 part of the serialization sends the version with it too, so while it will require paying attention by the consumer, it is possible for them to do their own compat 20:36:33 rlrossit: yes, they can do it 20:38:14 rlrossit: I think there are multiple way to handle this so we just need some feedback from the consumer which I guess they will give use as soon as they start consuming versioned notifications 20:39:12 rlrossit: does it sounds good for you? 20:39:46 yep sounds good to me 20:40:00 if you're looking for consumers, ping gordc 20:40:26 mriedem: I did some advertising of the spec in ceilometer but I will do it with the patch as well 20:40:38 rlrossit: great 20:41:16 anything else regarding the current patch? 20:41:30 I'm done 20:42:03 then lets move forward 20:42:07 #topic Open Discussion 20:43:00 I have nothing for this topic, do you have anything? 20:43:27 nothing other than let me know if you have work you want me to work on 20:43:44 I'm guessing most of the work will come when we start converting all of the payloads 20:44:29 rlrossit: good point. I think as soon as the infra pieces are done we can split up the conversion work 20:45:06 both instance.update and api_fault are a big piece of work 20:45:38 so if you can take one of those then I will take the other 20:46:53 I have no idea what either of those involve, but I'll decide later :) 20:47:05 because we need the foundation down first 20:47:11 rlrossit: no pressure. :) 20:47:19 rlrossit: I agree, fundation first. 20:47:52 OK. anyithing else? 20:47:58 I'm done 20:48:05 mriedem disappeared 20:48:38 I guess he can catch us on openstack-nova or in the review 20:48:48 sounds good 20:48:52 It feels we are done for today. 20:49:00 thank you all 20:49:03 thanks! 20:49:11 #endmeeting