This pull request represents a new OpenStack driver based on python-novaclient. 
There are no tests at this time, so it's not ready to merge. I wanted to spark 
some discussion on this possibility, which I am very much for. 
python-novaclient is actually used internally by Rackspace and other OpenStack 
providers, so this is likely to be extremely well-maintained, plus novaclient 
already covers a lot of corner cases. To do it from scratch in libcloud results 
in a great deal of duplication of work and code, and would probably still lag 
on robustness unless we were to actually tediously crib nearly all of the 
novaclient logic.

BTW, the first commit collapses the OpenStack 1.0 driver into the Rackspace 
driver (the only public implementation of OpenStack 1.0), as has been discussed 
recently on the mailing list and in IRC, resulting in a general consensus that 
this is a good thing to do. Aside from that, the bit you really want to look at 
for the novaclient-based driver is *all* in 
libcloud/compute/drivers/openstack.py.

This is a proposed solution for 
https://issues.apache.org/jira/browse/LIBCLOUD-83

You can merge this Pull Request by running:

  git pull https://github.com/racker/libcloud nova-client-with-novaclient

Or you can view, comment on it, or merge it online at:

  https://github.com/apache/libcloud/pull/24

-- Commit Summary --

* Remove OpenStack 1.0 support, collapsing into RS.
* Beginning of PoC novaclient-based Nova driver.
* Pyflakes, shhh.
* Allow a subclass to specify API version.
* Whoops - use the param, don't fetch the list.
* Add list_sizes.
* Add list_images.
* Add ex_set_password().
* Add ex_set_server_name.
* Make _to_node handle no-IPs.
* Add create_node().
* Add ex_resize-related methods.
* Use resource manager ops to save round-trips.
* Add rebuild().
* Skeleton support for undocumented floating IPs.
* Add reboot_node().
* Add destroy_node() and ex_get_node().
* Add ex_quotas().
* Add ex_save_image().
* Some discussion comments.
* Require python-novaclient in setup.py.

-- File Changes --

M libcloud/compute/drivers/openstack.py (806)
M libcloud/compute/drivers/rackspace.py (618)
M setup.py (11)
R test/compute/fixtures/rackspace/v1_slug_flavors_detail.xml (0)
R test/compute/fixtures/rackspace/v1_slug_images_detail.xml (0)
R test/compute/fixtures/rackspace/v1_slug_images_post.xml (0)
R test/compute/fixtures/rackspace/v1_slug_limits.xml (0)
R test/compute/fixtures/rackspace/v1_slug_servers.xml (0)
R test/compute/fixtures/rackspace/v1_slug_servers_detail.xml (0)
R test/compute/fixtures/rackspace/v1_slug_servers_detail_deployment_missing.xml 
(0)
R test/compute/fixtures/rackspace/v1_slug_servers_detail_deployment_pending.xml 
(0)
R 
test/compute/fixtures/rackspace/v1_slug_servers_detail_deployment_same_uuid.xml 
(0)
R test/compute/fixtures/rackspace/v1_slug_servers_detail_deployment_success.xml 
(0)
R test/compute/fixtures/rackspace/v1_slug_servers_detail_empty.xml (0)
R test/compute/fixtures/rackspace/v1_slug_servers_detail_metadata.xml (0)
R test/compute/fixtures/rackspace/v1_slug_servers_ips.xml (0)
R test/compute/fixtures/rackspace/v1_slug_servers_metadata.xml (0)
R test/compute/fixtures/rackspace/v1_slug_shared_ip_group.xml (0)
R test/compute/fixtures/rackspace/v1_slug_shared_ip_groups.xml (0)
R test/compute/fixtures/rackspace/v1_slug_shared_ip_groups_detail.xml (0)
M test/compute/test_deployment.py (2)
D test/compute/test_openstack.py (413)
M test/compute/test_rackspace.py (386)

-- Patch Links --

  https://github.com/apache/libcloud/pull/24.patch
  https://github.com/apache/libcloud/pull/24.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/apache/libcloud/pull/24

Reply via email to