You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by an...@apache.org on 2017/04/21 05:42:48 UTC

[01/16] libcloud git commit: add ex_encrypted and ex_kms_key_id kwargs in EC2NodeDriver.create_volume

Repository: libcloud
Updated Branches:
  refs/heads/trunk 2883adb3a -> 33c62e155


add ex_encrypted and ex_kms_key_id kwargs in EC2NodeDriver.create_volume


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/55cf64ab
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/55cf64ab
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/55cf64ab

Branch: refs/heads/trunk
Commit: 55cf64abb1656fb719e12027f6155f9b006b68e2
Parents: 22aa0a0
Author: ViktorOgnev <v....@scalr.com>
Authored: Mon Jan 25 11:30:07 2016 +0300
Committer: ViktorOgnev <v....@scalr.com>
Committed: Mon Mar 28 11:11:27 2016 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/55cf64ab/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index 2562c72..1dacf40 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -3074,7 +3074,8 @@ class BaseEC2NodeDriver(NodeDriver):
         return self._get_terminate_boolean(res)
 
     def create_volume(self, size, name, location=None, snapshot=None,
-                      ex_volume_type='standard', ex_iops=None):
+                      ex_volume_type='standard', ex_iops=None,
+                      ex_encrypted=None, ex_kms_key_id=None):
         """
         Create a new volume.
 
@@ -3104,6 +3105,15 @@ class BaseEC2NodeDriver(NodeDriver):
                      is io1.
         :type iops: ``int``
 
+        :param ex_encrypted: Specifies whether the volume should be encrypted.
+        :type ex_encrypted: ``bool``
+
+        :param ex_kms_key_id: The full ARN of the AWS Key Management Service (AWS KMS)
+                        customer master key (CMK) to use when creating the encrypted volume.
+                        Example: arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.
+                        Only used if encrypted is set to True
+        :type ex_kms_key_id: ``str``
+
         :return: The newly created volume.
         :rtype: :class:`StorageVolume`
         """
@@ -3129,6 +3139,12 @@ class BaseEC2NodeDriver(NodeDriver):
         if ex_volume_type == 'io1' and ex_iops:
             params['Iops'] = ex_iops
 
+        if ex_encrypted:
+            params['Encrypted'] = 1
+
+        if ex_kms_key_id:
+            params['KmsKeyId'] = ex_kms_key_id
+
         volume = self._to_volume(
             self.connection.request(self.path, params=params).object,
             name=name)


[03/16] libcloud git commit: fix docstring indent

Posted by an...@apache.org.
fix docstring indent


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/d648d9a6
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/d648d9a6
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/d648d9a6

Branch: refs/heads/trunk
Commit: d648d9a617911366332a1ed128e28c9d0dfeada0
Parents: 4d06cfe
Author: ViktorOgnev <v....@scalr.com>
Authored: Mon Mar 28 12:10:09 2016 +0300
Committer: ViktorOgnev <v....@scalr.com>
Committed: Mon Mar 28 12:10:50 2016 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/d648d9a6/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index f88bc52..07637c8 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -3113,8 +3113,8 @@ class BaseEC2NodeDriver(NodeDriver):
                             when creating the encrypted volume.
                             Example:
                             arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123
-                                                    -456a-a12b-a123b4cd56ef.
-                            Only used if encrypted is set to True
+                            -456a-a12b-a123b4cd56ef.
+                            Only used if encrypted is set to True.
         :type ex_kms_key_id: ``str``
 
         :return: The newly created volume.


[12/16] libcloud git commit: tests updated, ex_volume_modify() response parsing fixed

Posted by an...@apache.org.
tests updated, ex_volume_modify() response parsing fixed


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/606b5f2c
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/606b5f2c
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/606b5f2c

Branch: refs/heads/trunk
Commit: 606b5f2c8c320fcbe45d17a9a734372d4684d175
Parents: 7ea29c9
Author: Hennadii Stas <ut...@gmail.com>
Authored: Thu Apr 20 11:42:27 2017 +0300
Committer: Hennadii Stas <ut...@gmail.com>
Committed: Thu Apr 20 13:17:24 2017 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py   | 4 +++-
 libcloud/test/compute/test_ec2.py | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/606b5f2c/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index be5644e..22d3a64 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -5647,7 +5647,9 @@ class BaseEC2NodeDriver(NodeDriver):
 
         response = self.connection.request(self.path,
                                            params=parameters.copy()).object
-        return self._to_volume_modification(response)
+
+        return self._to_volume_modification(response.findall(
+            fixxpath(xpath='volumeModification', namespace=NAMESPACE))[0])
 
     def ex_describe_volumes_modifications(self, dry_run=False, volume_ids=None,
                                           filters=None, next_token=None,

http://git-wip-us.apache.org/repos/asf/libcloud/blob/606b5f2c/libcloud/test/compute/test_ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py
index c0c9091..cce28c1 100644
--- a/libcloud/test/compute/test_ec2.py
+++ b/libcloud/test/compute/test_ec2.py
@@ -1187,6 +1187,7 @@ class EC2Tests(LibcloudTestCase, TestCaseMixin):
                   'Size': 2,
                   'Iops': 1000}
         volume_modification = self.driver.ex_modify_volume(volume, params)
+
         self.assertIsNone(volume_modification.end_time)
         self.assertEqual('modifying', volume_modification.modification_state)
         self.assertEqual(300, volume_modification.original_iops)


[16/16] libcloud git commit: changes for #1036

Posted by an...@apache.org.
changes for #1036


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/33c62e15
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/33c62e15
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/33c62e15

Branch: refs/heads/trunk
Commit: 33c62e1557ef398a0c70f6c09c8cddda40f0f4ec
Parents: eb2d4e9
Author: Anthony Shaw <an...@apache.org>
Authored: Fri Apr 21 15:41:54 2017 +1000
Committer: Anthony Shaw <an...@apache.org>
Committed: Fri Apr 21 15:41:54 2017 +1000

----------------------------------------------------------------------
 CHANGES.rst | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/33c62e15/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index 3070288..d7d51f2 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -25,6 +25,10 @@ Common
 Compute
 ~~~~~~~
 
+- [EC2] Add support for ModifyVolume and DescribeVolumesModifications
+  [GITHUB-1036]
+  (Hennadii Stas)
+
 - [ARM] Fix string representation of the VhdImage type and fix listing of Public IP addresses
   [GITHUB-1035]
   (Anthony Shaw)


[07/16] libcloud git commit: FAM-791 request fixed

Posted by an...@apache.org.
FAM-791 request fixed


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/e78c67e4
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/e78c67e4
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/e78c67e4

Branch: refs/heads/trunk
Commit: e78c67e497b62fca8bad9c6a3386f211b7f79c43
Parents: aecad3c
Author: Hennadii Stas <ut...@gmail.com>
Authored: Thu Mar 30 15:44:21 2017 +0300
Committer: Hennadii Stas <ut...@gmail.com>
Committed: Thu Apr 20 13:03:53 2017 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/e78c67e4/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index f3775df..400cb2c 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -5692,8 +5692,7 @@ class BaseEC2NodeDriver(NodeDriver):
         if max_results:
             params.update({'MaxResults': max_results})
 
-        response = self.connection.request(self.path, params=params,
-                                           method='GET').object
+        response = self.connection.request(self.path, params=params).object
 
         return self._to_volume_modifications(response)
 


[04/16] libcloud git commit: Merge branch 'trunk' of https://github.com/apache/libcloud into trunk

Posted by an...@apache.org.
Merge branch 'trunk' of https://github.com/apache/libcloud into trunk


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f2edb15a
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f2edb15a
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f2edb15a

Branch: refs/heads/trunk
Commit: f2edb15adc42fd22448973d3fb6f74bb0f8c43ef
Parents: d648d9a 3dd6d01
Author: mermoldy <s....@scalr.com>
Authored: Tue Jan 10 22:24:18 2017 +0200
Committer: mermoldy <s....@scalr.com>
Committed: Tue Jan 10 22:24:18 2017 +0200

