16:00:17 #startmeeting api wg 16:00:19 Meeting started Thu Feb 25 16:00:17 2016 UTC and is due to finish in 60 minutes. The chair is elmiko. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:20 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:00:22 o/ 16:00:23 The meeting name has been set to 'api_wg' 16:00:26 #chair cdent 16:00:27 Current chairs: cdent elmiko 16:00:36 #link https://wiki.openstack.org/wiki/Meetings/API-WG#Agenda 16:00:52 maybe give a few minutes for folks to arrive 16:01:09 o/ 16:01:54 #topic previous meeting action items 16:02:00 #link http://eavesdrop.openstack.org/meetings/api_wg/2016/api_wg.2016-01-28-16.00.html 16:02:30 hmm, that's an old meeting 16:02:41 i *think* we got all those items though 16:03:10 yeah, thus the confusion about the accuracy of the agenda 16:03:15 #undo 16:03:16 Removing item from minutes: 16:03:21 #link http://eavesdrop.openstack.org/meetings/api_wg/2016/api_wg.2016-02-11-16.00.txt 16:03:29 that's the right one 16:03:40 #undo 16:03:40 Removing item from minutes: 16:03:42 #link http://eavesdrop.openstack.org/meetings/api_wg/2016/api_wg.2016-02-11-16.00.html 16:04:16 i think sdake took care of his 16:04:34 one of the action items there, sdague's, was done, but then because of my action item, there's been some discussion of changing things more 16:04:35 er sdague, not sdake (sorry) 16:04:43 yea 16:04:49 #link https://review.openstack.org/#/c/280381/ 16:05:28 #link http://lists.openstack.org/pipermail/openstack-dev/2016-February/087086.html 16:05:39 seems like aside from jaypipes' issue, folks are accepting that review 16:06:02 loved the title on that email lol 16:06:54 and i think it gives us a good segue to 16:06:55 #topic service type vs. project name for use in headers 16:07:13 #link http://lists.openstack.org/pipermail/openstack-dev/2016-January/085145.html 16:07:20 #link http://eavesdrop.openstack.org/meetings/tc/2016/tc.2016-02-02-20.01.log.html#l-263 16:07:43 is there anymore to discuss here, i thought we had decided to support service type? 16:07:48 I think we decide it would be service type and thus the service registry was born 16:07:53 k 16:08:06 #info api-wg has agreed that service type is the preferred usage 16:08:19 and great setup cdent 16:08:21 #topic taking on the service type registry 16:08:30 so... 16:08:53 sdague has laid the groundwork for that with a repo and getting tc stuff in place 16:09:05 yea, saw that review 16:09:08 but efforts to get some basic starting points into the repo have stalled because of other work 16:09:21 do we need to generate a cross-project spec to define the effort? 16:09:37 i haven't followed along with what we are going to put in that repo 16:09:59 I think we've already made it past the need for cross-project spec, by fiat 16:10:01 is it just a text file with a list and folks make reviews against it when they want on the list? 16:10:05 k 16:10:18 there are some etherpads where experimentation is happening 16:10:21 * cdent looks for them 16:10:49 #link https://etherpad.openstack.org/p/service-registry-format 16:10:53 thanks, i feel like i totally missed whereever this was posted 16:11:01 i saw sdague's original review 16:11:10 I think the discussion for this happened in the service catalog ng meeting 16:11:16 there's a bit of overlap with that 16:11:21 ah, yea. 16:11:31 i should probably add that to my calendar 16:12:46 i can't seem to find the link to the new repo, do you have it cdent ? 16:13:24 #link http://git.openstack.org/cgit/openstack/service-types-authority/tree/ 16:13:35 awesome, cdent++ 16:14:12 so, i guess once the format is solidified will the service catalog folks be adding reviews or should we start with all the defcore services? 16:14:29 or really, all the governance services 16:15:03 I think the idea was to start with all the stuff that is not contentious 16:15:11 right, that makes sense 16:15:16 which some small segment of "we" ought to be able to figure out 16:15:24 defcore seems a reasonable starting point 16:15:34 cool 16:15:44 i don't mind helping (assuming we agree on the format from that etherpad) 16:17:01 do you know if that format is where we are starting? 16:17:18 I think you're core in the group 16:17:34 the format is still being figured out, but I think it is on you and me to resolve what it should be 16:17:45 oh wow, ok 16:17:48 the debate was pretty much around how much information do we really need 16:18:14 yea, i would think we don't need that much. we just want a mapping from service type to project name right? 16:18:22 (the links are nice too though) 16:18:23 and how multiple projects on the same service type are to be represented 16:18:32 that's a great question 16:19:00 it's easy enough to have a list under service-type 16:19:03 so, there needs to be some standard form for extending the service-type for additional info? 16:19:31 although, this may be an area for the suggestion you had brought up before 16:19:37 what if we have a header like 16:19:52 the hope was that we could do some easy yaml 16:19:53 OpenStack-SomeService-Foo: Project_A Bar 16:19:58 OpenStack-SomeService-Foo: Project_B Bar 16:20:24 given the consistency goals I think we'd never want that 16:20:30 i agree, yaml is nice for the format 16:20:34 ok, too bad 16:20:47 If you are supporting a service then you are supporting the api of that service 16:20:57 so idealy both project and project b would use (the modern version: 16:21:08 OpenStack-Foo: 16:21:23 hmm 16:21:25 (with service on the right hand side if it is needed,) 16:21:39 oh right, i didn't realize that proposal gained traction 16:21:58 so we won't have, for example, OpenStack-Compute-Foo ? 16:22:46 it's not clear if it has gained traction or not, the mailing list thread above some people kind of liked it 16:23:24 #action: cdent to clarify if people really want to consider it 16:23:26 * sdague sneaks in as kiddo is asleep 16:23:34 welcome sdague 16:23:36 how about we be pragmatic on it 16:23:40 #undo 16:23:40 Removing item from minutes: 16:23:45 3 projects currently have microversions 16:23:58 #action: cdent to clarify if people want the radical change to microversion headers 16:24:00 can we get those 3 on board? 16:24:09 if yes, go 16:24:10 great question 16:24:47 so, just to restate, the idea here is that we would move to OpenStack-API-Version: Compute x.y.z (for example) 16:24:52 yep 16:25:03 cool, i'm down with that. if the projects are on board 16:25:18 and I'm actually pro that, and think can represent the nova position. 16:25:23 cdent: are you going to check with the projects then? 16:25:29 sdague: cool, thanks! 16:25:31 so get an ironic and manilla rep to ack 16:25:32 elmiko: yes 16:25:35 then we do it 16:25:36 awesome 16:26:06 so cdent's action is to get a position from ironic and manilla projects 16:26:08 so, we will need a header guidelines update to reflect these changes if everyone is onboard 16:26:14 sdague: yes 16:26:20 elmiko: yeh 16:26:30 #action cdent get a position from ironic and manilla projects on modernization of microversion headers 16:26:38 ok, and then i guess we'll revisit this at the next meeting 16:26:44 (which sadly, i won't be able to attend) 16:26:59 cdent: and I think the only thing to consider is what to do for non registered service types 16:27:14 good point 16:27:39 sdague: as long as they are using the standard header on the left hand side it really doesn't matter what they do on the right 16:27:39 because I'm going to assume we will require service type registration for the token on the rhs 16:27:41 that's kind of the point 16:27:49 cdent: oh, right, I suppose so 16:27:50 it might be nice to have some sort of readme in the service-types-authority that can speak to the non-registered types? 16:27:57 never mind, solves a bunch of other things in the process 16:28:05 services with types obviously _should_ use their type 16:28:18 but other things can use "my mom" if they want to 16:28:27 elmiko: agreed, it's on my list. But right now I'm trying to stay bug focussed until the nova RC process begins 16:28:32 qotd material right there cdent 16:28:49 I am totally building a rest service that uses that 16:28:49 sdague: ack, totally fair and i don't want to derail you 16:28:58 hahah! 16:29:12 * cdent has disgraced his own mother 16:29:15 the shame! 16:29:20 unforced error 16:29:35 So, I have a topic related to this one that I mentioned to elmiko a couple days ago 16:29:46 which is things on the right hand side that use redudant info 16:30:02 the example is: x-openstack-request-id: req- 16:30:05 req is redundant 16:30:14 #topic header values 16:31:14 cdent: but, to your previous point about using whatever on the right hand side. do we need to advise a guideline here? 16:31:51 I'm not sure, that's why I ask. 16:32:10 It may be just that I don't like this specific case 16:32:19 actually, now that i think about this again. it would be nice to at least give some suggestions about reducing redundant info 16:32:34 because I'm really annoyed by things which contain uuids but have prefixes or suffixes, thus making them no longer _truly_ uuids 16:32:44 we don't have to say *NEVER DO THIS*, but we could expand the idea 16:32:50 right 16:33:17 i'd be ok with a guideline giving best practices for header right side values 16:33:39 I'll go ahead and do that one since I seem to be in the mood 16:33:48 #action cdent guideline giving best practices for header right side values 16:33:50 awesome, thanks cdent ! 16:34:22 #topic the trouble with names 16:34:30 was this yours sdague ? 16:34:44 and did we cover it already 16:34:45 i think we've done it already. it's headers and service type authority 16:34:50 yea 16:34:56 popular topic ;) 16:35:13 we should probalby talk about cache invalidation, since that's the other main problem everywhere all the time 16:35:27 #topic cache invalidation 16:35:31 go for it 16:35:39 It' was a joke 16:35:53 16:35:59 * elmiko looks up too late 16:36:09 #topic Glance-Glare (Artifacts) 16:36:21 o/ 16:36:25 hey 16:36:31 was just about to ping =) 16:36:33 o/ 16:36:38 the floor is yours 16:36:44 We've a spec up for this new API proposal 16:36:47 #link https://review.openstack.org/#/c/283136/ 16:36:48 hi folks 16:36:59 hey Mike 16:37:18 so, mfedosin is leading the spec 16:37:20 if it's tl;dr just skip to rest api impact 16:37:40 that is a thorough spec, well done 16:38:09 The use cases are pretty elaborate! thanks to mfedosin and team 16:38:20 there were a couple of specific ones 16:38:46 our main goal was to keep Glare compatible with Glance v2 16:38:48 Is it possible to get an artifact by id without knowing its type? 16:39:02 cdent no 16:39:12 is that by design 16:39:25 it may happen that different artifacts may have the same id 16:39:45 because they are stored in different db 16:39:57 for me, the actions section stands out as something we advise against 16:40:04 (Glance v1 allows manually set image id) 16:40:42 why not just PATCH /v1/artifacts/{artifact_type}/{artifacts_id} with the requested state? 16:40:57 :) 16:41:03 deja vu 16:41:05 haha 16:41:12 to keep compatibility with Glance v2 first 16:41:24 elmiko: it's the activate and deactive stuff from glance v2 API 16:41:27 http://developer.openstack.org/api-ref-image-v2.html 16:41:39 ok 16:42:15 elmiko: I don't like it neither :) 16:42:17 other than that, the rest impact section looks pretty good to me 16:42:22 mfedosin: I think we wanted to ask about the PUT vs DELETE for blobs correct? 16:42:36 I'm going to have to look at it more closely than now really allows, but I will asap 16:43:10 nikhil: it's better to use PATCH 16:43:22 because we modify blob property 16:43:31 hmm 16:43:57 elmico cdent thanks folks. we're waiting your comments there 16:44:08 cool, thanks for bringing this up 16:44:23 It looks extremely detailed, which is great to see 16:44:29 mfedosin: are you saying that deleting a blob is done through a PATCH? 16:44:33 cdent: +1 16:44:44 elmiko: yeah 16:44:53 line 1101 16:44:56 brb 16:45:04 yea, that's what i'm looking at 16:45:08 cool 16:45:09 we delete blob property from artifact 16:45:20 i would think you would want to support DELETE /v1/artifacts/{artifact_type}/{artifacts_id}/blobs/{blob_name} 16:45:34 interesting... 16:45:42 :) 16:45:52 mfedosin: but wouldn't that be a PATCH to the artifact not the blob? 16:46:03 I thought about it, but wanted to hear your opinion on that matter 16:46:06 that's the catch 16:46:26 would we want to support both? 16:46:34 hmm, i was just thinking that 16:46:38 elmiko: ah, I see what you mean 16:46:55 i would think that for deleting a resource, the DELETE method should be the main way to do it 16:47:03 so we need right API to remove blob from artifact while it's queued 16:47:14 elmiko: got it 16:47:15 and if the user requests a blob delete through a PATCH to the artifact it should return a 4xx 16:47:27 i'm curious if cdent agrees 16:47:58 my reasoning is that removing a resource should always be an explicit action 16:48:07 oh 16:48:24 it makes sense 16:48:36 elmiko: so the issue being the resource is being referenced as a property 16:48:41 so - if we PATCH with remove, than return 400 16:48:46 now granted, i don't know the technical limitations behind these choices. so, grain of salt 16:49:09 elmiko: what this would mean is: 16:49:18 1. DELETE the blob resource 16:49:21 I'm back, 16:49:22 * cdent thinks 16:49:32 2. Update the artifact that contains it 16:49:49 ok, so 2 issues for me 16:49:57 so it would be a two step delete with two separate actions 16:50:03 yea, that seems weird 16:50:04 * nikhil listens 16:50:14 sigh, I closed that tab and now gerrit is throwing 503 16:50:24 1. are the blob and the artifact 2 separate resources? 16:50:40 elmico yes 16:50:41 2. if they are, then PATCHing the artifact is ok without deleting the blob 16:50:53 two instances I mean 16:50:58 like, would i ever remove the blob property from the artifact and leave the blob around? 16:51:32 umm 16:51:36 blob will have status 'deleted' after that 16:51:38 are they actually 2 separate, independent resources, or are they tied together 16:51:46 ? 16:51:50 I think there may be a case when it has a dependency? 16:52:16 if they are dependent, i would lean towards a DELETE on the blob, and the server would automatically update the artifact property 16:52:28 By having a URL that is /v1/artifacts/{artifact_type}/{artifacts_id}/blobs/{blob_name} then the implciation is that the way to delete that thing is to DELETE it 16:52:37 elmiko: so blob is designed this way as it is much much bigger in size compare to other artifacts properties (MB< GB etc) 16:52:37 blob property in artifact is just a link to blob instance in db 16:52:50 foreign key 16:53:00 so we can replace it 16:53:13 ok, so blobs can act independently of artifacts then? 16:53:24 elmiko: essentially at the core of the artifacts design, it's just another property. but how can we separate it is still open question.. 16:53:36 ah, gotcha. thanks nikhil 16:53:50 i still lean towards DELETE as the main way to remove a blob 16:54:17 +1 for DELETE as the main way, single operation 16:54:23 (also, 5 min left) 16:54:25 will be updated 16:54:34 cool 16:54:44 please share your thoughts on the spec! :) 16:54:45 thanks again nikhil and mfedosin for bringing this up =) 16:54:48 we should quickly decide if any current guidelines are ready for freeze 16:54:48 will do 16:54:54 good point 16:54:56 thanks in advance 16:55:07 elmiko: :) 16:55:07 #topic guidelines for freeze 16:55:19 cdent: did you have some in mind? 16:55:53 i guess these two are getting close 16:55:55 the only two recent ones that are currently +1 are two of the microversion things from alex_xu 16:55:57 #link https://review.openstack.org/#/c/243429/ 16:56:04 #link https://review.openstack.org/#/c/243414/ 16:56:13 i'll put em up if we think they are good 16:56:14 yeah, those, but I'm not entirely sure 16:56:18 (seems like the reviews say they are) 16:56:24 may as well then 16:56:36 oh wait 16:56:41 should we take one more pass given the recent ideas about headers? 16:56:46 yes, exactly 16:56:56 ok, let's table these until next meeting then 16:56:57 i'll do my actions on that first 16:57:04 makes sense 16:57:09 and thanks =) 16:57:46 i still need to revisit the actions guideline, not sure how to bring that into alignment 16:57:53 and i'd like to start a links guideline 16:58:32 ok, another other business for the last minute? 16:58:39 er any other... 16:58:52 man... only noon and i can't type already 16:59:06 going once 16:59:11 twice 16:59:13 ... 16:59:15 sold! 16:59:20 thanks everyone! 16:59:23 #endmeeting