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 2011/06/25 18:48:08 UTC
svn commit: r1139569 - in /libcloud/trunk: libcloud/data/pricing.json
libcloud/pricing.py test/pricing_test.json
Author: tomaz
Date: Sat Jun 25 16:48:08 2011
New Revision: 1139569
URL: http://svn.apache.org/viewvc?rev=1139569&view=rev
Log:
1. Change the pricing format so now the pricing data is separated by the type.
This makes it possible to fill the whole module cache at once instead of a
driver at a time.
2. Also store the unix timestamp of the time when the pricing data has been
updated in the pricing.json file.
Modified:
libcloud/trunk/libcloud/data/pricing.json
libcloud/trunk/libcloud/pricing.py
libcloud/trunk/test/pricing_test.json
Modified: libcloud/trunk/libcloud/data/pricing.json
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/data/pricing.json?rev=1139569&r1=1139568&r2=1139569&view=diff
==============================================================================
--- libcloud/trunk/libcloud/data/pricing.json (original)
+++ libcloud/trunk/libcloud/data/pricing.json Sat Jun 25 16:48:08 2011
@@ -1,150 +1,157 @@
{
- "bluebox": {
- "1gb": 0.15,
- "2gb": 0.25,
- "4gb": 0.35,
- "8gb": 0.45
+ "compute": {
+ "bluebox": {
+ "1gb": 0.15,
+ "2gb": 0.25,
+ "4gb": 0.35,
+ "8gb": 0.45
+ },
+
+ "rackspace": {
+ "1": 0.015,
+ "2": 0.030,
+ "3": 0.060,
+ "4": 0.120,
+ "5": 0.240,
+ "6": 0.480,
+ "7": 0.960
+ },
+
+ "dreamhost": {
+ "minimum": 15,
+ "maximum": 200,
+ "default": 115,
+ "low": 50,
+ "high": 150
+ },
+
+ "ec2_us_east": {
+ "t1.micro": 0.02,
+ "m1.small": 0.085,
+ "m1.large": 0.34,
+ "m1.xlarge": 0.68,
+ "c1.medium": 0.17,
+ "c1.xlarge": 0.68,
+ "m2.xlarge": 0.50,
+ "m2.2xlarge": 1.0,
+ "m2.4xlarge": 2.0,
+ "cg1.4xlarge": 2.1,
+ "cc1.4xlarge": 1.6
+ },
+
+ "ec2_us_west": {
+ "t1.micro": 0.025,
+ "m1.small": 0.095,
+ "m1.large": 0.38,
+ "m1.xlarge": 0.76,
+ "c1.medium": 0.19,
+ "c1.xlarge": 0.76,
+ "m2.xlarge": 0.57,
+ "m2.2xlarge": 1.14,
+ "m2.4xlarge": 2.28
+ },
+
+ "ec2_eu_west": {
+ "t1.micro": 0.025,
+ "m1.small": 0.095,
+ "m1.large": 0.38,
+ "m1.xlarge": 0.76,
+ "c1.medium": 0.19,
+ "c1.xlarge": 0.76,
+ "m2.xlarge": 0.57,
+ "m2.2xlarge": 1.14,
+ "m2.4xlarge": 2.28
+ },
+
+ "ec2_ap_southeast": {
+ "t1.micro": 0.025,
+ "m1.small": 0.095,
+ "m1.large": 0.38,
+ "m1.xlarge": 0.76,
+ "c1.medium": 0.19,
+ "c1.xlarge": 0.76,
+ "m2.xlarge": 0.57,
+ "m2.2xlarge": 1.14,
+ "m2.4xlarge": 2.28
+ },
+
+ "ec2_ap_northeast": {
+ "t1.micro": 0.027,
+ "m1.small": 0.10,
+ "m1.large": 0.40,
+ "m1.xlarge": 0.80,
+ "c1.medium": 0.20,
+ "c1.xlarge": 0.80,
+ "m2.xlarge": 0.60,
+ "m2.2xlarge": 1.20,
+ "m2.4xlarge": 2.39
+ },
+
+ "nimbus" : {
+ "m1.small": 0.0,
+ "m1.large": 0.0,
+ "m1.xlarge": 0.0
+ },
+
+ "cloudsigma_zrh": {
+ "micro-regular": 0.0548,
+ "micro-high-cpu": 0.381,
+ "standard-small": 0.0796,
+ "standard-large": 0.381,
+ "standard-extra-large": 0.762,
+ "high-memory-extra-large": 0.642,
+ "high-memory-double-extra-large": 1.383,
+ "high-cpu-medium": 0.211,
+ "high-cpu-extra-large": 0.780
+ },
+
+ "elastichosts": {
+ "small": 0.100,
+ "medium": 0.223,
+ "large": 0.378,
+ "extra-large": 0.579,
+ "high-cpu-medium": 0.180,
+ "high-cpu-extra-large": 0.770
+ },
+
+ "skalicloud": {
+ "small": 0.136,
+ "medium": 0.301,
+ "large": 0.505,
+ "extra-large": 0.654,
+ "high-cpu-medium": 0.249,
+ "high-cpu-extra-large": 0.936
+ },
+
+ "serverlove": {
+ "small": 0.161,
+ "medium": 0.404,
+ "large": 0.534,
+ "extra-large": 0.615,
+ "high-cpu-medium": 0.291,
+ "high-cpu-extra-large": 0.776
+ },
+
+ "gogrid": {
+ "512MB": 0.095,
+ "1GB": 0.19,
+ "2GB": 0.38,
+ "4GB": 0.76,
+ "8GB": 1.52,
+ "16GB": 3.04
+ },
+
+ "gandi": {
+ "1": 0.02
+ },
+
+ "vps_net": {
+ "1": 0.416
+ }
},
- "rackspace": {
- "1": 0.015,
- "2": 0.030,
- "3": 0.060,
- "4": 0.120,
- "5": 0.240,
- "6": 0.480,
- "7": 0.960
+ "storage": {
},
- "dreamhost": {
- "minimum": 15,
- "maximum": 200,
- "default": 115,
- "low": 50,
- "high": 150
- },
-
- "ec2_us_east": {
- "t1.micro": 0.02,
- "m1.small": 0.085,
- "m1.large": 0.34,
- "m1.xlarge": 0.68,
- "c1.medium": 0.17,
- "c1.xlarge": 0.68,
- "m2.xlarge": 0.50,
- "m2.2xlarge": 1.0,
- "m2.4xlarge": 2.0,
- "cg1.4xlarge": 2.1,
- "cc1.4xlarge": 1.6
- },
-
- "ec2_us_west": {
- "t1.micro": 0.025,
- "m1.small": 0.095,
- "m1.large": 0.38,
- "m1.xlarge": 0.76,
- "c1.medium": 0.19,
- "c1.xlarge": 0.76,
- "m2.xlarge": 0.57,
- "m2.2xlarge": 1.14,
- "m2.4xlarge": 2.28
- },
-
- "ec2_eu_west": {
- "t1.micro": 0.025,
- "m1.small": 0.095,
- "m1.large": 0.38,
- "m1.xlarge": 0.76,
- "c1.medium": 0.19,
- "c1.xlarge": 0.76,
- "m2.xlarge": 0.57,
- "m2.2xlarge": 1.14,
- "m2.4xlarge": 2.28
- },
-
- "ec2_ap_southeast": {
- "t1.micro": 0.025,
- "m1.small": 0.095,
- "m1.large": 0.38,
- "m1.xlarge": 0.76,
- "c1.medium": 0.19,
- "c1.xlarge": 0.76,
- "m2.xlarge": 0.57,
- "m2.2xlarge": 1.14,
- "m2.4xlarge": 2.28
- },
-
- "ec2_ap_northeast": {
- "t1.micro": 0.027,
- "m1.small": 0.10,
- "m1.large": 0.40,
- "m1.xlarge": 0.80,
- "c1.medium": 0.20,
- "c1.xlarge": 0.80,
- "m2.xlarge": 0.60,
- "m2.2xlarge": 1.20,
- "m2.4xlarge": 2.39
- },
-
- "nimbus" : {
- "m1.small": 0.0,
- "m1.large": 0.0,
- "m1.xlarge": 0.0
- },
-
- "cloudsigma_zrh": {
- "micro-regular": 0.0548,
- "micro-high-cpu": 0.381,
- "standard-small": 0.0796,
- "standard-large": 0.381,
- "standard-extra-large": 0.762,
- "high-memory-extra-large": 0.642,
- "high-memory-double-extra-large": 1.383,
- "high-cpu-medium": 0.211,
- "high-cpu-extra-large": 0.780
- },
-
- "elastichosts": {
- "small": 0.100,
- "medium": 0.223,
- "large": 0.378,
- "extra-large": 0.579,
- "high-cpu-medium": 0.180,
- "high-cpu-extra-large": 0.770
- },
-
- "skalicloud": {
- "small": 0.136,
- "medium": 0.301,
- "large": 0.505,
- "extra-large": 0.654,
- "high-cpu-medium": 0.249,
- "high-cpu-extra-large": 0.936
- },
-
- "serverlove": {
- "small": 0.161,
- "medium": 0.404,
- "large": 0.534,
- "extra-large": 0.615,
- "high-cpu-medium": 0.291,
- "high-cpu-extra-large": 0.776
- },
-
- "gogrid": {
- "512MB": 0.095,
- "1GB": 0.19,
- "2GB": 0.38,
- "4GB": 0.76,
- "8GB": 1.52,
- "16GB": 3.04
- },
-
- "gandi": {
- "1": 0.02
- },
-
- "vps_net": {
- "1": 0.416
- }
+ "updated": 1309019791
}
Modified: libcloud/trunk/libcloud/pricing.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/pricing.py?rev=1139569&r1=1139568&r2=1139569&view=diff
==============================================================================
--- libcloud/trunk/libcloud/pricing.py (original)
+++ libcloud/trunk/libcloud/pricing.py Sat Jun 25 16:48:08 2011
@@ -32,6 +32,8 @@ PRICING_DATA = {
'storage': {}
}
+VALID_PRICING_DRIVER_TYPES = [ 'compute', 'storage' ]
+
def get_pricing_file_path(file_path=None):
pricing_directory = os.path.dirname(os.path.abspath(__file__))
pricing_file_path = pjoin(pricing_directory, PRICING_FILE_PATH)
@@ -52,7 +54,7 @@ def get_pricing(driver_type, driver_name
@return: Dictionary with pricing where a key name is size ID and
the value is a price.
"""
- if not driver_type in [ 'compute', 'storage' ]:
+ if not driver_type in VALID_PRICING_DRIVER_TYPES:
raise AttributeError('Invalid driver type: %s', driver_type)
if driver_name in PRICING_DATA[driver_type]:
@@ -64,10 +66,15 @@ def get_pricing(driver_type, driver_name
with open(pricing_file_path) as fp:
content = fp.read()
- pricing = json.loads(content)[driver_name]
+ pricing_data = json.loads(content)
+ size_pricing = pricing_data[driver_type][driver_name]
- PRICING_DATA[driver_type][driver_name] = pricing
- return pricing
+ for driver_type in VALID_PRICING_DRIVER_TYPES:
+ pricing = pricing_data.get(driver_type, None)
+ if pricing:
+ PRICING_DATA[driver_type] = pricing
+
+ return size_pricing
def set_pricing(driver_type, driver_name, pricing):
"""
Modified: libcloud/trunk/test/pricing_test.json
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/pricing_test.json?rev=1139569&r1=1139568&r2=1139569&view=diff
==============================================================================
--- libcloud/trunk/test/pricing_test.json (original)
+++ libcloud/trunk/test/pricing_test.json Sat Jun 25 16:48:08 2011
@@ -1,6 +1,10 @@
{
- "foo": {
- "1": 1.00,
- "2": 2.00
- }
+ "compute": {
+ "foo": {
+ "1": 1.00,
+ "2": 2.00
+ }
+ },
+
+ "updated": 1309019791
}