----------------------------------------------------------------------
 .coveralls.yml                                  |     2 +
 .gitignore                                      |     1 +
 .pylintrc                                       |     2 +-
 .travis.yml                                     |    41 +-
 CHANGES.rst                                     |   647 +-
 MANIFEST.in                                     |     1 +
 PULL_REQUEST_TEMPLATE.md                        |    24 +
 README.rst                                      |    11 +-
 contrib/__init__.py                             |     0
 contrib/apply-patch.ps1                         |     9 +
 .../generate_provider_feature_matrix_table.py   |    21 +-
 contrib/scrape-ec2-prices.py                    |    11 +-
 demos/__init__.py                               |     0
 demos/compute_demo.py                           |     2 +-
 demos/example_aliyun_ecs.py                     |    86 +
 demos/example_aliyun_oss.py                     |    84 +
 demos/example_aliyun_slb.py                     |    56 +
 demos/gce_demo.py                               |   335 +-
 dist/deploy.sh                                  |    27 +
 doap_libcloud.rdf                               |    56 +
 .../images/provider_logos/cloudscale.png        |   Bin 0 -> 61533 bytes
 .../images/provider_logos/digitalocean.png      |   Bin 82057 -> 3376 bytes
 docs/_static/images/provider_logos/ovh.png      |   Bin 0 -> 47729 bytes
 docs/_static/images/provider_logos/rancher.png  |   Bin 0 -> 9386 bytes
 docs/_static/images/provider_logos/runabove.png |   Bin 15052 -> 0 bytes
 docs/backup/_supported_providers.rst            |    14 +-
 docs/committer_guide.rst                        |    30 +-
 .../_supported_methods_block_storage.rst        |    54 +-
 .../_supported_methods_image_management.rst     |    50 +-
 .../_supported_methods_key_pair_management.rst  |    52 +-
 docs/compute/_supported_methods_main.rst        |    50 +-
 docs/compute/_supported_providers.rst           |   162 +-
 docs/compute/drivers/auroracompute.rst          |    15 +
 docs/compute/drivers/azure.rst                  |    14 +-
 docs/compute/drivers/azure_arm.rst              |    54 +
 docs/compute/drivers/cloudscale.rst             |    75 +
 docs/compute/drivers/digital_ocean.rst          |    29 +-
 docs/compute/drivers/ec2.rst                    |     1 +
 docs/compute/drivers/ovh.rst                    |    81 +
 docs/compute/drivers/runabove.rst               |    77 -
 docs/compute/index.rst                          |     2 +-
 docs/compute/pricing.rst                        |     4 +-
 docs/container/_supported_methods.rst           |     2 +
 docs/container/_supported_providers.rst         |    18 +-
 docs/container/drivers/rancher.rst              |    72 +
 docs/dns/_supported_methods.rst                 |    60 +-
 docs/dns/_supported_providers.rst               |    60 +-
 docs/dns/drivers/buddyns.rst                    |    23 +
 docs/dns/drivers/digital_ocean.rst              |    10 +-
 docs/dns/drivers/luadns.rst                     |    25 +
 docs/dns/drivers/nfsn.rst                       |    25 +
 docs/dns/drivers/powerdns.rst                   |    43 +
 .../compute/auroracompute/create_node.py        |    22 +
 docs/examples/compute/azure_arm/instantiate.py  |     7 +
 .../cloudscale/cloudscale_compute_simple.py     |    27 +
 .../digitalocean/instantiate_api_v1.0.py        |     5 -
 docs/examples/compute/ovh/attach_volume.py      |    11 +
 docs/examples/compute/ovh/create_node.py        |    12 +
 docs/examples/compute/runabove/attach_volume.py |    11 -
 docs/examples/compute/runabove/create_node.py   |    12 -
 .../container/rancher/deploy_container.py       |    14 +
 .../container/rancher/deploy_service.py         |    17 +
 docs/examples/container/rancher/deploy_stack.py |    13 +
 .../container/rancher/instantiate_driver.py     |     9 +
 .../container/rancher/search_containers.py      |    12 +
 docs/examples/dns/buddyns/instantiate_driver.py |     5 +
 docs/examples/dns/luadns/instantiate_driver.py  |     5 +
 docs/examples/dns/nfsn/instantiate_driver.py    |     5 +
 .../examples/dns/powerdns/instantiate_driver.py |    13 +
 docs/faq.rst                                    |     2 +-
 docs/getting_started.rst                        |    14 +-
 docs/loadbalancer/_supported_methods.rst        |     8 +-
 docs/loadbalancer/_supported_providers.rst      |    34 +-
 docs/other/hacktoberfest.txt                    |    19 +
 docs/other/ssl-certificate-validation.rst       |    16 +
 ...-in-multithreaded-and-async-environments.rst |     2 +-
 docs/other/working-with-oo-apis.rst             |     7 +-
 docs/storage/_supported_methods_cdn.rst         |    18 +-
 docs/storage/_supported_methods_main.rst        |    20 +-
 docs/storage/_supported_providers.rst           |    60 +-
 docs/upgrade_notes.rst                          |     9 +
 example_aliyun_ecs.py                           |    79 -
 example_aliyun_oss.py                           |    82 -
 example_aliyun_slb.py                           |    55 -
 libcloud/__init__.py                            |    27 +-
 libcloud/backup/base.py                         |    12 +-
 libcloud/backup/drivers/dimensiondata.py        |   108 +-
 libcloud/backup/drivers/ebs.py                  |    15 +-
 libcloud/backup/providers.py                    |     9 +-
 libcloud/backup/types.py                        |     8 +-
 libcloud/base.py                                |    81 +
 libcloud/common/abiquo.py                       |     2 +-
 libcloud/common/aliyun.py                       |    19 +-
 libcloud/common/aws.py                          |     4 +-
 libcloud/common/azure.py                        |     3 +
 libcloud/common/azure_arm.py                    |   124 +
 libcloud/common/base.py                         |   335 +-
 libcloud/common/buddyns.py                      |    77 +
 libcloud/common/cloudsigma.py                   |    15 +
 libcloud/common/cloudstack.py                   |     2 +-
 libcloud/common/digitalocean.py                 |    71 +-
 libcloud/common/dimensiondata.py                |   497 +-
 libcloud/common/dnspod.py                       |    78 +
 libcloud/common/durabledns.py                   |     2 +
 libcloud/common/exceptions.py                   |     1 -
 libcloud/common/gandi.py                        |     1 +
 libcloud/common/gogrid.py                       |     3 +
 libcloud/common/google.py                       |    49 +-
 libcloud/common/liquidweb.py                    |     4 +-
 libcloud/common/luadns.py                       |    69 +
 libcloud/common/nfsn.py                         |   114 +
 libcloud/common/openstack.py                    |    27 +-
 libcloud/common/openstack_identity.py           |   338 +-
 libcloud/common/ovh.py                          |   173 +
 libcloud/common/providers.py                    |   107 +
 libcloud/common/runabove.py                     |   164 -
 libcloud/common/worldwidedns.py                 |     7 +-
 libcloud/common/xmlrpc.py                       |     1 +
 libcloud/common/zonomi.py                       |     2 +
 libcloud/compute/base.py                        |    12 +-
 libcloud/compute/deprecated.py                  |     5 +
 libcloud/compute/drivers/abiquo.py              |     9 +-
 libcloud/compute/drivers/auroracompute.py       |     4 +-
 libcloud/compute/drivers/azure_arm.py           |  1315 +
 libcloud/compute/drivers/bluebox.py             |     1 -
 libcloud/compute/drivers/ciscoccs.py            |    56 -
 libcloud/compute/drivers/cloudscale.py          |   246 +
 libcloud/compute/drivers/cloudstack.py          |    47 +-
 libcloud/compute/drivers/digitalocean.py        |   415 +-
 libcloud/compute/drivers/dimensiondata.py       |  2853 +-
 libcloud/compute/drivers/ec2.py                 |   527 +-
 libcloud/compute/drivers/ecs.py                 |   121 +-
 libcloud/compute/drivers/gce.py                 |  4276 +-
 libcloud/compute/drivers/kili.py                |     1 +
 libcloud/compute/drivers/libvirt_driver.py      |   133 +-
 libcloud/compute/drivers/openstack.py           |   101 +-
 libcloud/compute/drivers/ovh.py                 |   536 +
 libcloud/compute/drivers/profitbricks.py        |  4095 +-
 libcloud/compute/drivers/rackspace.py           |     4 +-
 libcloud/compute/drivers/rimuhosting.py         |     2 +-
 libcloud/compute/drivers/runabove.py            |   453 -
 libcloud/compute/drivers/vcl.py                 |     2 +-
 libcloud/compute/drivers/vcloud.py              |   132 +-
 libcloud/compute/drivers/vultr.py               |   113 +-
 libcloud/compute/providers.py                   |    83 +-
 libcloud/compute/types.py                       |   215 +-
 libcloud/container/drivers/docker.py            |   114 +-
 libcloud/container/drivers/kubernetes.py        |    23 +-
 libcloud/container/drivers/rancher.py           |   748 +
 libcloud/container/providers.py                 |    11 +-
 libcloud/container/types.py                     |     9 +-
 libcloud/container/utils/docker.py              |     4 +-
 libcloud/data/pricing.json                      |  1001 +-
 libcloud/dns/base.py                            |     2 +-
 libcloud/dns/drivers/auroradns.py               |    31 +-
 libcloud/dns/drivers/buddyns.py                 |   153 +
 libcloud/dns/drivers/cloudflare.py              |     1 +
 libcloud/dns/drivers/dnspod.py                  |   347 +
 libcloud/dns/drivers/durabledns.py              |     2 +-
 libcloud/dns/drivers/godaddy.py                 |    17 +-
 libcloud/dns/drivers/google.py                  |     1 +
 libcloud/dns/drivers/liquidweb.py               |     7 +-
 libcloud/dns/drivers/luadns.py                  |   293 +
 libcloud/dns/drivers/nfsn.py                    |   198 +
 libcloud/dns/drivers/nsone.py                   |    17 +-
 libcloud/dns/drivers/pointdns.py                |     2 +-
 libcloud/dns/drivers/powerdns.py                |   460 +
 libcloud/dns/drivers/rackspace.py               |    40 +-
 libcloud/dns/drivers/softlayer.py               |     2 +
 libcloud/dns/drivers/worldwidedns.py            |     2 +-
 libcloud/dns/providers.py                       |    29 +-
 libcloud/dns/types.py                           |    75 +-
 libcloud/httplib_ssl.py                         |   264 +-
 libcloud/loadbalancer/drivers/alb.py            |   321 +
 libcloud/loadbalancer/drivers/dimensiondata.py  |   102 +-
 libcloud/loadbalancer/drivers/elb.py            |    68 +-
 libcloud/loadbalancer/drivers/gce.py            |     5 +-
 libcloud/loadbalancer/drivers/rackspace.py      |    34 +-
 libcloud/loadbalancer/drivers/slb.py            |     2 +-
 libcloud/loadbalancer/providers.py              |    20 +-
 libcloud/loadbalancer/types.py                  |    26 +-
 libcloud/pricing.py                             |     8 +-
 libcloud/security.py                            |    37 +-
 libcloud/storage/base.py                        |   254 +-
 libcloud/storage/drivers/atmos.py               |     4 -
 libcloud/storage/drivers/azure_blobs.py         |    86 +-
 libcloud/storage/drivers/backblaze_b2.py        |     6 +
 libcloud/storage/drivers/cloudfiles.py          |    57 +-
 libcloud/storage/drivers/dummy.py               |     6 +
 libcloud/storage/drivers/google_storage.py      |   273 +-
 libcloud/storage/drivers/oss.py                 |   130 +-
 libcloud/storage/drivers/rgw.py                 |   125 +
 libcloud/storage/drivers/s3.py                  |   271 +-
 libcloud/storage/providers.py                   |    28 +-
 libcloud/storage/types.py                       |    87 +-
 libcloud/test/__init__.py                       |   208 +-
 .../fixtures/dimensiondata/_backup_DISABLE.xml  |     7 +
 .../fixtures/dimensiondata/_backup_ENABLE.xml   |    18 +
 .../fixtures/dimensiondata/_backup_EXISTS.xml   |     7 +
 .../fixtures/dimensiondata/_backup_INFO.xml     |    16 +
 .../dimensiondata/_backup_INFO_DISABLED.xml     |     7 +
 .../dimensiondata/_backup_INFO_NOCLIENT.xml     |     2 +
 .../dimensiondata/_backup_INFO_NOJOB.xml        |    11 +
 ...76_c76d_4d7c_b39d_3b72be0384c8_cancelJob.xml |     7 +
 ...6d_4d7c_b39d_3b72be0384c8_cancelJob_FAIL.xml |     7 +
 .../_backup_client_SUCCESS_PUT.xml              |    13 +
 .../_backup_client_schedulePolicy.xml           |     5 +
 .../_backup_client_storagePolicy.xml            |     6 +
 .../dimensiondata/_backup_client_type.xml       |     6 +
 .../fixtures/dimensiondata/_backup_modify.xml   |     7 +
 .../_remove_backup_client_BUSY.xml              |     7 -
 .../_remove_backup_client_FAIL.xml              |     7 +
 ...745_4d8a_9cbc_8dabe5a7d0e4_server_server.xml |    49 -
 ...ver_e75ead52_692f_4314_8725_c8a4f4d13a87.xml |    27 -
 ...ad52_692f_4314_8725_c8a4f4d13a87_DEFAULT.xml |    27 -
 ...2f_4314_8725_c8a4f4d13a87_backup_DISABLE.xml |     7 -
 ...92f_4314_8725_c8a4f4d13a87_backup_ENABLE.xml |    18 -
 ...92f_4314_8725_c8a4f4d13a87_backup_EXISTS.xml |     7 -
 ..._692f_4314_8725_c8a4f4d13a87_backup_INFO.xml |    16 -
 ...4_8725_c8a4f4d13a87_backup_INFO_DISABLED.xml |     7 -
 ...4_8725_c8a4f4d13a87_backup_INFO_NOCLIENT.xml |     2 -
 ...4314_8725_c8a4f4d13a87_backup_INFO_NOJOB.xml |    11 -
 ...5_c8a4f4d13a87_backup_client_SUCCESS_PUT.xml |    13 -
 ...8a4f4d13a87_backup_client_schedulePolicy.xml |     5 -
 ...c8a4f4d13a87_backup_client_storagePolicy.xml |     6 -
 ...314_8725_c8a4f4d13a87_backup_client_type.xml |     6 -
 ...92f_4314_8725_c8a4f4d13a87_backup_modify.xml |     7 -
 .../fixtures/dimensiondata/server_server.xml    |    49 +
 .../dimensiondata/server_server_NOBACKUP.xml    |    29 +
 ...ver_e75ead52_692f_4314_8725_c8a4f4d13a87.xml |    27 +
 ...ad52_692f_4314_8725_c8a4f4d13a87_DEFAULT.xml |    27 +
 libcloud/test/backup/test_dimensiondata.py      |   431 -
 libcloud/test/backup/test_dimensiondata_v2_3.py |   503 +
 libcloud/test/backup/test_dimensiondata_v2_4.py |   503 +
 libcloud/test/common/test_aliyun.py             |    15 +
 libcloud/test/common/test_aws.py                |    15 +
 libcloud/test/common/test_base.py               |    15 +
 libcloud/test/common/test_base_driver.py        |    68 +
 libcloud/test/common/test_cloudstack.py         |     2 +-
 libcloud/test/common/test_digitalocean_v1.py    |    82 -
 libcloud/test/common/test_digitalocean_v2.py    |     8 +-
 libcloud/test/common/test_google.py             |    22 +-
 libcloud/test/common/test_nfsn.py               |    81 +
 libcloud/test/common/test_openstack.py          |    11 +-
 libcloud/test/common/test_openstack_identity.py |   119 +-
 libcloud/test/common/test_ovh.py                |    29 +
 libcloud/test/common/test_retry_limit.py        |    26 -
 libcloud/test/common/test_runabove.py           |    29 -
 .../abiquo/vdc_4_vapp_5_vm_3_not_allocated.xml  |     1 -
 .../fixtures/abiquo/vdc_4_vapp_5_vms.xml        |     2 +-
 .../fixtures/abiquo/vdc_4_vapp_6_vm_3.xml       |     2 +-
 .../abiquo/vdc_4_vapp_6_vm_3_allocated.xml      |     2 +-
 .../abiquo/vdc_4_vapp_6_vm_3_deployed.xml       |     2 +-
 .../abiquo/vdc_4_vapp_6_vm_creation_ok.xml      |     2 +-
 .../fixtures/abiquo/vdc_4_vapp_6_vms.xml        |     2 +-
 .../abiquo/vdc_4_vapp_6_vms_allocated.xml       |     2 +-
 ...777_7777_7777_777777777777_oauth2_token.json |     1 +
 ...9_providers_Microsoft_Commerce_RateCard.json | 84270 +++++++++++++++++
 ...99999999999_providers_Microsoft_Compute.json |   200 +
 ...rosoft_Compute_locations_eastus_vmSizes.json |    28 +
 .../fixtures/cloudscale/create_node.json        |    46 +
 .../fixtures/cloudscale/list_images.json        |     1 +
 .../compute/fixtures/cloudscale/list_nodes.json |    48 +
 .../compute/fixtures/cloudscale/list_sizes.json |     2 +
 .../cloudstack/createVolume_withvolumetype.json |     1 +
 .../listDiskOfferings_withvolumetype.json       |     1 +
 .../cloudstack/listVirtualMachines_default.json |     2 +-
 .../cloudstack/listZones_withvolumetype.json    |     1 +
 .../fixtures/digitalocean/ex_change_kernel.json |    12 +
 .../fixtures/digitalocean/ex_hard_reboot.json   |    12 +
 .../fixtures/digitalocean_v1/create_node.json   |     1 -
 .../fixtures/digitalocean_v1/destroy_node.json  |     1 -
 .../compute/fixtures/digitalocean_v1/error.txt  |     1 -
 .../digitalocean_v1/error_invalid_image.json    |     1 -
 .../digitalocean_v1/ex_create_ssh_key.json      |     1 -
 .../digitalocean_v1/ex_destroy_ssh_key.json     |     1 -
 .../digitalocean_v1/ex_list_ssh_keys.json       |     1 -
 .../digitalocean_v1/ex_rename_node.json         |     1 -
 .../fixtures/digitalocean_v1/list_images.json   |   145 -
 .../digitalocean_v1/list_locations.json         |     1 -
 .../fixtures/digitalocean_v1/list_nodes.json    |     1 -
 .../digitalocean_v1/list_nodes_empty.json       |     1 -
 .../digitalocean_v1/list_nodes_page_2.json      |    95 -
 .../fixtures/digitalocean_v1/list_sizes.json    |     1 -
 .../fixtures/digitalocean_v1/reboot_node.json   |     1 -
 .../fixtures/digitalocean_v2/attach_volume.json |    34 +
 .../fixtures/digitalocean_v2/create_volume.json |    32 +
 .../digitalocean_v2/create_volume_snapshot.json |    14 +
 .../fixtures/digitalocean_v2/detach_volume.json |    34 +
 .../digitalocean_v2/ex_change_kernel.json       |    12 +
 .../digitalocean_v2/ex_hard_reboot.json         |    12 +
 .../digitalocean_v2/list_volume_snapshots.json  |    44 +
 .../fixtures/digitalocean_v2/list_volumes.json  |    38 +
 .../digitalocean_v2/list_volumes_empty.json     |     7 +
 .../2.4/change_nic_networkadapter_response.xml  |     7 +
 .../2.4/exchange_nic_vlans_response.xml         |     8 +
 .../dimensiondata/2.4/image_customerImage.xml   |    57 +
 ...age_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml |    19 +
 ...age_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml |    19 +
 .../dimensiondata/2.4/image_osImage.xml         |    40 +
 ...age_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml |    13 +
 ...age_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml |    14 +
 .../dimensiondata/2.4/import_image_response.xml |     8 +
 .../dimensiondata/2.4/server_GetServer.xml      |    42 +
 .../dimensiondata/2.4/server_cleanServer.xml    |     9 +
 .../dimensiondata/2.4/server_clone_response.xml |     9 +
 .../dimensiondata/2.4/server_server.xml         |   192 +
 .../dimensiondata/2.4/server_server_NA3.xml     |    56 +
 ...ver_e75ead52_692f_4314_8725_c8a4f4d13a87.xml |    30 +
 .../2.4/server_server_paginated.xml             |    58 +
 .../fixtures/dimensiondata/audit_log.csv        |    25 +
 ...8a_9cbc_8dabe5a7d0e4_image_customerImage.xml |    50 -
 ...age_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml |    17 -
 ...age_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml |    17 -
 ...e5a7d0e4_image_customerImage_BAD_REQUEST.xml |     6 -
 ...745_4d8a_9cbc_8dabe5a7d0e4_image_osImage.xml |    34 -
 ...age_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml |    11 -
 ...c_8dabe5a7d0e4_image_osImage_BAD_REQUEST.xml |     6 -
 ...age_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml |    12 -
 ...c_8dabe5a7d0e4_infrastructure_datacenter.xml |   188 -
 ...abe5a7d0e4_infrastructure_datacenter_NA9.xml |    54 -
 ...bc_8dabe5a7d0e4_network_addPublicIpBlock.xml |     7 -
 ..._8dabe5a7d0e4_network_createFirewallRule.xml |     8 -
 ..._9cbc_8dabe5a7d0e4_network_createNatRule.xml |     9 -
 ..._8dabe5a7d0e4_network_deleteFirewallRule.xml |     8 -
 ..._9cbc_8dabe5a7d0e4_network_deleteNatRule.xml |     8 -
 ...8dabe5a7d0e4_network_deleteNetworkDomain.xml |     8 -
 ...d8a_9cbc_8dabe5a7d0e4_network_deleteVlan.xml |     8 -
 ...8dabe5a7d0e4_network_deployNetworkDomain.xml |     8 -
 ...d8a_9cbc_8dabe5a7d0e4_network_deployVlan.xml |     9 -
 ...bc_8dabe5a7d0e4_network_editFirewallRule.xml |     8 -
 ...c_8dabe5a7d0e4_network_editNetworkDomain.xml |     7 -
 ..._4d8a_9cbc_8dabe5a7d0e4_network_editVlan.xml |     7 -
 ...d8a_9cbc_8dabe5a7d0e4_network_expandVlan.xml |     8 -
 ...a_9cbc_8dabe5a7d0e4_network_firewallRule.xml |   273 -
 ...ule_d0a20f59_77b9_4f28_a63b_e58496b73a6c.xml |    18 -
 ...5_4d8a_9cbc_8dabe5a7d0e4_network_natRule.xml |    21 -
 ...ule_2187a636_7ebb_49a1_a2ff_5d617f496dce.xml |     9 -
 ..._9cbc_8dabe5a7d0e4_network_networkDomain.xml |    43 -
 ...ain_8cdfd607_f429_4df6_9352_162cfc0891be.xml |     9 -
 ..._9cbc_8dabe5a7d0e4_network_publicIpBlock.xml |    10 -
 ...ock_4487241a_f0ca_11e3_9315_d4bed9b167ba.xml |     8 -
 ...ock_9945dc4a_bdce_11e4_8c14_b8ca3a5d9ef8.xml |     8 -
 ...8dabe5a7d0e4_network_removePublicIpBlock.xml |     8 -
 ...2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan.xml |    25 -
 ...lan_0e56433f_d808_4669_821d_812769517ff8.xml |    14 -
 ...9cbc_8dabe5a7d0e4_report_usageMonitoring.xml |     8 -
 ...745_4d8a_9cbc_8dabe5a7d0e4_server_addNic.xml |     9 -
 ...dabe5a7d0e4_server_antiAffinityRule_list.xml |    42 -
 ...4_server_antiAffinityRule_list_PAGINATED.xml |    42 -
 ...a7d0e4_server_changeServerMonitoringPlan.xml |     8 -
 ...8a_9cbc_8dabe5a7d0e4_server_deleteServer.xml |     9 -
 ...5a7d0e4_server_deleteServer_RESOURCEBUSY.xml |     8 -
 ...8a_9cbc_8dabe5a7d0e4_server_deployServer.xml |     8 -
 ...be5a7d0e4_server_disableServerMonitoring.xml |     8 -
 ...abe5a7d0e4_server_enableServerMonitoring.xml |     8 -
 ..._9cbc_8dabe5a7d0e4_server_powerOffServer.xml |     8 -
 ...5a7d0e4_server_powerOffServer_INPROGRESS.xml |     8 -
 ...8a_9cbc_8dabe5a7d0e4_server_rebootServer.xml |     8 -
 ...5a7d0e4_server_rebootServer_RESOURCEBUSY.xml |     7 -
 ...bc_8dabe5a7d0e4_server_reconfigureServer.xml |     5 -
 ..._4d8a_9cbc_8dabe5a7d0e4_server_removeNic.xml |     9 -
 ...d8a_9cbc_8dabe5a7d0e4_server_resetServer.xml |     8 -
 ...745_4d8a_9cbc_8dabe5a7d0e4_server_server.xml |   176 -
 ...4d8a_9cbc_8dabe5a7d0e4_server_server_NA3.xml |    50 -
 ...ver_e75ead52_692f_4314_8725_c8a4f4d13a87.xml |    27 -
 ...cbc_8dabe5a7d0e4_server_server_paginated.xml |    50 -
 ..._9cbc_8dabe5a7d0e4_server_shutdownServer.xml |     8 -
 ...5a7d0e4_server_shutdownServer_INPROGRESS.xml |     8 -
 ...d8a_9cbc_8dabe5a7d0e4_server_startServer.xml |     8 -
 ...abe5a7d0e4_server_startServer_INPROGRESS.xml |     8 -
 ...bc_8dabe5a7d0e4_server_updateVmwareTools.xml |     8 -
 .../dimensiondata/detailed_usage_report.csv     |    42 +
 .../dimensiondata/image_customerImage.xml       |    50 +
 ...age_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml |    17 +
 ...age_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml |    17 +
 .../image_customerImage_BAD_REQUEST.xml         |     6 +
 .../fixtures/dimensiondata/image_osImage.xml    |    34 +
 ...age_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml |    11 +
 .../dimensiondata/image_osImage_BAD_REQUEST.xml |     6 +
 ...age_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml |    12 +
 .../dimensiondata/infrastructure_datacenter.xml |   188 +
 .../infrastructure_datacenter_NA9.xml           |    54 +
 .../dimensiondata/ip_address_list_create.xml    |     9 +
 .../dimensiondata/ip_address_list_delete.xml    |    10 +
 .../dimensiondata/ip_address_list_edit.xml      |    10 +
 .../fixtures/dimensiondata/ip_address_lists.xml |    46 +
 .../ip_address_lists_FILTERBYNAME.xml           |    14 +
 .../dimensiondata/network_addPublicIpBlock.xml  |     7 +
 .../network_createFirewallRule.xml              |     8 +
 .../dimensiondata/network_createNatRule.xml     |     9 +
 .../network_deleteFirewallRule.xml              |     8 +
 .../dimensiondata/network_deleteNatRule.xml     |     8 +
 .../network_deleteNetworkDomain.xml             |     8 +
 .../dimensiondata/network_deleteVlan.xml        |     8 +
 .../network_deployNetworkDomain.xml             |     8 +
 .../dimensiondata/network_deployVlan.xml        |     9 +
 .../dimensiondata/network_editFirewallRule.xml  |     8 +
 .../dimensiondata/network_editNetworkDomain.xml |     7 +
 .../fixtures/dimensiondata/network_editVlan.xml |     7 +
 .../dimensiondata/network_expandVlan.xml        |     8 +
 .../dimensiondata/network_firewallRule.xml      |    35 +
 ...ule_d0a20f59_77b9_4f28_a63b_e58496b73a6c.xml |    18 +
 .../fixtures/dimensiondata/network_natRule.xml  |    21 +
 ...ule_2187a636_7ebb_49a1_a2ff_5d617f496dce.xml |     9 +
 .../dimensiondata/network_networkDomain.xml     |    43 +
 ...ain_8cdfd607_f429_4df6_9352_162cfc0891be.xml |     9 +
 .../dimensiondata/network_publicIpBlock.xml     |    10 +
 ...ock_4487241a_f0ca_11e3_9315_d4bed9b167ba.xml |     8 +
 ...ock_9945dc4a_bdce_11e4_8c14_b8ca3a5d9ef8.xml |     8 +
 .../network_removePublicIpBlock.xml             |     8 +
 .../fixtures/dimensiondata/network_vlan.xml     |    25 +
 ...lan_0e56433f_d808_4669_821d_812769517ff8.xml |    14 +
 .../fixtures/dimensiondata/port_list_create.xml |     9 +
 .../fixtures/dimensiondata/port_list_delete.xml |    10 +
 .../fixtures/dimensiondata/port_list_edit.xml   |     8 +
 .../fixtures/dimensiondata/port_list_get.xml    |    15 +
 .../fixtures/dimensiondata/port_list_lists.xml  |    38 +
 .../dimensiondata/report_usageMonitoring.xml    |     8 +
 .../fixtures/dimensiondata/server_GetServer.xml |    39 +
 .../fixtures/dimensiondata/server_addDisk.xml   |     9 +
 .../fixtures/dimensiondata/server_addNic.xml    |     9 +
 .../server_antiAffinityRule_list.xml            |    42 +
 .../server_antiAffinityRule_list_PAGINATED.xml  |    42 +
 .../server_changeServerMonitoringPlan.xml       |     8 +
 .../dimensiondata/server_cleanServer.xml        |     9 +
 .../dimensiondata/server_deleteServer.xml       |     9 +
 .../server_deleteServer_RESOURCEBUSY.xml        |     8 +
 .../dimensiondata/server_deployServer.xml       |     8 +
 .../server_disableServerMonitoring.xml          |     8 +
 .../server_enableServerMonitoring.xml           |     8 +
 .../dimensiondata/server_powerOffServer.xml     |     8 +
 .../server_powerOffServer_INPROGRESS.xml        |     8 +
 .../dimensiondata/server_rebootServer.xml       |     8 +
 .../server_rebootServer_RESOURCEBUSY.xml        |     7 +
 .../dimensiondata/server_reconfigureServer.xml  |     5 +
 .../dimensiondata/server_removeDisk.xml         |     6 +
 .../fixtures/dimensiondata/server_removeNic.xml |     9 +
 .../dimensiondata/server_resetServer.xml        |     8 +
 .../fixtures/dimensiondata/server_server.xml    |   176 +
 .../dimensiondata/server_server_NA3.xml         |    50 +
 ...ver_e75ead52_692f_4314_8725_c8a4f4d13a87.xml |    27 +
 .../dimensiondata/server_server_paginated.xml   |    50 +
 .../server_server_paginated_empty.xml           |     1 +
 .../dimensiondata/server_shutdownServer.xml     |     8 +
 .../server_shutdownServer_INPROGRESS.xml        |     8 +
 .../dimensiondata/server_startServer.xml        |     8 +
 .../server_startServer_INPROGRESS.xml           |     8 +
 .../dimensiondata/server_updateVmwareTools.xml  |     8 +
 .../dimensiondata/summary_usage_report.csv      |    13 +
 .../fixtures/dimensiondata/tag_applyTags.xml    |     6 +
 .../dimensiondata/tag_applyTags_BADREQUEST.xml  |     6 +
 .../fixtures/dimensiondata/tag_createTagKey.xml |     7 +
 .../tag_createTagKey_BADREQUEST.xml             |     6 +
 .../fixtures/dimensiondata/tag_deleteTagKey.xml |     6 +
 .../tag_deleteTagKey_BADREQUEST.xml             |     6 +
 .../fixtures/dimensiondata/tag_editTagKey.xml   |     6 +
 .../dimensiondata/tag_editTagKey_BADREQUEST.xml |     6 +
 .../fixtures/dimensiondata/tag_removeTag.xml    |     6 +
 .../dimensiondata/tag_removeTag_BADREQUEST.xml  |     6 +
 ...Key_5ab77f5f_5aa9_426f_8459_4eab34e03d54.xml |     6 +
 ...f_5aa9_426f_8459_4eab34e03d54_BADREQUEST.xml |     6 +
 .../fixtures/dimensiondata/tag_tagKey_list.xml  |    19 +
 .../dimensiondata/tag_tagKey_list_SINGLE.xml    |     8 +
 .../fixtures/dimensiondata/tag_tag_list.xml     |    36 +
 .../compute/fixtures/ecs/create_public_ip.xml   |     6 +
 .../fixtures/ecs/create_security_group.xml      |     4 +
 .../ecs/delete_security_group_by_id.xml         |     4 +
 .../ecs/describe_security_group_attributes.xml  |    26 +
 .../fixtures/fcu/ex_describe_instance_types.xml |    33 +
 .../fixtures/fcu/ex_describe_product_types.xml  |    18 +
 .../compute/fixtures/fcu/ex_describe_quotas.xml |    53 +
 .../fixtures/fcu/ex_get_product_type.xml        |     6 +
 .../fixtures/fcu/ex_modify_instance_keypair.xml |     5 +
 ...rs_myinstancegroup_listManagedInstances.json |    24 +
 .../fixtures/gce/aggregated_autoscalers.json    |   255 +
 .../compute/fixtures/gce/aggregated_disks.json  |   117 +-
 .../gce/aggregated_instanceGroupManagers.json   |   277 +
 .../fixtures/gce/aggregated_subnetworks.json    |    66 +
 .../gce/global_backendServices_web_service.json |     4 +-
 .../gce/global_images_family_notfound.json      |    13 +
 .../fixtures/gce/global_instanceTemplates.json  |    67 +
 .../gce/global_instanceTemplates_insert.json    |    12 +
 ...instanceTemplates_my_instance_template1.json |    60 +
 .../compute/fixtures/gce/global_networks.json   |    75 +-
 .../fixtures/gce/global_networks_cf.json        |    14 +
 .../gce/global_networks_custom_network.json     |    14 +
 .../fixtures/gce/global_sslcertificates.json    |    16 +
 .../gce/global_sslcertificates_example.json     |    10 +
 .../gce/global_sslcertificates_post.json        |    13 +
 ...eration_global_instanceTemplates_insert.json |    12 +
 ...s_operation_global_sslcertificates_post.json |    13 +
 ...on_regions_us-central1_subnetworks_post.json |    15 +
 ...nes_us_central1_a_instanceGroups_insert.json |    13 +
 ...l1_a_instanceGroups_myname_addInstances.json |    13 +
 ...central1_a_instanceGroups_myname_delete.json |    13 +
 ...a_instanceGroups_myname_removeInstances.json |    13 +
 ...1_a_instanceGroups_myname_setNamedPorts.json |    13 +
 .../projects_coreos-cloud_global_images.json    |    11 +
 ...oreos-cloud_global_images_family_coreos.json |    17 +
 .../fixtures/gce/regions_asia-east1.json        |    65 +
 .../fixtures/gce/regions_europe-west1.json      |    64 +
 .../fixtures/gce/regions_us-central1.json       |    65 +
 .../gce/regions_us-central1_subnetworks.json    |    18 +
 ...entral1_subnetworks_cf_972cf02e6ad49112.json |    11 +
 .../regions_us-central1_subnetworks_post.json   |    14 +
 .../compute/fixtures/gce/regions_us-east1.json  |    64 +
 ...s-east1_subnetworks_cf_972cf02e6ad49113.json |    11 +
 .../fixtures/gce/zones_asia-east1-b.json        |    10 +
 ...nes_us-central1-a_instanceGroupManagers.json |    30 +
 ...central1-a_instanceGroupManagers_insert.json |    16 +
 ...a_instanceGroupManagers_myinstancegroup.json |    24 +
 ...entral1-a_instanceGroup_myinstancegroup.json |    14 +
 ...ntral1-a_instanceGroup_myinstancegroup2.json |    14 +
 ...es_us-central1-a_instances_sn-node-name.json |    49 +
 ...al1-a_instanceGroupManagers_insert_post.json |    16 +
 ...b_instanceGroupManagers_myinstancegroup.json |    24 +
 ...entral1-b_instanceGroup_myinstancegroup.json |    14 +
 ...al1-b_instances_libcloud-lb-nopubip-001.json |    49 +
 .../compute/fixtures/gce/zones_us-east1-b.json  |    10 +
 .../zones_us-east1-b_instanceGroupManagers.json |    30 +
 ...s-east1-b_instanceGroup_myinstancegroup.json |    14 +
 .../gce/zones_us_central1_a_instanceGroups.json |    29 +
 ...nes_us_central1_a_instanceGroups_insert.json |    13 +
 ...nes_us_central1_a_instanceGroups_myname.json |    12 +
 ...l1_a_instanceGroups_myname_addInstances.json |    13 +
 ...central1_a_instanceGroups_myname_delete.json |    13 +
 ...1_a_instanceGroups_myname_listInstances.json |    15 +
 ...a_instanceGroups_myname_removeInstances.json |    13 +
 ...1_a_instanceGroups_myname_setNamedPorts.json |    13 +
 .../openstack_v1.1/_servers_detail.json         |    22 +
 .../compute/fixtures/ovh/auth_time_get.json     |     1 +
 .../test/compute/fixtures/ovh/flavor_get.json   |     1 +
 .../compute/fixtures/ovh/flavor_get_detail.json |     1 +
 .../test/compute/fixtures/ovh/image_get.json    |     1 +
 .../compute/fixtures/ovh/image_get_detail.json  |     1 +
 .../test/compute/fixtures/ovh/instance_get.json |     1 +
 .../fixtures/ovh/instance_get_detail.json       |     1 +
 .../compute/fixtures/ovh/instance_post.json     |     1 +
 .../test/compute/fixtures/ovh/region_get.json   |     1 +
 libcloud/test/compute/fixtures/ovh/ssh_get.json |     1 +
 .../compute/fixtures/ovh/ssh_get_detail.json    |     1 +
 .../test/compute/fixtures/ovh/volume_get.json   |     1 +
 .../compute/fixtures/ovh/volume_get_detail.json |     1 +
 .../fixtures/ovh/volume_snapshot_get.json       |    22 +
 .../ovh/volume_snapshot_get_details.json        |    10 +
 .../fixtures/profitbricks/attach_volume.json    |    34 +
 .../fixtures/profitbricks/attach_volume.xml     |    12 -
 .../fixtures/profitbricks/create_node.json      |    37 +
 .../fixtures/profitbricks/create_node.xml       |    13 -
 .../fixtures/profitbricks/create_volume.json    |    35 +
 .../fixtures/profitbricks/create_volume.xml     |    13 -
 .../profitbricks/create_volume_snapshot.json    |    30 +
 .../fixtures/profitbricks/destroy_node.xml      |    12 -
 .../fixtures/profitbricks/destroy_volume.xml    |    12 -
 .../fixtures/profitbricks/detach_volume.xml     |    12 -
 .../profitbricks/ex_clear_datacenter.xml        |    12 -
 .../profitbricks/ex_create_datacenter.json      |    20 +
 .../profitbricks/ex_create_datacenter.xml       |    13 -
 .../profitbricks/ex_create_firewall_rule.json   |    24 +
 .../profitbricks/ex_create_ip_block.json        |    22 +
 .../fixtures/profitbricks/ex_create_lan.json    |    17 +
 .../profitbricks/ex_create_load_balancer.json   |    18 +
 .../ex_create_network_interface.json            |    22 +
 .../ex_create_network_interface.xml             |    13 -
 .../profitbricks/ex_describe_datacenter.json    |   401 +
 .../profitbricks/ex_describe_datacenter.xml     |    15 -
 .../profitbricks/ex_describe_firewall_rule.json |    24 +
 .../profitbricks/ex_describe_image.json         |    32 +
 .../profitbricks/ex_describe_ip_block.json      |    21 +
 .../fixtures/profitbricks/ex_describe_lan.json  |    24 +
 .../profitbricks/ex_describe_load_balancer.json |    25 +
 .../profitbricks/ex_describe_location.json      |    12 +
 .../ex_describe_network_interface.json          |    31 +
 .../ex_describe_network_interface.xml           |    26 -
 .../fixtures/profitbricks/ex_describe_node.json |   111 +
 .../fixtures/profitbricks/ex_describe_node.xml  |    77 -
 .../profitbricks/ex_describe_snapshot.json      |    30 +
 .../profitbricks/ex_describe_volume.json        |    35 +
 .../profitbricks/ex_describe_volume.xml         |    22 -
 .../profitbricks/ex_destroy_datacenter.xml      |    10 -
 .../ex_destroy_network_interface.xml            |    12 -
 .../profitbricks/ex_list_attached_volumes.json  |   112 +
 .../profitbricks/ex_list_datacenters.json       |    52 +
 .../profitbricks/ex_list_datacenters.xml        |    19 -
 .../profitbricks/ex_list_firewall_rules.json    |    79 +
 .../profitbricks/ex_list_ip_blocks.json         |    50 +
 .../fixtures/profitbricks/ex_list_lans.json     |   157 +
 .../ex_list_load_balanced_nics.json             |    69 +
 .../profitbricks/ex_list_load_balancers.json    |   216 +
 .../ex_list_network_interfaces.json             |    69 +
 .../profitbricks/ex_list_network_interfaces.xml |    75 -
 .../profitbricks/ex_rename_datacenter.json      |    46 +
 .../profitbricks/ex_set_inet_access.json        |    31 +
 .../fixtures/profitbricks/ex_start_node.xml     |    10 -
 .../fixtures/profitbricks/ex_stop_node.xml      |    10 -
 .../profitbricks/ex_update_datacenter.xml       |    12 -
 .../profitbricks/ex_update_firewall_rule.json   |    25 +
 .../fixtures/profitbricks/ex_update_image.json  |    32 +
 .../fixtures/profitbricks/ex_update_lan.json    |    24 +
 .../profitbricks/ex_update_load_balancer.json   |    18 +
 .../ex_update_network_interface.json            |    31 +
 .../ex_update_network_interface.xml             |    12 -
 .../fixtures/profitbricks/ex_update_node.json   |    45 +
 .../fixtures/profitbricks/ex_update_node.xml    |    12 -
 .../profitbricks/ex_update_snapshot.json        |    30 +
 .../fixtures/profitbricks/ex_update_volume.json |    35 +
 .../fixtures/profitbricks/ex_update_volume.xml  |    12 -
 .../fixtures/profitbricks/list_images.json      |   199 +
 .../fixtures/profitbricks/list_images.xml       |    43 -
 .../fixtures/profitbricks/list_locations.json   |    43 +
 .../fixtures/profitbricks/list_nodes.json       |   169 +
 .../fixtures/profitbricks/list_nodes.xml        |   172 -
 .../fixtures/profitbricks/list_snapshots.json   |    37 +
 .../fixtures/profitbricks/list_volumes.json     |   112 +
 .../fixtures/profitbricks/list_volumes.xml      |    66 -
 .../fixtures/profitbricks/reboot_node.xml       |    10 -
 .../fixtures/runabove/auth_time_get.json        |     1 -
 .../compute/fixtures/runabove/flavor_get.json   |     1 -
 .../fixtures/runabove/flavor_get_detail.json    |     1 -
 .../compute/fixtures/runabove/image_get.json    |     1 -
 .../fixtures/runabove/image_get_detail.json     |     1 -
 .../compute/fixtures/runabove/instance_get.json |     1 -
 .../fixtures/runabove/instance_get_detail.json  |     1 -
 .../fixtures/runabove/instance_post.json        |     1 -
 .../compute/fixtures/runabove/region_get.json   |     1 -
 .../test/compute/fixtures/runabove/ssh_get.json |     2 -
 .../fixtures/runabove/ssh_get_detail.json       |     1 -
 .../compute/fixtures/runabove/volume_get.json   |     1 -
 .../fixtures/runabove/volume_get_detail.json    |     1 -
 .../fixtures/vcloud_1_5/api_task_deploy.xml     |     7 +
 .../compute/fixtures/vultr/create_key_pair.json |     3 +
 .../compute/fixtures/vultr/create_node.json     |     3 +
 .../compute/fixtures/vultr/list_key_pairs.json  |     8 +
 libcloud/test/compute/test_abiquo.py            |     4 +-
 libcloud/test/compute/test_azure.py             |     2 +-
 libcloud/test/compute/test_azure_arm.py         |    78 +
 libcloud/test/compute/test_bluebox.py           |     2 +-
 libcloud/test/compute/test_brightbox.py         |    52 +-
 libcloud/test/compute/test_cloudscale.py        |   122 +
 libcloud/test/compute/test_cloudsigma_v1_0.py   |     5 +-
 libcloud/test/compute/test_cloudsigma_v2_0.py   |     3 +-
 libcloud/test/compute/test_cloudstack.py        |    63 +-
 libcloud/test/compute/test_deployment.py        |     2 +-
 libcloud/test/compute/test_digitalocean_v1.py   |   206 -
 libcloud/test/compute/test_digitalocean_v2.py   |   141 +-
 libcloud/test/compute/test_dimensiondata.py     |  1701 -
 .../test/compute/test_dimensiondata_v2_3.py     |  3282 +
 .../test/compute/test_dimensiondata_v2_4.py     |  3359 +
 libcloud/test/compute/test_ec2.py               |   183 +-
 libcloud/test/compute/test_ecp.py               |     3 +-
 libcloud/test/compute/test_ecs.py               |    37 +-
 libcloud/test/compute/test_elasticstack.py      |     9 +-
 libcloud/test/compute/test_gandi.py             |     6 +-
 libcloud/test/compute/test_gce.py               |  1404 +-
 libcloud/test/compute/test_gogrid.py            |     2 +-
 libcloud/test/compute/test_gridspot.py          |     5 +-
 libcloud/test/compute/test_hostvirtual.py       |     3 +-
 libcloud/test/compute/test_joyent.py            |     2 +-
 libcloud/test/compute/test_ktucloud.py          |     3 +-
 libcloud/test/compute/test_libvirt_driver.py    |    88 +
 libcloud/test/compute/test_linode.py            |     2 +-
 libcloud/test/compute/test_nephoscale.py        |     3 +-
 libcloud/test/compute/test_onapp.py             |     3 +-
 libcloud/test/compute/test_opennebula.py        |    18 +-
 libcloud/test/compute/test_openstack.py         |   106 +-
 libcloud/test/compute/test_ovh.py               |   242 +
 libcloud/test/compute/test_packet.py            |     2 +-
 libcloud/test/compute/test_profitbricks.py      |  5379 +-
 libcloud/test/compute/test_rackspace.py         |    17 +-
 libcloud/test/compute/test_rimuhosting.py       |     3 +-
 libcloud/test/compute/test_runabove.py          |   201 -
 libcloud/test/compute/test_softlayer.py         |     3 +-
 libcloud/test/compute/test_vcl.py               |     3 +-
 libcloud/test/compute/test_vcloud.py            |    36 +-
 libcloud/test/compute/test_voxel.py             |     2 +-
 libcloud/test/compute/test_vpsnet.py            |     2 +-
 libcloud/test/compute/test_vultr.py             |    43 +-
 .../fixtures/docker/container_a68.json          |   163 -
 .../container/fixtures/docker/containers.json   |   143 -
 .../fixtures/docker/create_container.json       |     4 -
 .../container/fixtures/docker/create_image.json |     1 -
 .../test/container/fixtures/docker/images.json  |    50 -
 .../docker/linux_124/container_a68.json         |   163 +
 .../fixtures/docker/linux_124/containers.json   |   143 +
 .../docker/linux_124/create_container.json      |     4 +
 .../fixtures/docker/linux_124/create_image.txt  |   238 +
 .../fixtures/docker/linux_124/images.json       |    50 +
 .../fixtures/docker/linux_124/logs.txt          |     1 +
 .../fixtures/docker/linux_124/search.json       |   202 +
 .../fixtures/docker/linux_124/version.json      |    10 +
 .../test/container/fixtures/docker/logs.txt     |     1 -
 .../fixtures/docker/mac_124/containers.json     |   242 +
 .../docker/mac_124/create_container.json        |     4 +
 .../fixtures/docker/mac_124/create_image.txt    |   238 +
 .../fixtures/docker/mac_124/search.json         |   152 +
 .../fixtures/docker/mac_124/version.json        |    11 +
 .../test/container/fixtures/docker/search.json  |   202 -
 .../test/container/fixtures/docker/version.json |    10 -
 .../fixtures/rancher/deploy_container.json      |   109 +
 .../fixtures/rancher/ex_activate_service.json   |   198 +
 .../fixtures/rancher/ex_activate_stack.json     |    52 +
 .../fixtures/rancher/ex_deploy_service.json     |    66 +
 .../fixtures/rancher/ex_deploy_stack.json       |    40 +
 .../fixtures/rancher/ex_destroy_service.json    |    66 +
 .../fixtures/rancher/ex_destroy_stack.json      |    40 +
 .../fixtures/rancher/ex_list_services.json      |   536 +
 .../fixtures/rancher/ex_list_stacks.json        |   310 +
 .../fixtures/rancher/ex_search_containers.json  |   212 +
 .../fixtures/rancher/ex_search_services.json    |   346 +
 .../fixtures/rancher/list_containers.json       |   336 +
 .../fixtures/rancher/start_container.json       |   109 +
 .../fixtures/rancher/stop_container.json        |   109 +
 libcloud/test/container/test_docker.py          |   251 +-
 libcloud/test/container/test_docker_utils.py    |     3 +-
 libcloud/test/container/test_ecs.py             |     6 +-
 libcloud/test/container/test_kubernetes.py      |     3 +-
 libcloud/test/container/test_rancher.py         |   326 +
 .../fixtures/buddyns/create_zone_success.json   |     8 +
 .../fixtures/buddyns/delete_zone_success.json   |     0
 .../dns/fixtures/buddyns/empty_zones_list.json  |     1 +
 .../dns/fixtures/buddyns/get_zone_success.json  |     7 +
 .../test/dns/fixtures/buddyns/list_zones.json   |    18 +
 .../fixtures/buddyns/zone_already_exists.json   |     3 +
 .../fixtures/buddyns/zone_does_not_exist.json   |     1 +
 .../fixtures/dnspod/create_zone_success.json    |    12 +
 .../delete_record_record_does_not_exist.json    |     1 +
 .../fixtures/dnspod/delete_record_success.json  |     0
 .../fixtures/dnspod/delete_zone_success.json    |     0
 .../dns/fixtures/dnspod/empty_zones_list.json   |     1 +
 .../test/dns/fixtures/dnspod/get_record.json    |    26 +
 .../dns/fixtures/dnspod/get_zone_success.json   |    28 +
 .../test/dns/fixtures/dnspod/list_records.json  |    93 +
 .../test/dns/fixtures/dnspod/list_zones.json    |    42 +
 .../fixtures/dnspod/record_already_exists.json  |     8 +
 .../fixtures/dnspod/zone_already_exists.json    |     1 +
 .../fixtures/dnspod/zone_does_not_exist.json    |     1 +
 .../fixtures/luadns/create_record_success.json  |    10 +
 .../fixtures/luadns/create_zone_success.json    |    10 +
 .../fixtures/luadns/delete_record_success.json  |     0
 .../fixtures/luadns/delete_zone_success.json    |     0
 .../dns/fixtures/luadns/empty_records_list.json |     1 +
 .../dns/fixtures/luadns/empty_zones_list.json   |     1 +
 .../test/dns/fixtures/luadns/get_record.json    |    10 +
 libcloud/test/dns/fixtures/luadns/get_zone.json |    42 +
 .../fixtures/luadns/record_does_not_exist.json  |     1 +
 .../test/dns/fixtures/luadns/records_list.json  |    22 +
 .../fixtures/luadns/zone_already_exists.json    |     4 +
 .../fixtures/luadns/zone_does_not_exist.json    |     1 +
 .../test/dns/fixtures/luadns/zones_list.json    |    22 +
 .../test/dns/fixtures/nfsn/list_one_record.json |     9 +
 .../test/dns/fixtures/nfsn/list_records.json    |    16 +
 .../dns/fixtures/nfsn/list_records_created.json |    23 +
 .../dns/fixtures/nfsn/record_not_removed.json   |     4 +
 .../test/dns/fixtures/nfsn/zone_not_found.json  |     4 +
 .../dns/fixtures/powerdns/list_records.json     |    49 +
 .../test/dns/fixtures/powerdns/list_zones.json  |    30 +
 libcloud/test/dns/fixtures/route53/get_zone.xml |     1 -
 libcloud/test/dns/test_auroradns.py             |    49 +-
 libcloud/test/dns/test_buddyns.py               |   155 +
 libcloud/test/dns/test_cloudflare.py            |     3 +-
 libcloud/test/dns/test_digitalocean.py          |    73 +-
 libcloud/test/dns/test_dnsimple.py              |     3 +-
 libcloud/test/dns/test_dnspod.py                |   266 +
 libcloud/test/dns/test_durabledns.py            |     3 +-
 libcloud/test/dns/test_gandi.py                 |     3 +-
 libcloud/test/dns/test_godaddy.py               |     3 +-
 libcloud/test/dns/test_google.py                |     6 +-
 libcloud/test/dns/test_hostvirtual.py           |     3 +-
 libcloud/test/dns/test_linode.py                |     3 +-
 libcloud/test/dns/test_liquidweb.py             |     3 +-
 libcloud/test/dns/test_luadns.py                |   305 +
 libcloud/test/dns/test_nfsn.py                  |   148 +
 libcloud/test/dns/test_nsone.py                 |     2 +-
 libcloud/test/dns/test_pointdns.py              |     3 +-
 libcloud/test/dns/test_powerdns.py              |   189 +
 libcloud/test/dns/test_rackspace.py             |    18 +-
 libcloud/test/dns/test_route53.py               |     3 +-
 libcloud/test/dns/test_softlayer.py             |     3 +-
 libcloud/test/dns/test_vultr.py                 |     3 +-
 libcloud/test/dns/test_worldwidedns.py          |     3 +-
 libcloud/test/dns/test_zerigo.py                |     3 +-
 libcloud/test/dns/test_zonomi.py                |     2 +-
 .../alb/describe_load_balancer_listeters.xml    |    27 +
 .../alb/describe_load_balancer_rules.xml        |    21 +
 .../describe_load_balancer_target_groups.xml    |    29 +
 .../fixtures/alb/describe_load_balancers.xml    |    31 +
 .../loadbalancer/fixtures/alb/describe_tags.xml |    18 +
 .../fixtures/alb/describe_target_health.xml     |    19 +
 ...be5a7d0e4_networkDomainVip_addPoolMember.xml |     9 -
 ...8dabe5a7d0e4_networkDomainVip_createNode.xml |     8 -
 ...8dabe5a7d0e4_networkDomainVip_createPool.xml |     9 -
 ...4_networkDomainVip_createVirtualListener.xml |    11 -
 ...e4_networkDomainVip_defaultHealthMonitor.xml |    35 -
 ...abe5a7d0e4_networkDomainVip_defaultIrule.xml |    47 -
 ...tworkDomainVip_defaultPersistenceProfile.xml |    47 -
 ...8dabe5a7d0e4_networkDomainVip_deleteNode.xml |     9 -
 ...8dabe5a7d0e4_networkDomainVip_deletePool.xml |     9 -
 ...4_networkDomainVip_deleteVirtualListener.xml |     9 -
 ...c_8dabe5a7d0e4_networkDomainVip_editNode.xml |     8 -
 ...c_8dabe5a7d0e4_networkDomainVip_editPool.xml |     9 -
 ...e5a7d0e4_networkDomainVip_editPoolMember.xml |     8 -
 ..._9cbc_8dabe5a7d0e4_networkDomainVip_node.xml |    29 -
 ...ode_34de6ed6_46a4_4dae_a753_2f8d3840c6f9.xml |    13 -
 ..._9cbc_8dabe5a7d0e4_networkDomainVip_pool.xml |    37 -
 ...8dabe5a7d0e4_networkDomainVip_poolMember.xml |    29 -
 ...ber_3dd806a2_c2c8_4c0c_9a4f_5219ea9266c0.xml |    13 -
 ...ool_4d360b1f_bc2c_4ab7_9884_1f03ba2768f7.xml |    17 -
 ...a7d0e4_networkDomainVip_removePoolMember.xml |     7 -
 ...5a7d0e4_networkDomainVip_virtualListener.xml |    51 -
 ...ner_6115469d_a8bb_445b_bb23_d23b5283f2b9.xml |    44 -
 .../networkDomainVip_addPoolMember.xml          |     9 +
 .../networkDomainVip_createNode.xml             |     8 +
 .../networkDomainVip_createPool.xml             |     9 +
 .../networkDomainVip_createVirtualListener.xml  |    11 +
 .../networkDomainVip_defaultHealthMonitor.xml   |    35 +
 .../networkDomainVip_defaultIrule.xml           |    47 +
 ...tworkDomainVip_defaultPersistenceProfile.xml |    47 +
 .../networkDomainVip_deleteNode.xml             |     9 +
 .../networkDomainVip_deletePool.xml             |     9 +
 .../networkDomainVip_deleteVirtualListener.xml  |     9 +
 .../dimensiondata/networkDomainVip_editNode.xml |     8 +
 .../dimensiondata/networkDomainVip_editPool.xml |     9 +
 .../networkDomainVip_editPoolMember.xml         |     8 +
 .../dimensiondata/networkDomainVip_node.xml     |    29 +
 ...ode_34de6ed6_46a4_4dae_a753_2f8d3840c6f9.xml |    13 +
 .../dimensiondata/networkDomainVip_pool.xml     |    37 +
 .../networkDomainVip_poolMember.xml             |    29 +
 ...ber_3dd806a2_c2c8_4c0c_9a4f_5219ea9266c0.xml |    13 +
 ...ool_4d360b1f_bc2c_4ab7_9884_1f03ba2768f7.xml |    17 +
 .../networkDomainVip_removePoolMember.xml       |     7 +
 .../networkDomainVip_virtualListener.xml        |    51 +
 ...ner_6115469d_a8bb_445b_bb23_d23b5283f2b9.xml |    44 +
 .../loadbalancer/fixtures/elb/describe_tags.xml |    18 +
 libcloud/test/loadbalancer/test_alb.py          |   159 +
 libcloud/test/loadbalancer/test_brightbox.py    |    29 +-
 libcloud/test/loadbalancer/test_cloudstack.py   |     3 +-
 .../test/loadbalancer/test_dimensiondata.py     |   569 -
 .../loadbalancer/test_dimensiondata_v2_3.py     |   620 +
 .../loadbalancer/test_dimensiondata_v2_4.py     |   620 +
 libcloud/test/loadbalancer/test_elb.py          |    52 +-
 libcloud/test/loadbalancer/test_gce.py          |    14 +-
 libcloud/test/loadbalancer/test_gogrid.py       |     3 +-
 libcloud/test/loadbalancer/test_rackspace.py    |    12 +-
 libcloud/test/loadbalancer/test_slb.py          |     3 +-
 libcloud/test/loadbalancer/test_softlayer.py    |     3 +-
 libcloud/test/secrets.py                        |     1 -
 libcloud/test/secrets.py-dist                   |     8 +-
 .../fixtures/google_storage/get_container.json  |    13 +
 .../fixtures/google_storage/get_object.json     |    18 +
 .../google_storage/list_container_acl.json      |    74 +
 .../google_storage/list_object_acl.json         |    86 +
 libcloud/test/storage/test_atmos.py             |    36 +-
 libcloud/test/storage/test_azure_blobs.py       |    14 +-
 libcloud/test/storage/test_backblaze_b2.py      |    12 +-
 libcloud/test/storage/test_base.py              |    95 +-
 libcloud/test/storage/test_cloudfiles.py        |    97 +-
 libcloud/test/storage/test_google_storage.py    |   352 +-
 libcloud/test/storage/test_oss.py               |   141 +-
 libcloud/test/storage/test_rgw.py               |    99 +
 libcloud/test/storage/test_s3.py                |   150 +-
 libcloud/test/test_connection.py                |   146 +-
 libcloud/test/test_httplib_ssl.py               |    74 +-
 libcloud/test/test_init.py                      |    19 +-
 libcloud/test/test_response_classes.py          |   144 +-
 libcloud/test/test_utils.py                     |     2 +-
 libcloud/utils/loggingconnection.py             |   190 +
 libcloud/utils/misc.py                          |    49 +-
 libcloud/utils/py3.py                           |     8 +-
 requirements-tests.txt                          |     6 +
 setup.py                                        |    19 +-
 tox.ini                                         |    54 +-
 872 files changed, 138635 insertions(+), 14557 deletions(-)
