You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by je...@apache.org on 2010/03/25 17:28:32 UTC
svn commit: r927485 - /incubator/libcloud/trunk/libcloud/drivers/linode.py
Author: jed
Date: Thu Mar 25 16:28:31 2010
New Revision: 927485
URL: http://svn.apache.org/viewvc?rev=927485&view=rev
Log:
Linode: Proper default kernel selection for 64-bit
Signed-off-by: Jed Smith <je...@apache.org>
Modified:
incubator/libcloud/trunk/libcloud/drivers/linode.py
Modified: incubator/libcloud/trunk/libcloud/drivers/linode.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/linode.py?rev=927485&r1=927484&r2=927485&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/linode.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/linode.py Thu Mar 25 16:28:31 2010
@@ -259,7 +259,13 @@ class LinodeNodeDriver(NodeDriver):
"Invalid distro -- avail.distributions")
# Kernel
- kernel = 60 if "kernel" not in kwargs else kwargs["kernel"]
+ if "kernel" in kwargs:
+ kernel = kwargs["kernel"]
+ else:
+ if image.extra['64bit']:
+ kernel = 111 if image.extra['pvops'] else 107
+ else:
+ kernel = 110 if image.extra['pvops'] else 60
params = { "api_action": "avail.kernels" }
kernels = self.connection.request(LINODE_ROOT, params=params).object
if kernel not in [z["KERNELID"] for z in kernels]:
@@ -365,8 +371,11 @@ class LinodeNodeDriver(NodeDriver):
data = self.connection.request(LINODE_ROOT, params=params).object
distros = []
for obj in data:
- i = NodeImage(id=obj["DISTRIBUTIONID"], name=obj["LABEL"],
- driver=self.connection.driver)
+ i = NodeImage(id=obj["DISTRIBUTIONID"],
+ name=obj["LABEL"],
+ driver=self.connection.driver,
+ extra={'pvops': obj['REQUIRESPVOPSKERNEL'],
+ '64bit': obj['IS64BIT']})
distros.append(i)
return distros