You are viewing a plain text version of this content. The canonical link for it is here.
Posted to tashi-commits@incubator.apache.org by rg...@apache.org on 2011/11/15 14:44:26 UTC

svn commit: r1202211 - in /incubator/tashi/trunk/src/tashi: client/tashi-client.py clustermanager/data/getentoverride.py rpycservices/rpyctypes.py util.py

Author: rgass
Date: Tue Nov 15 14:44:26 2011
New Revision: 1202211

URL: http://svn.apache.org/viewvc?rev=1202211&view=rev
Log:
adding imageSize to getimages

Modified:
    incubator/tashi/trunk/src/tashi/client/tashi-client.py
    incubator/tashi/trunk/src/tashi/clustermanager/data/getentoverride.py
    incubator/tashi/trunk/src/tashi/rpycservices/rpyctypes.py
    incubator/tashi/trunk/src/tashi/util.py

Modified: incubator/tashi/trunk/src/tashi/client/tashi-client.py
URL: http://svn.apache.org/viewvc/incubator/tashi/trunk/src/tashi/client/tashi-client.py?rev=1202211&r1=1202210&r2=1202211&view=diff
==============================================================================
--- incubator/tashi/trunk/src/tashi/client/tashi-client.py (original)
+++ incubator/tashi/trunk/src/tashi/client/tashi-client.py Tue Nov 15 14:44:26 2011
@@ -207,7 +207,7 @@ def getMyInstances():
 # Used to define default views on functions and to provide extra functionality (getVmLayout)
 extraViews = {
 'getSlots': (getSlots, None),
-'getImages': (None, ['id', 'imageName']), 
+'getImages': (None, ['id', 'imageName', 'imageSize']), 
 'copyImage': (None, None), 
 'createMany': (createMany, ['id', 'hostId', 'name', 'user', 'state', 'disk', 'memory', 'cores']),
 'destroyMany': (destroyMany, None),

Modified: incubator/tashi/trunk/src/tashi/clustermanager/data/getentoverride.py
URL: http://svn.apache.org/viewvc/incubator/tashi/trunk/src/tashi/clustermanager/data/getentoverride.py?rev=1202211&r1=1202210&r2=1202211&view=diff
==============================================================================
--- incubator/tashi/trunk/src/tashi/clustermanager/data/getentoverride.py (original)
+++ incubator/tashi/trunk/src/tashi/clustermanager/data/getentoverride.py Tue Nov 15 14:44:26 2011
@@ -20,7 +20,7 @@ import time
 import os
 from tashi.rpycservices.rpyctypes import User, LocalImages
 from tashi.clustermanager.data import DataInterface
-from tashi.util import instantiateImplementation
+from tashi.util import instantiateImplementation, humanReadable
 
 class GetentOverride(DataInterface):
 	def __init__(self, config):
@@ -74,7 +74,7 @@ class GetentOverride(DataInterface):
 		for i in self.dfs.list("images"):
 			myFile = self.dfs.getLocalHandle("images/" + i)
 			if os.path.isfile(myFile):
-				image = LocalImages(d={'id':count, 'imageName':i})
+				image = LocalImages(d={'id':count, 'imageName':i, 'imageSize':humanReadable(self.dfs.stat(myFile)[6])})
 				myList.append(image)
 				count += 1
 		return myList

Modified: incubator/tashi/trunk/src/tashi/rpycservices/rpyctypes.py
URL: http://svn.apache.org/viewvc/incubator/tashi/trunk/src/tashi/rpycservices/rpyctypes.py?rev=1202211&r1=1202210&r2=1202211&view=diff
==============================================================================
--- incubator/tashi/trunk/src/tashi/rpycservices/rpyctypes.py (original)
+++ incubator/tashi/trunk/src/tashi/rpycservices/rpyctypes.py Tue Nov 15 14:44:26 2011
@@ -148,6 +148,7 @@ class LocalImages(object):
 		self.id = None
 		self.userId = None
 		self.imageName = None
+		self.imageSize = None
 		self.isPublic = None
 		self.explicitUserIds = None
 		if isinstance(d, dict):
@@ -157,6 +158,8 @@ class LocalImages(object):
 				self.userId = d['userId']
 			if 'imageName' in d:
 				self.imageName = d['imageName']
+			if 'imageSize' in d:
+				self.imageSize = d['imageSize']
 			if 'isPublic' in d:
 				self.isPublic = d['isPublic']
 			if 'explicitUserIds' in d:

Modified: incubator/tashi/trunk/src/tashi/util.py
URL: http://svn.apache.org/viewvc/incubator/tashi/trunk/src/tashi/util.py?rev=1202211&r1=1202210&r2=1202211&view=diff
==============================================================================
--- incubator/tashi/trunk/src/tashi/util.py (original)
+++ incubator/tashi/trunk/src/tashi/util.py Tue Nov 15 14:44:26 2011
@@ -289,5 +289,14 @@ def enumToStringDict(cls):
 			d[cls.__dict__[i]] = i
 	return d
 
+def humanReadable(size):
+	suffixes = [("B",2**10), ("K",2**20), ("M",2**30), ("G",2**40), ("T",2**50)]
+	for suf, lim in suffixes:
+		if size > lim:
+			continue
+		else:
+			return round(size/float(lim/2**10),2).__str__()+suf
+
+
 vmStates = enumToStringDict(InstanceState)
 hostStates = enumToStringDict(HostState)