Updated Branches: refs/heads/trunk 069098982 -> 25d988fb8
Issue LIBCLOUD-465: Add new EC2 I2 instance types to EC2 driver. Also update pricing information. Signed-off-by: Tomaz Muraus <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f7dbdc5b Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f7dbdc5b Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f7dbdc5b Branch: refs/heads/trunk Commit: f7dbdc5ba1de3ba4a92e6baa7e831e73d55578f9 Parents: 0690989 Author: Chris DeRamus <[email protected]> Authored: Fri Dec 20 06:29:40 2013 -0500 Committer: Tomaz Muraus <[email protected]> Committed: Fri Dec 20 15:27:04 2013 +0100 ---------------------------------------------------------------------- libcloud/compute/drivers/ec2.py | 74 +++++++++++++++++++++++++++++----- libcloud/data/pricing.json | 42 +++++++++++++++---- libcloud/test/compute/test_ec2.py | 8 ++-- 3 files changed, 104 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/f7dbdc5b/libcloud/compute/drivers/ec2.py ---------------------------------------------------------------------- diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py index b94dbdb..bb2d4e7 100644 --- a/libcloud/compute/drivers/ec2.py +++ b/libcloud/compute/drivers/ec2.py @@ -202,7 +202,36 @@ INSTANCE_TYPES = { 'ram': 119808, 'disk': 48000, 'bandwidth': None - } + }, + # i2 instances have up to eight SSD drives + 'i2.xlarge': { + 'id': 'i2.xlarge', + 'name': 'High Storage Optimized Extra Large Instance', + 'ram': 31232, + 'disk': 800, + 'bandwidth': None + }, + 'i2.2xlarge': { + 'id': 'i2.2xlarge', + 'name': 'High Storage Optimized Double Extra Large Instance', + 'ram': 62464, + 'disk': 1600, + 'bandwidth': None + }, + 'i2.4xlarge': { + 'id': 'i2.4xlarge', + 'name': 'High Storage Optimized Quadruple Large Instance', + 'ram': 124928, + 'disk': 1600, + 'bandwidth': None + }, + 'i2.8xlarge': { + 'id': 'i2.8xlarge', + 'name': 'High Storage Optimized Eight Extra Large Instance', + 'ram': 249856, + 'disk': 3200, + 'bandwidth': None + }, } REGION_DETAILS = { @@ -232,7 +261,11 @@ REGION_DETAILS = { 'c3.8xlarge', 'cg1.4xlarge', 'cr1.8xlarge', - 'hs1.8xlarge' + 'hs1.8xlarge', + 'i2.xlarge', + 'i2.2xlarge', + 'i2.4xlarge', + 'i2.8xlarge', ] }, 'us-west-1': { @@ -256,7 +289,11 @@ REGION_DETAILS = { 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', - 'c3.8xlarge' + 'c3.8xlarge', + 'i2.xlarge', + 'i2.2xlarge', + 'i2.4xlarge', + 'i2.8xlarge', ] }, 'us-west-2': { @@ -279,7 +316,11 @@ REGION_DETAILS = { 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', - 'cc2.8xlarge' + 'cc2.8xlarge', + 'i2.xlarge', + 'i2.2xlarge', + 'i2.4xlarge', + 'i2.8xlarge', ] }, 'eu-west-1': { @@ -304,7 +345,11 @@ REGION_DETAILS = { 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', - 'cc2.8xlarge' + 'cc2.8xlarge', + 'i2.xlarge', + 'i2.2xlarge', + 'i2.4xlarge', + 'i2.8xlarge', ] }, 'ap-southeast-1': { @@ -329,7 +374,11 @@ REGION_DETAILS = { 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', - 'hs1.8xlarge' + 'hs1.8xlarge', + 'i2.xlarge', + 'i2.2xlarge', + 'i2.4xlarge', + 'i2.8xlarge', ] }, 'ap-northeast-1': { @@ -353,7 +402,11 @@ REGION_DETAILS = { 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', - 'c3.8xlarge' + 'c3.8xlarge', + 'i2.xlarge', + 'i2.2xlarge', + 'i2.4xlarge', + 'i2.8xlarge', ] }, 'sa-east-1': { @@ -373,7 +426,6 @@ REGION_DETAILS = { 'm3.2xlarge', 'c1.medium', 'c1.xlarge' - ] }, 'ap-southeast-2': { @@ -398,7 +450,11 @@ REGION_DETAILS = { 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', - 'hs1.8xlarge' + 'hs1.8xlarge', + 'i2.xlarge', + 'i2.2xlarge', + 'i2.4xlarge', + 'i2.8xlarge', ] }, 'nimbus': { http://git-wip-us.apache.org/repos/asf/libcloud/blob/f7dbdc5b/libcloud/data/pricing.json ---------------------------------------------------------------------- diff --git a/libcloud/data/pricing.json b/libcloud/data/pricing.json index 0a4cd97..4c9c699 100644 --- a/libcloud/data/pricing.json +++ b/libcloud/data/pricing.json @@ -87,7 +87,11 @@ "cc1.4xlarge": 1.3, "cc2.8xlarge": 2.4, "cr1.8xlarge": 3.50, - "hs1.8xlarge": 4.6 + "hs1.8xlarge": 4.6, + "i2.xlarge": 0.85, + "i2.2xlarge": 1.71, + "i2.4xlarge": 3.41, + "i2.8xlarge": 6.82 }, "ec2_us_west": { @@ -107,7 +111,11 @@ "m2.2xlarge": 1.14, "m2.4xlarge": 2.28, "m3.xlarge": 0.495, - "m3.2xlarge": 0.990 + "m3.2xlarge": 0.990, + "i2.xlarge": 0.85, + "i2.2xlarge": 1.71, + "i2.4xlarge": 3.41, + "i2.8xlarge": 6.82 }, "ec2_us_west_oregon": { @@ -128,7 +136,11 @@ "m2.4xlarge": 2.0, "m3.xlarge": 0.45, "m3.2xlarge": 0.90, - "cc2.8xlarge": 2.400 + "cc2.8xlarge": 2.400, + "i2.xlarge": 0.85, + "i2.2xlarge": 1.71, + "i2.4xlarge": 3.41, + "i2.8xlarge": 6.82 }, "ec2_eu_west": { @@ -149,7 +161,11 @@ "m2.4xlarge": 2.28, "m3.xlarge": 0.495, "m3.2xlarge": 0.990, - "cc2.8xlarge": 2.7 + "cc2.8xlarge": 2.7, + "i2.xlarge": 0.85, + "i2.2xlarge": 1.71, + "i2.4xlarge": 3.41, + "i2.8xlarge": 6.82 }, "ec2_ap_southeast": { @@ -170,7 +186,11 @@ "m2.4xlarge": 2.28, "m3.xlarge": 0.630, "m3.2xlarge": 1.260, - "hs1.8xlarge": 5.570 + "hs1.8xlarge": 5.570, + "i2.xlarge": 0.85, + "i2.2xlarge": 1.71, + "i2.4xlarge": 3.41, + "i2.8xlarge": 6.82 }, "ec2_ap_northeast": { @@ -190,7 +210,11 @@ "m2.2xlarge": 1.20, "m2.4xlarge": 2.39, "m3.xlarge": 0.684, - "m3.2xlarge": 1.368 + "m3.2xlarge": 1.368, + "i2.xlarge": 0.85, + "i2.2xlarge": 1.71, + "i2.4xlarge": 3.41, + "i2.8xlarge": 6.82 }, "ec2_sa_east": { @@ -226,7 +250,11 @@ "m2.4xlarge": 2.024, "m3.xlarge": 0.630, "m3.2xlarge": 1.260, - "hs1.8xlarge": 5.570 + "hs1.8xlarge": 5.570, + "i2.xlarge": 0.85, + "i2.2xlarge": 1.71, + "i2.4xlarge": 3.41, + "i2.8xlarge": 6.82 }, "nephoscale" : { http://git-wip-us.apache.org/repos/asf/libcloud/blob/f7dbdc5b/libcloud/test/compute/test_ec2.py ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py index d4caacc..14cae57 100644 --- a/libcloud/test/compute/test_ec2.py +++ b/libcloud/test/compute/test_ec2.py @@ -305,18 +305,18 @@ class EC2Tests(LibcloudTestCase, TestCaseMixin): self.assertTrue('m2.4xlarge' in ids) if region_name == 'us-east-1': - self.assertEqual(len(sizes), 22) + self.assertEqual(len(sizes), 26) self.assertTrue('cg1.4xlarge' in ids) self.assertTrue('cc1.4xlarge' in ids) self.assertTrue('cc2.8xlarge' in ids) self.assertTrue('cr1.8xlarge' in ids) elif region_name in ['eu-west-1', 'ap-southeast-1', 'ap-southeast-2']: - self.assertEqual(len(sizes), 18) + self.assertEqual(len(sizes), 22) elif region_name == 'us-west-1': - self.assertEqual(len(sizes), 17) + self.assertEqual(len(sizes), 21) else: - self.assertEqual(len(sizes), 17) + self.assertEqual(len(sizes), 21) self.driver.region_name = region_old