----------------------------------------------------------------------



[11/16] libcloud git commit: FAM-791 tests added, volume modifications attribute types fixed

Posted by an...@apache.org.
FAM-791 tests added, volume modifications attribute types fixed


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/7ea29c90
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/7ea29c90
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/7ea29c90

Branch: refs/heads/trunk
Commit: 7ea29c90f02d08e40e0bbac66bd911f20fbd54fe
Parents: 265a1e5
Author: Hennadii Stas <ut...@gmail.com>
Authored: Wed Apr 19 17:54:24 2017 +0300
Committer: Hennadii Stas <ut...@gmail.com>
Committed: Thu Apr 20 13:04:25 2017 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py                 | 10 ++--
 .../ec2/describe_volumes_modifications.xml      | 30 +++++++++++
 .../test/compute/fixtures/ec2/modify_volume.xml | 15 ++++++
 libcloud/test/compute/test_ec2.py               | 56 ++++++++++++++++++++
 4 files changed, 106 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/7ea29c90/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index 5db8afb..be5644e 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -2455,11 +2455,11 @@ VOLUME_MODIFICATION_ATTRIBUTE_MAP = {
     },
     'original_iops': {
         'xpath': 'originalIops',
-        'transform_func': str
+        'transform_func': int
     },
     'original_size': {
         'xpath': 'originalSize',
-        'transform_func': str
+        'transform_func': int
     },
     'original_volume_type': {
         'xpath': 'originalVolumeType',
@@ -2467,7 +2467,7 @@ VOLUME_MODIFICATION_ATTRIBUTE_MAP = {
     },
     'progress': {
         'xpath': 'progress',
-        'transform_func': str
+        'transform_func': int
     },
     'start_time': {
         'xpath': 'startTime',
@@ -2479,11 +2479,11 @@ VOLUME_MODIFICATION_ATTRIBUTE_MAP = {
     },
     'target_iops': {
         'xpath': 'targetIops',
-        'transform_func': str
+        'transform_func': int
     },
     'target_size': {
         'xpath': 'targetSize',
-        'transform_func': str
+        'transform_func': int
     },
     'target_volume_type': {
         'xpath': 'targetVolumeType',

http://git-wip-us.apache.org/repos/asf/libcloud/blob/7ea29c90/libcloud/test/compute/fixtures/ec2/describe_volumes_modifications.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/ec2/describe_volumes_modifications.xml b/libcloud/test/compute/fixtures/ec2/describe_volumes_modifications.xml
new file mode 100644
index 0000000..b376f43
--- /dev/null
+++ b/libcloud/test/compute/fixtures/ec2/describe_volumes_modifications.xml
@@ -0,0 +1,30 @@
+<DescribeVolumesModificationsResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/">
+    <requestId>35fdf8d3-6ffa-46dc-8f8e-62fe70bc31a2</requestId>
+    <volumeModificationSet>
+        <item>
+            <targetIops>10000</targetIops>
+            <originalIops>100</originalIops>
+            <modificationState>optimizing</modificationState>
+            <targetSize>2000</targetSize>
+            <targetVolumeType>io1</targetVolumeType>
+            <volumeId>vol-06397e7a0eEXAMPLE</volumeId>
+            <progress>3</progress>
+            <startTime>2017-02-10T23:40:57.612Z</startTime>
+            <originalSize>10</originalSize>
+            <originalVolumeType>gp2</originalVolumeType>
+        </item>
+        <item>
+            <targetIops>10000</targetIops>
+            <originalIops>100</originalIops>
+            <modificationState>completed</modificationState>
+            <targetSize>200</targetSize>
+            <targetVolumeType>io1</targetVolumeType>
+            <volumeId>vol-bEXAMPLE</volumeId>
+            <progress>100</progress>
+            <startTime>2017-02-10T22:50:52.207Z</startTime>
+            <endTime>2017-02-10T22:56:04.823Z</endTime>
+            <originalSize>8</originalSize>
+            <originalVolumeType>gp2</originalVolumeType>
+        </item>
+    </volumeModificationSet>
+</DescribeVolumesModificationsResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/7ea29c90/libcloud/test/compute/fixtures/ec2/modify_volume.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/ec2/modify_volume.xml b/libcloud/test/compute/fixtures/ec2/modify_volume.xml
new file mode 100644
index 0000000..44db5c0
--- /dev/null
+++ b/libcloud/test/compute/fixtures/ec2/modify_volume.xml
@@ -0,0 +1,15 @@
+<ModifyVolumeResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/">
+    <requestId>5jkdf074-37ed-4004-8671-a78ee82bf1cbEXAMPLE</requestId>
+    <volumeModification>
+        <targetIops>1000</targetIops>
+        <originalIops>300</originalIops>
+        <modificationState>modifying</modificationState>
+        <targetSize>2</targetSize>
+        <targetVolumeType>io1</targetVolumeType>
+        <volumeId>vol-10ae5e2b</volumeId>
+        <progress>0</progress>
+        <startTime>2017-01-19T23:58:04.922Z</startTime>
+        <originalSize>1</originalSize>
+        <originalVolumeType>gp2</originalVolumeType>
+    </volumeModification>
+</ModifyVolumeResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/7ea29c90/libcloud/test/compute/test_ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py
index 0e8727e..c0c9091 100644
--- a/libcloud/test/compute/test_ec2.py
+++ b/libcloud/test/compute/test_ec2.py
@@ -1179,6 +1179,54 @@ class EC2Tests(LibcloudTestCase, TestCaseMixin):
         resp = self.driver.ex_detach_internet_gateway(gateway, network)
         self.assertTrue(resp)
 
+    def test_ex_modify_volume(self):
+        volume = self.driver.list_volumes()[0]
+        assert volume.id == 'vol-10ae5e2b'
+
+        params = {'VolumeType': 'io1',
+                  'Size': 2,
+                  'Iops': 1000}
+        volume_modification = self.driver.ex_modify_volume(volume, params)
+        self.assertIsNone(volume_modification.end_time)
+        self.assertEqual('modifying', volume_modification.modification_state)
+        self.assertEqual(300, volume_modification.original_iops)
+        self.assertEqual(1, volume_modification.original_size)
+        self.assertEqual('gp2', volume_modification.original_volume_type)
+        self.assertEqual(0, volume_modification.progress)
+        self.assertIsNone(volume_modification.status_message)
+        self.assertEqual(1000, volume_modification.target_iops)
+        self.assertEqual(2, volume_modification.target_size)
+        self.assertEqual('io1', volume_modification.target_volume_type)
+        self.assertEqual('vol-10ae5e2b', volume_modification.volume_id)
+
+    def test_ex_describe_volumes_modifications(self):
+        modifications = self.driver.ex_describe_volumes_modifications()
+
+        self.assertEqual(len(modifications), 2)
+
+        self.assertIsNone(modifications[0].end_time)
+        self.assertEqual('optimizing', modifications[0].modification_state)
+        self.assertEqual(100, modifications[0].original_iops)
+        self.assertEqual(10, modifications[0].original_size)
+        self.assertEqual('gp2', modifications[0].original_volume_type)
+        self.assertEqual(3, modifications[0].progress)
+        self.assertIsNone(modifications[0].status_message)
+        self.assertEqual(10000, modifications[0].target_iops)
+        self.assertEqual(2000, modifications[0].target_size)
+        self.assertEqual('io1', modifications[0].target_volume_type)
+        self.assertEqual('vol-06397e7a0eEXAMPLE', modifications[0].volume_id)
+
+        self.assertEqual('completed', modifications[1].modification_state)
+        self.assertEqual(100, modifications[1].original_iops)
+        self.assertEqual(8, modifications[1].original_size)
+        self.assertEqual('gp2', modifications[1].original_volume_type)
+        self.assertEqual(100, modifications[1].progress)
+        self.assertIsNone(modifications[1].status_message)
+        self.assertEqual(10000, modifications[1].target_iops)
+        self.assertEqual(200, modifications[1].target_size)
+        self.assertEqual('io1', modifications[1].target_volume_type)
+        self.assertEqual('vol-bEXAMPLE', modifications[1].volume_id)
+
 
 class EC2USWest1Tests(EC2Tests):
     region = 'us-west-1'
@@ -1580,6 +1628,14 @@ class EC2MockHttp(MockHttpTestCase):
         body = self.fixtures.load('describe_placement_groups.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
+    def _ModifyVolume(self, method, url, body, headers):
+        body = self.fixtures.load('modify_volume.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _DescribeVolumesModifications(self, method, url, body, headers):
+        body = self.fixtures.load('describe_volumes_modifications.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
 
 class EucMockHttp(EC2MockHttp):
     fixtures = ComputeFileFixtures('ec2')


[10/16] libcloud git commit: FAM-792 pylint fix

Posted by an...@apache.org.
FAM-792 pylint fix


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/265a1e55
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/265a1e55
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/265a1e55

Branch: refs/heads/trunk
Commit: 265a1e55e42a716d96d298cab69143280f4de869
Parents: d2cc30f
Author: Hennadii Stas <ut...@gmail.com>
Authored: Wed Apr 19 16:25:46 2017 +0300
Committer: Hennadii Stas <ut...@gmail.com>
Committed: Thu Apr 20 13:04:18 2017 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/265a1e55/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index d218a3a..5db8afb 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -5670,7 +5670,8 @@ class BaseEC2NodeDriver(NodeDriver):
                                  returned in a single page
         :type       max_results: ``int``
 
-        :param      next_token: The nextToken value returned by a previous paginated request.
+        :param      next_token: The nextToken value returned by a previous
+                                paginated request.
         :type       next_token: ``string``
 
         :return:  List of volume modification status objects


[06/16] libcloud git commit: added ex_describe_volume_modifications() method

Posted by an...@apache.org.
added ex_describe_volume_modifications() method


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/aecad3ca
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/aecad3ca
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/aecad3ca

Branch: refs/heads/trunk
Commit: aecad3ca967bd36b904c11f63951fb9c89fdcc9b
Parents: 27fef81
Author: Hennadii Stas <ut...@gmail.com>
Authored: Wed Mar 29 16:43:28 2017 +0300
Committer: Hennadii Stas <ut...@gmail.com>
Committed: Thu Apr 20 13:03:28 2017 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py | 58 +++++++++++++++++++++++++++++++++++-
 1 file changed, 57 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/aecad3ca/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index f7de3f4..f3775df 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -5623,7 +5623,7 @@ class BaseEC2NodeDriver(NodeDriver):
     def ex_modify_volume(self, volume, parameters):
         """
         Modify volume parameters.
-        A list of valid parameters can be found at  https://goo.gl/N0rPEQ
+        A list of valid parameters can be found at https://goo.gl/N0rPEQ
 
         :param      Volume: Volume instance
         :type       Volume: :class:`Volume`
@@ -5646,6 +5646,57 @@ class BaseEC2NodeDriver(NodeDriver):
                                            params=parameters.copy()).object
         return self._to_volume_modification(response)
 
+    def ex_describe_volumes_modifications(self, dry_run=False, volume_ids=None,
+                                          filters=None, next_token=None,
+                                          max_results=None):
+        """
+        Describes one or more of your volume modifications.
+
+        :param      dry_run: dry_run
+        :type       dry_run: ``bool``
+
+        :param      volume_ids: The volume_ids so that the response includes
+                             information for only said volumes
+        :type       volume_ids: ``dict``
+
+        :param      filters: The filters so that the response includes
+                             information for only certain volumes
+        :type       filters: ``dict``
+
+        :param      max_results: The maximum number of items that can be
+                                 returned in a single page
+        :type       max_results: ``int``
+
+        :param      next_token: The nextToken value returned by a previous paginated request.
+        :type       next_token: ``string``
+
+        :return:  List of volume modification status objects
+        :rtype:   ``list`` of :class:`VolumeModification
+        """
+
+        if next_token:
+            raise NotImplementedError(
+                'volume_modifications next_token is not implemented')
+
+        params = {'Action': 'DescribeVolumesModifications'}
+
+        if dry_run:
+            params.update({'DryRun': dry_run})
+
+        if volume_ids:
+            params.update({'VolumeIds': volume_ids})
+
+        if filters:
+            params.update(self._build_filters(filters))
+
+        if max_results:
+            params.update({'MaxResults': max_results})
+
+        response = self.connection.request(self.path, params=params,
+                                           method='GET').object
+
+        return self._to_volume_modifications(response)
+
     def _ex_connection_class_kwargs(self):
         kwargs = super(BaseEC2NodeDriver, self)._ex_connection_class_kwargs()
         if hasattr(self, 'token') and self.token is not None:
@@ -5774,6 +5825,11 @@ class BaseEC2NodeDriver(NodeDriver):
                              state=state,
                              extra=extra)
 
+    def _to_volume_modifications(self, object):
+        return [self._to_volume_modification(el) for el in object.findall(
+            fixxpath(xpath='volumeModificationSet/item', namespace=NAMESPACE))
+        ]
+
     def _to_volume_modification(self, element):
         """
         Parse the XML element and return a StorageVolume object.


[02/16] libcloud git commit: make more explicit value checks, fix line length

Posted by an...@apache.org.
make more explicit value checks, fix line length


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/4d06cfe6
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/4d06cfe6
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/4d06cfe6

Branch: refs/heads/trunk
Commit: 4d06cfe66ec5d09d255996f775ed40af8f14d76a
Parents: 55cf64a
Author: ViktorOgnev <v....@scalr.com>
Authored: Mon Mar 28 11:58:26 2016 +0300
Committer: ViktorOgnev <v....@scalr.com>
Committed: Mon Mar 28 11:58:26 2016 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/4d06cfe6/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index 1dacf40..f88bc52 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -3108,10 +3108,13 @@ class BaseEC2NodeDriver(NodeDriver):
         :param ex_encrypted: Specifies whether the volume should be encrypted.
         :type ex_encrypted: ``bool``
 
-        :param ex_kms_key_id: The full ARN of the AWS Key Management Service (AWS KMS)
-                        customer master key (CMK) to use when creating the encrypted volume.
-                        Example: arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.
-                        Only used if encrypted is set to True
+        :param ex_kms_key_id: The full ARN of the AWS Key Management
+                            Service (AWS KMS) customer master key (CMK) to use
+                            when creating the encrypted volume.
+                            Example:
+                            arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123
+                                                    -456a-a12b-a123b4cd56ef.
+                            Only used if encrypted is set to True
         :type ex_kms_key_id: ``str``
 
         :return: The newly created volume.
@@ -3139,10 +3142,10 @@ class BaseEC2NodeDriver(NodeDriver):
         if ex_volume_type == 'io1' and ex_iops:
             params['Iops'] = ex_iops
 
-        if ex_encrypted:
+        if ex_encrypted is not None:
             params['Encrypted'] = 1
 
-        if ex_kms_key_id:
+        if ex_kms_key_id is not None:
             params['KmsKeyId'] = ex_kms_key_id
 
         volume = self._to_volume(


[05/16] libcloud git commit: Added support for EC2 Modify Volume API method; fixed volume's extra attribute name

Posted by an...@apache.org.
Added support for EC2 Modify Volume API method; fixed volume's extra attribute name


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/27fef81c
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/27fef81c
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/27fef81c

Branch: refs/heads/trunk
Commit: 27fef81c90d09ac0edf0785ffb6105745af0130f
Parents: f2edb15
Author: Hennadii Stas <ut...@gmail.com>
Authored: Tue Mar 28 18:14:55 2017 +0300
Committer: Hennadii Stas <ut...@gmail.com>
Committed: Thu Apr 20 13:03:09 2017 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py | 133 +++++++++++++++++++++++++++++++++--
 1 file changed, 129 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/27fef81c/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index 12e1e1c..f7de3f4 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -79,7 +79,7 @@ __all__ = [
     'IdempotentParamError'
 ]
 
-API_VERSION = '2013-10-15'
+API_VERSION = '2016-11-15'
 NAMESPACE = 'http://ec2.amazonaws.com/doc/%s/' % (API_VERSION)
 
 # Eucalyptus Constants
@@ -2431,7 +2431,7 @@ RESOURCE_EXTRA_ATTRIBUTES_MAP = {
             'xpath': 'attachmentSet/item/deleteOnTermination',
             'transform_func': str
         },
-        'type': {
+        'volume_type': {
             'xpath': 'volumeType',
             'transform_func': str
         }
@@ -2444,8 +2444,60 @@ RESOURCE_EXTRA_ATTRIBUTES_MAP = {
     }
 }
 
+VOLUME_MODIFICATION_ATTRIBUTE_MAP = {
+    'end_time': {
+        'xpath': 'endTime',
+        'transform_func': parse_date
+    },
+    'modification_state': {
+        'xpath': 'modificationState',
+        'transform_func': str
+    },
+    'original_iops': {
+        'xpath': 'originalIops',
+        'transform_func': str
+    },
+    'original_size': {
+        'xpath': 'originalSize',
+        'transform_func': str
+    },
+    'original_volume_type': {
+        'xpath': 'originalVolumeType',
+        'transform_func': str
+    },
+    'progress': {
+        'xpath': 'progress',
+        'transform_func': str
+    },
+    'start_time': {
+        'xpath': 'startTime',
+        'transform_func': parse_date
+    },
+    'status_message': {
+        'xpath': 'statusMessage',
+        'transform_func': str
+    },
+    'target_iops': {
+        'xpath': 'targetIops',
+        'transform_func': str
+    },
+    'target_size': {
+        'xpath': 'targetSize',
+        'transform_func': str
+    },
+    'target_volume_type': {
+        'xpath': 'targetVolumeType',
+        'transform_func': str
+    },
+    'volume_id': {
+        'xpath': 'volumeId',
+        'transform_func': str
+    }
+}
+
 VALID_EC2_REGIONS = REGION_DETAILS.keys()
 VALID_EC2_REGIONS = [r for r in VALID_EC2_REGIONS if r != 'nimbus']
+VALID_VOLUME_TYPES = ['standard', 'io1', 'gp2', 'st1', 'sc1']
 
 
 class EC2NodeLocation(NodeLocation):
@@ -2815,6 +2867,41 @@ class EC2SubnetAssociation(object):
         return (('<EC2SubnetAssociation: id=%s>') % (self.id))
 
 
+class EC2VolumeModification(object):
+    """
+    Describes the modification status of an EBS volume.
+
+    If the volume has never been modified, some element values will be null.
+    """
+
+    def __init__(self,
+            end_time=None,
+            modification_state=None,
+            original_iops=None,
+            original_size=None,
+            original_volume_type=None,
+            progress=None,
+            start_time=None,
+            status_message=None,
+            target_iops=None,
+            target_size=None,
+            target_volume_type=None,
+            volume_id=None,
+            ):
+        self.end_time = end_time
+        self.modification_state = modification_state
+        self.original_iops = original_iops
+        self.original_size = original_size
+        self.original_volume_type = original_volume_type
+        self.progress = progress
+        self.start_time = start_time
+        self.status_message = status_message
+        self.target_iops = target_iops
+        self.target_size = target_size
+        self.target_volume_type = target_volume_type
+        self.volume_id = volume_id
+
+
 class BaseEC2NodeDriver(NodeDriver):
     """
     Base Amazon EC2 node driver.
@@ -3275,13 +3362,12 @@ class BaseEC2NodeDriver(NodeDriver):
         :return: The newly created volume.
         :rtype: :class:`StorageVolume`
         """
-        valid_volume_types = ['standard', 'io1', 'gp2', 'st1', 'sc1']
 
         params = {
             'Action': 'CreateVolume',
             'Size': str(size)}
 
-        if ex_volume_type and ex_volume_type not in valid_volume_types:
+        if ex_volume_type and ex_volume_type not in VALID_VOLUME_TYPES:
             raise ValueError('Invalid volume type specified: %s' %
                              (ex_volume_type))
 
@@ -5534,6 +5620,32 @@ class BaseEC2NodeDriver(NodeDriver):
 
         return self._get_boolean(res)
 
+    def ex_modify_volume(self, volume, parameters):
+        """
+        Modify volume parameters.
+        A list of valid parameters can be found at  https://goo.gl/N0rPEQ
+
+        :param      Volume: Volume instance
+        :type       Volume: :class:`Volume`
+
+        :param      parameters: Dictionary with updated volume parameters
+        :type       parameters: ``dict``
+
+        :return: Volume modification status object
+        :rtype: :class:`VolumeModification
+        """
+        parameters = parameters or {}
+
+        volume_type = parameters.get('VolumeType')
+        if volume_type and volume_type not in VALID_VOLUME_TYPES:
+            raise ValueError('Invalid volume type specified: %s' % volume_type)
+
+        parameters.update({'Action': 'ModifyVolume', 'VolumeId': volume.id})
+
+        response = self.connection.request(self.path,
+                                           params=parameters.copy()).object
+        return self._to_volume_modification(response)
+
     def _ex_connection_class_kwargs(self):
         kwargs = super(BaseEC2NodeDriver, self)._ex_connection_class_kwargs()
         if hasattr(self, 'token') and self.token is not None:
@@ -5662,6 +5774,19 @@ class BaseEC2NodeDriver(NodeDriver):
                              state=state,
                              extra=extra)
 
+    def _to_volume_modification(self, element):
+        """
+        Parse the XML element and return a StorageVolume object.
+
+        :rtype:     :class:`EC2VolumeModification`
+        """
+        params_element = element.find(
+            fixxpath(xpath='volumeModification', namespace=NAMESPACE))
+        params = self._get_extra_dict(params_element,
+                                      VOLUME_MODIFICATION_ATTRIBUTE_MAP)
+
+        return EC2VolumeModification(**params)
+
     def _to_snapshots(self, response):
         return [self._to_snapshot(el) for el in response.findall(
             fixxpath(xpath='snapshotSet/item', namespace=NAMESPACE))


[14/16] libcloud git commit: Merge remote-tracking branch 'upstream/trunk' into for-upstream/modify_volume

Posted by an...@apache.org.
Merge remote-tracking branch 'upstream/trunk' into for-upstream/modify_volume


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/2f818906
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/2f818906
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/2f818906

Branch: refs/heads/trunk
Commit: 2f8189068f5d23bf04595468b4b7e4d76be5da63
Parents: da89d29 1a07215
Author: Hennadii Stas <ut...@gmail.com>
Authored: Thu Apr 20 13:24:46 2017 +0300
Committer: Hennadii Stas <ut...@gmail.com>
Committed: Thu Apr 20 13:24:46 2017 +0300

----------------------------------------------------------------------
 .gitignore                                      |     3 +
 .travis.yml                                     |     3 +
 CHANGES.rst                                     |   263 +-
 contrib/scrape-ec2-prices.py                    |    19 +-
 demos/secrets.py-dist                           |     5 +-
 doap_libcloud.rdf                               |     7 +
 docs/_static/images/provider_logos/outscale.jpg |   Bin 0 -> 17361 bytes
 docs/_static/images/provider_logos/outscale.png |   Bin 8437 -> 0 bytes
 .../_supported_methods_block_storage.rst        |     2 +
 .../_supported_methods_image_management.rst     |     4 +-
 .../_supported_methods_key_pair_management.rst  |     4 +-
 docs/compute/_supported_methods_main.rst        |     4 +-
 docs/compute/_supported_providers.rst           |   122 +-
 docs/compute/drivers/cloudscale.rst             |     4 +-
 docs/compute/drivers/dimensiondata.rst          |    22 +
 docs/compute/drivers/oneandone.rst              |   295 +
 docs/compute/drivers/outscale_inc.rst           |    11 +-
 docs/compute/drivers/outscale_sas.rst           |    21 +-
 docs/dns/_supported_methods.rst                 |     2 +
 docs/dns/_supported_providers.rst               |     2 +
 docs/dns/drivers/onapp.rst                      |    23 +
 .../Nodes_Create_mcp2_Uncustomised.py           |    57 +
 docs/examples/compute/onapp/functionality.py    |    39 +-
 .../compute/oneandone/create_firewall_policy.py |    33 +
 .../compute/oneandone/create_load_balancer.py   |    36 +
 .../oneandone/create_monitoring_policy.py       |    90 +
 docs/examples/compute/oneandone/create_node.py  |    36 +
 .../compute/oneandone/create_private_network.py |    14 +
 .../compute/oneandone/create_public_ip.py       |    14 +
 .../compute/oneandone/create_shared_storage.py  |    21 +
 .../compute/oneandone/instantiate_driver.py     |     9 +
 docs/examples/dns/onapp/instantiate_driver.py   |     9 +
 docs/loadbalancer/_supported_providers.rst      |     2 +-
 docs/other/changes_in_2_0.rst                   |   131 +
 docs/other/ssl-certificate-validation.rst       |     4 +-
 docs/other/using-http-proxy.rst                 |     4 +-
 docs/storage/_supported_methods_cdn.rst         |    16 +-
 docs/storage/_supported_methods_main.rst        |    16 +-
 docs/storage/_supported_providers.rst           |    16 +-
 integration/README.rst                          |    20 +
 integration/__init__.py                         |     0
 integration/__main__.py                         |    41 +
 integration/api/__init__.py                     |     0
 integration/api/__main__.py                     |    21 +
 integration/api/data.py                         |    37 +
 integration/api/routes.py                       |    33 +
 integration/api/util.py                         |    33 +
 integration/config.py                           |    21 +
 integration/driver/__init__.py                  |     0
 integration/driver/test.py                      |    76 +
 integration/requirements.txt                    |     1 +
 libcloud/__init__.py                            |     2 +-
 libcloud/common/aliyun.py                       |     5 +-
 libcloud/common/aws.py                          |     4 +-
 libcloud/common/azure_arm.py                    |     2 +-
 libcloud/common/base.py                         |    45 +-
 libcloud/common/linode.py                       |    25 +-
 libcloud/common/ovh.py                          |     2 +-
 libcloud/compute/drivers/azure_arm.py           |   155 +-
 libcloud/compute/drivers/cloudscale.py          |     8 +-
 libcloud/compute/drivers/digitalocean.py        |     3 +-
 libcloud/compute/drivers/dimensiondata.py       |     1 -
 libcloud/compute/drivers/ec2.py                 |   929 +-
 libcloud/compute/drivers/ecs.py                 |    59 +-
 libcloud/compute/drivers/gce.py                 |   117 +-
 libcloud/compute/drivers/linode.py              |    50 +-
 libcloud/compute/drivers/onapp.py               |   107 +-
 libcloud/compute/drivers/oneandone.py           |  2260 +++
 libcloud/compute/drivers/profitbricks.py        |     2 +-
 libcloud/compute/drivers/vcloud.py              |    16 +-
 libcloud/compute/drivers/vsphere.py             |     8 +-
 libcloud/compute/providers.py                   |     2 +
 libcloud/compute/types.py                       |     5 +
 libcloud/data/pricing.json                      |   630 +-
 libcloud/dns/drivers/onapp.py                   |   332 +
 libcloud/dns/drivers/route53.py                 |    17 +-
 libcloud/dns/providers.py                       |     2 +
 libcloud/dns/types.py                           |     1 +
 libcloud/http.py                                |   307 +
 libcloud/httplib_ssl.py                         |   268 -
 libcloud/security.py                            |     2 +-
 libcloud/storage/base.py                        |    30 +-
 libcloud/storage/drivers/s3.py                  |   426 +-
 libcloud/storage/providers.py                   |    12 +
 libcloud/storage/types.py                       |     6 +
 libcloud/test/__init__.py                       |   327 +-
 libcloud/test/backup/test_dimensiondata_v2_3.py |     3 +-
 libcloud/test/backup/test_dimensiondata_v2_4.py |     3 +-
 libcloud/test/common/test_cloudstack.py         |     6 +-
 libcloud/test/common/test_digitalocean_v2.py    |     4 +-
 libcloud/test/compute/__init__.py               |     2 +-
 ...d_526c_8d55_fee918758e6e_services_images.xml |     2 +-
 .../2.4/deploy_customised_server.xml            |     7 +
 .../compute/fixtures/ec2/allocate_address.xml   |     2 +-
 .../fixtures/ec2/allocate_vpc_address.xml       |     2 +-
 .../compute/fixtures/ec2/associate_address.xml  |     2 +-
 .../fixtures/ec2/associate_vpc_address.xml      |     2 +-
 .../fixtures/ec2/attach_internet_gateway.xml    |     2 +-
 .../fixtures/ec2/attach_network_interface.xml   |     2 +-
 .../test/compute/fixtures/ec2/attach_volume.xml |     2 +-
 .../ec2/authorize_security_group_egress.xml     |     2 +-
 .../ec2/authorize_security_group_ingress.xml    |     2 +-
 .../test/compute/fixtures/ec2/copy_image.xml    |     2 +-
 .../test/compute/fixtures/ec2/create_image.xml  |     2 +-
 .../fixtures/ec2/create_internet_gateway.xml    |     2 +-
 .../compute/fixtures/ec2/create_key_pair.xml    |     2 +-
 .../fixtures/ec2/create_network_interface.xml   |     2 +-
 .../fixtures/ec2/create_placement_groups.xml    |     2 +-
 .../fixtures/ec2/create_security_group.xml      |     2 +-
 .../compute/fixtures/ec2/create_snapshot.xml    |     2 +-
 .../test/compute/fixtures/ec2/create_subnet.xml |     2 +-
 .../test/compute/fixtures/ec2/create_tags.xml   |     2 +-
 .../test/compute/fixtures/ec2/create_volume.xml |     2 +-
 .../test/compute/fixtures/ec2/create_vpc.xml    |     2 +-
 .../fixtures/ec2/delete_internet_gateway.xml    |     2 +-
 .../compute/fixtures/ec2/delete_key_pair.xml    |     2 +-
 .../fixtures/ec2/delete_network_interface.xml   |     2 +-
 .../fixtures/ec2/delete_placement_groups.xml    |     2 +-
 .../fixtures/ec2/delete_security_group.xml      |     2 +-
 .../compute/fixtures/ec2/delete_snapshot.xml    |     2 +-
 .../test/compute/fixtures/ec2/delete_subnet.xml |     2 +-
 .../test/compute/fixtures/ec2/delete_tags.xml   |     2 +-
 .../test/compute/fixtures/ec2/delete_volume.xml |     2 +-
 .../test/compute/fixtures/ec2/delete_vpc.xml    |     2 +-
 .../compute/fixtures/ec2/deregister_image.xml   |     2 +-
 .../ec2/describe_account_attributes.xml         |     2 +-
 .../compute/fixtures/ec2/describe_addresses.xml |     2 +-
 .../fixtures/ec2/describe_addresses_all.xml     |     2 +-
 .../fixtures/ec2/describe_addresses_multi.xml   |     2 +-
 .../fixtures/ec2/describe_addresses_single.xml  |     2 +-
 .../ec2/describe_availability_zones.xml         |     2 +-
 .../compute/fixtures/ec2/describe_images.xml    |    14 +-
 .../ec2/describe_images_ex_imageids.xml         |     9 +-
 .../ec2/describe_import_snapshot_tasks.xml      |    18 +
 .../describe_import_snapshot_tasks_active.xml   |    17 +
 .../compute/fixtures/ec2/describe_instances.xml |     2 +-
 .../fixtures/ec2/describe_internet_gateways.xml |     2 +-
 .../compute/fixtures/ec2/describe_key_pairs.xml |     2 +-
 .../ec2/describe_network_interfaces.xml         |     2 +-
 .../fixtures/ec2/describe_placement_groups.xml  |     2 +-
 .../ec2/describe_reserved_instances.xml         |     2 +-
 .../fixtures/ec2/describe_security_groups.xml   |     2 +-
 .../compute/fixtures/ec2/describe_snapshots.xml |     2 +-
 .../compute/fixtures/ec2/describe_subnets.xml   |     2 +-
 .../test/compute/fixtures/ec2/describe_tags.xml |     2 +-
 .../compute/fixtures/ec2/describe_volumes.xml   |     2 +-
 .../test/compute/fixtures/ec2/describe_vpcs.xml |     2 +-
 .../fixtures/ec2/detach_internet_gateway.xml    |     2 +-
 .../fixtures/ec2/detach_network_interface.xml   |     2 +-
 .../test/compute/fixtures/ec2/detach_volume.xml |     2 +-
 .../fixtures/ec2/disassociate_address.xml       |     2 +-
 .../compute/fixtures/ec2/get_console_output.xml |     2 +-
 .../compute/fixtures/ec2/import_key_pair.xml    |     2 +-
 .../compute/fixtures/ec2/import_snapshot.xml    |    16 +
 .../fixtures/ec2/modify_image_attribute.xml     |     2 +-
 .../fixtures/ec2/modify_instance_attribute.xml  |     2 +-
 .../fixtures/ec2/modify_snapshot_attribute.xml  |     4 +
 .../compute/fixtures/ec2/reboot_instances.xml   |     2 +-
 .../compute/fixtures/ec2/register_image.xml     |     2 +-
 .../compute/fixtures/ec2/release_address.xml    |     2 +-
 .../ec2/revoke_security_group_egress.xml        |     2 +-
 .../ec2/revoke_security_group_ingress.xml       |     2 +-
 .../test/compute/fixtures/ec2/run_instances.xml |     2 +-
 .../fixtures/ec2/run_instances_iam_profile.xml  |     2 +-
 .../compute/fixtures/ec2/run_instances_idem.xml |     2 +-
 ...instances_with_subnet_and_security_group.xml |     2 +-
 .../compute/fixtures/ec2/start_instances.xml    |     2 +-
 .../compute/fixtures/ec2/stop_instances.xml     |     2 +-
 .../fixtures/ec2/terminate_instances.xml        |     2 +-
 .../compute/fixtures/ecs/describe_regions.xml   |     2 +-
 .../compute/fixtures/ecs/describe_zones.xml     |     2 +-
 .../fixtures/ecs/join_security_group_by_id.xml  |     4 +
 .../fixtures/ecs/leave_security_group_by_id.xml |     4 +
 .../fixtures/ecs/pages_describe_images.xml      |     2 +-
 .../projects_coreos-cloud_global_images.json    |     6 -
 ...entral1_subnetworks_cf_972cf02e6ad49112.json |     1 +
 .../test/compute/fixtures/meta/unicode.json     |     1 +
 libcloud/test/compute/fixtures/meta/unicode.txt |     1 +
 libcloud/test/compute/fixtures/meta/unicode.xml |     2 +
 .../compute/fixtures/onapp/get_key_pair.json    |     9 +
 .../compute/fixtures/onapp/import_key_pair.json |     9 +
 .../compute/fixtures/onapp/list_images.json     |    47 +
 .../compute/fixtures/onapp/list_key_pairs.json  |    20 +
 .../test/compute/fixtures/onapp/profile.json    |    12 +
 .../compute/fixtures/oneandone/auth_error.json  |     5 +
 .../compute/fixtures/oneandone/create_node.json |    43 +
 .../oneandone/describe_firewall_policy.json     |    26 +
 .../oneandone/describe_id_firewall_policy.json  |     4 +
 .../fixtures/oneandone/describe_server.json     |    49 +
 .../oneandone/describe_shared_stoage.json       |    29 +
 .../fixtures/oneandone/ex_list_datacenters.json |    26 +
 .../oneandone/fixed_instance_sizes.json         |    70 +
 .../compute/fixtures/oneandone/get_image.json   |    24 +
 .../fixtures/oneandone/get_server_image.json    |     4 +
 .../oneandone/list_firewall_policies.json       |    54 +
 .../compute/fixtures/oneandone/list_images.json | 17941 +++++++++++++++++
 .../fixtures/oneandone/list_load_balancer.json  |    78 +
 .../oneandone/list_monitoring_policies.json     |   152 +
 .../fixtures/oneandone/list_public_ips.json     |    59 +
 .../fixtures/oneandone/list_servers.json        |   197 +
 .../oneandone/list_shared_storages.json         |    64 +
 .../fixtures/oneandone/load_balancer.json       |    38 +
 .../fixtures/oneandone/load_balancer_rule.json  |     7 +
 .../fixtures/oneandone/load_balancer_rules.json |    16 +
 .../oneandone/load_balancer_server_ip.json      |     5 +
 .../oneandone/load_balancer_server_ips.json     |     6 +
 .../fixtures/oneandone/monitoring_policy.json   |    73 +
 .../oneandone/monitoring_policy_port.json       |     7 +
 .../oneandone/monitoring_policy_ports.json      |    16 +
 .../oneandone/monitoring_policy_process.json    |     6 +
 .../oneandone/monitoring_policy_processes.json  |    14 +
 .../oneandone/monitoring_policy_servers.json    |    10 +
 .../compute/fixtures/oneandone/public_ip.json   |    15 +
 .../fixtures/oneandone/server_hardware.json     |    13 +
 .../compute/fixtures/oneandone/server_ip.json   |     8 +
 .../compute/fixtures/oneandone/server_ips.json  |    10 +
 .../fixtures/oneandone/shared_storage.json      |    24 +
 .../test/compute/fixtures/oneandone/ttt.json    |    73 +
 libcloud/test/compute/test_abiquo.py            |    15 +-
 libcloud/test/compute/test_azure.py             |     1 +
 libcloud/test/compute/test_base.py              |     6 -
 libcloud/test/compute/test_cloudscale.py        |     4 +-
 libcloud/test/compute/test_cloudsigma_v2_0.py   |     4 +-
 libcloud/test/compute/test_cloudstack.py        |    36 +-
 libcloud/test/compute/test_digitalocean_v2.py   |     4 +-
 .../test/compute/test_dimensiondata_v2_3.py     |    12 +-
 .../test/compute/test_dimensiondata_v2_4.py     |    64 +-
 libcloud/test/compute/test_ec2.py               |    81 +-
 libcloud/test/compute/test_ecp.py               |     2 +-
 libcloud/test/compute/test_ecs.py               |    27 +-
 libcloud/test/compute/test_gce.py               |    20 +-
 libcloud/test/compute/test_ktucloud.py          |     8 +-
 libcloud/test/compute/test_onapp.py             |    67 +-
 libcloud/test/compute/test_oneandone.py         |  1281 ++
 libcloud/test/compute/test_opennebula.py        |    51 +-
 libcloud/test/compute/test_openstack.py         |    39 +-
 libcloud/test/compute/test_profitbricks.py      |     2 +-
 libcloud/test/compute/test_vultr.py             |     4 +-
 .../test/dns/fixtures/buddyns/list_zones.json   |     2 +-
 .../test/dns/fixtures/onapp/create_record.json  |     9 +
 .../test/dns/fixtures/onapp/create_zone.json    |    10 +
 .../dns/fixtures/onapp/dns_zone_not_found.json  |     5 +
 .../test/dns/fixtures/onapp/get_record.json     |     9 +
 .../fixtures/onapp/get_record_after_update.json |     9 +
 libcloud/test/dns/fixtures/onapp/get_zone.json  |    10 +
 .../test/dns/fixtures/onapp/list_records.json   |    65 +
 .../test/dns/fixtures/onapp/list_zones.json     |    22 +
 libcloud/test/dns/test_auroradns.py             |     4 +-
 libcloud/test/dns/test_digitalocean.py          |     4 +-
 libcloud/test/dns/test_durabledns.py            |     4 +-
 libcloud/test/dns/test_google.py                |     4 +-
 libcloud/test/dns/test_onapp.py                 |   223 +
 libcloud/test/dns/test_zerigo.py                |     6 +-
 libcloud/test/file_fixtures.py                  |    13 +-
 libcloud/test/loadbalancer/test_alb.py          |     4 +-
 libcloud/test/loadbalancer/test_brightbox.py    |     4 +-
 libcloud/test/loadbalancer/test_cloudstack.py   |     8 +-
 libcloud/test/loadbalancer/test_elb.py          |     4 +-
 libcloud/test/loadbalancer/test_gogrid.py       |     4 +-
 libcloud/test/loadbalancer/test_rackspace.py    |     6 +-
 libcloud/test/loadbalancer/test_slb.py          |     4 +-
 libcloud/test/loadbalancer/test_softlayer.py    |     4 +-
 libcloud/test/secrets.py-dist                   |     6 +-
 libcloud/test/storage/test_atmos.py             |    39 +-
 libcloud/test/storage/test_azure_blobs.py       |    42 +-
 libcloud/test/storage/test_backblaze_b2.py      |    37 +-
 libcloud/test/storage/test_base.py              |    12 +-
 libcloud/test/storage/test_cloudfiles.py        |   112 +-
 libcloud/test/storage/test_google_storage.py    |     2 +-
 libcloud/test/storage/test_oss.py               |    50 +-
 libcloud/test/storage/test_s3.py                |   133 +-
 libcloud/test/test_connection.py                |    70 +-
 libcloud/test/test_file_fixtures.py             |    53 +
 libcloud/test/test_http.py                      |    87 +
 libcloud/test/test_httplib_ssl.py               |    87 -
 libcloud/test/test_logging_connection.py        |    69 +
 libcloud/test/test_response_classes.py          |    29 +-
 libcloud/utils/compression.py                   |    42 -
 libcloud/utils/loggingconnection.py             |    98 +-
 libcloud/utils/py3.py                           |     7 +-
 tox.ini                                         |    20 +-
 281 files changed, 28613 insertions(+), 1893 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/2f818906/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/libcloud/blob/2f818906/libcloud/test/compute/test_ec2.py
----------------------------------------------------------------------


[15/16] libcloud git commit: Merge branch 'github-1036' into trunk Closes #1036

Posted by an...@apache.org.
Merge branch 'github-1036' into trunk
Closes #1036

Signed-off-by: Anthony Shaw <an...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/eb2d4e90
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/eb2d4e90
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/eb2d4e90

Branch: refs/heads/trunk
Commit: eb2d4e90e2e6868dc245dfb0b1b149cf781c9d80
Parents: 2883adb 2f81890
Author: Anthony Shaw <an...@apache.org>
Authored: Fri Apr 21 15:39:05 2017 +1000
Committer: Anthony Shaw <an...@apache.org>
Committed: Fri Apr 21 15:39:05 2017 +1000

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py                 | 172 ++++++++++++++++++-
 .../ec2/describe_volumes_modifications.xml      |  30 ++++
 .../test/compute/fixtures/ec2/modify_volume.xml |  15 ++
 libcloud/test/compute/test_ec2.py               |  57 ++++++
 4 files changed, 271 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[13/16] libcloud git commit: FAM-791 max_results and next_token removed from ex_describe_volumes_modifications()

Posted by an...@apache.org.
FAM-791 max_results and next_token removed from ex_describe_volumes_modifications()


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/da89d297
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/da89d297
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/da89d297

Branch: refs/heads/trunk
Commit: da89d297994dfda0127fb0a6cc8060b1471877e2
Parents: 606b5f2
Author: Hennadii Stas <ut...@gmail.com>
Authored: Thu Apr 20 12:44:46 2017 +0300
Committer: Hennadii Stas <ut...@gmail.com>
Committed: Thu Apr 20 13:17:49 2017 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py | 20 +-------------------
 1 file changed, 1 insertion(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/da89d297/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index 22d3a64..624773c 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -5644,7 +5644,6 @@ class BaseEC2NodeDriver(NodeDriver):
             raise ValueError('Invalid volume type specified: %s' % volume_type)
 
         parameters.update({'Action': 'ModifyVolume', 'VolumeId': volume.id})
-
         response = self.connection.request(self.path,
                                            params=parameters.copy()).object
 
@@ -5652,8 +5651,7 @@ class BaseEC2NodeDriver(NodeDriver):
             fixxpath(xpath='volumeModification', namespace=NAMESPACE))[0])
 
     def ex_describe_volumes_modifications(self, dry_run=False, volume_ids=None,
-                                          filters=None, next_token=None,
-                                          max_results=None):
+                                          filters=None):
         """
         Describes one or more of your volume modifications.
 
@@ -5668,22 +5666,9 @@ class BaseEC2NodeDriver(NodeDriver):
                              information for only certain volumes
         :type       filters: ``dict``
 
-        :param      max_results: The maximum number of items that can be
-                                 returned in a single page
-        :type       max_results: ``int``
-
-        :param      next_token: The nextToken value returned by a previous
-                                paginated request.
-        :type       next_token: ``string``
-
         :return:  List of volume modification status objects
         :rtype:   ``list`` of :class:`VolumeModification
         """
-
-        if next_token:
-            raise NotImplementedError(
-                'volume_modifications next_token is not implemented')
-
         params = {'Action': 'DescribeVolumesModifications'}
 
         if dry_run:
@@ -5695,9 +5680,6 @@ class BaseEC2NodeDriver(NodeDriver):
         if filters:
             params.update(self._build_filters(filters))
 
-        if max_results:
-            params.update({'MaxResults': max_results})
-
         response = self.connection.request(self.path, params=params).object
 
         return self._to_volume_modifications(response)


[09/16] libcloud git commit: FAM-791 repr added

Posted by an...@apache.org.
FAM-791 repr added


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/d2cc30fe
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/d2cc30fe
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/d2cc30fe

Branch: refs/heads/trunk
Commit: d2cc30fef96766556f6d12768167a9b5ff143e8b
Parents: 7bd3afa
Author: Hennadii Stas <ut...@gmail.com>
Authored: Mon Apr 10 14:53:22 2017 +0300
Committer: Hennadii Stas <ut...@gmail.com>
Committed: Thu Apr 20 13:04:07 2017 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/d2cc30fe/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index 315a3db..d218a3a 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -2874,20 +2874,11 @@ class EC2VolumeModification(object):
     If the volume has never been modified, some element values will be null.
     """
 
-    def __init__(self,
-            end_time=None,
-            modification_state=None,
-            original_iops=None,
-            original_size=None,
-            original_volume_type=None,
-            progress=None,
-            start_time=None,
-            status_message=None,
-            target_iops=None,
-            target_size=None,
-            target_volume_type=None,
-            volume_id=None,
-            ):
+    def __init__(self, end_time=None, modification_state=None,
+                 original_iops=None, original_size=None,
+                 original_volume_type=None, progress=None, start_time=None,
+                 status_message=None, target_iops=None, target_size=None,
+                 target_volume_type=None, volume_id=None):
         self.end_time = end_time
         self.modification_state = modification_state
         self.original_iops = original_iops
@@ -2901,6 +2892,18 @@ class EC2VolumeModification(object):
         self.target_volume_type = target_volume_type
         self.volume_id = volume_id
 
+    def __repr__(self):
+        return (('<EC2VolumeModification: end_time=%s, modification_state=%s, '
+                 'original_iops=%s, original_size=%s, '
+                 'original_volume_type=%s, progress=%s, start_time=%s, '
+                 'status_message=%s, target_iops=%s, target_size=%s, '
+                 'target_volume_type=%s, volume_id=%s>')
+                % (self.end_time, self.modification_state, self.original_iops,
+                   self.original_size, self.original_volume_type,
+                   self.progress, self.start_time, self.status_message,
+                   self.target_iops, self.target_size, self.target_volume_type,
+                   self.volume_id))
+
 
 class BaseEC2NodeDriver(NodeDriver):
     """


[08/16] libcloud git commit: FAM-791 api calls fixed

Posted by an...@apache.org.
FAM-791 api calls fixed


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/7bd3afa7
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/7bd3afa7
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/7bd3afa7

Branch: refs/heads/trunk
Commit: 7bd3afa74e35a5bf66885d591a420eed149e5ceb
Parents: e78c67e
Author: Hennadii Stas <ut...@gmail.com>
Authored: Thu Mar 30 16:48:11 2017 +0300
Committer: Hennadii Stas <ut...@gmail.com>
Committed: Thu Apr 20 13:04:00 2017 +0300

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/7bd3afa7/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index 400cb2c..315a3db 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -5684,7 +5684,7 @@ class BaseEC2NodeDriver(NodeDriver):
             params.update({'DryRun': dry_run})
 
         if volume_ids:
-            params.update({'VolumeIds': volume_ids})
+            params.update(self._pathlist('VolumeId', volume_ids))
 
         if filters:
             params.update(self._build_filters(filters))
@@ -5835,9 +5835,7 @@ class BaseEC2NodeDriver(NodeDriver):
 
         :rtype:     :class:`EC2VolumeModification`
         """
-        params_element = element.find(
-            fixxpath(xpath='volumeModification', namespace=NAMESPACE))
-        params = self._get_extra_dict(params_element,
+        params = self._get_extra_dict(element,
                                       VOLUME_MODIFICATION_ATTRIBUTE_MAP)
 
         return EC2VolumeModification(**params)