libcloud is not a collection of dependencies on other python code. it is a library interacting with rest APIs.
this has been a core part of its design from the very beginning. -1 to merging. On Fri, Sep 16, 2011 at 3:18 AM, Mike Nerone <reply+i-1661069-39729c8bfa0df364d880ed7936d5a186fafdb...@reply.github.com> wrote: > 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 >
