Still have tests to add and clean up, but wanted to open a pull request in case anyone has feedback on any of the refactoring or the factory use, which, as I said in the commit, "effectively makes the OpenStack driver appear as a single driver that supports all versions, specified during instantiation (except it's much easier to maintain)."
You can merge this Pull Request by running: git pull https://github.com/racker/libcloud nova-1.1-new Or you can view, comment on it, or merge it online at: https://github.com/apache/libcloud/pull/26 -- Commit Summary -- * Existing l.c.d.openstack to l.c.d.openstack.v1_0. * Remove extraneous check for force_base_url. * Can't assume a specific class. * Base version-agnostic OSNodeDriver class. * Add ability to pass auth_url during instantiation. * Implement version-agnostic OSResponse. * Class attrs obsolete __init__(). * Fix chicken-and-egg problem. * Bunch of PEP8 fixes to files I just touched. * Ver-agnostic base for OS Compute connections. * Let httplib set header. * Remove Auth 1.1 support and allow tenant_id. * Propogate tenant_id support up the stack. * Make auth URLs fully explicit. * Correct the version (and 1.0 doesn't use /auth). * Remove unused vars & move accept_format baseward. * Handle content-type more consistently. * Handle body encoding in one place (v1.0, too). * Handle no-body-in-response. * Hey, an OpenStack Nova 1.1 driver! * Methods for get-*, delete image, and get quotas. * Turn OS node driver's base class into a factory. * Make Provider.OPENSTACK ref the factory. -- File Changes -- M demos/secrets.py-dist (3) M libcloud/common/base.py (26) M libcloud/common/openstack.py (141) M libcloud/common/rackspace.py (4) M libcloud/compute/drivers/linode.py (5) A libcloud/compute/drivers/openstack/__init__.py (147) R libcloud/compute/drivers/openstack/v1_0.py (117) A libcloud/compute/drivers/openstack/v1_1.py (178) M libcloud/compute/drivers/rackspace.py (2) M libcloud/compute/drivers/rimuhosting.py (23) M libcloud/compute/drivers/voxel.py (38) M test/__init__.py (3) M test/secrets.py-dist (3) -- Patch Links -- https://github.com/apache/libcloud/pull/26.patch https://github.com/apache/libcloud/pull/26.diff -- Reply to this email directly or view it on GitHub: https://github.com/apache/libcloud/pull/26
