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/03/14 15:43:46 UTC
svn commit: r1081404 - in /incubator/libcloud/trunk/libcloud:
compute/drivers/cloudsigma.py drivers/cloudsigma.py pricing.py utils.py
Author: tomaz
Date: Mon Mar 14 14:43:45 2011
New Revision: 1081404
URL: http://svn.apache.org/viewvc?rev=1081404&view=rev
Log:
1. Add docstrings to the pricing module
2. Move utility methods from the cloudsigma driver to the utils module
Modified:
incubator/libcloud/trunk/libcloud/compute/drivers/cloudsigma.py
incubator/libcloud/trunk/libcloud/drivers/cloudsigma.py
incubator/libcloud/trunk/libcloud/pricing.py
incubator/libcloud/trunk/libcloud/utils.py
Modified: incubator/libcloud/trunk/libcloud/compute/drivers/cloudsigma.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/compute/drivers/cloudsigma.py?rev=1081404&r1=1081403&r2=1081404&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/compute/drivers/cloudsigma.py (original)
+++ incubator/libcloud/trunk/libcloud/compute/drivers/cloudsigma.py Mon Mar 14 14:43:45 2011
@@ -20,6 +20,7 @@ import re
import time
import base64
+from libcloud.utils import str2dicts, str2list, dict2str
from libcloud.common.base import ConnectionUserAndKey, Response
from libcloud.common.types import InvalidCredsError
from libcloud.compute.types import NodeState, Provider
@@ -556,99 +557,3 @@ class CloudSigmaZrhNodeDriver(CloudSigma
CloudSigma node driver for the Zurich end-point
"""
connectionCls = CloudSigmaZrhConnection
-
-# Utility methods (should we place them in libcloud/utils.py ?)
-def str2dicts(data):
- """
- Create a list of dictionaries from a whitespace and newline delimited text.
-
- For example, this:
- cpu 1100
- ram 640
-
- cpu 2200
- ram 1024
-
- becomes:
- [{'cpu': '1100', 'ram': '640'}, {'cpu': '2200', 'ram': '1024'}]
- """
- list_data = []
- list_data.append({})
- d = list_data[-1]
-
- lines = data.split('\n')
- for line in lines:
- line = line.strip()
-
- if not line:
- d = {}
- list_data.append(d)
- d = list_data[-1]
- continue
-
- whitespace = line.find(' ')
-
- if not whitespace:
- continue
-
- key = line[0:whitespace]
- value = line[whitespace + 1:]
- d.update({key: value})
-
- list_data = [value for value in list_data if value != {}]
- return list_data
-
-def str2list(data):
- """
- Create a list of values from a whitespace and newline delimited text (keys are ignored).
-
- For example, this:
- ip 1.2.3.4
- ip 1.2.3.5
- ip 1.2.3.6
-
- becomes:
- ['1.2.3.4', '1.2.3.5', '1.2.3.6']
- """
- list_data = []
-
- for line in data.split('\n'):
- line = line.strip()
-
- if not line:
- continue
-
- try:
- splitted = line.split(' ')
- # key = splitted[0]
- value = splitted[1]
- except Exception:
- continue
-
- list_data.append(value)
-
- return list_data
-
-def dict2str(data):
- """
- Create a string with a whitespace and newline delimited text from a dictionary.
-
- For example, this:
- {'cpu': '1100', 'ram': '640', 'smp': 'auto'}
-
- becomes:
- cpu 1100
- ram 640
- smp auto
-
- cpu 2200
- ram 1024
- """
- result = ''
- for k in data:
- if data[k] != None:
- result += '%s %s\n' % (str(k), str(data[k]))
- else:
- result += '%s\n' % str(k)
-
- return result
Modified: incubator/libcloud/trunk/libcloud/drivers/cloudsigma.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/cloudsigma.py?rev=1081404&r1=1081403&r2=1081404&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/cloudsigma.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/cloudsigma.py Mon Mar 14 14:43:45 2011
@@ -15,6 +15,8 @@
# limitations under the License.
from libcloud.utils import deprecated_warning
+
+from libcloud.utils import str2dicts, str2list, dict2str
from libcloud.compute.drivers.cloudsigma import *
deprecated_warning(__name__)
Modified: incubator/libcloud/trunk/libcloud/pricing.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/pricing.py?rev=1081404&r1=1081403&r2=1081404&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/pricing.py (original)
+++ incubator/libcloud/trunk/libcloud/pricing.py Mon Mar 14 14:43:45 2011
@@ -61,9 +61,21 @@ def get_pricing(driver_type, driver_name
return pricing
def invalidate_pricing_cache():
+ """
+ Invalidate the cache for all the drivers.
+ """
PRICING_DATA['compute'] = {}
PRICING_DATA['storage'] = {}
def invalidate_module_pricing_cache(driver_type, driver_name):
+ """
+ Invalidate the cache for the specified driver.
+
+ @type driver_type: C{str}
+ @param driver_type: Driver type ('compute' or 'storage')
+
+ @type driver_name: C{str}
+ @param driver_name: Driver name
+ """
if driver_name in PRICING_DATA[driver_type]:
del PRICING_DATA[driver_type][driver_name]
Modified: incubator/libcloud/trunk/libcloud/utils.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/utils.py?rev=1081404&r1=1081403&r2=1081404&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/utils.py (original)
+++ incubator/libcloud/trunk/libcloud/utils.py Mon Mar 14 14:43:45 2011
@@ -61,6 +61,100 @@ def deprecated_warning(module):
(module, OLD_API_REMOVE_VERSION),
category=DeprecationWarning)
+def str2dicts(data):
+ """
+ Create a list of dictionaries from a whitespace and newline delimited text.
+
+ For example, this:
+ cpu 1100
+ ram 640
+
+ cpu 2200
+ ram 1024
+
+ becomes:
+ [{'cpu': '1100', 'ram': '640'}, {'cpu': '2200', 'ram': '1024'}]
+ """
+ list_data = []
+ list_data.append({})
+ d = list_data[-1]
+
+ lines = data.split('\n')
+ for line in lines:
+ line = line.strip()
+
+ if not line:
+ d = {}
+ list_data.append(d)
+ d = list_data[-1]
+ continue
+
+ whitespace = line.find(' ')
+
+ if not whitespace:
+ continue
+
+ key = line[0:whitespace]
+ value = line[whitespace + 1:]
+ d.update({key: value})
+
+ list_data = [value for value in list_data if value != {}]
+ return list_data
+
+def str2list(data):
+ """
+ Create a list of values from a whitespace and newline delimited text (keys are ignored).
+
+ For example, this:
+ ip 1.2.3.4
+ ip 1.2.3.5
+ ip 1.2.3.6
+
+ becomes:
+ ['1.2.3.4', '1.2.3.5', '1.2.3.6']
+ """
+ list_data = []
+
+ for line in data.split('\n'):
+ line = line.strip()
+
+ if not line:
+ continue
+
+ try:
+ splitted = line.split(' ')
+ # key = splitted[0]
+ value = splitted[1]
+ except Exception:
+ continue
+
+ list_data.append(value)
+
+ return list_data
+
+def dict2str(data):
+ """
+ Create a string with a whitespace and newline delimited text from a dictionary.
+
+ For example, this:
+ {'cpu': '1100', 'ram': '640', 'smp': 'auto'}
+
+ becomes:
+ cpu 1100
+ ram 640
+ smp auto
+
+ cpu 2200
+ ram 1024
+ """
+ result = ''
+ for k in data:
+ if data[k] != None:
+ result += '%s %s\n' % (str(k), str(data[k]))
+ else:
+ result += '%s\n' % str(k)
+
+ return result
def get_driver(drivers, provider):
"""
Get a driver.