You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2014/01/03 15:59:22 UTC

[10/44] git commit: Tests for Snapshots (plus fix for list_targetpools test)

Tests for Snapshots (plus fix for list_targetpools test)


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

Branch: refs/heads/trunk
Commit: ea7662ac4909b72a837ebbd54cd61baee770d2f0
Parents: a0aa455
Author: Rick Wright <ri...@google.com>
Authored: Mon Dec 16 13:28:33 2013 -0800
Committer: Rick Wright <ri...@google.com>
Committed: Mon Dec 16 13:28:33 2013 -0800

----------------------------------------------------------------------
 .../compute/fixtures/gce/global_snapshots.json  | 31 +++++++++
 .../gce/global_snapshots_lcsnapshot.json        | 12 ++++
 .../gce/global_snapshots_lcsnapshot_delete.json | 14 ++++
 ...tion_global_snapshots_lcsnapshot_delete.json | 15 +++++
 ...ral1-a_disks_lcdisk_createSnapshot_post.json | 16 +++++
 ...ral1-a_disks_lcdisk_createSnapshot_post.json | 15 +++++
 libcloud/test/compute/test_gce.py               | 70 ++++++++++++++++++--
 7 files changed, 167 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/ea7662ac/libcloud/test/compute/fixtures/gce/global_snapshots.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/global_snapshots.json b/libcloud/test/compute/fixtures/gce/global_snapshots.json
