Earlier  
Posted Nick Remark
#openstack-sdks - 2017-07-04
08:30:01 flanders_ Lolz, no better way to celebrate 'freedom' than taking about open source stuff! ;)
08:32:37 seanhandley_ Well that's true
08:33:04 seanhandley_ Oddly I'm scheduled for a 4th July Bourbon tweet-tasting this evening courtesy of Heaven Hill
08:33:35 seanhandley_ Hopefully I'll get a catch-up chat with Monty this week
08:51:05 carthaca Hi ;)
08:51:56 carthaca you sent a lot of homework, flanders ^^
08:58:31 seanhandley hey carthaca
08:58:40 seanhandley Yeah, flanders_ is always making me do work :D
08:59:56 seanhandley Are you around Gilles?
09:01:38 seanhandley Let's wait a few more minutes, hopefully he appears :)
09:05:24 carthaca were the hangouts details in the invitation added accidentally?
09:05:36 seanhandley It's possible yes
09:05:53 seanhandley Google Calendar is annoying for that
09:06:43 seanhandley ahh
09:06:51 seanhandley I just got a calendar invite decline from him
09:06:56 seanhandley Guess he can't make it :(
09:07:39 carthaca what a pity
09:08:13 seanhandley That's the joy of online meetings I suppose!
09:08:20 seanhandley Thanks for coming anyhow carthaca
09:08:37 seanhandley Can we kick off by talking a little about Misty?
09:08:52 seanhandley I see you on the contributors but I'm not sure of how the project started
09:09:10 carthaca Yes, let's start with that
09:09:32 carthaca Gilles is the one, who started it
09:10:07 carthaca He mentioned it in of the Mails that Flanders distributed, that's how I found it
09:10:25 carthaca And I was immediately in love :D
09:10:45 seanhandley The README sounds very promising
09:11:00 carthaca It provides, what we were missing from fog
09:11:15 seanhandley I've been involved with Fog for a number of years now, and it's been the most mature OpenStack SDK in Ruby for a long time
09:11:21 carthaca you only have to authenticate once and can talk to all services
09:11:36 seanhandley ok - so is it fully compatible with all APIs?
09:11:50 carthaca so this means less calls to keystone, more performance
09:12:09 carthaca and API adoption is much faster, because it is much more lightweight
09:12:20 seanhandley Yeah, the auth stuff in openstack-fog sucks :)
09:13:30 carthaca compatability looks really good, though I didn't make it to the nasty stuff, yet
09:13:38 seanhandley Ok
09:14:07 seanhandley I'm happy to get involved and to champion misty as the Ruby SDK of choice for OpenStack in the long term so long as we're not losing out. The advantages of Fog is that it has momentum, community, and support for a lot of APIs.
09:14:59 seanhandley I think it'd be useful to get a to-do list in the form of Github issues or something
09:15:25 seanhandley then we can see where the gaps are and start filling them :)
09:15:47 seanhandley Did you get a chance to read the service endpoint spec that Flanders linked?
09:16:17 carthaca yes, sounds reasonable
09:16:32 carthaca valid service types have to be defined somewhere
09:17:16 seanhandley Yes - Monty proposes we have a json file on openstack.org
09:17:19 seanhandley which can be cached
09:19:10 flanders_ I'm here! Having dinner
09:19:30 carthaca so we at SAP already decided to move away from fog to misty, basically we are the 4 other contributors you see in misty
09:20:46 seanhandley Aha I see
09:21:31 seanhandley Can you describe the problems with Fog as you perceive them at SAP?
09:21:31 carthaca what fog offers, that we don't need is the models - do you know how widely the other consumers of fog consume the models?
09:21:49 seanhandley heh well I was going to mention the models layer
09:22:25 flanders_ Whom rise do we need in the fog community to look at Misty so it can be conjoined with fog?
09:22:44 carthaca on thing I already mentioned, it's the auth - you cannot re-use on fog object, but have to create a new one for every service you talk to
09:23:09 seanhandley and that causes performance issues carthaca ?
09:25:03 carthaca yes in two ways: 1. fog is always calling keystone to check the token you provided + 2. fog is calling keystone for every service you use again
09:25:21 flanders_ Doh!
09:25:35 seanhandley I ran into a similar issue in the early days of integrating our app using Fog
09:25:36 seanhandley https://gist.github.com/seanhandley/8589520ab7e8bffda78c8cdf11d30402
09:25:49 seanhandley I used to memoize those Fog objects ^
09:26:01 seanhandley so in theory the auth wouldn't happen multiple times
09:26:25 seanhandley but in practice I found the Fog re-auth code was buggy once the token had expired :(
09:27:08 carthaca yes we initially did the same and stumbled over weird re-auth issues :(
09:27:39 carthaca that directly leads me to another issue we see: fog is doing its own error-handling and sometimes swallows errors, that we would like to bubble up properly instead
09:27:56 flanders_ Does Monty's service discovery support re Keystone auth address this?
09:28:52 seanhandley I think it's a separate issue flanders_
09:29:10 seanhandley ultimately the problem was bad design in the fog-openstack code
09:29:16 flanders_ Aok
09:29:48 seanhandley So to give a bit of backstory on how I currently use Fog in my app
09:30:01 carthaca reacting to token-expiry got better in fog, but still it is a bit of work you would have to do on top
09:30:03 flanders_ Just making sure we shouldn't be highlighting any issues up to the API user team a la Clarke and Rocky.
09:30:24 seanhandley I find the model layer is useful as it lets me represent OpenStack resources as Ruby objects and so my client code is a lot cleaner
09:30:45 seanhandley the problem with dealing with JSON directly is you end up wrangling the nested data structure
09:30:59 seanhandley so it's nice to have a model layer that knows how to parse those structures
09:31:22 seanhandley Though I guess it'd be possible to use OpenStruct for that?
09:32:47 carthaca well to the API on expired tokens: I sometimes see an "401 not authorized" and sometimes a "404 token not found" from the services, I would have to look up the details where that comes from, but its inconsistent at least
09:34:29 carthaca yes in the end we constructed our own models as well xD, would be easier if we could better extend and re-use the fog ones without monkey patching
09:35:05 seanhandley Well I think it's a matter of taste to some extent - if the object is simply a data container we can subclass OpenStruct
09:35:10 seanhandley https://gist.github.com/seanhandley/3517abaad013eadb21923b10ae68c2d3
09:35:35 seanhandley The issue I think is when we do mutative calls
09:35:53 seanhandley Fog lets you say things like "server.restart"
09:37:04 seanhandley the way Misty is architected you'd currently do "cloud.compute.reboot_server_reboot_action uuid" or something similar
09:38:47 seanhandley I'd love to get Monty involved here because his Shade SDK does a lot of UX niceness for the user regarding the model layer
09:39:26 flanders_ +1 @mordred
09:39:29 seanhandley raw API call wrappers and JSON responses are fast and simple but his vision is for a codebase that has sane defaults and makes client code able to care as little as possible about the details
09:40:31 seanhandley I think you're onto something with integrating Misty in Fog flanders_
09:40:33 flanders_ But needs to incorporate ProgLang paradigms...
09:40:39 carthaca that's right - when I first started using fog I liked a lot how easy it is to use
09:41:19 seanhandley if Misty is to be a lightweight SDK that gets you hooked into the API quickly then changing the fog models to refer directly to it as a dep might be the best way forward
09:41:31 flanders_ Fog/Misty must be usable to Ruby native Devs, not OpenStack Devs.
09:41:38 seanhandley then Fog benefits from the improved performance without losing the syntactic niceness of the model layer
09:41:46 seanhandley indeed flanders_
09:42:04 seanhandley Hi gildub :)
09:42:11 carthaca yes, we thought of doing the rework directly in fog, too - but it needs a lot of effort. so we chickened out a bit and moved to the new tiny misty :D
09:42:23 seanhandley I don't blame you - there's a lot of baggage
09:43:17 seanhandley At any rate, I think that model layer of UX niceness can learn a lot from Shade
09:43:25 seanhandley wherever it ultimately ends up residing
09:45:35 seanhandley carthaca gildub: Do you think it makes sense to leave the model layer out of Misty as a hard architectural decision?
09:45:55 seanhandley or could there be a Misty::Model namespace ?
09:47:01 carthaca I'm not sure, do we want to end up with both misty and fog or do we want to rework one of the two to get all benefits?
09:48:21 seanhandley I think I'd prefer for it all to live in Misty - that way it can be developed in line with Shade and the current community thinking on how best to make an OpenStack SDK from an app dev perspective
09:48:30 seanhandley it lets us free ourselves of legacy
09:48:44 seanhandley but the decision, ultimately, is down to you guys - it's your project :)

Earlier   Later