Friday, 2016-01-22

*** ducttape_ has quit IRC00:01
*** kevinbenton has quit IRC00:46
*** kobis has quit IRC00:47
*** armax has quit IRC00:48
*** kevinbenton has joined #openstack-lbaas00:50
*** fnaval has quit IRC00:56
*** kobis has joined #openstack-lbaas00:57
*** jidar has quit IRC01:00
*** SumitNaiksatam has quit IRC01:03
*** jidar has joined #openstack-lbaas01:04
*** doug-fish has quit IRC01:04
*** doug-fish has joined #openstack-lbaas01:05
*** doug-fish has quit IRC01:06
*** doug-fish has joined #openstack-lbaas01:06
*** kobis has quit IRC01:13
*** _cjones_ has quit IRC01:29
*** kobis has joined #openstack-lbaas01:47
*** bochi-michael has joined #openstack-lbaas01:59
bana_kthis change https://github.com/openstack/octavia/blob/master/octavia/db/migration/alembic_migrations/versions/43287cd10fef_make_pool_lb_algorithm_larger.py is giving trouble as algorithm table still has a length of 3002:00
bana_kso if I try to update the algorithm table's name it throws me error saying its a foreign key02:02
*** minwang2 has quit IRC02:03
bana_kso was thinking of dropping the FK constraint n then doing those column updates and then adding back the FK02:04
*** johnsom_ has quit IRC02:05
*** kobis has quit IRC02:15
*** kobis has joined #openstack-lbaas02:16
*** yamamoto_ has joined #openstack-lbaas02:18
*** doug-fish has quit IRC02:20
*** doug-fish has joined #openstack-lbaas02:21
*** doug-fish has quit IRC02:21
*** doug-fish has joined #openstack-lbaas02:21
*** kobis has quit IRC02:22
*** Tiancheng has joined #openstack-lbaas02:30
*** jwarendt has quit IRC02:36
*** yamamoto_ has quit IRC02:38
*** yamamoto_ has joined #openstack-lbaas02:39
*** bana_k has quit IRC02:44
*** woodster_ has quit IRC02:46
*** doug-fish has quit IRC02:50
*** yamamoto_ has quit IRC02:55
*** yuanying has quit IRC03:20
*** yuanying has joined #openstack-lbaas03:21
*** links has joined #openstack-lbaas03:26
*** links has quit IRC03:40
*** yamamoto_ has joined #openstack-lbaas03:47
*** links has joined #openstack-lbaas03:48
*** doug-fish has joined #openstack-lbaas03:50
*** yuanying has quit IRC03:55
*** yuanying has joined #openstack-lbaas03:57
*** doug-fish has quit IRC04:00
*** links has quit IRC04:04
*** links has joined #openstack-lbaas04:16
*** links has quit IRC04:27
*** links has joined #openstack-lbaas04:28
*** links has quit IRC04:50
*** links has joined #openstack-lbaas04:57
*** links has quit IRC05:13
*** kobis has joined #openstack-lbaas05:13
*** links has joined #openstack-lbaas05:21
*** bochi-michael has quit IRC05:27
*** bochi-michael has joined #openstack-lbaas05:27
*** doug-fish has joined #openstack-lbaas05:32
*** doug-fish has quit IRC05:32
*** links has quit IRC05:36
*** links has joined #openstack-lbaas05:37
*** armax has joined #openstack-lbaas05:37
*** kobis has quit IRC05:42
openstackgerritGerard Braad proposed openstack/octavia: Fix typo in migration README.rst  https://review.openstack.org/27114605:50
*** links has quit IRC05:59
*** links has joined #openstack-lbaas06:01
*** Tiancheng has quit IRC06:06
*** Tiancheng has joined #openstack-lbaas06:11
*** bana_k has joined #openstack-lbaas06:13
*** numans has joined #openstack-lbaas06:19
*** links has quit IRC06:22
*** links has joined #openstack-lbaas06:23
*** _cjones_ has joined #openstack-lbaas06:32
*** _cjones_ has quit IRC06:34
*** _cjones_ has joined #openstack-lbaas06:35
openstackgerritGerard Braad proposed openstack/octavia: Fix typo in migration README.rst  https://review.openstack.org/27114606:45
*** links has quit IRC06:46
*** links has joined #openstack-lbaas06:50
*** links has quit IRC07:09
*** links has joined #openstack-lbaas07:09
*** _cjones_ has quit IRC07:17
*** armax has quit IRC07:18
*** _cjones_ has joined #openstack-lbaas07:18
*** armax has joined #openstack-lbaas07:24
*** rcernin has joined #openstack-lbaas07:31
*** links has quit IRC07:31
*** armax has quit IRC07:43
*** idonotknow has joined #openstack-lbaas07:48
*** links has joined #openstack-lbaas07:48
idonotknowHi,everyone.Does anyone know why my loadbalancer is always on PENDING_UPDATE when I restart a vm manually. lbaasv207:49
*** links has quit IRC07:54
*** Tiancheng has quit IRC08:08
*** Tiancheng_ has joined #openstack-lbaas08:08
*** _cjones_ has quit IRC08:15
openstackgerritBanashankar k proposed openstack/octavia: Need to change the length of name in the algorithm since we are updating the lenght of the lb_algorithm in pool table we need to change the name column in algorithm table as its a FK.  https://review.openstack.org/27117808:19
*** idonotknow has quit IRC08:19
openstackgerritBanashankar k proposed openstack/octavia: Need to change the length of name in the algorithm since we are updating the lenght of the lb_algorithm in pool table we need to change the name column in algorithm table as its a FK.  https://review.openstack.org/27117808:21
*** links has joined #openstack-lbaas08:22
rm_workbana_k: need to fix your commit message title :P08:22
*** numans has quit IRC08:32
*** jwarendt has joined #openstack-lbaas08:32
*** links has quit IRC08:35
*** jwarendt has quit IRC08:37
sbalukoffbana_k: Good catch on that, eh. (D'oh! I should have caught that in my fix last week. :P )08:41
rm_workweird that nothing exploded in my testing08:45
rm_workbecause i definitely tested your patch along with a few others in my devstack and it never broke...08:45
rm_workcan you edit an existing migration like that? because ... i guess we need to? but it seems odd08:47
*** idonotknow has joined #openstack-lbaas09:01
idonotknowHi,everyone.Does anyone know why my loadbalancer is always on PENDING_UPDATE when I restart a vm manually. lbaasv2 I found that it will change to ACTIVE when time expires.Anyone know why?09:02
*** numans has joined #openstack-lbaas09:16
*** idonotknow has quit IRC09:46
*** bradjones_ has quit IRC10:28
*** bradjones_ has joined #openstack-lbaas10:29
*** bradjones_ has quit IRC10:29
*** bradjones_ has joined #openstack-lbaas10:29
*** bradjones_ has quit IRC10:40
*** bradjones_ has joined #openstack-lbaas10:41
*** bradjones_ has quit IRC10:41
*** bradjones_ has joined #openstack-lbaas10:41
*** bradjones_ has quit IRC10:45
*** bradjones_ has joined #openstack-lbaas10:47
*** bradjones_ has quit IRC10:47
*** bradjones_ has joined #openstack-lbaas10:47
*** Tiancheng_ has quit IRC11:19
*** yamamoto_ has quit IRC11:25
*** fnaval has joined #openstack-lbaas11:34
*** openstackgerrit has quit IRC11:47
*** openstackgerrit has joined #openstack-lbaas11:48
*** bradjones_ has quit IRC11:52
*** numans has quit IRC11:53
*** bradjones_ has joined #openstack-lbaas11:53
*** bradjones_ has quit IRC11:53
*** bradjones_ has joined #openstack-lbaas11:53
*** bradjones has quit IRC12:01
*** bradjones_ is now known as bradjones12:01
*** yamamoto has joined #openstack-lbaas12:09
*** yamamoto has quit IRC12:13
*** yamamoto has joined #openstack-lbaas12:15
*** rtheis has joined #openstack-lbaas12:24
*** yamamoto has quit IRC12:32
*** yamamoto has joined #openstack-lbaas12:32
*** yamamoto has quit IRC12:33
*** openstackgerrit has quit IRC12:33
*** yamamoto has joined #openstack-lbaas12:33
*** openstackgerrit has joined #openstack-lbaas12:34
*** yamamoto has quit IRC12:46
*** yamamoto has joined #openstack-lbaas12:46
*** numans has joined #openstack-lbaas12:49
*** yamamoto has quit IRC12:51
*** yamamoto has joined #openstack-lbaas13:14
*** ducttape_ has joined #openstack-lbaas13:30
*** bochi-michael has quit IRC13:34
*** diogogmt has quit IRC13:35
*** diogogmt has joined #openstack-lbaas13:36
*** ducttape_ has quit IRC13:43
*** diogogmt has quit IRC13:47
*** doug-fish has joined #openstack-lbaas13:55
*** sbalukoff1 has joined #openstack-lbaas14:00
*** sbalukoff has quit IRC14:04
*** neelashah has joined #openstack-lbaas14:10
*** pcaruana has joined #openstack-lbaas14:46
*** yamamoto has quit IRC14:52
*** ducttape_ has joined #openstack-lbaas15:09
*** diogogmt has joined #openstack-lbaas15:12
openstackgerritJialiang proposed openstack/neutron-lbaas: Screen service q-lbaasv2 is not needed w/ octavia  https://review.openstack.org/27136515:13
*** numans has quit IRC15:28
*** woodster_ has joined #openstack-lbaas15:44
*** kobis has joined #openstack-lbaas15:51
*** kobis has quit IRC15:54
*** TrevorV has joined #openstack-lbaas15:57
*** TrevorV has quit IRC15:59
*** TrevorV has joined #openstack-lbaas16:00
*** rtheis has quit IRC16:05
*** patient-0-bl0gan is now known as blogan16:05
*** rtheis has joined #openstack-lbaas16:05
bloganping sbalukoff116:05
*** minwang2 has joined #openstack-lbaas16:06
*** rcernin has quit IRC16:15
*** armax has joined #openstack-lbaas16:33
*** TrevorV has quit IRC16:43
*** TrevorV has joined #openstack-lbaas16:44
xgermanmorning16:45
bloganmorning16:45
*** TrevorV has quit IRC16:46
*** kobis has joined #openstack-lbaas16:46
*** TrevorV has joined #openstack-lbaas16:47
*** TrevorV has quit IRC16:49
*** kobis has quit IRC16:50
*** TrevorV has joined #openstack-lbaas16:50
*** rcernin has joined #openstack-lbaas16:54
*** minwang2 has quit IRC16:55
*** TrevorV has quit IRC16:56
sbalukoff1Morning!17:01
sbalukoff1What's up blogan?17:01
*** sbalukoff1 is now known as sbalukoff17:01
rm_worksbalukoff: you can have him in a moment, we're huddling :P17:03
sbalukoffHaha!17:03
sbalukoffI'm just responding since he pinged me about an hour ago.17:03
*** crc32 has joined #openstack-lbaas17:07
*** _cjones_ has joined #openstack-lbaas17:13
*** _cjones_ has quit IRC17:14
*** _cjones_ has joined #openstack-lbaas17:14
a2hillWhat's the triple0 channel? Anyone know?17:14
sbalukoffI have no idea, but I want to see that patch merged ASAP as well. XD17:16
sbalukoffBut hey! At least I'm not dead in the water right now.17:17
a2hillindeed17:17
a2hill:P17:17
a2hillThink i pinged in the right channel, well see where this goes.17:21
*** johnsom_ has joined #openstack-lbaas17:26
*** minwang2 has joined #openstack-lbaas17:30
*** ducttape_ has quit IRC17:31
*** ducttape_ has joined #openstack-lbaas17:32
*** ducttape_ has quit IRC17:33
*** ducttape_ has joined #openstack-lbaas17:34
*** ducttape_ has quit IRC17:34
*** ducttape_ has joined #openstack-lbaas17:35
*** jwarendt has joined #openstack-lbaas17:37
*** mdavidson has quit IRC17:50
*** crc32 has quit IRC17:59
*** armax has quit IRC18:25
*** fnaval has quit IRC18:26
*** bana_k has quit IRC18:28
*** TrevorV has joined #openstack-lbaas18:32
*** kobis has joined #openstack-lbaas18:35
kobisblogan: while we discussed this, I think that you mentioned that you turn on other X-Forwarded-* headers18:37
kobisyet I can only see option forwardfor in the octavia templates18:38
kobisdo I miss anything?18:38
openstackgerritGerman Eichberger proposed openstack/octavia: Adds a parameter to specify endpoint type  https://review.openstack.org/27147618:44
*** harlowja has quit IRC18:46
*** harlowja has joined #openstack-lbaas18:46
*** bana_k has joined #openstack-lbaas18:47
*** rcernin has quit IRC19:12
a2hillkobis: At the moment there is only the XFF, things like XFP will be additional and is where having a 'generic' way to add these came up, so when the time does come we have a solidified way and not have to go t hrough this all again.19:49
*** TrevorV has quit IRC19:55
rm_workyeah, X-Forwarded-Port and X-Forwarded-Proto are used in our current infra20:00
rm_workin addition to X-Forwarded-For20:00
rm_workthere's also apparently X-Forwarded-Host? but we don't use that20:00
rm_worklooks like AWS provides just the first 320:00
rm_workhttps://tools.ietf.org/html/rfc7239#section-520:01
rm_workBy, For, Host, Proto20:01
rm_workin that RFC20:01
rm_workI don't know what others :/20:01
a2hillI'd be ok with atleast support that set of headers even if its less than 'generic' assuming they can all be toggled. We dont have to solve for everything, I just wanted to solve for the couple I knew for sure we were going to add20:07
a2hillsupporting*20:07
a2hillIt was more so the idea of being able to add those later without hassel, so if we add them all now, again, in a less 'generic' fashion im totally ok with it.20:08
a2hillcant type today :(20:09
*** blogan_ has joined #openstack-lbaas20:09
blogansbalukoff: ping again20:10
sbalukoffWhat's up, eh?20:11
bloganhey was giong to rehash some things we talked about with the shared pool stuff, stuff i believe you've already told me but not sure if i remember correctly20:11
a2hillIm interested in anything about shared pools currently, can I listen in?20:12
a2hill:)20:12
sbalukoffblogan: Fire away!20:12
sbalukoffa2hill: Please!20:12
blogansbalukoff: basically i still don't like the pool being directly tied to the LB in the API, i dont care if we do it in the db, but is there a reason we couldn't just have the user create a pool on a listener only? dont worry about L7 right now, we can get to that20:13
sbalukoff(I'm actually working on that stuff now--  was able to reproduce the bug that a2hill found; Have a fix for that, but discovered another bug in the process. Yay!)20:13
a2hillawesome! :)20:13
bloganwhack a bug mole20:13
johnsom_Yeah, I'm planning to hit that review on the train back today20:13
a2hillIf we do what blogan is suggesting this is even less user impactful right?20:14
sbalukoffblogan:  Use case:  I want to create a L7 policy that routes to another pool. In order to do this, that pool must exist. But that pool is not the default_pool of any listener.20:14
sbalukoffTherefore, I need to be able to create that pool outside of the context of a listener.20:14
blogansbalukoff: but you can in the context of an L7 policy no?20:14
*** pcaruana has quit IRC20:14
sbalukoffSince all the legacy URLs assume that in the context of the listener, it's the default pool.20:14
a2hillThat makes sense also20:14
sbalukoffA pool should not be the daughter of an L7policy.20:15
bloganso how do you point the L7 policy to the pool?20:15
sbalukoffblogan: Can you give me a good technical reason we should only access pools in the context of a listener?20:15
openstackgerritTrevor Vardeman proposed openstack/octavia: Amphora create will add a 'fake' heartbeat on creation.  https://review.openstack.org/27151220:15
*** TrevorV has joined #openstack-lbaas20:16
sbalukoffWorkflow is:  create listener (with or without default pool) -> create pool -> create l7policy that references the pool (l7policies exist in the context of a listener)20:16
blogansbalukoff: no technical reason, just consistency with the API and look and feel20:17
a2hillYea, that's the only thing I could think of too20:17
sbalukoffblogan: The legacy API should still work as before.20:18
bloganso why couldnt the workflow be: create listener (with or without default pool) -> create l7policy -> create pool that associates with a particular l7 policy20:18
sbalukoffblogan: It could. But there's no reason for this.  That same pool might be a default pool elsewhere, or get referenced by several listeners.20:19
sbalukoffKeeping those old URLs is actually a crutch.20:19
sbalukoffYou need to get over the fact that a pool is a peer with a listener, not a child. :)20:19
bloganyeah it could and it would then at that point be easy to associate a listener with that pool now, just wiht the uuid20:19
blogani cant!20:19
sbalukoffThe old URLs also make things more complicated.20:19
bloganwhat do you mean old urls?20:20
sbalukoffIt's actually simpler the way I'm recommending!20:20
a2hillhard mode activated20:20
blogansimpler to implement or simpler for an api user to understand?20:20
sbalukoffOld style-- introducing what feels like a parent -> child relationship even though that's not really what it is.20:20
sbalukoffEr...20:20
sbalukoffI would actually say that faking that relationship can lead to confusion.20:21
bloganwell actually we had them all originally able to be created independently, but the whole driver being determined by the LB made that complicated20:21
sbalukoffSuppose I have a pool that's a default_pool for listener1 and referenced by an l7policy in listener2.  If I change it in the context of listener1, this will also change it in the context of that l7policy in listener2. This is confusing to the end-user.20:21
sbalukoffBetter not fake it.20:22
sbalukoffBetter change the pool in the context of the loadbalancer (where it really lives), and it's clearer this will affect all such references.20:22
bloganhow would they change it in the context of either one of those? they'd be changing it by updating /pools/{pool_id}20:22
sbalukoff...20:22
sbalukoffOk, now you're confusing me.20:22
bloganlol20:22
blogani'm probably confused20:23
blogani'm going with neutron lbaas btw20:23
blogannot octavia20:23
sbalukoffI thought you were saying you wanted to reference things using a URL that looks like:  /loadbalancers/UUID/listeners/UUID/l7policies/UUID/pools/UUID20:23
sbalukoffInstead of just /loadbalancers/UUID/pools/UUID20:23
*** TrevorV has quit IRC20:23
bloganoh yeah this would have ramifications to that too20:23
sbalukoffWell... things are already not nested in neutron lbaas.20:23
sbalukoffSo, I'm confused at what you're asking, now.20:24
bloganyes but a user still will specify loadbalancer_id in neutron lbaas no?20:24
bloganon a pool create20:24
bloganthey have that option20:24
sbalukoffThey can specify either loadbalancer_id or listener_id.20:24
*** crc32 has joined #openstack-lbaas20:24
sbalukoffThe API "does the right thing" and looks up the loadbalancer_id if the listener_id is specified.20:25
sbalukoffSo the API knows that when the user says "create this pool on this listener" what they really mean is "create this pool on this loadbalancer and associate it with this listener"20:25
*** TrevorV has joined #openstack-lbaas20:26
*** johnsom_ has quit IRC20:26
bloganit really is i just can't put listeners and pools as peers20:26
sbalukoffWhy?20:26
sbalukoffSeriously, I feel like we're only having this discussion because it feels icky to you.20:27
bloganbc a pool needs a listener to be useful (even through L7)20:27
sbalukoffRight. And a listener in 99.99% of the time is useless without a pool.20:27
bloganso do you agree that load balancer is the parent to a listener?20:28
sbalukoffThe way we have things modeled right now, yes.20:28
bloganwell in whatever way you see it20:29
sbalukoffEventually-- when we do true IPv6 support, a listener may end up being another entity that gets shared across loadbalancers, and then it'll exist independently of the loadbalancer.  (And the pool will have to be altered this way in parallel.)20:29
sbalukoffBut that's a can of worms we don't need to open right now...20:29
sbalukoffbecause nobody is asking for it vere loudly yet.20:30
rm_workoh man, just reading over this20:30
rm_workis that really what our endpoints look like?20:30
blogani agree thats going to be the best way to solve for multiple ips20:30
rm_work"/loadbalancers/UUID/listeners/UUID/l7policies/UUID/pools/UUID"20:30
rm_workcause, gross20:30
a2hillno20:30
rm_worki didn't think it was20:30
a2hill:P20:30
bloganthat one url i agree doesn't seem right20:31
rm_workI thought /loadbalancers/UUID/pools/UUID would be what we'd use20:31
sbalukoffblogan: yep! But again, not a feature high in demand right now.20:31
blogandamnit rm_work20:31
rm_worklol20:31
a2hillPlaying with the API the bit that I have it doesnt feel icky honestly. The logic makes sense, though, because of the additional features(l7) it feels like it would make things a little more difficult, but im on the side of the fence that if its documented properly and not overly convoluted it seems like the right way20:31
sbalukoffrm_work: That's what we will use on Octavia.20:31
sbalukoffOnce my shared pools patch lands.20:31
sbalukoff(Though, again, the old URLs will also work, even though they're deprecated.)20:31
rm_workwell20:32
rm_workcan a pool be shared ACROSS LBs too/20:32
rm_work?20:32
bloganno20:32
blogannot right now20:32
rm_workhmm20:32
bloganthats what we just got done talking about, its a big pain in the ass we're nto ready to unleash20:32
sbalukoffRight.20:32
rm_worksorry to cause a rehash20:33
sbalukoffIt'll be a more difficult transition that this shared pools patch is because it'll affect both pools and listeners hierarchies at the same time.20:33
sbalukoffs/that this/than this/20:33
rm_workwell20:33
rm_workif a LB can have multiple listeners (it can) and each listener can have a different pool (they can) then I think actually blogan makes sense here20:34
rm_work"/loadbalancers/UUID/pools/UUID" doesn't seem sensical for that20:34
rm_workbecause that isn't where the association truly is20:34
sbalukoffrm_work: The whole point of my patch is that listeners can share pools.20:34
rm_workthey CAN20:34
rm_workbut they won't always20:34
sbalukoffAnd yes, dammit, it is where the association is truly.20:35
bloganbtw i'm not a strongly against it, its just one of those pesky things that perhaps I need to talk with someboday to get through to acceptance, or maybe its something thats valid20:36
rm_workhttps://gist.github.com/rm-you/d3c53de66a85e725d87820:37
rm_workthe first is what I see20:37
rm_workthe second is what you're saying? I think?20:37
rm_workwhere they are just tagged with what listener they are used by?20:37
rm_workI'm not even 100% sure how that'd work20:37
bloganyou're confusing20:37
rm_workI guess they'd have a list of listeners?20:38
bloganlisteners and pools would be on the same level20:38
sbalukoff...20:38
sbalukoffNo.20:38
sbalukoffWell, yes, but not the way you think.20:38
blogan/loadbalancers/{lb_id}/listeners20:38
rm_workyes20:38
blogan/loadbalancers/{lb_id}/pools20:38
rm_workbut how do you show which listener a pool is associated with20:38
rm_worki guess no back-linking?20:38
sbalukoffA listener has a list of pools. And a pool has a list of listeners-- but that's not "in the model" as it were-- that's only for convenience when you're writing code that has to iterate through them.20:38
sbalukofflisteners have a default pool.20:39
rm_workyeah sorry didn't mean to *leave out* listeners there20:39
sbalukoffBut otherwise, listeners and pools can have a relationship through an l7policy.20:39
rm_workupdated gist20:39
*** crc32 has quit IRC20:39
rm_workif we don't care about back-refs explicitly, maybe the second way is cleaner20:40
rm_workerr sorry20:41
sbalukoffback-refs? As in, SQLAlchemy back-refs?20:41
rm_workif we *do provide* back-refs explicitly20:41
rm_workthe concept20:41
rm_worklike, the pool object has refs to listeners using it20:41
sbalukoffRight...20:41
rm_workin its return20:41
bloganbackrefs were through the url basically, but obviously the url can't show many20:41
rm_workyeah20:41
sbalukoffIf you look at the code I've actually written on this (especially the L7 schema code) you can see how I build that list.20:42
rm_workk, i'll go review that now20:42
*** crc32 has joined #openstack-lbaas20:43
blogansbalukoff: i think rm_work is saying he woudl like backrefs from pools to listeners to be there, which i dont think they are in octavia, which really isn't a big deal right now20:43
sbalukoffI imagine the shared pools thing seems like a lot of work for little gain...  unless you're thinking about how this stuff will have to work when l7policies are introduced.20:43
bloganmeh i don't think its for little gain, we all know we need it20:43
sbalukoffblogan: The L7policy stuff adds them to the model. We could make the API also list them if you want.20:43
rm_workok so looking at the model, i still don't really understand20:44
blogani mean we could just make the user recreate the same pool over and over20:44
bloganbut thats a bad experience20:44
sbalukoffVery bad..20:44
rm_workthe model for the pool has a direct link to an LB, but your property for the listener_id says it has no such relationship?!20:44
sbalukoffEspecially when you consider that the way l7rules work, there is no 'or' statement.20:44
rm_workI thought it was explicitly a pool->listener relationship, and the pool->LB relationship was only implied through the listener20:44
sbalukoffSo in order to fake it you have to create multiple l7policies, each of which reference a pool, every time you'd otherwise use an 'or'20:45
rm_workhttps://review.openstack.org/#/c/218560/17/neutron_lbaas/db/loadbalancer/models.py line 21120:45
rm_workeither this is wonky or I don't actually know how our API works *at all*20:45
bloganthats db not api20:45
rm_workI thought a *listener* had a pool defined20:45
rm_workwhy would the DB representation be significantly different here?20:45
bloganfor the db models it has default_pool20:46
sbalukofflistener has a default_pool_id20:46
rm_workright, listeners have pools20:46
sbalukoffIt's *not* significantly different.20:46
rm_workLBs don't have pools20:46
sbalukoffNo, *A* listener has *one* default_pool.20:46
rm_workbut PoolV2 has a direct link to an LB_ID and none to a Listener20:46
bloganPoolV2 gives it to it through SA's backref20:46
rm_workSA?20:47
a2hillsqlalchemy20:47
rm_workah20:47
rm_workon the listener side?20:47
rm_workso it's just not visible here20:48
rm_workwhy would the listener_id property be a dummy like this then?20:48
rm_workwhy wouldn't it return proper data (list of referencing listeners)20:48
sbalukoffBecause some drivers and whatnot expect to see it. :P20:48
rm_workbut you have it returning None, not ... the actual data20:48
rm_workand have a note saying the relationship doesn't exist / is fake20:49
sbalukoffBecause the 'actual data' is None?20:49
*** fnaval has joined #openstack-lbaas20:49
rm_workwhen it's more direct than the pool->LB relationship?20:49
rm_workerr20:49
sbalukoffpools don't have a 'listener'20:50
rm_worklisteners are parent objects of pools -- a pool should have between 0 and N listener parents, but if it doesn't have at least 1 listener parent, it can't possibly have an LB parent either?20:50
sbalukoffThey have a list of listeners.20:50
sbalukoffAnd this list might be empty20:50
rm_workright, a list20:50
rm_work0 to N20:50
bloganrm_work has the same trouble i am20:50
rm_workbut if the list is empty, there IS NO LB20:51
rm_workbecause the relationship from Pool->LB is traced through listeners20:51
rm_workPool->Listener->LB20:51
sbalukoffNo, it's not!20:51
rm_work???20:51
rm_workhow does a pool have a relationship to an LB without a listener20:51
rm_workblogan am I insane?20:51
sbalukoffYou're looking at the code.20:51
sbalukoffIt's got a reference right there.20:51
bloganrm_work: i'm having the same problem letting go of that hierarchy too20:52
rm_worki'm saying this CODE doesn't make sense20:52
sbalukoffpool.loadbalancer is a thing.20:52
rm_workyes20:52
rm_workbut HOW20:52
rm_workhow can that field possibly be filled20:52
rm_workyou can't just add a pool to an LB20:52
sbalukoffAre you just messing with me right now?20:52
blogancode filled it?20:52
sbalukoffYes, in fact, you can.20:52
rm_work... how20:52
rm_workwhat is the relationship20:52
bloganrm_work: are you asking how its technically done in code or logically how a pool's direct parent is load balancer?20:52
sbalukoffA pool, in this model, is a child of a loadbalancer.20:53
a2hillrm_work: maybe this is things that could be put into the review, or maybe needs some sit down time to understand?20:53
rm_workthe LB object doesn't have pools though20:53
rm_worklisteners have pools20:53
sbalukoffYes, it does!20:53
*** fnaval has quit IRC20:53
rm_work>_>20:53
a2hillwe have a ticket for it, ive been doing that since lastnight really20:53
bloganyes it does20:53
rm_workare you messing with ME right now?20:53
bloganPoolV2 puts it on LoadBlanacer20:53
rm_workwhat does a LB having a pool mean20:53
rm_workit seems meaningless to me20:53
rm_workI could give a VIP a pool too20:53
sbalukoffLet me see if I can make an analogy..20:53
rm_work<_<20:53
sbalukoffIn order to have a functional "driving service" you need to have a complete car that includes both wheels and a motor.20:54
sbalukoffIn some, very rare circumstances, you can get away without a motor. (This would be like a listener without a pool.)20:54
sbalukoffBut most people want to do more than roll downhill..20:54
sbalukoffSo you also need a motor in most cases.20:55
blogancan you ever have a pool without a listener though?20:55
blogannot in ths model!20:55
bloganlogicaly speaking20:55
sbalukoffyes! And yes, my analogy isn't that great.20:55
rm_workif you had a pool and no listener, nothing would ever happen20:55
bloganis a pool useful without a listener?20:55
rm_workand even if you add a pool to a LB20:55
sbalukoffIt will be useless-- much like a listener without a pool is useless.20:55
rm_workwhat does that MEAN20:55
sbalukoffTo be useful you need both.20:55
bloganand a load balancer by itself is useless20:55
sbalukoffYep.20:56
bloganbut we allow that20:56
rm_workif you create an LB, and add a pool to it... then add two listeners... you still have to tell the listeners to use the pool, np?20:56
rm_work*no?20:56
bloganand since all these things are useless without each other, htey should all have just been one big ass object20:56
sbalukoffrm_work. Yep, and you can do so by specifying the 'default_pool_id' in the code I've written.20:56
rm_workerr20:56
sbalukoffSo yes. you can vary the order in which you create things.20:56
a2hillblogan +1 :P20:56
sbalukofflb -> pool -> listener is a valid workflow.20:56
rm_workso I create an LB object. then I create a pool and link it to the LB.... then I create two listeners...20:56
rm_workboth listeners automatically use that pool?20:56
sbalukoffblogan: -120:57
a2hill><20:57
bloganlol20:57
sbalukoffblogan: Are you trying to go back to the bad ol' days of LBaaSv1?20:57
sbalukoff(Was that actually a joke?)20:57
rm_worksbalukoff: can you answer my more clearly defined question? :P20:57
bloganha no i just think this would be easier with only being able to create a load balancer with the full tree20:58
sbalukoffrm_work: If you create a listener and specify the default-pool-id of an already existent pool, then yes, that listener will use that pool as its default pool.20:58
rm_worknonono20:58
rm_workI create a *loadbalancer*20:58
a2hillrm_work: no it wont20:58
rm_workset a pool on it20:58
a2hillYou have to associate20:58
rm_workand then create two listeners on the LB20:58
rm_workwhat happens20:58
a2hillit just puts listeners on the lb object20:58
rm_workif the answer is "nothing", then what the hell is the point of specifying a pool on the loadbalancer20:59
rm_workyou have to specify it on the *listener*20:59
sbalukoffIf you don't specify the default_pool_id, then the new listeners won't automatically use the pool that's on the load balancer. You actually do have to specify the default_pool id.20:59
rm_workrofl20:59
rm_worksbalukoff: I feel like you're trolling me20:59
sbalukoffLike... you know... you have to plug in your computer. It's not enough to put it near the outlet.20:59
rm_workso we have a pool linked to a loadbalancer. this link does *absolutely nothing*20:59
sbalukoffrm_work: I'm really trying not to. I have a hard time believing these concepts are that difficult. :P20:59
rm_work.......21:00
rm_workok so21:00
rm_worktell me true or false:21:00
sbalukoffthe link from loadbalancer -> pool limits scope.21:00
rm_worklinking the pool to the loadbalancer has absolutely zero functional use21:01
rm_worktrue or false21:01
rm_work... why would we bother with that? what does that buy us?21:01
rm_worklink the listener->pool21:01
rm_workand we get ...  a working thing21:01
sbalukoffthe link from loadbalancer to pool limits scope-- you know that if you alter that pool it will at most affect things on that single load balancer.21:01
sbalukoffNo we don't.21:02
rm_worklb->listener->pool chain21:02
rm_workand we do, yes21:02
sbalukoffRight, so car needs an engine to be useful.21:02
rm_workyeah but the wheels are attached to the driveshaft which is attached to the engine21:03
sbalukoffYeah, my analogy isn't that great.21:03
rm_workunfortunately in that analogy the wheels are also attached to the car for physics purposes21:03
rm_workbut in a virtual world they wouldn't have to be :P21:03
rm_workso it'd be car->engine->wheels21:03
sbalukoffI'm not following yo.21:03
sbalukoffyou.21:03
rm_workframe->engine->wheels21:04
rm_workis like21:04
rm_worklb->listener->pool?21:04
rm_workseems to be your analogy21:04
bloganbtw got a short meeting i gotta focus on, ill be back shortly21:04
rm_workor rather21:04
rm_workframe/engine/wheels21:04
a2hilli see pool as the engine, thats what ends up making the haproxy do useful things21:04
rm_workbecause you are saying there's no hierarchy21:04
rm_workbut there is21:04
a2hillwheels by themselves do nothing, and is where his anology sits with me21:05
rm_worklet me show you a car with no frame :P21:05
sbalukoffRight. You need all the pieces for a complete service.21:05
rm_workhttp://www.miataturbo.net/attachment.php?attachmentid=33600&dateline=132858854321:05
rm_workengine -> wheels21:05
rm_work:P21:06
sbalukoffSo... let's pretend I'm not using haproxy right now.21:06
a2hillThere's definately some difference in thought processes here, Im kind of on the fence here. Because I totally agree that it feels like the wrong relationships as it stands, but using it made sense21:07
sbalukoffOn some other load balancers you can create a pool... and the load balancer will do health checks on the members and return status information, etc...21:08
rm_workto me it is pretty clear that the hierarchy is LB->Listener->Pool21:08
rm_workhmm21:08
rm_workso what are we talking about right now21:08
rm_workN-LBaaS or Octavia?21:08
rm_workI guess this matters21:08
sbalukoffAnd it might be useful in some cases for those load balancer (using models more complicated than we allow right now) to make, say, a routing decision based on the health of a pool.21:08
sbalukoffBoth, technically.21:08
rm_workfor octavia I can't think of a valid reason to have a Pool on a LB directly21:09
rm_workbecause we don't do those things21:09
rm_workbut if some WILL start health checks before a listener exists...21:09
rm_workthen that's worth looking into21:09
sbalukoffHow about: Because it makes things a fuckton easier when you do L7?)21:09
a2hillthat is supposed to be the context this is reviewed in21:09
rm_workcan you create a pool without linking it to something?21:10
xgermanwell, something crazy21:10
rm_worki guess maybe that isn't possible anymore?21:10
sbalukoffYep. I agree that without L7, shared pools is probably more trouble than it's worth.21:10
xgermancan’t we make the relationship pool -> listener a resource?21:10
sbalukoffrm_work: It wasn't possible originally.21:10
rm_workit was in V121:10
rm_workthat's what I meant by "anymore"21:10
* xgerman still catching up21:10
*** fnaval has joined #openstack-lbaas21:10
sbalukoffv1 concept of "pool" is incompatible here.21:11
rm_worktrue, but IIRC you could create objects without linking them up21:11
rm_workand I guess now you can't?21:11
xgermanso we do loadbalancer/123/pool/12321:11
rm_workso I think i see the problem you're trying to solve21:11
sbalukoffin v2 as it currently stands you can't.21:11
a2hillwoah, we cant be comparing v1 to v2 here :P21:11
sbalukoffxgerman: With the shared pools patch, yes.21:11
rm_workI was imagining a workflow where you create a LB, then a Listener, then a pool, then link the pool to the listener by creating an L7Rule21:11
sbalukoffxgerman: But the old URLs will still work, for convenience's sake.21:12
rm_workbut you can't have created the pool yet without linking it somewhere21:12
xgermanok21:12
* blogan starts reading scrollback21:12
* blogan understands he is the dr frankenstein of this21:12
rm_workso that's the problem, right?21:12
xgermanso and then I do loadbalancer/123/listener/123 and post a list of pools among other things21:12
sbalukoffrm_work: And when you follow that train of thought...  you discover that a pool and a listener are a lot alike as far as 'hierarchy' is concerned. I would say they're siblings.21:12
rm_workwell, they link up21:13
rm_workthey're still hierarchical21:13
sbalukoffrm_work: Yes, a car without wheels and a car without an engine are almost identically useless.21:13
rm_workeh21:13
rm_workyes21:14
rm_workbut they still connect in a specific order21:14
sbalukoff...21:14
rm_workhttp://www.onallcylinders.com/wp-content/uploads/2015/02/tboltEP2_07.jpg21:14
a2hillunless the car also has wings and rocket engines, then thats all invalid21:14
xgermana car is a composition21:14
sbalukoffOnly if you're thinking about things as far as "how is my request routed"21:14
a2hillsorry, ill stay out of it21:14
sbalukoffxgerman: Yes!21:14
xgermanand in REST we can do that by posting pool:{pool-id}21:15
xgermanon the listener21:15
sbalukoffxgerman: default-pool-id, but yes.21:15
xgermanso none of those crazy urls...21:15
bloganalmost caught up, but i have to rejoin this meeting21:15
sbalukoffxgerman: When l7policies are introduced, these are logical children of listeners, and they can specify a 'redirect-pool-id' much the same wya.21:16
sbalukoffway.21:16
xgermanyep21:16
xgermanmakes sense21:16
sbalukoffWhat I really, really want to avoid...21:16
xgermanloadbalancer/123/listener/123/l7/12321:16
sbalukoffIs giving the API user the mistaken impression that altering  /loadbalancers/UUID/listeners/UUID/pools/UUID   is *not* going to also affect some other listener's pool.21:17
sbalukoffIf that makes any sense.21:17
*** fnaval_ has joined #openstack-lbaas21:17
sbalukoffAgain , the deprecated URL *will* work, but we want to encourage people to think about pools having some independence from listeners-- and that altering a pool might affect many listeners.21:18
rm_workhttp://asciiflow.com/#0B1uOZZC7pAeuS1F3ZUhIUU40cms21:19
rm_workisn't that the hierarchy (simplified)?21:19
sbalukoffThat link isn't drawing anything for me.21:20
rm_workhmm21:20
*** fnaval has quit IRC21:20
sbalukoffDo you have to hit a 'save' button or something?21:20
rm_worknot sure21:21
rm_workit says saved21:21
sbalukoffWell, it ain't showing me anything. :/21:21
rm_workhttp://pastebin.com/uFRK1XA321:21
rm_worktry that21:21
rm_workdrawn in ~20 seconds21:21
rm_workso the real problem is that the pool on the bottom right *can't exist*21:22
rm_workright?21:22
rm_workbecause it isn't linked to anything21:22
rm_work(before creation of the L7)21:22
sbalukoffThat's part of it, yes. The other part is that it's extremely common to want to re-use pools (ie. "shared pools") among many listeners and l7policies.21:22
rm_workyeah, so once the pool exists, you can do that no problem21:23
rm_workno need to have the pool specified on the LB :/21:23
rm_workyou could re-use the bottom-left pool on another listener too21:23
sbalukoffOk, so we can't share pools between listeners?21:23
xgermanthat picture makes it looks like pools are listener soecific21:23
rm_worksec21:23
sbalukoffWhat is the pool's parent in your mind?21:24
rm_workhttp://pastebin.com/83j61Cb221:24
sbalukoffWhat is the pool's parent?21:25
rm_workso first of all, IRL people have two parents each usually :P21:25
rm_workjust like to point that out21:25
rm_workparent doesn't mean "one"21:25
sbalukoffOh?21:25
rm_workin this case the pool's parents are two listeners and an L7Rule21:25
sbalukoffThe pool has to exist somewhere, right? So where does it exist?21:25
rm_workyeah, so that's what I was trying to get from you -- is that the real problem?21:26
rm_workIIRC it'd be better to just make pool not require a linkage21:26
sbalukoffWhat linkage?21:26
rm_workthan to force some fake relationship to an LB that does nothing21:26
sbalukoffthe LB -> pool linkage limits scope in *exactly* the same ways as the LB -> listener linkage.21:27
sbalukoffFor all the same reasons.21:27
rm_workthe *only* think I see it doing functionally is "allowing somewhere to create a pool" since you can't create a pool by itself21:27
rm_work*only thing21:28
rm_workotherwise it serves no real functional purpose21:28
sbalukoffDo you understand what I mean when I say "limit scope"?21:28
rm_workbecause you'll *have to* link the pool to a listener either directly or via an L7Rule21:28
rm_workwhich does the scope limiting for you21:28
rm_workso the LB->pool link is redundant21:28
rm_workby the time it is able to be used at all21:28
rm_workyou'll get the same scope limiting "feature" by linking the pool to a listener or an L7rule21:29
sbalukoffhow would linking a pool to a given listener limit scope.21:29
sbalukoffCould I link the same pool to listeners on different loadbalancers?21:30
bloganok im caught up mostly21:30
bloganlinking a pool to a given listener means that pool can only be on that listener's load balancer21:30
blogani mean thats how you'd do that21:30
rm_worksbalukoff: if we allowed that, then yes; but we don't?21:31
rm_workso by linking the pool to a listener, it has an implicit link to a LB21:31
sbalukoffrm_work: We don't allow listeners to be shared across loadbalancers right now.21:31
rm_workwhich gives it exactly the same scope limitations as linking it explicitly21:31
rm_workmy point is that it works either way21:31
sbalukoffRight... so you're going to force me to traverse all the relationships of a given pool in order to discover whether it's actually linked / referenced by any listener or l7policy somewhere, right?21:32
rm_workno21:32
rm_workthis is what i meant about back-refs on the pools earlier21:32
bloganrm_work: but the counter to that is then you'd need the /loadbalancers/{lb_id}/listeners/{listener_id}/l7polices/{l7policy_id}/pools endpoint to create a pool on an L7 policy bc you can't assume a pool is already the default pool of a listener21:32
rm_worki'd expext the pool object to have a list of all references21:32
rm_workbecause we can build that easily from the DB data21:33
rm_workblogan: right, i'm saying that if the problem is that you need to create a pool somewhere first21:33
rm_worki'd rather decouple it altogether21:33
sbalukoffrm_work: Yes, but then you have to look at all those references to find out which loadbalancer they're on.21:33
sbalukoffWhy not cut out the middle man?21:33
rm_worksbalukoff: well, since you can't share pools across LBs, right now you can assume it's always on the same LB21:33
sbalukoffdecoupling altogether is not something we wanted to do in this patch because it's a MUCH larger can of worms.21:34
rm_worksbalukoff: and if we allowed sharing pools across LBs, we wouldn't *want* to enforce that scope limitation21:34
sbalukoffrm_work: Yes! Of course!21:34
bloganrm_work: in your scenario how would you create a pool and associate it with an l7 policy?21:34
xgermanbut we don’t want to share among lbs21:34
sbalukoffrm_work: But we don't want to allow sharing pools across LBs right now.21:34
rm_workblogan: create pool; create L7 policy with a pool_id21:34
xgermansbalukoff +121:34
rm_worksbalukoff: right, not saying we should yet, but that it works either way21:35
bloganso create pool on a /pools endpoint?21:35
blogana root /pools?21:35
rm_workblogan: yes21:35
sbalukoff...21:35
a2hill:)21:35
bloganthat runs into the problem of driver on the load balancer issue21:35
sbalukoffAnd that pool's parent would be?21:35
rm_worki'd rather explicitly decouple than create a fake/useless linkage to an LB object21:35
rm_worksbalukoff: it would be an orphan until it was given a parent listener via an L7Rule or the creation of a Listener specifying it21:35
rm_workie, adopted21:36
sbalukoffrm_work: translation: I'd rather screw over any vendors who need pools creation events to happen independently of listener creation events. ;)21:36
bloganrm_work: i agree that would be ideal BUT we only know what the driver that pool should be sent to by the load balancer it is attached to21:36
rm_worksbalukoff: no, pool creation event in that case could happen absolutely independently of anything else?21:36
xgermanyeah, limiting scope is not useless21:36
rm_workxgerman: scope limitation happens implicitly21:36
xgermansince with flavor we would need to replicate pools an multiple drivers21:36
rm_workxgerman: i'm not saying it's useless, i'm saying doing it that way is REDUDANT21:36
xgermanok21:37
rm_workcreate LB; create Pool on LB; woo we've limited scope ... now create listener and link pool to it; woo we've limited scope again!21:37
bloganxgerman: flavors now and providers before, which is why with neutron-lbaas we scrapped the plans for all objects to be able to exist independently21:37
bloganexcept creating the LB first lets us know what driver we should create the pool with21:38
xgermanyep, and I like that concept21:38
rm_workah i see what xgerman means21:38
rm_workthanks for the clarification blogan21:39
rm_workyeah that could be problematic if that is not what we want21:39
sbalukoff...21:39
blogani woudl prefer it, but since lbaas supports multiple drivers, it then turns into a huge orchestration ordeal21:39
xgermanwell, it causes problems since then you have health checks from different providers and need to fuse them21:39
xgermanblogan heat?21:39
rm_work>_>21:39
sbalukoff...and this is what I was referring to by 'can of worms'21:40
* blogan throws xgerman on heat21:40
xgermanwell armando said no orchestration in neutron...21:40
sbalukoffGood thing Octavia is not in neutron. ;)21:40
xgermanwell, once you complete the 10 step program21:41
rm_workugh21:41
rm_workfuck it21:41
bloganoctavia is in the neutron stadium...21:41
rm_workI see how we got to the hideous compromise that is pools->LB21:41
xgermanblogan +121:41
sbalukoffOk, I'm already well in to "hangry" at this point...  Anyone need anything else from me before I break for lunch?21:41
bloganrm_work: i'm with you too, i dont like it but the only thing i can't solve is how do you get around not having to create a pool of an l7policy21:41
rm_worksbalukoff: fuck it, you win, +121:41
rm_workI'm still not happy ._<21:41
rm_worki feel like this one is going to haunt us21:42
sbalukoffrm_work: which is the same hideous compromise that is listeners -> LB, when it comes right down to it. ;)21:42
xgermanrm_work language — there might be minors on that channel21:42
rm_worksbalukoff: don't push it :P21:42
blogansbalukoff: would you like to discuss why trump will be the best president ever?21:42
sbalukoffblogan: I will destroy you.21:42
bloganlol21:42
sbalukoffAnd not through language.21:42
xgermantrump/palin 201621:42
bloganthe dream team!21:42
sbalukoffrm_work: In all seriousness, if you can think of any ways this is going to haunt us that the listener -> LB relationship isn't already going to haunt us, I want to hear about them.21:43
*** crc32 has quit IRC21:43
blogansbalukoff: i think it'll haunt us when we go to independent listeners21:44
bloganerr shared listeners21:44
sbalukoffblogan: Yep.21:44
blogansorry21:44
rm_workyes21:44
bloganlbaas v3?21:44
rm_workone of my points was that when we switch to shared stuff across LBs, this will be a *problematic* limiting of scope21:44
rm_workthat we wouldn't want21:45
sbalukoffrm_work: I agree. And I did have the choice of making pools truly abstract objects that are not associated with anything. But I didn't go down that path this time because I already knew that shared pools would be hard enough to get in, and when you look at the code, absolutely everthing everywhere wants to know which loadbalancer (singular) it's on.21:46
sbalukoffIt would have involved... a lot more for loops.21:46
sbalukoff;)21:46
*** TrevorV has quit IRC21:46
rm_workheh21:46
rm_workwell, that is what i would rather see21:46
*** madhu_ak has joined #openstack-lbaas21:46
sbalukoffrm_work: If there's demand, we can look into it next cycle, IMO. :/21:47
blogansbalukoff: not to mention, in neutron-lbaas's case, it'd be tough to get that in due to the driver on the lb issue21:47
sbalukoffAgain, I expect it'll be almost exactly the same amount of work as making listeners independent of loadbalancers.21:47
bloganand we're going to have that same issue with shared listeners21:47
sbalukoffblogan: Yep.21:47
sbalukoffThis is something we can potentially accomplish in Octavia easier.21:47
*** pcaruana has joined #openstack-lbaas21:48
bloganif we didnt allow for multiple drivers, it'd be easy21:48
sbalukoffwell... easier. ;)21:48
rm_workT_T21:48
rm_workyeah21:48
bloganbut octavia should perhaps handle multiple drivers21:48
rm_workbut then we'll have to deprecate THIS21:48
rm_workand the cycle of hacks and deprecations continues21:48
sbalukoffblogan: which means we should make the driver inteface friendly to the independent listeners concept.21:49
sbalukoffrm_work: It's hard to build Rome in a day.21:49
blogansbalukoff: how so?21:49
sbalukoffblogan: I've not hashed out how that would work, exactly.21:49
*** doug-fish has quit IRC21:49
sbalukoffblogan: My mind has been on trying to make L7 work this cycle.21:49
sbalukoffIn a way that doesn't paint us into a corner any worse than we're already painted into a corner.21:50
blogansbalukoff: yeah i think there's basically create a single listener object to an entire loadbalancer graph that the driver will have to handle21:50
bloganwhich means...orchestration21:50
sbalukoffYep.21:50
bloganbut we might be able to make use of the single create call21:50
sbalukoffYeah, there would be a lot of code re-use.21:50
bloganif that asshole ever finishes it21:50
sbalukoffBut it's another fundamental shift in how we think about things that will be as uncomfortable as this shared pools / independent pools shift is.21:51
a2hilllol, sorry, i was going to get to it when i could21:51
a2hill><21:51
sbalukoffHAHA21:51
a2hill:P21:51
bloganmeh the problem i have with it is pools to me are children of listeners and i still don't see you're argument that they are not, so lets not rehash it :)21:52
blogana2hill = asshole 2 hill21:52
sbalukoffOk.21:52
blogana2hole21:52
a2hilllol21:52
*** rcernin has joined #openstack-lbaas21:53
sbalukoffI think fundamentally--  I think of most of these things as a graph and not a hierarchy.  We've chosen to artificially limit that graph when it comes to the listener -> LB relationship because it vastly simplifies things for us.21:53
bloganwell even if LB -> Listener is M:N i'd still see it as a hierarchical graph :)21:54
xgermanwell, we can always make edges a reource21:55
sbalukoff(Technically we've also reduced that graph to a hierarchy in the pool -> member relationship. But this again, simplifies things for us, and if a member IP/port does get re-used between two pools, it's not *that* expensive to have to do health checks and whatnot twice on it.)21:55
sbalukoffxgerman: +121:55
blogansbalukoff: so do some loadbalancing software allow health checks of single members?21:56
xgermanprobably21:56
sbalukoffblogan: As long as they're on the same appliance, yes.21:56
xgermanor a pool of one21:56
sbalukoffYep.21:56
bloganmeaning put a health check directly on a member, and not within the context of a pool21:56
blogana pool of one is still a pool21:56
blogana member without a pool is what i'm talking about21:56
sbalukoffblogan: Right. But again, we don't support that. ;)21:56
xgermanmembers top level objects...21:56
xgermanwe just make /member21:57
bloganthe permutations hurts me wee brain21:57
sbalukoffmembers top level objects is more trouble than it's worth. :)21:57
sbalukoffIt's a matter of deciding where dealing with M:N relationships is truly worthwhile.21:57
xgermanand then have edge/123 with (member-id, listener-id)21:57
bloganmultiple vips it will be, l7 it will be21:58
sbalukoffYep, I think so.21:58
bloganinstead of shared listeners, we could always just add an "additonal_vips" field on the load balancer21:58
sbalukoffSo... we'll get L7 this cycle, and look into whether there's demand for multiple vips next cycle, eh?21:58
sbalukoffblogan: And keep things in the scope of a loadbalancer?21:58
blogansbalukoff: yeah21:58
xgermanyep, let real customers/users decide21:58
blogansbalukoff: it'd be ugly though21:59
sbalukoff(which solves the driver association problem.)21:59
xgermancan’t we have different drivers on the same VIP? Come on21:59
sbalukoffsbalukoff: It would probably be less ugly than completely overhauling the driver interface. But I don't know that yet...21:59
bloganxgerman: no!21:59
bloganblogan: i like to talk to myself21:59
sbalukoffxgerman: Are you cruising for a bruising too?21:59
* xgerman ducks22:00
*** jwarendt has quit IRC22:01
blogansbalukoff: one last attempt at the pools thing, strictly neutron-lbaas this time22:01
sbalukoffOk.22:01
a2hillOn another note i've made my case a couple times in the tripleo channel, not sure when thats going in, so everythings sorta on hold till then :(22:01
*** minwang2 has quit IRC22:01
sbalukoffa2hill: I thought I saw a +2 on your patch?22:01
bloganworkflow -> create lb -> create listener -> create l7 policy, create pool with associtiation to that l7 policy22:01
a2hillThere was one +222:01
*** minwang2 has joined #openstack-lbaas22:02
a2hillbut nobody else is responding in channel and no activity for a while, so while its been expressed as critical, it may be a while22:02
sbalukoffblogan: You can do that, but you'll have to set the l7policy action to something other that 'redirect to pool' initially (ie. you could set it to 'reject') at creation time.22:02
sbalukoffblogan: Er...22:02
blogansbalukoff: you mean for some policies you need to have a pool as part of validation?22:03
sbalukoffblogan: Ok, you can do *close* to what you've described. It would actually look like this, if I understand evgeny's code there correctly:22:03
sbalukoffblogan: create lb -> create listner -> create l7policy (reject) -> create pool -> update l7policy (redirect to pool)22:03
blogansbalukoff: bc redirect to pool will fail if no pool is specified?22:04
sbalukoffblogan: Yes, if your policy action is 'redirect to pool' we validate that a 'redirect_pool_id' is present and references a pool on the same loadbalancer.22:04
* blogan flips table22:04
sbalukoffEr...  what?22:04
bloganthere's not a good solution that will satisfy my needs22:05
bloganso pool on lb may just be the best way to do it22:05
sbalukoffWell... I *thought* the solution I gave was good. :/22:06
blogansbalukoff: its not perfect!22:06
sbalukoff... and I happen to think that pool on LB is a good way to go (so long as we're limiting listener to a LB as well.)22:06
sbalukoffblogan: Is anything ever perfect?22:06
blogansbalukoff: like i said i'm not strongly opposed to it, but just wanted to hash it out to see if we could come up with something that would make me feel better22:07
a2hillcause icky?22:07
a2hill:)22:07
bloganif we just put a flavor/driver on every entity, that'd solve everything22:07
a2hillfull circle22:07
sbalukoffWell... rm_work is right that we *are* artificially limiting scope to a load balancer. But I think we've established that we have good reasons for doing so?22:07
xgermanyep22:08
sbalukoffHaha!22:08
rm_work>_<22:08
sbalukoffYummy flavors!22:08
bloganif core neutron allowed multiple core plugins, they'd deal with the same issues we are22:08
xgermanyeah, flavors — maybe jwarendt will do a talk on it in Austin and we can all heckel22:08
bloganbut they only allow one22:08
sbalukoffblogan: That's probably true!22:09
xgermanwell, multiple drivers is important22:09
bloganxgerman: if its so important why doesn't neutron do it? hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm?22:09
sbalukoffHaha!22:09
* blogan waits for the ml2 allows it argument22:09
* blogan shushes himself22:10
sbalukoffHaha22:10
xgermanarmax said he had big plans for flavors22:10
sbalukoffDVR will solve everything.22:10
xgermanit’s now all in his camp22:10
xgermansbalukoff it already did22:10
bloganarmax is going to open up a baskin robbins?22:10
xgermanpossibly22:11
sbalukoffOk! Anything else right now?  (I'mma go get some lunch if not...)22:12
xgermanI think it’s too late for lunch - you gotta wait for dinner22:12
sbalukoffxgerman: But... I didn't have breakfast either. ;_;22:13
xgermanlol22:13
sbalukoffAnd I have company for dinner... we're going to do sous vide chicken!22:13
xgermannice — I will be sitting in a plane22:13
sbalukoffxgerman: I'm so sorry!22:14
bloganeveryone's all in the sous vide lately22:14
xgermanI have a microwave22:14
bloganjust put a pot of water in the microwave with your chicken22:15
sbalukoffHaha!22:15
sbalukoffblogan: But this way I get to look down my nose at you philistines!22:15
xgermanblogan probably has a smoker...22:16
sbalukoffOk, folks! I'll be back on in an hour or so if you want me to strong-arm you into another decision. ;)22:16
blogansbalukoff: i've been beaten down by the lack of the perfect solution22:17
openstackgerritAishwarya Thangappa proposed openstack/neutron-lbaas: Adding "region and endpoint_type" parameters to barbican_acl.py  https://review.openstack.org/27154422:18
xgermanunicorns22:18
*** rtheis has quit IRC22:18
sbalukoffblogan: Well, take heart in the fact that L7 functionality is awesome and powerful... and if we keep at this we'll even be able to showcase it at mitaka. :)22:19
sbalukoffOk, BBIAB.22:19
rm_worksbalukoff: yep same as blogan22:29
rm_worki dgaf anymore22:29
rm_workit isn't great but it's temporarily workable >_>22:29
blogandgaf = don't grow ass food?22:31
rm_workcorrect, I do not22:32
rm_workbbiab22:32
bloganrm_work: anymore, but you've implied that you did22:34
*** crc32 has joined #openstack-lbaas22:41
*** rcernin has quit IRC22:53
openstackgerritMichael Johnson proposed openstack/octavia: Don't always run Octavia amphroa image build  https://review.openstack.org/26766322:57
*** ducttape_ has quit IRC23:11
*** neelashah has quit IRC23:12
*** neelashah has joined #openstack-lbaas23:12
*** neelashah has quit IRC23:17
*** johnsom_ has joined #openstack-lbaas23:21
openstackgerritBanashankar k proposed openstack/octavia: Need to change the length of name in the algorithm since we are updating the lenght of the lb_algorithm in pool table we need to change the name column in algorithm table as its a FK.  https://review.openstack.org/27117823:22
johnsom_sbalukoff Heads up, I'm reviewing active/active on the train home.  (may have network drops, fyi)23:22
*** shakamunyi has quit IRC23:22
johnsom_The distributor spec isn't really a spec, so I'm going to comment on that.  I think we have more work to do here.23:22
sbalukoffjohnsom_: Thanks!23:23
*** fnaval_ has quit IRC23:27
*** neelashah has joined #openstack-lbaas23:28
*** neelashah has quit IRC23:33
*** fnaval has joined #openstack-lbaas23:40
*** neelashah has joined #openstack-lbaas23:44
*** neelashah has quit IRC23:48
*** fnaval has quit IRC23:51
*** fnaval has joined #openstack-lbaas23:52
*** blogan__ has joined #openstack-lbaas23:56
*** blogan_ has quit IRC23:56
*** bana_k has quit IRC23:59
*** bana_k has joined #openstack-lbaas23:59
*** neelashah has joined #openstack-lbaas23:59

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