Repository: libcloud Updated Branches: refs/heads/trunk 05f02c7af -> 4de84f6ba
Add i3 instance types for AWS Closes #1038 Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/4de84f6b Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/4de84f6b Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/4de84f6b Branch: refs/heads/trunk Commit: 4de84f6baa18562a722e973227260b3beaa4665f Parents: 05f02c7 Author: Stephen Mullins <smull...@signal.co> Authored: Fri Apr 21 13:27:09 2017 -0500 Committer: Anthony Shaw <anthonys...@apache.org> Committed: Tue May 2 15:13:39 2017 +1000 ---------------------------------------------------------------------- contrib/scrape-ec2-prices.py | 6 ++ libcloud/compute/drivers/ec2.py | 150 +++++++++++++++++++++++++++++++++ libcloud/test/compute/test_ec2.py | 14 +-- 3 files changed, 163 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/4de84f6b/contrib/scrape-ec2-prices.py ---------------------------------------------------------------------- diff --git a/contrib/scrape-ec2-prices.py b/contrib/scrape-ec2-prices.py index cb21a31..9658140 100755 --- a/contrib/scrape-ec2-prices.py +++ b/contrib/scrape-ec2-prices.py @@ -90,6 +90,12 @@ EC2_INSTANCE_TYPES = [ 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16large', 'r3.large', 'r3.xlarge', 'r3.2xlarge', http://git-wip-us.apache.org/repos/asf/libcloud/blob/4de84f6b/libcloud/compute/drivers/ec2.py ---------------------------------------------------------------------- diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py index a217d12..a551a70 100644 --- a/libcloud/compute/drivers/ec2.py +++ b/libcloud/compute/drivers/ec2.py @@ -532,6 +532,66 @@ INSTANCE_TYPES = { 'cpu': 32 } }, + 'i3.large': { + 'id': 'i3.large', + 'name': 'High I/O Instances', + 'ram': GiB(15.25), + 'disk': 1 * 475, # GB + 'bandwidth': None, + 'extra': { + 'cpu': 2 + } + }, + 'i3.xlarge': { + 'id': 'i3.xlarge', + 'name': 'High I/O Instances', + 'ram': GiB(30.5), + 'disk': 1 * 950, # GB + 'bandwidth': None, + 'extra': { + 'cpu': 4 + } + }, + 'i3.2xlarge': { + 'id': 'i3.2xlarge', + 'name': 'High I/O Instances', + 'ram': GiB(61), + 'disk': 1 * 1900, # GB + 'bandwidth': None, + 'extra': { + 'cpu': 8 + } + }, + 'i3.4xlarge': { + 'id': 'i3.4xlarge', + 'name': 'High I/O Instances', + 'ram': GiB(122), + 'disk': 2 * 1900, # GB + 'bandwidth': None, + 'extra': { + 'cpu': 16 + } + }, + 'i3.8xlarge': { + 'id': 'i3.8xlarge', + 'name': 'High I/O Instances', + 'ram': GiB(244), + 'disk': 4 * 1900, # GB + 'bandwidth': None, + 'extra': { + 'cpu': 32 + } + }, + 'i3.16xlarge': { + 'id': 'i3.16xlarge', + 'name': 'High I/O Instances', + 'ram': GiB(488), + 'disk': 8 * 1900, # GB + 'bandwidth': None, + 'extra': { + 'cpu': 64 + } + }, 'd2.xlarge': { 'id': 'd2.xlarge', 'name': 'Dense Storage Optimized Extra Large Instance', @@ -815,6 +875,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -881,6 +947,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'r3.large', 'r3.xlarge', 'r3.2xlarge', @@ -946,6 +1018,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1017,6 +1095,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1085,6 +1169,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1155,6 +1245,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1203,6 +1299,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1263,6 +1365,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1311,6 +1419,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1373,6 +1487,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1418,6 +1538,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1523,6 +1649,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1592,6 +1724,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'd2.xlarge', 'd2.2xlarge', 'd2.4xlarge', @@ -1653,6 +1791,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', 'r3.large', 'r3.xlarge', 'r3.2xlarge', @@ -1725,6 +1869,12 @@ REGION_DETAILS = { 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge', + 'i3.large', + 'i3.xlarge', + 'i3.2xlarge', + 'i3.4xlarge', + 'i3.8xlarge', + 'i3.16xlarge', ] }, 'nimbus': { http://git-wip-us.apache.org/repos/asf/libcloud/blob/4de84f6b/libcloud/test/compute/test_ec2.py ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py index e9c8ef5..adb39d3 100644 --- a/libcloud/test/compute/test_ec2.py +++ b/libcloud/test/compute/test_ec2.py @@ -429,23 +429,23 @@ class EC2Tests(LibcloudTestCase, TestCaseMixin): self.assertTrue('m2.4xlarge' in ids) if region_name == 'us-east-1': - self.assertEqual(len(sizes), 61) + self.assertEqual(len(sizes), 67) self.assertTrue('cg1.4xlarge' in ids) self.assertTrue('cc2.8xlarge' in ids) self.assertTrue('cr1.8xlarge' in ids) self.assertTrue('x1.32xlarge' in ids) elif region_name == 'us-west-1': - self.assertEqual(len(sizes), 52) + self.assertEqual(len(sizes), 58) if region_name == 'us-west-2': - self.assertEqual(len(sizes), 62) + self.assertEqual(len(sizes), 68) elif region_name == 'ap-southeast-1': - self.assertEqual(len(sizes), 51) + self.assertEqual(len(sizes), 57) elif region_name == 'ap-southeast-2': - self.assertEqual(len(sizes), 55) + self.assertEqual(len(sizes), 61) elif region_name == 'eu-west-1': - self.assertEqual(len(sizes), 59) + self.assertEqual(len(sizes), 65) elif region_name == 'ap-south-1': - self.assertEqual(len(sizes), 35) + self.assertEqual(len(sizes), 41) self.driver.region_name = region_old