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