Tuesday, 2014-10-28

*** barclaac|2 has joined #openstack-lbaas00:14
*** barclaac has quit IRC00:18
*** sbfox has quit IRC00:26
openstackgerritA change was merged to stackforge/octavia: Allow .diag file extensions in spec reviews  https://review.openstack.org/13130000:45
*** mwang2 has quit IRC00:46
*** fnaval has quit IRC00:47
*** mlavalle has quit IRC00:57
*** barclaac has joined #openstack-lbaas01:04
*** fnaval has joined #openstack-lbaas01:06
*** barclaac|2 has quit IRC01:07
*** vivek-ebay has quit IRC01:16
openstackgerritStephen Balukoff proposed a change to stackforge/octavia: Specification of reference haproxy amphora API  https://review.openstack.org/12680102:05
rm_yousbalukoff: I use 422 codes a lot02:17
rm_younoticed they're lacking from your API spec02:17
rm_youpossibly nothing that uses them I guess, but curious if you were avoiding them out of more than just coincidence :P02:17
sbalukoffI'm thinking I'm using 409 where you would use 42202:18
sbalukoffIsn't 422 WebDAV specific?02:18
rm_youhmm yeah i can see that02:18
rm_youwell02:18
rm_youit was introduced in an official RFC02:18
rm_youhappens to have WebDAV as primary use-case02:18
rm_youbut I don't think it says anywhere "this is only for WebDAV"02:18
*** vivek-ebay has joined #openstack-lbaas02:19
rm_youthe code is EXACTLY what we need for things like SSL certs being out of date or stuff like that...02:19
rm_you"the server02:19
rm_you   understands the content type of the request entity (hence a02:19
rm_you   415(Unsupported Media Type) status code is inappropriate), and the02:19
rm_you   syntax of the request entity is correct (thus a 400 (Bad Request)02:19
rm_you   status code is inappropriate) but was unable to process the contained02:19
rm_you   instructions"02:19
rm_youbut I can revise my spec to reference 409 instead if that's the direction we want to go02:20
sbalukoffHmmm... I think the first time I put this together I was using lighttpd as the webserver, and it didn't understand 422.02:20
sbalukoffI'm honestly not sure what's the most approriate thing here.02:21
sbalukoffIt would be trivial to change in either case.02:21
rm_youI suppose02:21
rm_youtrying to get ducks in a row so we look like we know what we're doing when you guys show off Octavia stuff in Paris :P02:21
sbalukoffHaha!02:22
rm_youI was actually a little bit curious if the WebDAV thing was a big deal02:22
rm_youI normally just use whatever code seems most appropriate (including 420) but now I'm writing for a large community :P02:23
sbalukoffWe should just use code 41802:23
rm_youlol02:23
rm_youI discussed that whole spec at length in my first interview at RS02:23
rm_youapparently none of my interviewers had seen it and i am pretty sure they thought i was nuts02:24
rm_youi guess i didn't end up getting that position... <_<02:24
sbalukoffHeh!02:24
rm_youbut yeah, much prefer 420 to 429... but... >_>02:25
sbalukoffHaha02:25
sbalukoffBut, you don't live in Washington!02:26
rm_youI lived there for 18 years :P02:26
sbalukoff(Or Colorado)02:26
sbalukoffNot now, though.02:26
sbalukoffYou should move back. ;)02:26
rm_youit's still my home state...02:26
rm_youyeah, thinking about it, but stuck here for a few years while my GF finishes her masters02:26
rm_youand i've learned not to plan more than like 6 months in advance >_<02:27
sbalukoffI hear you there, eh.02:29
rm_yousbalukoff: "Also note that some topology changes can take several minutes to enact" holy shit what would take several minutes02:38
rm_youseveral minutes is *pain*02:38
rm_youi really hope there isn't any possible operation that will take more than ~1s02:38
rm_youmaybe ~2s02:38
sbalukoffThat's a worst-case scenario, and that has to do with changing from single to active-standby. If you're using corosync/pacemaker to do this, the participating members will hold an election to determine the cluster master... and this can take a few minutes.02:39
rm_youdear god02:39
sbalukoffAgain, worst-case scenario. For the most part, it's just a second or two.02:39
rm_youk02:39
rm_youlol, every single one of these resources returns hostname/uuid :P02:40
rm_youah ok not 100%, just close02:41
sbalukoffYeah, that's a habit I'm in. Don't know if it'll be used, but it's handy for a sanity check.02:41
rm_youthis is long enough that I started scanning at some point and I just realized I was doing it <_<02:42
sbalukoffHeh!02:43
sbalukoffSorry-- David wanted to see example output for pretty much everything.02:43
rm_you"Get SSL certificate PEM file" this is not something we should allow02:44
rm_youSSL goes in -> nothing comes out02:44
sbalukoffI'm OK with that. Add that comment?02:44
*** vivek-ebay has quit IRC02:45
rm_youerr, ok I guess cert, but not private key02:45
rm_youwhich I see is in there02:45
sbalukoffNo...02:45
rm_youwill comment02:45
sbalukoffWe probably don't need it... ever.02:45
rm_youyeah02:45
sbalukoffThat's one case where "write-only" probably makes sense.02:45
rm_youjust good policy to never give back private SSL data02:45
sbalukoffI'd been debating dropping that.02:45
sbalukoffWell...02:45
sbalukoffHmmm...02:45
sbalukoffIt might be good to return some meta-data on the cert in place.02:45
sbalukoffBut realistically...02:45
rm_youyeah, CERT is ok02:46
rm_youprivate key is not02:46
sbalukoffIf the controller wants to make sure a given cert is the one it's expecting, it's just going to over-write it anyway.02:46
rm_youyep02:46
rm_youlast comment going in:02:50
rm_youDid we officially wrap up discussion of whether the config is generated in the driver or on the amphora? This is the driver-generated config model, but there is something to be said for keeping the driver generic and communicating with a more abstracted language, and having the Amphora API build the config (since it'll be sitting around anyway). That would allow Amphorae of differing types to be flipped around seamlessly in the02:51
rm_youbackground if that were necessary/warranted. I think German was advocating that model previously as well?02:51
rm_youthe -1 is 99% for the PK thing tho :)02:52
rm_youpretty thorough for a first draft02:52
rm_youanywho, brb02:52
*** fnaval has quit IRC02:53
*** fnaval has joined #openstack-lbaas02:53
sbalukoffYes, we did draw that discussion to a close.02:54
sbalukoffThe reason behind rendering the haproxy config in the controller is:  1) Drivers should be specific to the type of amphora. If you want to write an haproxy-based amphora, that means you're going to be writing a new driver, too.  2) Centralize intelligence, decentralize workload. 3) If you need to make a minor change to the haproxy configuration template, it's easier to update a few dozen controllers rather than 10,000+ a02:56
sbalukoffmphorae.02:56
*** sbfox has joined #openstack-lbaas03:43
*** fnaval has quit IRC03:43
*** fnaval has joined #openstack-lbaas03:44
*** fnaval has quit IRC03:48
*** fnaval has joined #openstack-lbaas04:18
*** sbfox has quit IRC04:23
*** vivek-ebay has joined #openstack-lbaas04:35
*** vivek-ebay has quit IRC04:55
*** sbfox has joined #openstack-lbaas05:02
rm_yousbalukoff: ah, right. the one that really makes sense there is #3, you should lead with that. the rest are pretty debatable :P05:54
*** fnaval has quit IRC06:10
*** fnaval has joined #openstack-lbaas06:11
*** fnaval has quit IRC06:15
*** sbfox has quit IRC06:31
*** jschwarz has joined #openstack-lbaas06:31
*** sbfox has joined #openstack-lbaas06:59
*** kobis has joined #openstack-lbaas07:44
*** vivek-ebay has joined #openstack-lbaas07:56
*** woodster_ has quit IRC08:00
*** vivek-ebay has quit IRC08:01
*** sbfox has quit IRC08:32
*** markmcclain has joined #openstack-lbaas10:36
*** markmcclain has quit IRC10:53
*** markmcclain has joined #openstack-lbaas10:53
*** jschwarz has quit IRC11:30
*** markmcclain has quit IRC12:00
*** markmcclain has joined #openstack-lbaas13:11
*** markmcclain1 has joined #openstack-lbaas13:12
*** markmcclain1 has quit IRC13:12
*** markmcclain has quit IRC13:16
*** fnaval has joined #openstack-lbaas13:17
*** fnaval has quit IRC13:27
*** woodster_ has joined #openstack-lbaas14:03
*** ptoohill_ has quit IRC14:48
*** markmcclain has joined #openstack-lbaas14:50
*** fnaval has joined #openstack-lbaas15:00
ptoohillMornin'15:18
*** ptoohill_ has joined #openstack-lbaas15:21
*** ajmiller has joined #openstack-lbaas15:40
*** jorgem has joined #openstack-lbaas15:57
*** mlavalle has joined #openstack-lbaas16:00
bloganmornin16:00
*** amotoki has joined #openstack-lbaas16:05
TrevorVmernin! (late-ish)16:17
sballemorning16:30
*** vivek-ebay has joined #openstack-lbaas16:38
*** vivek-ebay has quit IRC16:44
*** vivek-ebay has joined #openstack-lbaas16:45
*** markmcclain has quit IRC16:45
*** vivek-ebay has quit IRC16:47
*** intr1nsic has quit IRC16:48
*** vivek-ebay has joined #openstack-lbaas16:48
*** intr1nsic has joined #openstack-lbaas16:48
*** sbfox has joined #openstack-lbaas16:49
*** sbfox has quit IRC16:50
*** intr1nsic has quit IRC16:50
*** sbfox has joined #openstack-lbaas16:51
*** sbfox has quit IRC16:52
*** sbfox has joined #openstack-lbaas16:52
*** mwang2 has joined #openstack-lbaas16:54
*** sbfox has quit IRC16:55
*** intr1nsic has joined #openstack-lbaas16:56
*** sbfox1 has joined #openstack-lbaas16:58
*** kobis has quit IRC17:13
*** amotoki has quit IRC17:33
*** vivek-ebay has quit IRC17:36
*** vivek-ebay has joined #openstack-lbaas17:37
*** markmcclain has joined #openstack-lbaas17:51
*** markmcclain has quit IRC17:55
*** sbfox1 has quit IRC17:57
*** vivek-ebay has quit IRC18:25
*** vivek-ebay has joined #openstack-lbaas18:26
*** sbfox has joined #openstack-lbaas18:27
*** sbfox has quit IRC18:49
*** sbfox has joined #openstack-lbaas19:00
*** mestery has quit IRC19:07
*** mestery has joined #openstack-lbaas19:09
*** codekobe has joined #openstack-lbaas19:15
bloganping sbalukoff19:20
*** ggirard27 has joined #openstack-lbaas19:32
sbalukoffblogan: Pong19:32
bloganis the amphora api going to be synchronous?19:36
codekobei was wondering that19:36
codekobethis is steven from emc19:37
bloganhi steven19:37
intr1nsicHey steven19:37
sbalukoffblogan: I was hoping so. Do you anticipate a reason it wouldn't be?19:38
sbalukoffHowdy, howdy!19:38
blogansbalukoff: you did mention the possibility of topology changes taking several minutes worst case scenario19:39
codekobei was assuming there will be a need for some kind of queue, and worker type nodes19:39
bloganso that could possibly be asynchronous19:39
codekobeat least from a users perspective19:39
codekobewhen i make a change to an LB19:40
blogancodekobe there will be a queue19:40
codekobei would imagine a "building" state19:40
blogancodekobe there is the User/Operator API that will definitely be async19:40
codekobeas changes are propogated19:40
ptoohillThere will be a queue if it remains sync?19:40
codekobeah gotcha, you are referring to an api that lives on the amphora19:41
bloganbut then there is an api that each amphora spun up will have for communication to start the actual laod balancing software19:41
codekobeso is this mainly to send changes to the amphora's configuration?19:41
codekobeIE: add a new webhead in the rotation19:42
sbalukoffblogan: I did. You're right. But in that case, I would prefer to set the amphora in to the 'TOPOLOGY-CHANGE' status / state and return 503's for additional amphora commands rather than deal with queue on the amphora itself.19:42
sbalukoffcodekobe: Those kinds of commands should be doable synchronously.19:43
codekobesounds reasonable19:44
codekobethe amphora communicates its status back to the controller?19:44
*** ggirard27 has quit IRC19:44
codekobewhen it is done performing its TOPOLOGY-CHANGE19:44
blogansbalukoff: so then that would be an async element to the api, and you'd be doing the same thing as the user api does when a load balancer is in an immutable state19:45
sbalukoffcodekobe: That's not yet defined. The controller could probe the amphora until it's no longer in that state. But there will need to be a small-ish API that the controller / driver runs on the back-side that amphorae talk to.19:45
bloganexcept i dont agree with the 503 code, but that's minor19:45
sbalukoffblogan: Yes.19:45
sbalukoffblogan: Which code would you prefer?19:46
sbalukoff(I'm not too picky about codes, so long as they're well defined somewhere.)19:46
blogansbalukoff: 42219:46
rm_worklol19:46
sbalukoffExcept it's not a client-side problem. ;)19:46
ptoohill:P19:46
sbalukoffIt should be a 5xx code of some kind.19:46
sbalukoffAlso, rm_work and I talked about this: Isn't 422 a WebDAV error code?19:47
rm_workhttps://www.youtube.com/watch?v=xKKP_cZuk5419:47
blogani think it is a client side problem, a client is trying to make a change to an entity that it can't19:47
sbalukoffblogan: But the same request repeated 5 seconds later will probably work.19:47
sbalukoffThe server isn't in a state to accept the command.19:48
sbalukoffThere's nothing wrong with the command itself.19:48
codekobesbalukoff: just thinking out loud, if you polled the amphora for its state, that means it will be preserving its state somewhere19:48
sbalukoffcodekobe: Yes.19:48
codekobeso it would preserver that in memory or in the db?19:48
codekobejust getting a feel for the model here19:49
blogansbalukoff: i would say the command itself is not allowed, but yeah it sounds like a gray area19:49
sbalukoffcodekobe: the amphorae won't have access "to the DB" as it were. So in memory, or in a file in the filesystem... doesn't really matter.19:49
sbalukoffThe amphorae don't have to keep much state. ;)19:49
rm_workI think in this case 503 is right19:50
rm_workmy debate was about 422 vs 40919:50
sbalukoffblogan: I prefer 4xx errors to mean "Client, you're being stupid. Fix your request if you want to try again."  And 5xx errors to mean, "I'm afraid I can't do that (right now), Dave"19:50
rm_work:P19:50
sbalukoffHaha!19:51
bloganyou might be convincing me...19:51
bloganbut i dont want you to19:51
sbalukoffHaha19:51
sbalukoffI'm a jerk that way.19:51
codekobea 409 wouldnt make sense? for a conflict19:51
rm_workjust listen to some old-school beach boys and chill19:51
rm_workcodekobe: it's not a conflict19:52
sbalukoffHeh!19:52
codekobesince the resource is in the TOPOLOGY-CHANGE state19:52
rm_workthat's not a conflict19:52
bloganwell depends on yoru definition of a conflict19:52
bloganthe state conflicts with what the user wants to do19:52
rm_work:P ok that's technically correct19:52
rm_workbut not really sensical19:52
sbalukoffSo, the 409 versus 422 thing is actually coming from the fact that the first iteration of one of these APIs I wrote I powered with lighttpd because it's... well, friggen light-weight. And lighttpd didn't understand 422 errors.19:52
codekobei think 503 makes more sense19:52
blogani know, but its an interpretation issue19:52
codekobei think 409 is telling the user there is an action to take to fix the conflict19:53
bloganwsme doesn't allow 422 either?19:53
bloganno ?19:53
bloganthat was a statement19:53
ptoohillwha??!?19:53
codekobewhen in this case, the service will return after a delay, which is more like a 50319:53
sbalukoffHonestly, if 422 is a more appropriate code (in rm_work's and my debate), and if the webserver understands it, I'm OK with it.19:53
rm_work503 makes sense for this, 422 makes sense when the user passes a syntactically correct request but one of the elements inside it is not correct somehow upon further inspection19:53
rm_workIE, certificate issues19:53
sbalukoffblogan: Does wsme allow 422?19:55
sbalukoff(I'm confused by your statements above)19:55
blogansbalukoff: no but we can patch it in19:55
sbalukoff...19:55
blogani know my ? messed it up19:55
sbalukoffreally?19:55
sbalukoffWhy not just use 409 and be done with it?19:55
blogani did19:55
bloganfor now19:55
sbalukoff:)19:55
sbalukoffOk.19:55
blogani didnt like it19:55
sbalukoffSo version 0.2 of this API can use 422.19:55
sbalukoffOnce wsme is patched.19:55
bloganwell it may use 50319:55
rm_workgonna link https://www.youtube.com/watch?v=xKKP_cZuk54 again in case anyone missed it19:56
sbalukoff(in upstream... I'd really rather avoid using monkey-patching)19:56
bloganbut i still have qualms about 50319:56
sbalukoffHaha19:56
bloganyou well use monkey patching and like it19:56
sbalukoffblogan: I was actually talking about rm_work's and my debate.19:56
sbalukoffIn the case of the temporary unavailability of running certain commands... 503 makes sense.19:56
rm_workyeah the 503 and 422/409 thing aren't really related19:57
sbalukoff(Commands which are otherwise correct.)19:57
bloganthe case Im speaking about si when a load balalncer in the user api is in a PENDING_UPDATE state, i'm not allowing it to modified until its ACTIVE19:57
sbalukoffrm_work: Yes, sorry I wasn't being clear about that.19:57
codekobe422 is not in the w3 list of http codes.. but then again neither is 418 I'M A LITTLE TEAPOT19:57
rm_workT_T19:58
sbalukoffblogan: I'm still thinking 503 is right in that case, too.19:58
rm_workyeah though both technically have w3 RFCs...19:58
blogansbalukoff: it would be the same case, but I'm going to look and see what nova does19:58
sbalukoffblogan: Sounds good.19:58
sbalukoffOk, I gotta run off for a bit.19:58
bloganokay19:58
sbalukoffCatch ya'll in an hour or so.19:59
sbalukoffy'all.19:59
*** sbfox has quit IRC20:04
*** sbfox has joined #openstack-lbaas20:06
*** markmcclain has joined #openstack-lbaas20:09
*** markmcclain1 has joined #openstack-lbaas20:10
*** markmcclain has quit IRC20:12
*** jorgem1 has joined #openstack-lbaas20:15
*** markmcclain1 has quit IRC20:15
*** jorgem1 has quit IRC20:16
*** jorgem has quit IRC20:18
*** vivek-ebay has quit IRC20:26
*** vivek-ebay has joined #openstack-lbaas20:27
*** xgerman has joined #openstack-lbaas20:30
*** vivek-ebay has quit IRC20:31
*** markmcclain1 has joined #openstack-lbaas20:37
*** markmcclain1 has quit IRC20:37
*** markmcclain1 has joined #openstack-lbaas20:39
*** vivek-ebay has joined #openstack-lbaas20:51
dougwighttp://abcnews.go.com/International/divers-unearth-piece-roman-empire-2000-year-shipwreck/story?id=2650564120:55
ptoohillAwesome!21:01
*** markmcclain1 has quit IRC21:27
rm_work:P21:41
ptoohillmany amphorae at ze bottom of ze ocean21:57
blogansbalukoff: nova uses 409 for the same case22:17
rm_workhttps://www.youtube.com/watch?v=frtVqCZub-022:18
* rm_work needs an autoresponder for that22:18
*** ptoohill_ has quit IRC22:21
sbalukoffblogan: Okeedokee.22:22
*** vivek-ebay has quit IRC22:33
*** xgerman has quit IRC22:43
*** vivek-ebay has joined #openstack-lbaas22:43
*** xgerman has joined #openstack-lbaas22:43
*** vivek-ebay has quit IRC23:14
*** mlavalle has quit IRC23:15
*** vivek-ebay has joined #openstack-lbaas23:20
*** sbfox has quit IRC23:22
*** vivek-ebay has quit IRC23:31
*** vivek-ebay has joined #openstack-lbaas23:33
*** ajmiller has quit IRC23:42

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!