| Index: tools/telemetry/third_party/gsutilz/third_party/boto/tests/integration/redshift/test_layer1.py
|
| diff --git a/tools/telemetry/third_party/gsutilz/third_party/boto/tests/integration/redshift/test_layer1.py b/tools/telemetry/third_party/gsutilz/third_party/boto/tests/integration/redshift/test_layer1.py
|
| deleted file mode 100644
|
| index 490618e1785d835cc0b6c9b8aabe3eefe0bf0980..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/third_party/gsutilz/third_party/boto/tests/integration/redshift/test_layer1.py
|
| +++ /dev/null
|
| @@ -1,134 +0,0 @@
|
| -# Copyright (c) 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved
|
| -#
|
| -# Permission is hereby granted, free of charge, to any person obtaining a
|
| -# copy of this software and associated documentation files (the
|
| -# "Software"), to deal in the Software without restriction, including
|
| -# without limitation the rights to use, copy, modify, merge, publish, dis-
|
| -# tribute, sublicense, and/or sell copies of the Software, and to permit
|
| -# persons to whom the Software is furnished to do so, subject to the fol-
|
| -# lowing conditions:
|
| -#
|
| -# The above copyright notice and this permission notice shall be included
|
| -# in all copies or substantial portions of the Software.
|
| -#
|
| -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
|
| -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
| -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
| -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
| -# IN THE SOFTWARE.
|
| -#
|
| -import unittest
|
| -import time
|
| -
|
| -from nose.plugins.attrib import attr
|
| -
|
| -from boto.redshift.layer1 import RedshiftConnection
|
| -from boto.redshift.exceptions import ClusterNotFoundFault
|
| -from boto.redshift.exceptions import ResizeNotFoundFault
|
| -
|
| -
|
| -class TestRedshiftLayer1Management(unittest.TestCase):
|
| - redshift = True
|
| -
|
| - def setUp(self):
|
| - self.api = RedshiftConnection()
|
| - self.cluster_prefix = 'boto-redshift-cluster-%s'
|
| - self.node_type = 'dw.hs1.xlarge'
|
| - self.master_username = 'mrtest'
|
| - self.master_password = 'P4ssword'
|
| - self.db_name = 'simon'
|
| - # Redshift was taking ~20 minutes to bring clusters up in testing.
|
| - self.wait_time = 60 * 20
|
| -
|
| - def cluster_id(self):
|
| - # This need to be unique per-test method.
|
| - return self.cluster_prefix % str(int(time.time()))
|
| -
|
| - def create_cluster(self):
|
| - cluster_id = self.cluster_id()
|
| - self.api.create_cluster(
|
| - cluster_id, self.node_type,
|
| - self.master_username, self.master_password,
|
| - db_name=self.db_name, number_of_nodes=3
|
| - )
|
| -
|
| - # Wait for it to come up.
|
| - time.sleep(self.wait_time)
|
| -
|
| - self.addCleanup(self.delete_cluster_the_slow_way, cluster_id)
|
| - return cluster_id
|
| -
|
| - def delete_cluster_the_slow_way(self, cluster_id):
|
| - # Because there might be other operations in progress. :(
|
| - time.sleep(self.wait_time)
|
| -
|
| - self.api.delete_cluster(cluster_id, skip_final_cluster_snapshot=True)
|
| -
|
| - @attr('notdefault')
|
| - def test_create_delete_cluster(self):
|
| - cluster_id = self.cluster_id()
|
| - self.api.create_cluster(
|
| - cluster_id, self.node_type,
|
| - self.master_username, self.master_password,
|
| - db_name=self.db_name, number_of_nodes=3
|
| - )
|
| -
|
| - # Wait for it to come up.
|
| - time.sleep(self.wait_time)
|
| -
|
| - self.api.delete_cluster(cluster_id, skip_final_cluster_snapshot=True)
|
| -
|
| - @attr('notdefault')
|
| - def test_as_much_as_possible_before_teardown(self):
|
| - # Per @garnaat, for the sake of suite time, we'll test as much as we
|
| - # can before we teardown.
|
| -
|
| - # Test a non-existent cluster ID.
|
| - with self.assertRaises(ClusterNotFoundFault):
|
| - self.api.describe_clusters('badpipelineid')
|
| -
|
| - # Now create the cluster & move on.
|
| - cluster_id = self.create_cluster()
|
| -
|
| - # Test never resized.
|
| - with self.assertRaises(ResizeNotFoundFault):
|
| - self.api.describe_resize(cluster_id)
|
| -
|
| - # The cluster shows up in describe_clusters
|
| - clusters = self.api.describe_clusters()['DescribeClustersResponse']\
|
| - ['DescribeClustersResult']\
|
| - ['Clusters']
|
| - cluster_ids = [c['ClusterIdentifier'] for c in clusters]
|
| - self.assertIn(cluster_id, cluster_ids)
|
| -
|
| - # The cluster shows up in describe_clusters w/ id
|
| - response = self.api.describe_clusters(cluster_id)
|
| - self.assertEqual(response['DescribeClustersResponse']\
|
| - ['DescribeClustersResult']['Clusters'][0]\
|
| - ['ClusterIdentifier'], cluster_id)
|
| -
|
| - snapshot_id = "snap-%s" % cluster_id
|
| -
|
| - # Test creating a snapshot.
|
| - response = self.api.create_cluster_snapshot(snapshot_id, cluster_id)
|
| - self.assertEqual(response['CreateClusterSnapshotResponse']\
|
| - ['CreateClusterSnapshotResult']['Snapshot']\
|
| - ['SnapshotIdentifier'], snapshot_id)
|
| - self.assertEqual(response['CreateClusterSnapshotResponse']\
|
| - ['CreateClusterSnapshotResult']['Snapshot']\
|
| - ['Status'], 'creating')
|
| - self.addCleanup(self.api.delete_cluster_snapshot, snapshot_id)
|
| -
|
| - # More waiting. :(
|
| - time.sleep(self.wait_time)
|
| -
|
| - # Describe the snapshots.
|
| - response = self.api.describe_cluster_snapshots(
|
| - cluster_identifier=cluster_id
|
| - )
|
| - snap = response['DescribeClusterSnapshotsResponse']\
|
| - ['DescribeClusterSnapshotsResult']['Snapshots'][-1]
|
| - self.assertEqual(snap['SnapshotType'], 'manual')
|
| - self.assertEqual(snap['DBName'], self.db_name)
|
|
|