18:59:35 #startmeeting Poppy Weekly Meeting 18:59:36 Meeting started Thu Feb 12 18:59:35 2015 UTC and is due to finish in 60 minutes. The chair is amitgandhinz. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:59:37 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 18:59:39 The meeting name has been set to 'poppy_weekly_meeting' 18:59:48 #topic RollCall 18:59:55 \o/ 19:00:02 _/\_ 19:00:10 lol 19:00:55 hey everyone! 19:01:16 howdy folks! 19:01:25 dmitry: howdy! 19:01:33 o/ 19:01:37 hey Amit & Megan! 19:01:39 o/ 19:01:42 hello all... 19:01:46 o\ 19:02:22 #link https://wiki.openstack.org/wiki/Meetings/Poppy#Agenda 19:02:30 #topic Review Last Week 19:02:42 #link http://eavesdrop.openstack.org/meetings/poppy_weekly_meeting/2015/poppy_weekly_meeting.2015-02-05-19.00.html 19:02:50 * sriram wonders how the meeting would go if everything was ascii art :P 19:02:58 no action items from last week 19:03:10 fyi i did submit the proposal for the vancouver talk 19:03:30 i think they will get published soon for people to start voting on 19:03:30 sriram: we at poppy, use unicode for everything :) 19:03:36 amitgandhinz: 19:03:39 cool 19:03:45 +1 19:03:47 obulpathi: heh 19:04:14 but you can see what i submitted on the etherpad here: https://etherpad.openstack.org/p/Poppy_Vancouver 19:05:42 any questions on this? 19:05:58 if not we can move on to reviewing the current board 19:06:15 #topic Kilo3 Updates 19:06:21 #link https://launchpad.net/poppy/+milestone/kilo-3 19:06:40 lets go through the bp first 19:06:56 sriram: taskflow driver update (tonytan is on vacation right now) 19:07:02 sure 19:07:11 so there are 2 patches out there. 19:07:35 the first one is the base, where everything runs in one task, with a linear flow. 19:07:41 thats going to be a first pass. 19:07:51 the second patch, is the one I'm currently working on. 19:08:10 splits everything into multiple tasks, enclosed within a graph flow. 19:08:24 I have managed to get everything working. 19:08:49 I need to update the tests, and also add a more sophisticated retry logic while making dns updates. 19:08:57 right now we just retry 5 times. 19:09:04 thats about it. 19:09:13 cool, coming along nicely 19:09:29 miqui: https://blueprints.launchpad.net/poppy/+spec/home-doc 19:09:42 i did some updates.... 19:09:58 but need team feedback if anything is missing... 19:10:18 submit a patch to gerrit and we can take a look 19:10:18 basically does it reflect all of the routes and responses... 19:10:31 amitgandhinz: +1 19:10:43 miqui: please feel free to submit a patch :) 19:10:46 hmmm... i was actually assuming that if you look at the apiari doc 19:10:54 there would be the answer.... 19:11:05 oh you made the update in apiary? 19:11:09 yes 19:11:14 oh 19:11:23 what am doing is changing the apiary to match what is there... 19:11:27 there in the code... 19:11:32 not the other way around... 19:11:44 i.e. docs match the code.... 19:12:10 are you updating it here: http://docs.cloudcdn.apiary.io/#get-%2F 19:12:18 yes 19:12:32 changing it to reflect the current code 19:12:39 hmm i dont see the changes yet 19:12:47 it is a challenge since the code keeps changing.... 19:13:09 the endpoints are not changing so shouldnt be impactful 19:13:32 amitgandhinz: then i think i am still missing something... 19:13:48 i did some minor updates that reflect the models 19:13:52 and some typos 19:14:40 ok, lets chat afterwards about this 19:14:41 also services seems done 19:14:44 k 19:15:07 may need to clarify exactly what is required here 19:15:31 obulpathi: https://blueprints.launchpad.net/poppy/+spec/mimic-racksapce-dns 19:15:42 I am not getting time to work on this 19:15:46 I will remove my name from this 19:15:56 and will pick it up, when I have bandwidth 19:16:21 ok 19:17:04 alright, moving on to bugs 19:17:23 nothing looks like its currently in progress 19:17:38 https://bugs.launchpad.net/poppy/+bug/1420833 19:17:38 Launchpad bug 1420833 in Poppy "service stays in update_in_progress state" [Undecided,Fix committed] - Assigned to Obulapathi (obulpathi) 19:17:42 https://bugs.launchpad.net/poppy/+bug/1420515 19:17:42 Launchpad bug 1420515 in Poppy "Change PATCH to do UPSERT" [Undecided,Fix committed] - Assigned to Obulapathi (obulpathi) 19:17:50 we have got these bugs fixed 19:17:55 can we mark it for kilo-3? 19:18:17 https://bugs.launchpad.net/poppy/+bug/1421352 19:18:17 Launchpad bug 1421352 in Poppy "Race condition in PATCH endpoint" [Undecided,New] 19:18:30 https://bugs.launchpad.net/poppy/+bug/1421352 19:18:41 targeted 19:18:51 the two bugs related to race conditions 19:19:17 can you also mark them for kilo-3 please 19:19:25 cool .. thanks :) 19:19:31 yes i marked them to k3 19:19:34 we also finally got all the api tests passing now too 19:19:42 yep 19:19:44 wooo nice. 19:20:29 https://bugs.launchpad.net/poppy/+bug/1417368 19:20:29 Launchpad bug 1417368 in Poppy "Cassandra storage driver docstring refers to MongoDB" [Undecided,Fix committed] - Assigned to Robert Morgan (robert-thomas-morgan) 19:20:40 needs to marked for kilo-3 19:20:48 done 19:21:07 thanks :) 19:21:40 #topic New Items 19:22:00 so i have been documenting some api changes in apiary 19:22:06 http://docs.cloudcdn.apiary.io 19:22:26 i want the team to review them before the work starts on adding those features 19:22:38 i will summarize what the features are here so that everyone has context 19:22:43 mark as action item? 19:22:48 oh wait....ami 19:22:50 amitgandhinz: 19:23:09 #action ALL - review api service configuration changes in apiary 19:23:15 yes miqui? 19:23:27 just want to clarify something... 19:23:35 sure 19:23:56 so the apiary tool is basically used to document apis,etc..etc.. then we go off to implement as per that spec/doc 19:24:06 generally yes 19:24:16 , but the have been treating it as the homedoc 19:24:25 we review the api before implementing it 19:24:32 which in turn is modified to match whats in the code today 19:24:41 am i doing the wrong thing... 19:25:03 at the end of the day the code and the api docs should match 19:25:09 sure sure... 19:25:17 but i think i been doing things backwards 19:25:18 ideally the team agrees on the api doc first, so we dont end up building the wrong thing 19:25:31 AFAIK, the home doc should reflect all available endpoints in the api 19:25:36 sriram: +1 19:25:41 and needs to be implemented here: https://github.com/stackforge/poppy/blob/181a0216ec1f0dd596a017bf5c257fac96c9f641/poppy/manager/default/home.py 19:26:10 so in the case of poppy, it should reflect the endpoints available for /services and /flavors, and the methods possible (get, put, post, delete), etc 19:26:24 yes 19:26:29 a user can then discover individual services by doing a list of /services 19:26:36 right... but i think am doing it backwards 19:26:44 how are you doing it? 19:26:59 am modifying the homedoc to reflect the code as per the bp 19:27:40 instead the correct way is to document what the api is goign top be etcetc and then do the code 19:27:42 so, right now the homedoc as shown in apiary is also incomplete 19:28:01 its missing endpoints? 19:28:16 so if you can update apiary for the GET home document endpoint to what it should be....and then update the code to reflect that 19:28:34 miqui: yep 19:28:35 homedoc is currently missing the /flavors endpoint 19:28:40 its also missing the hints for the other verbs 19:28:45 it lists just the services endpoint right now. 19:28:55 hmm missing? 19:29:02 as in its not documented 19:29:02 i see it here: xotl: so you are saying that you cannot access sails.config.env.xxx.xxx ? 19:29:06 oops 19:29:14 http://docs.cloudcdn.apiary.io/#flavors 19:29:26 miqui: https://gist.github.com/anonymous/ff02c8d1b81146323db8 19:29:43 under href/template, you see that it just lists services 19:29:50 we need to add flavors 19:29:52 so if a user of poppy doesnt read the api docs, they have no idea the flavors endpoint exists 19:29:55 and all other endpoints. 19:29:57 aaaahhhhhhhhhh wait.. 19:29:58 and where it is 19:30:06 but if the make a call to / 19:30:06 the homedoc IS NOT the apiary doc 19:30:17 miqui: nope :) 19:30:20 then they will discover that there is a /services endpoint and a /flavors endpoint 19:30:23 the homedoc is just another endpoint 19:30:31 GET v1.0/ 19:30:34 if they call GET /services, then they discover the list of services created 19:30:46 sriram: +1 19:30:46 right so the homedoc is another endpoint.... 19:30:47 miqui: you can fin f the code related to homedoc here: https://github.com/stackforge/poppy/blob/master/poppy%2Fmanager%2Fdefault%2Fhome.py 19:31:03 but my question ... am i correct? 19:31:19 the home doc is NOT the apiary doc 19:31:37 * miqui a lightbulb lights up finally 19:31:38 the homedoc needs to be documented in apiary under the / endpoint as per here... 19:31:46 sorry, If my answer was confusing :P 19:31:51 http://docs.cloudcdn.apiary.io/#get-%2F 19:32:00 all this freaking time i treated the apiary as the homedoc 19:32:06 gees 19:32:14 its all in the terminology.... 19:32:17 hmm....sorry if we created confusion 19:32:24 sorry sorry sorry sorry guys 19:32:39 miqui: dont sweat it :) 19:32:41 home endpoint 19:32:48 yip =) 19:32:50 might been clearer to me.... 19:32:53 its just an endpoint after all :) 19:33:01 heh 19:33:03 when i see 'doc' hey its doc not code 19:33:06 gees sorry again... 19:33:25 technically malini that is true... 19:33:41 k... amitgandhinz i will have another look... 19:33:53 thats my update....hahahah 19:33:59 and we can chat more in the channel on this, definately ask questions. especially if the bp is not clear 19:34:04 ok.... 19:34:09 sure thanks 19:34:16 http://docs.cloudcdn.apiary.io/#post-%2Fservices 19:34:25 so i have added a section for "content" 19:34:45 the idea here is to implement things like header forwarding, querystring forwarding, and cookie forwarding to origin 19:34:53 those items also become part of the cachekey 19:35:12 that way users can be served content based on their sessions/headers/ etc 19:35:42 the second one i added was under restrictions[] 19:36:02 i added a rule to allow geography restrictions to allow requests to be restricted to certain geo's only 19:36:23 cool, I guess thats a country code? 19:36:29 or regions? 19:36:33 country code 19:36:43 just wondering about the granularity of the region 19:36:52 and regions are subjective 19:37:07 we may need to come up with an enumerated list that we support 19:37:13 just wondering.. if lets say I want the content to be accessible from asia 19:37:17 and then map items in that list to ones that providers support 19:37:23 also, the list that goes into geo, is it whitelist or blacklist? 19:37:28 as im sure each provider refer to countries/regions differently 19:37:31 do I need to send all the country codes in asia? 19:37:56 maybe we do each country, but also have the option for regions in our enumerated list of options 19:38:05 +1 19:38:10 so you can say "asia" or each country 19:38:25 amitgandhinz: yeah, then again, it also depends on what the providers support. 19:38:26 is this a whitelist or blacklist? 19:38:36 but, I like the idea. 19:38:41 restrictions are a blacklist generally 19:38:54 amitgandhinz: cool 19:39:04 hmmm 19:39:15 we may need to introduce a way to indicate it huh 19:39:43 eg if i want to limit to USA, then i wouldnt want to restrict 250 countries 19:39:51 yeah 19:39:52 amitgandhinz: +1 19:39:57 feedback noted 19:40:11 the third item i added was the ability to enable log_delivery 19:40:30 amitgandhinz: cool, that makes sense. 19:40:41 log delivery will basically take the logs delivered from the provider, reformat it into a standardized format, and put it inthe customer's swift contianer 19:41:03 is there a way to generalize to any container? 19:41:11 swift/S3/google? 19:41:24 we can make the container name configurable by the operator 19:41:32 ok 19:41:44 obulpathi: we could. just need different drivers. 19:41:51 hmmm....lets start with swift only, and then generalize later with different drivers 19:41:55 also, only the config option is exposed, right? 19:42:08 yes, only enabled: true/false 19:42:19 just make sure that we do the service as abstract base class, as its easily extensible later. 19:42:26 we could make this an object so its easy to add features later to extend it 19:42:35 the code for pushing logs into containers, is it going to live under poppy? 19:42:54 so instead of log_delivery: true it could be log_delivery : { enabled: true, storage: swift } 19:43:02 obulpathi: yes 19:43:10 ok 19:44:06 what about log format? 19:44:09 amitgandhinz: its something thats going to be running in the background? 19:44:14 json is pretty popular 19:44:19 if you scroll down, i have it detailed 19:44:26 a separate entry point, right? 19:44:41 miqui: the log fromat should follow a standard as users will often parse it into their own systems 19:44:57 yeah 19:45:04 and what is that standard? 19:45:09 Usually apache 19:45:14 apache common log format / extended log format support 19:45:14 this one is NCSA combined (apache) 19:45:23 hmmm..k 19:46:03 eventually we could add a field to the log_delivery element where the customer can specify the format they want i guess 19:46:10 maybe thats a v2 thing 19:46:17 based on feedback we get on this 19:46:25 sure 19:46:42 so, again a question the log delivery is an out of band service from the api, correct? 19:46:42 some might want it in certain format that fits well with lets say logstash... 19:46:44 ok, the last change i added was the "certificate" field under "domains[]" 19:47:01 the idea here is you can set it to "shared", "san", or "custom" 19:47:20 if you do shared there are validations that kick in on what was entered for the domain 19:47:51 basically shared ssl domains can only have one level of indirection in them 19:48:02 shared will use an operator cert 19:48:26 san will add the user's domain as a Subject Alternate Name to the operator's cert 19:48:43 and "custom" will provision a new cert for the customer's domain at the provider 19:49:24 for custom, we may utilize barbican potentially to generate certs for providers who need it uploaded. Others (like Akamai) dont trust users to upload a cert and want to provision it themselves to ensure the cert hasnt been compromised 19:49:44 dmitry: how does maxcdn handle dedicated certs? 19:50:04 ie is it custom provisioning? is there an API for it? 19:50:50 Amit: Customers can upload their own certificates or we can purhase on their behalf and provsion. It's practically real-time and done via our Control Panel :) 19:51:17 dedicated or wildcard certs 19:51:20 cool =) is there an API/CLI interface to upload it also, or is it only on the control panel? 19:51:31 #link https://www.maxcdn.com/one/tutorial/setup-dedicated-ssl/ 19:52:00 this could possible be done via API as well.. I would need to look into the specs 19:52:36 the maxcdn looks somewhat similar (slightly easier) than cloudfronts process 19:53:02 so in these types of examples we can have barbican generate a cert, and then upload it (hopefully via api) to the providers 19:53:16 +1 19:53:20 Amit, confirmed that certs can be uploaded and provisioned via API 19:53:28 dmitry: awesome =D 19:53:31 via the MaxCDN API 19:53:45 https://docs.maxcdn.com/#ssl-certificate-api 19:54:15 this is nice 19:54:24 we're fancy like that ;) 19:54:34 haha 19:55:18 ok team, so please read through these api spec changes, and give me more feedback on them. i will incorporate some of the feedback received today into it also 19:55:29 timecheck - 5 min remaining 19:55:45 any questions on any of these suggestions, or are they pretty clear? 19:56:19 #topic Open Discussion 19:56:26 one comment.. 19:56:28 sure 19:56:42 i have seen some code here and there without proper docstrings.... 19:56:51 =/ 19:57:31 so me being a bottom feeder is keeping an eye in this making patches... 19:57:45 thats it for me... 19:57:47 please -1 those patches when reviewing 19:57:54 and team, please add docstrings! 19:57:58 amitgandhinz: +1 19:58:04 we need them, it makes it easier for others to participate too 19:58:08 sure 19:58:53 dmitry: also, we started some docs for providers - https://wiki.openstack.org/wiki/Poppy/Provider_-_Getting_Started#Building_a_Provider_Driver 19:59:08 its still a work in progress, but its a start i think 19:59:24 perfect, thanks Amit! 19:59:48 im strill trying to add to it (eg a step by step guide on building a new provider from nothing with code samples) 19:59:56 ok we are at time now 20:00:07 we can discuss more in the #openstack-poppy channel 20:00:10 thanks everyone 20:00:10 and thats a wrap. 20:00:11 see you all next week 20:00:14 #endmeeting