fog-openstack-tng/fog_openstack_tng — pull request #22 by elight (2014-04-15 15:36:08+00:00)
Title: [ServiceDiscovery] Now requires OSC services lazily

* Services are now treated as plugins
* Services register with ServiceDiscovery
* Registration is explicit: responsibility belongs to Service to
self-register
* Currently only supports OSC
* TODO: Add mutator to register providers, e.g. rackspace, hp
* provider name could then be used in the require path for the
service
* Would attempt to load from OSC then OSC providers as registered

Guiding philosophy: Services should encapsulate information about their
discovery as much as possible. Spreading information about a single
Service across multiple classes makes OSC harder to maintain.

Downside: ServiceDiscovery becomes a bit more complex.

Please bear in mind that minimal refactoring has been done at this
point. There are a bunch of public class methods to be moved around
later if we go this route.