GCE: healthcheck: add description param to ex_create_healthcheck(); targetpool: multiple bugfixes

Fix #1:

targetpool = driver.ex_get_targetpool('tpname')
targetpool.add_node(node)
node.destroy() # targetpool still contains the node
targetpool = driver.ex_get_targetpool('tpname')
    # targetpool.nodes contains node uri string (in addition to possible other node objects)
    # as produced by _to_targetpool because the node is in the pool but is destroyed
targetpool.remove_node(node) # raises an exception, removes the node nevertheless.

Expected behavior: remove the node, return true

Fix #2:
targetpool.add(node)
targetpool.add(node)
    # targetpool.nodes contains 2 copies of node
    # actual targetpool resource on the GCE side doesn't contain 2 copies

Expected behavior: no duplicates in targetpool.nodes, the node list matches GCE side

Fix/Improvement #3:
Allow specifying nodes by fully-qualified node uri in add_node and remove_node.

if tp.nodes:
  tp.remove_node(tp.nodes[0]) # fails if the node in the list doesn't exist

exoected behavior: should be able to remove any node from the list

GCE allows adding non-existent nodes to the targetpool and doesn't automatically
remove nodes from the pool if you delete them. libcloud should support doing the same.

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
GCE: fix ex_targetpool_add_healthcheck and ex_targetpool_remove_healthcheck.

The requests were malformed and thus did nothing.

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
GCE: add a parameter to ex_create_address to promote specific ephemeral addresses to static ones.

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
GCE: add description parameter to ex_create_forwarding_rule, improve tests; fix documentation and test fixtures for health checks

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
GCE: fix creating a forwarding rule with a static IP

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
GCE: ex_create_firewall: allow creation og firewalls with sourceRanges = [], preserve behavior for sourceRanges = None, preserve default value.

GCE documentation states that firewall allows traffic
if it matches either sourceRanges or sourceTags values.
Thus, sourceRanges = [] is a valid parameter value.

Although it would be better to simply set ["0.0.0.0/0"]
as the default, for minimal API breakage, None value is
still supported.

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
GCE: fix parameter name for protocol in ex_create_forwarding_rule

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
GCE: lint

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
Fix lint.
Update CHANGES.

Closes #360
Add virtualization type option for EC2 image registration

Closes #361

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
Added ex_create_image for the GCE compute provider

[LIBCLOUD-661] Added ex_create_image for the GCE compute provider - Fixes to docstring after pull request review

Closes #358

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
LIBCLOUD-616: Add some methods to cloudstack driver (create_volume_snapshot, list_snapshots, destroy_volume_snapshot, create_snapshot_template, ex_list_os_types)

Signed-off-by: Sebastien Goasguen <runseb@gmail.com>

This closes #363
Cloudstack - Added VPC support and Egress Firewall rule support

Signed-off-by: Sebastien Goasguen <runseb@gmail.com>

This closes: #364
Add extra data from openstack volume to object

Closes #366

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
Make openstack create_volume return a StorageVolume

Closes #365

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
Fix docstrings.
Update tox "docs" target to also generate API documentation for the whole
libcloud package.
Re-generate supported methods table.
Also generate api docs files on readthedocs.