-
-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fog::Core
Provider/Service registration
#105
Comments
Also to improve loading, there should be checks possible against each provider/service that is registered checking for dependencies or configuration.
So for each registered provider, we can avoid loading the bulk of anything based on criteria we've been dealing with for a while. Namely you can require When testing, providers can decide if they are configured and the tests run only those who are. |
I think this is a good starting point. What if we start using |
I always get pointed back to https://www.ruby-forum.com/topic/3036681 when Really what I was planning for those checks was allowing questions to be asked to solve a few problems. So in That is kind of secondary though. First we need to register providers and services (with versions) and expose something that returns the correct Class when The additional tricky part is that Still haven't decided the best way to avoid polluting the Going to have a spike on this today and see if I can get some code ready. |
👍 Thanks for the link. I'm gonna have to start refactoring my projects asap. 😅 |
Prepartion for fog/fog-core#105
I dug out my old code and moved some bits around. Some of the original names would have clashed with files after the split. I've written tests (fog/fog#3326) to check the current (as at v1.25.0) interface to the So I hope to get those tests working against my version of I have a rough I need to look at moving stuff from the bin to this new class. I'll try to pull together enough code to push later. |
@tokengeek Sounds good, just let me know if you need anything. Thanks! |
Prepartion for fog/fog-core#105
So a quick update on this. I have a simple registry in Fog::Core, a new class for providers to inherit from and a rough prototype of fog-brightbox. I'm erring towards backward compatibility since there is a simple method there anyway that builds a hash as the current "registry" but then parts delegate to the "bin" stuff. I am still trying to get a few issues resolved before I push the code because I keep finding other issues the more I dig in. In adding tests I discovered fog/fog-storm_on_demand#1 for example. The main one is the use of I'm trying to solve it in the least disruptive manner. I find the most disruptive being forcing an update to every provider in order to make it work. So I'm trying to allow configuration in I don't want to rush this because of the coordination involved across many projects. When I have a stable prototype across all three layers I'll try to get it pushed. I think I'm going to ticket fog 2.0 and I can probably do with help from people triaging issues into "next release", a "1.99" release with lots of deprecation warnings switched on and the actual "2.0" Pretty much we should feature freeze fog 1.x I can then try and get some of this stuff done in the next weeks whilst I (may) have some free time / holiday. |
👍 |
Much of the extraction so far has been for unsupported stuff. And we have access to push to everything if needed. So if the best way is to change everything, we can make it happen. Obviously changing less seems preferable though. |
Prepartion for fog/fog-core#105
This issue has been automatically marked stale due to inactivity. It will be closed if no further activity occurs. Thank you for your contributions. |
This is work in progress specification for adding core functionality to register a provider and its services within
Fog::Core
making the register available to third party applications.This is an expansion of #16
Goals:
fog
references no providers in code only dependencies. For any provider that is required, they register themselves and are available through the current API.fog-provider
can contain all the code for a provider.fog
and "new experimental provider" and NEP is available via current APIFog::Core
.fog
since it should be usable programmatically from third party applications.This is arising from fog/fog-rackspace#10 where the need for this functionality meant quite a disruptive change of code occurred.
/cc @geemus @plribeiro3000 @mdarby
The text was updated successfully, but these errors were encountered: