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:58 UTC

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

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')