new file mode 100644
index 0000000..d839107
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/global_snapshots.json
@@ -0,0 +1,31 @@
+{
+  "id": "projects/project_name/global/snapshots",
+  "items": [
+    {
+      "creationTimestamp": "2013-12-16T13:03:51.345-08:00",
+      "description": "",
+      "diskSizeGb": "1",
+      "id": "17482266715940883688",
+      "kind": "compute#snapshot",
+      "name": "lcsnapshot",
+      "selfLink": "https://www.googleapis.com/compute/v1/projects/project_name/global/snapshots/lcsnapshot",
+      "sourceDisk": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a/disks/lcdisk",
+      "sourceDiskId": "-2511816066479461182",
+      "status": "READY"
+    },
+    {
+      "creationTimestamp": "2013-12-16T12:48:12.557-08:00",
+      "description": "",
+      "diskSizeGb": "10",
+      "id": "3341332334980930052",
+      "kind": "compute#snapshot",
+      "name": "libcloud-demo-snapshot",
+      "selfLink": "https://www.googleapis.com/compute/v1/projects/project_name/global/snapshots/libcloud-demo-snapshot",
+      "sourceDisk": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central2-a/disks/libcloud-demo-snap-template",
+      "sourceDiskId": "-6245698478147030397",
+      "status": "READY"
+    }
+  ],
+  "kind": "compute#snapshotList",
+  "selfLink": "https://www.googleapis.com/compute/v1/projects/project_name/global/snapshots"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ea7662ac/libcloud/test/compute/fixtures/gce/global_snapshots_lcsnapshot.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/global_snapshots_lcsnapshot.json b/libcloud/test/compute/fixtures/gce/global_snapshots_lcsnapshot.json
new file mode 100644
index 0000000..9b071a9
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/global_snapshots_lcsnapshot.json
@@ -0,0 +1,12 @@
+{
+  "creationTimestamp": "2013-12-16T13:03:51.345-08:00",
+  "description": "",
+  "diskSizeGb": "1",
+  "id": "17482266715940883688",
+  "kind": "compute#snapshot",
+  "name": "lcsnapshot",
+  "selfLink": "https://www.googleapis.com/compute/v1/projects/project_name/global/snapshots/lcsnapshot",
+  "sourceDisk": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a/disks/lcdisk",
+  "sourceDiskId": "-2511816066479461182",
+  "status": "READY"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ea7662ac/libcloud/test/compute/fixtures/gce/global_snapshots_lcsnapshot_delete.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/global_snapshots_lcsnapshot_delete.json b/libcloud/test/compute/fixtures/gce/global_snapshots_lcsnapshot_delete.json
new file mode 100644
index 0000000..59cd70c
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/global_snapshots_lcsnapshot_delete.json
@@ -0,0 +1,14 @@
+{
+  "id": "5994251357251874363",
+  "insertTime": "2013-12-16T13:04:03.831-08:00",
+  "kind": "compute#operation",
+  "name": "operation-global_snapshots_lcsnapshot_delete",
+  "operationType": "delete",
+  "progress": 0,
+  "selfLink": "https://www.googleapis.com/compute/v1/projects/project_name/global/operations/operation-global_snapshots_lcsnapshot_delete",
+  "startTime": "2013-12-16T13:04:03.924-08:00",
+  "status": "PENDING",
+  "targetId": "17482266715940883688",
+  "targetLink": "https://www.googleapis.com/compute/v1/projects/project_name/global/snapshots/lcsnapshot",
+  "user": "487551519631-t6qvu2na6p4u9ptm46bsdujf0ohbdro7@developer.gserviceaccount.com"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ea7662ac/libcloud/test/compute/fixtures/gce/operations_operation_global_snapshots_lcsnapshot_delete.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/operations_operation_global_snapshots_lcsnapshot_delete.json b/libcloud/test/compute/fixtures/gce/operations_operation_global_snapshots_lcsnapshot_delete.json
new file mode 100644
index 0000000..e869f26
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/operations_operation_global_snapshots_lcsnapshot_delete.json
@@ -0,0 +1,15 @@
+{
+  "endTime": "2013-12-16T13:04:11.565-08:00",
+  "id": "5994251357251874363",
+  "insertTime": "2013-12-16T13:04:03.831-08:00",
+  "kind": "compute#operation",
+  "name": "operation-global_snapshots_lcsnapshot_delete",
+  "operationType": "delete",
+  "progress": 100,
+  "selfLink": "https://www.googleapis.com/compute/v1/projects/project_name/global/operations/operation-global_snapshots_lcsnapshot_delete",
+  "startTime": "2013-12-16T13:04:03.924-08:00",
+  "status": "DONE",
+  "targetId": "17482266715940883688",
+  "targetLink": "https://www.googleapis.com/compute/v1/projects/project_name/global/snapshots/lcsnapshot",
+  "user": "487551519631-t6qvu2na6p4u9ptm46bsdujf0ohbdro7@developer.gserviceaccount.com"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ea7662ac/libcloud/test/compute/fixtures/gce/operations_operation_zones_us-central1-a_disks_lcdisk_createSnapshot_post.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/operations_operation_zones_us-central1-a_disks_lcdisk_createSnapshot_post.json b/libcloud/test/compute/fixtures/gce/operations_operation_zones_us-central1-a_disks_lcdisk_createSnapshot_post.json
new file mode 100644
index 0000000..f765ebf
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/operations_operation_zones_us-central1-a_disks_lcdisk_createSnapshot_post.json
@@ -0,0 +1,16 @@
+{
+  "endTime": "2013-12-16T13:04:01.580-08:00",
+  "id": "0158330665043557584",
+  "insertTime": "2013-12-16T13:03:51.000-08:00",
+  "kind": "compute#operation",
+  "name": "operation-zones_us-central1-a_disks_lcdisk_createSnapshot_post",
+  "operationType": "createSnapshot",
+  "progress": 100,
+  "selfLink": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a/operations/operation-zones_us-central1-a_disks_lcdisk_createSnapshot_post",
+  "startTime": "2013-12-16T13:03:51.042-08:00",
+  "status": "DONE",
+  "targetId": "07494414044179227172",
+  "targetLink": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a/disks/lcdisk",
+  "user": "487551519631-t6qvu2na6p4u9ptm46bsdujf0ohbdro7@developer.gserviceaccount.com",
+  "zone": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ea7662ac/libcloud/test/compute/fixtures/gce/zones_us-central1-a_disks_lcdisk_createSnapshot_post.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/zones_us-central1-a_disks_lcdisk_createSnapshot_post.json b/libcloud/test/compute/fixtures/gce/zones_us-central1-a_disks_lcdisk_createSnapshot_post.json
new file mode 100644
index 0000000..97be56a
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/zones_us-central1-a_disks_lcdisk_createSnapshot_post.json
@@ -0,0 +1,15 @@
+{
+  "id": "0158330665043557584",
+  "insertTime": "2013-12-16T13:03:51.000-08:00",
+  "kind": "compute#operation",
+  "name": "operation-zones_us-central1-a_disks_lcdisk_createSnapshot_post",
+  "operationType": "createSnapshot",
+  "progress": 0,
+  "selfLink": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a/operations/operation-zones_us-central1-a_disks_lcdisk_createSnapshot_post",
+  "startTime": "2013-12-16T13:03:51.042-08:00",
+  "status": "PENDING",
+  "targetId": "07494414044179227172",
+  "targetLink": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a/disks/lcdisk",
+  "user": "487551519631-t6qvu2na6p4u9ptm46bsdujf0ohbdro7@developer.gserviceaccount.com",
+  "zone": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/ea7662ac/libcloud/test/compute/test_gce.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_gce.py b/libcloud/test/compute/test_gce.py
index 3462f64..31f35bf 100644
--- a/libcloud/test/compute/test_gce.py
+++ b/libcloud/test/compute/test_gce.py
@@ -168,15 +168,20 @@ class GCENodeDriverTest(LibcloudTestCase, TestCaseMixin):
         self.assertEqual(len(regions), 3)
         self.assertEqual(regions[0].name, 'europe-west1')
 
-    def ex_list_targetpools(self):
+    def test_ex_list_snapshots(self):
+        snapshots = self.driver.ex_list_snapshots()
+        self.assertEqual(len(snapshots), 2)
+        self.assertEqual(snapshots[0].name, 'lcsnapshot')
+
+    def test_ex_list_targetpools(self):
         target_pools = self.driver.ex_list_targetpools()
         target_pools_all = self.driver.ex_list_targetpools('all')
         target_pools_uc1 = self.driver.ex_list_targetpools('us-central1')
-        self.assertEqual(len(target_pools), 3)
-        self.assertEqual(len(target_pools_all), 4)
-        self.assertEqual(len(target_pools_uc1), 3)
-        self.assertEqual(target_pools[0].name, 'www-pool')
-        self.assertEqual(target_pools_uc1[0].name, 'www-pool')
+        self.assertEqual(len(target_pools), 2)
+        self.assertEqual(len(target_pools_all), 3)
+        self.assertEqual(len(target_pools_uc1), 2)
+        self.assertEqual(target_pools[0].name, 'lctargetpool')
+        self.assertEqual(target_pools_uc1[0].name, 'lctargetpool')
         names = [t.name for t in target_pools_all]
         self.assertTrue('www-pool' in names)
 
@@ -319,6 +324,13 @@ class GCENodeDriverTest(LibcloudTestCase, TestCaseMixin):
         self.assertEqual(len(targetpool.nodes), len(nodes))
         self.assertEqual(targetpool.region.name, region)
 
+    def test_ex_create_volume_snapshot(self):
+        snapshot_name = 'lcsnapshot'
+        volume = self.driver.ex_get_volume('lcdisk')
+        snapshot = volume.snapshot(snapshot_name)
+        self.assertEqual(snapshot.name, snapshot_name)
+        self.assertEqual(snapshot.size, '1')
+
     def test_create_volume(self):
         volume_name = 'lcdisk'
         size = 1
@@ -442,6 +454,11 @@ class GCENodeDriverTest(LibcloudTestCase, TestCaseMixin):
         destroyed = disk.destroy()
         self.assertTrue(destroyed)
 
+    def test_destroy_volume_snapshot(self):
+        snapshot = self.driver.ex_get_snapshot('lcsnapshot')
+        destroyed = snapshot.destroy()
+        self.assertTrue(destroyed)
+
     def test_ex_get_address(self):
         address_name = 'lcaddress'
         address = self.driver.ex_get_address(address_name)
@@ -535,6 +552,13 @@ class GCENodeDriverTest(LibcloudTestCase, TestCaseMixin):
         self.assertEqual(len(targetpool.nodes), 2)
         self.assertEqual(targetpool.region.name, 'us-central1')
 
+    def test_ex_get_snapshot(self):
+        snapshot_name = 'lcsnapshot'
+        snapshot = self.driver.ex_get_snapshot(snapshot_name)
+        self.assertEqual(snapshot.name, snapshot_name)
+        self.assertEqual(snapshot.size, '1')
+        self.assertEqual(snapshot.status, 'READY')
+
     def test_ex_get_volume(self):
         volume_name = 'lcdisk'
         volume = self.driver.ex_get_volume(volume_name)
@@ -593,6 +617,10 @@ class GCEMockHttp(MockHttpTestCase):
         body = self.fixtures.load('aggregated_machineTypes.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
+    def _aggregated_targetPools(self, method, url, body, headers):
+        body = self.fixtures.load('aggregated_targetPools.json')
+        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
     def _global_httpHealthChecks(self, method, url, body, headers):
         if method == 'POST':
             body = self.fixtures.load('global_httpHealthChecks_post.json')
@@ -673,6 +701,18 @@ class GCEMockHttp(MockHttpTestCase):
             body = self.fixtures.load('global_networks_lcnetwork.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
+    def _global_snapshots(self, method, url, body, headers):
+        body = self.fixtures.load('global_snapshots.json')
+        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
+    def _global_snapshots_lcsnapshot(self, method, url, body, headers):
+        if method == 'DELETE':
+            body = self.fixtures.load(
+                'global_snapshots_lcsnapshot_delete.json')
+        else:
+            body = self.fixtures.load('global_snapshots_lcsnapshot.json')
+        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
     def _global_operations_operation_global_httpHealthChecks_lchealthcheck_delete(
             self, method, url, body, headers):
         body = self.fixtures.load(
@@ -721,6 +761,12 @@ class GCEMockHttp(MockHttpTestCase):
             'operations_operation_global_networks_post.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
+    def _global_operations_operation_global_snapshots_lcsnapshot_delete(
+            self, method, url, body, headers):
+        body = self.fixtures.load(
+            'operations_operation_global_snapshots_lcsnapshot_delete.json')
+        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
     def _regions_us_central1_operations_operation_regions_us_central1_addresses_lcaddress_delete(
             self, method, url, body, headers):
         body = self.fixtures.load(
@@ -787,6 +833,12 @@ class GCEMockHttp(MockHttpTestCase):
             'operations_operation_zones_us-central1-a_disks_lcdisk_delete.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
+    def _zones_us_central1_a_operations_operation_zones_us_central1_a_disks_lcdisk_createSnapshot_post(
+            self, method, url, body, headers):
+        body = self.fixtures.load(
+            'operations_operation_zones_us-central1-a_disks_lcdisk_createSnapshot_post.json')
+        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
     def _zones_us_central1_a_operations_operation_zones_us_central1_a_disks_post(
             self, method, url, body, headers):
         body = self.fixtures.load(
@@ -970,6 +1022,12 @@ class GCEMockHttp(MockHttpTestCase):
             body = self.fixtures.load('zones_us-central1-a_disks_lcdisk.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
+    def _zones_us_central1_a_disks_lcdisk_createSnapshot(self, method, url,
+                                                         body, headers):
+        body = self.fixtures.load(
+            'zones_us-central1-a_disks_lcdisk_createSnapshot_post.json')
+        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
     def _zones_us_central1_a_disks_node_name(self, method, url, body, headers):
         body = self.fixtures.load('generic_disk.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])