Friday, 2015-02-13

*** tellesnobrega_ has joined #openstack-sdks00:05
*** rmcall has joined #openstack-sdks00:15
*** pm90_ has quit IRC00:40
*** etoews has quit IRC00:48
*** bknudson has joined #openstack-sdks01:13
*** rmcall has quit IRC01:28
*** etoews has joined #openstack-sdks01:37
openstackgerritOpenStack Proposal Bot proposed openstack/python-openstackclient: Updated from global requirements
*** jamielennox is now known as jamielennox|away02:01
*** ayoung has joined #openstack-sdks02:16
*** etoews has quit IRC02:27
*** etoews has joined #openstack-sdks02:28
*** etoews has quit IRC02:33
*** tellesnobrega_ has quit IRC02:36
*** pm90_ has joined #openstack-sdks02:55
*** etoews has joined #openstack-sdks02:57
*** tellesnobrega_ has joined #openstack-sdks02:57
*** etoews has quit IRC03:03
*** tellesnobrega_ has quit IRC03:34
*** tellesnobrega_ has joined #openstack-sdks03:34
*** tellesnobrega_ has quit IRC03:34
*** etoews has joined #openstack-sdks04:00
*** ayoung is now known as ayoung_ZZZzzzZZZ04:03
*** etoews has quit IRC04:04
*** etoews has joined #openstack-sdks04:14
*** etoews has quit IRC04:19
*** pm90_ has quit IRC04:58
*** etoews has joined #openstack-sdks05:15
*** etoews has quit IRC05:21
*** pm90_ has joined #openstack-sdks05:28
*** pm90_ has quit IRC05:33
*** terrylhowe has quit IRC05:50
*** terrylhowe has joined #openstack-sdks05:55
*** srinsriv has joined #openstack-sdks06:04
*** srinsriv is now known as newuser06:05
*** newuser is now known as newuser12106:05
*** newuser121 has quit IRC06:10
*** srinsriv has joined #openstack-sdks06:11
*** srinsriv has quit IRC06:32
*** srinsriv_ has joined #openstack-sdks06:32
*** jamielennox|away is now known as jamielennox06:44
*** etoews has joined #openstack-sdks06:57
*** rmcall has joined #openstack-sdks07:01
*** etoews has quit IRC07:01
*** srinsriv_ has quit IRC07:18
*** Miouge has joined #openstack-sdks07:35
*** rmcall has quit IRC07:38
*** terrylhowe has quit IRC07:40
*** stevemar has quit IRC07:56
*** srinsriv has joined #openstack-sdks08:19
*** srinsriv has quit IRC08:25
*** openstackgerrit has quit IRC08:42
*** openstackgerrit has joined #openstack-sdks08:42
*** etoews has joined #openstack-sdks08:59
*** etoews has quit IRC09:03
*** chlong has quit IRC09:49
*** Miouge_ has joined #openstack-sdks10:45
*** Miouge has quit IRC10:46
*** Miouge_ is now known as Miouge10:46
*** etoews has joined #openstack-sdks12:14
*** terrylhowe has joined #openstack-sdks12:25
*** etoews has quit IRC12:49
*** etoews has joined #openstack-sdks12:49
*** srinsriv has joined #openstack-sdks13:06
*** srinsriv has quit IRC13:11
*** Miouge has quit IRC13:53
*** Miouge has joined #openstack-sdks14:03
*** rmcall has joined #openstack-sdks14:31
*** Miouge has quit IRC14:34
*** sigmavirus24_awa is now known as sigmavirus2414:40
*** Miouge has joined #openstack-sdks14:41
*** edleafe is now known as figleaf14:50
*** stevemar has joined #openstack-sdks14:54
*** rmcall has quit IRC14:55
*** srinsriv has joined #openstack-sdks15:02
*** ayoung_ZZZzzzZZZ is now known as ayoung15:10
*** Miouge has quit IRC15:32
*** Miouge has joined #openstack-sdks15:34
*** Miouge has quit IRC15:54
*** Miouge has joined #openstack-sdks15:54
*** Miouge has quit IRC15:58
openstackgerritJulien Danjou proposed stackforge/python-openstacksdk: telemetry: add missing alarm property severity
*** pm90_ has joined #openstack-sdks16:03
*** pm90_ has quit IRC16:05
briancurtinugh, i wish gerrit was dynamic in that it could update comments so i don't respond with the same thing minutes later :/16:05
*** pm90_ has joined #openstack-sdks16:06
*** rmcall has joined #openstack-sdks16:06
*** bknudson has quit IRC16:12
openstackgerritMerged stackforge/python-openstacksdk: telemetry: add missing alarm property severity
*** bknudson has joined #openstack-sdks16:27
openstackgerritTerry Howe proposed stackforge/python-openstacksdk: add metric proxy and service
*** bnemec has joined #openstack-sdks16:52
dstufftSo here's the thing I've got - It's untested currently and the tests are failing because I didn't update them all yet, but essentially this limits the use of entry points just to alias a short name (like "rackspace") to a Provider class, and the Provider class indicates the auth_plugin or the services, so all an end user has to do is Connection(provider="rackspace") or16:53
dstufft Connection(preference=UserPreference(provider="rackspace"))16:53
dstuffton the vendor side, you just subclass BaseProvider and override whatever attributes you want to specify your own custom implementations of16:54
briancurtinawesome, checking it out16:56
openstackgerritJulien Danjou proposed stackforge/python-openstacksdk: telemetry: fix threshold rule in alarm to be dict
bnemecHi, sdk folks17:01
bnemecWe're having some discussions about what our deployment CLI should look like, and one of the suggestions has been to have it wrap all of the OpenStack services into one uber CLI.17:01
bnemecWhich is basically python-openstackclient. So I suggested using it and got some pushback because "it's not suited for deployment".17:01
bnemecBefore I go to the mat with them over this, I wanted to verify that we could plug in a deployment tool to openstackclient.17:01
bnemecGlancing through the code it looks like we can, but I wanted to ask just to be sure.17:01
openstackgerritJulien Danjou proposed openstack/python-openstackclient: telemetry: add support for alarm creation
dtroyerbnemec: you could plug dang near anything into the framework17:02
dtroyerMy original plugin demo was a github api command17:02
bnemecdtroyer: Perfect, thanks17:02
* bnemec is off to fight reinventing the wheel17:02
dtroyerthe tricky part is command name collisions and having it be not confusing for the user17:03
*** srinsriv has quit IRC17:03
*** stevemar has quit IRC17:11
briancurtindstufft: so that branch works on the SDK side to let me run to my devstack, and then on the plugin side i changed my original plugin to and that now allows Connection(provider="rackspace", **auth_args) -- if you need help getting tests passing i can help out with that, i'd love17:33
briancurtinto see this on gerrit and have terrylhowe take a look17:33
dstufftbriancurtin: I'm kind of impressed that it works since I haven't really ran it at all17:35
dstufftI'm gonna be poking the tests shortly17:36
briancurtini'm not 100% sure i like being able to only specify one of provider and preference, but it's currently functional fwiw17:38
terrylhoweso that was with briancurtin ?  you couldn’t just add openstack.service = object_store = rackspace....17:40
terrylhoweIf the loading of the entry points is nondeterministic, maybe there should be an openstack.extensions one17:42
terrylhowethere also was some talk at one point about not allowing people to override the SDK services which is why I added Jamie to that review17:42
briancurtinif you can't override a service with what your vendor provides then how would you use it?17:43
terrylhowenot sure if we should be insisting you use rax_object_store or something like that so the user is forced to acknowledge what they want17:43
terrylhoweI agree with that, but I thought Jamie felt differently17:44
dstufftbriancurtin: well the reason you can only specify one is because Connection(provider="rackspace") is only a shortcut for Connection(preference=UserPreference(provider="rackspace"))17:44
dstufftif you specified them both you'd have to specify them to the same thing17:44
briancurtinterrylhowe: i think by loading hte plugin you're acknowledging that you want what the plugin offers, but having different module names for all of that is a poor experience and it also makes it unusable anywhere else17:45
terrylhoweI agree, I just wanted to hear Jamie’s side17:46
briancurtindstufft: i see17:46
terrylhowemy question is still why do you have to override UserPreference?17:47
dstufftit's similar in concept to def foo(provider=None) -> foo("rackspace", provider="other-thing")17:47
dstufftterrylhowe: Not sure I udnerstand the question, you don't have to override it17:47
briancurtinterrylhowe: are you talking about what's there today in master with how my plugin has its own preference?17:48
terrylhoweso your UserPreference isn’t using that patch I threw together?17:48
dstufftwhich "your" are you talking about :)17:49
terrylhowebriancurtin: github changes17:49
briancurtinterrylhowe: i made one that does work with that, but it's the one that once you've loaded Rackspace you can only do Rackspace, since with the way the module loader and the entry points are setup, last one wins17:49
terrylhoweand it is nondeterministic?17:50
dstufftit's deterministic but not controllable17:50
terrylhoweshould we add a openstack.extension entry point17:50
briancurtinterrylhowe: this one works with your current branch but it will then only work for this plugin, or whatever is the last plugin
terrylhoweand load that after the services are loaded?17:50
dstufftstevedore uses pkg_resources under the covers, and under the covers it's goign to load the last one it finds on sys.path17:50
dstufftwhich means if you have vendor plugins for say hp installed, you'll never get them because openstack comes after h, or if you have rackspace installed you'll always get that, becuase r comes after o17:51
dstufftunless you're using easy_install17:51
dstufftin which case it'll be in the order you installed17:52
dstufftor if you're using Debian and you installed one with pip and one with apt you'll get the one that you installed using pip17:52
terrylhoweso is that what the provider is for?17:52
terrylhowethe entrypoint becomes
dstufftthe provider just maps a short name to a class, the idea is that the short name would be "unique" (although not guarenteed to be unique by any mechanism, just by convention) string to a class, we load the class and the class has attributes that lets you discover the services17:53
dstufftso you don't use entry points for anything except mapping a string to a python class17:53
dstufftthe provider entrypint*17:54
terrylhowewell, the idea that someone could specify what extensions to load might sastisfy everyone including jamie17:54
*** stevemar has joined #openstack-sdks17:54
dstufftthe way it's written, the entry points are actually just a convience17:57
dstufftyou can pass the class itself in too17:57
dstufft``from rackspace.providers import Rackspace; connection.Connect(provider=Rackspace)`` for example17:57
dstufftthe entry points are just a convience that allows people to just pass a string through17:57
terrylhoweare you guys going to submit a patch with something that works better?17:58
dstufftonce I get the tests working and the new code written I'll submit a CR17:58
terrylhowesweet, thanks17:58
terrylhoweinsteaad of provider dstufft might want to say extensions and make it a list someone might develop their own sdk that uses the openstacksdk that isn’t a provider18:01
dstufftI can change the name to whatever, but I don't think accepting a list makes sense, the class is essentially a namespace that maps service names to service class18:02
dstufftI'm not sure what the sematnics of accepting a list would be18:03
terrylhoweI was thinking someone might want to load multiple extensions like if they were working on two stackforge projects that are not in the sdk18:05
terrylhoweit could always be added later I suppose18:05
briancurtinplugin instead of provider might work for a name18:06
dstufftAh I see, you mean about adding new service types which aren't part of the SDK already?18:06
dstufftbriancurtin: one thing in is that i'd name it "Rackspace" instead of "Identity"18:08
briancurtinYeah I just threw that in there, can figure it out18:09
briancurtinterrylhowe: great point about multiple extensions18:09
dstufftcurrently you'd be required to make a subclass (possibly subclassing multiple things) to handle combining multiple things, we could do something conceptually similar a ChainMap though to accept a list18:11
terrylhoweif UserPreference takes extensions[] and loads whatever services the user wants *after* the regular sdk ones18:13
terrylhoweI’d think it would be good to go18:13
terrylhoweis there anything else you guys needed to change in user preferences?18:13
dstufftby "loaded after" you mean, "takes precedence over" right?18:13
terrylhoweright, if one of the extensions included ‘compute’ it would use that18:14
*** rmcall has quit IRC18:27
*** pm90_ has quit IRC18:30
dstufftterrylhowe: briancurtin ok, my branch now supports a list of providers, if you do something like Connection(provider=["rackspace", "something else"]) you'll get the services from *both* providers, left most wins18:47
briancurtindstufft: works well when given a list, but fyi a single string is still going through the collections.Iterable case in UserPreference.__init__18:56
briancurtinit looks good though18:56
dstufftbriancurtin: ah right, stupid strings18:57
*** britthouser has quit IRC19:02
dstufftI gotta run for a bit, I'll rename provider to plugin and get tests done after that19:03
*** britthouser has joined #openstack-sdks19:03
briancurtinit works, and awesome. let me know if i can help19:03
*** britthouser has quit IRC19:04
*** britthouser has joined #openstack-sdks19:04
*** pm90_ has joined #openstack-sdks19:07
*** pm90_ has quit IRC19:11
*** pm90_ has joined #openstack-sdks19:11
*** stevemar has quit IRC19:13
*** stevemar has joined #openstack-sdks19:33
*** rmcall has joined #openstack-sdks19:36
*** rmcall has quit IRC19:42
*** rmcall has joined #openstack-sdks19:43
*** rmcall has quit IRC19:52
*** etoews has quit IRC20:07
*** etoews has joined #openstack-sdks20:11
*** pm90_ has quit IRC20:32
*** bnemec is now known as beekneemech20:37
*** etoews has quit IRC20:47
*** etoews has joined #openstack-sdks20:50
*** stevemar has quit IRC21:45
*** pm90_ has joined #openstack-sdks21:46
*** etoews_ has joined #openstack-sdks22:15
*** etoews has quit IRC22:19
*** pm90_ has quit IRC22:46
*** etoews_ has quit IRC23:19
*** sigmavirus24 is now known as sigmavirus24_awa23:30

Generated by 2.14.0 by Marius Gedminas - find it at!