19:05:14 #startmeeting marconi 19:05:15 Meeting started Thu Apr 4 19:05:14 2013 UTC. The chair is kgriffs. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:05:16 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 19:05:19 The meeting name has been set to 'marconi' 19:05:40 #topic State of the project 19:06:39 So, we are close to having our demo ready for Portland. At that point, Marconi will be feature-complete, but will still have a lot of error handling and optimizations to complete. 19:07:11 Sometime in the next few days we will also have a public sandbox ready that everyone can play with. 19:07:23 w000000t 19:07:41 :D 19:08:18 flaper87 has been making excellent progress on the mongodb storage driver, and we also have a reference driver based on sqlite. 19:09:11 jdprax has been coding away on the client lib 19:10:10 jdprax: can you comment? 19:10:12 We're still coding on the client library, but our gerrit config was rejected because essentially they want to us to set up pypi now or never for it. 19:10:15 ... 19:10:43 So I'm leaning toward "never", and we'll just push it ourselves. 19:10:44 jdprax: so, basically we have to release a first version before getting it into gerrit ? 19:10:58 That's my understanding. 19:11:03 :-/ 19:11:09 But hey, not a big deal. 19:11:23 Honestly we've just been swamped so I haven't followed up as closely on it as I should have. 19:11:29 jdprax: what about pushing some dummy code there as placeholder ? 19:11:43 I mean, on pypi 19:12:13 Ah, pushing dummy code to pypi? 19:13:08 jdprax: yeah, some package with version 0.0.0.0.0.0.0.0.0.0 19:13:11 .0.0 19:13:13 and .0 19:13:24 .1 19:13:48 bryansd: .1/2 ? 19:14:23 jdprax: seriously, if that's the problem then I'd say, lets lock tha slot on pypi with some dummy package and get the client on stackforge 19:14:54 sounds like a plan 19:15:07 fucking pypi, today is not working at all 19:15:25 that should be a 7xx error 19:15:28 Hahaha 19:15:59 ok, moving on… :p 19:16:01 kgriffs: I'd say 666 19:16:41 :-) 19:16:44 #topic Finish reviewing the draft API 19:17:10 ok, so over the past couple weeks there've been a bunch of changes to the API, hopefully for the better. 19:17:45 so, first, is there anything in general you guys want to discuss based on the latest draft? If not, I've got a few specific areas I'd like to focus on. 19:18:20 https://wiki.openstack.org/wiki/Marconi/specs/api/v1 19:19:33 So, not to be too annoyingly bikesheddy, kgriffs….. (we talked in person — I'm Ken) I loves that the user-agent isn't overloaded like before, but maybe X-Client-Token instead of Client-ID? 19:19:52 hey Ken 19:20:38 wirehead_: I'm afraid that can be a bit confusing for users since there may be other tokes (like keystone's) 19:20:45 K 19:20:56 Maybe true. Still, would be more HTTP-ish to keep the X- as a prefix. 19:21:08 I know I'm bikeshedding and I appologize for it. :) 19:21:09 actually, I'm not sure I'd agree 19:21:29 x-headers were never supposed to be used like that. 19:21:38 * kgriffs is looking for the RFC 19:21:57 kgriffs <- always has an RFC for everything 19:22:17 http://tools.ietf.org/html/rfc6648 19:22:38 For the curious http://en.wikipedia.org/wiki/Bikeshedding 19:23:36 I'm actually trying to figure out the process for registering new headers 19:23:55 (seems like Client-ID is generic enough to be useful elsewhere) 19:24:19 well, if we want to rabbit hole, you could always silently implement it as a cookie. 19:24:21 (or maybe mnot and his possy will have a better suggestion…TBD) 19:24:26 oh boy 19:24:35 I'm curious about authorization 19:24:37 note that I didn't say "we should implement it as a cookie" 19:24:50 I'm embarrassed to say the thought did cross my mind... 19:25:00 russel-h: shoot 19:25:09 russell_h 19:25:12 kgriffs: any plans to support queue-level permissions? 19:25:18 the spec is a little vague about this 19:25:47 but if you wanted to do this, you would presumably need to track them as a property of the queue 19:25:51 we have thought about it, and I think it would be great to have, but that would best be implemented in auth middleware 19:26:29 right, but would you have to tell the middleware about the permissions of each queue, or where would that information actually go? 19:26:30 it would be great if we could expand the Keystone wsgi middleware to support resource-level ACLS 19:26:52 good question, we honestly haven't talked about it a lot 19:27:25 Well, also some sort of "append only user" 19:27:32 does swift have anything like this? 19:27:35 makes sense 19:28:27 we haven't talked that much about it but I guess that info will live in the queue 19:28:34 "You can implement access control for objects either for users or accounts using X-Container-Read: accountname and X-Container-Write: accountname:username, which allows any user from the accountname account to read but only allows the username user from the accountname account to write." 19:28:48 not a fan of that 19:29:28 russell_h: what would you like to see instead? 19:29:35 or we could also have a PErmissionsController per storage to let it manage per resource permissions 19:29:56 actually, that sounds like a good idea to my brain 19:30:15 flaper87: I'm thinking we could add an _acl field to queue metadata 19:30:28 kgriffs: I was hoping someone else had a clever idea 19:30:45 I can't think of anything that doesn't involve describing groups of users 19:31:04 then, just call out to the controller or whatever as a Falcon hook/decorator 19:31:05 I have a repeat of my clever-but-bad-idea: Create anonymous webhooks 19:31:09 kgriffs: we could but having security data mixed with other things worries me a bit, TBH 19:31:24 to push to a queue, hit a URL with a long token 19:31:51 at any rate, I don't think the permissions issue needs to block a v1 API 19:31:55 naw 19:32:32 russell_h: agreed 19:32:42 sounds like something for v2 and / or Ith release cycle 19:32:58 russell_h, wirehead_: would you mind submitting a blueprint for that? 19:33:11 https://blueprints.launchpad.net/marconi 19:33:27 sure, sounds fun 19:33:38 russell_h: thanks!!!!!!!!!!!!!!!!!!!! 19:35:21 #action russell_h and wirehead_ to kickstart an auth blueprint 19:36:29 #topic API - Claiming messages 19:36:49 https://wiki.openstack.org/wiki/Marconi/specs/api/v1#Claim_Messages 19:37:19 so, any questions/concerns about this section? We haven't had a chance to fully vet this with folks outside the core Marconi team. 19:38:32 oops - just noticed that id needs to be removed from Query Claim response (just use value of Content-Location header) 19:39:47 * kgriffs fixes that real quick 19:40:32 so something I'm curious about 19:40:44 hmm, how to phrase this 19:41:20 scud missile time, russell_h. 19:41:28 basically, can a message be claimed twice? 19:41:48 that is poorly phrased 19:41:48 russell_h: yes if the previous claim expired 19:41:57 not at the same time 19:42:10 what if I want a message to be processed exactly once by each of 2 types of services 19:43:36 for example if I have a queue, and I want it to be processed both by an archival service and streaming query interface 19:43:58 I'd basically like to be able to specify some sort of token associated with my claim 19:44:16 "make sure no one else with token claims this message" 19:44:22 russell_h: right now, that's not possible because we don't have routings neither for queues nor for claims 19:44:48 so the eventual intention is that the message would be routed to 2 queues, and claimed there? 19:44:55 That seems conceptually simpler to me 19:45:15 yeah, seems like you could have something that pulls off the firehose and duplicates to two other queues 19:45:38 alternatively, if they must be done in sequence, worker 1 would post to the second queue the next job to be done by worker 2 19:45:41 Or a submit-to-multiple-queues 19:45:50 AFAIK, that's something AWS handles in the notification service 19:45:57 * flaper87 never mentioned AWS 19:46:06 heh 19:46:09 Just call it "That Seattle Queue" 19:46:19 so, that's something we'll add not because AWS does it but it's usefule 19:46:30 I don't like submit-to-multipe-queues idea, I think the point of queueing is to separate the concerns of publishers and consumers 19:47:01 Or merely an internal tee 19:47:14 russell_h: actually the concept behind queues is just queue. It is the protocol itself that adds more functionalities, as for amqp, it addes exchanges, queues, routing_keys and so on 19:47:15 right, I could probably get onboard with that 19:47:26 I don't like the idea of posting to 2 queues either 19:47:38 so, what you mentioned is really fair 19:47:57 yeah, I'd really like for this to be something that is up to the consumer 19:48:02 basically "who they are willing to share with" 19:48:53 #agreed leave routing up to the consumer/app 19:49:03 just want to add something more 19:49:42 There's nothing saying we couldn't offer, as part of a public cloud, an add-on "workflow/routing-as-a-service" 19:49:46 consider that we've added another level that other queuing system may lack of. We also have tenants which adds a higher grouping level for messages, queues and permissions 19:49:51 but I like the idea of keeping Marconi lean and mean 19:50:39 right, and another grouping is tags which we are considering adding at some point (limiting to a sane number to avoid killing query performance) 19:50:48 a solution might be to create more tenants and just use queues as routing spaghettis 19:51:15 so, the nice thing about Marconi, is queues are very light-weight, so it's no problem to create zillions of them 19:51:47 …as opposed to That Seattle Notifications Service™ 19:51:54 concept, consistency and simplicity. Those are some things Marconi would like to keep 19:52:07 (Marconi told be that earlier today, during lunch) 19:52:30 wow, he's still alive? That's one ooooold dude! 19:52:59 kgriffs: was he dead? OMG, I wont sleep tonight 19:53:35 gazillions > zillions 19:53:38 * kgriffs Zombie Radio Genius Eats OpenStack Contributor's Brain While He Sleeps 19:54:06 and that message was sent through and unknown radio signal 19:54:16 s/and/an/ 19:54:26 moving on 19:54:26 so, you guys can always catch us in #openstack-marconi to discuss claims and routing and stuff further. 19:54:27 the problem with more tenants is that doesn't map well to how people actually use tenants 19:54:38 that can be overcome 19:54:50 sure. 19:54:55 let's keep the discussion going 19:55:03 russell_h: agreed, that was just a crazy idea that might work for 2 or 3 types of deployments 19:55:16 flaper87: yeah, I have that idea about every third day for monitoring :) 19:55:32 flaper87: it really doesn't work well for monitoring, because people want the monitoring on their server on the same tenant as the server itself 19:55:38 and they don't do that for servers for some reason 19:56:04 (because their server already exists, and my suggestion that they rebuild it on a different tenant doesn't go over well) 19:56:09 anyway, yeah, joined the other channel 19:56:11 thanks guys 19:56:18 I like the look of this so far 19:56:28 my heart fluttered a little when I saw you using json home ;) 19:56:32 in a good way 19:56:33 russell_h: thank you. Would love to talk more about that in the other channel 19:57:13 yeah, we will have the home doc up soon. We want to use uri templates pervasively, but are waiting for the ecosystem around that to mature, so probably do that in v2 of the api 19:57:17 ok 19:57:22 we are just about out of time 19:57:29 any last-minute items? 19:57:41 oh, one quick thing 19:58:14 Any objections to postponing the diagnostics (actions resource) to later this year after our first release? 19:58:43 not from me! I thinki we have other things with higher priority 19:59:25 #agreed postpone diagnostics 19:59:42 I really think it will be a hugely helpful feature, but we've got bigger fish to fry first. :D 20:00:06 I would say a bigger zombie 20:00:09 ok guys, it's been cool. We'll have a sandbox up soon you can try out. Tell us what sux so we can fix it. 20:00:10 :P 20:00:39 awesome! Way to go guys! russell_h wirehead_ thanks for joining 20:00:43 FYI, looks like we may be getting celery/kombu support in the near future as well 20:00:54 thanks guys! 20:00:54 thanks for having us, folks :) 20:00:59 #endmeeting