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/09/17 22:28:00 UTC
svn commit: r1172064 - in /libcloud/trunk/libcloud: common/linode.py
compute/drivers/linode.py
Author: tomaz
Date: Sat Sep 17 20:27:59 2011
New Revision: 1172064
URL: http://svn.apache.org/viewvc?rev=1172064&view=rev
Log:
Start moving common linode stuff into common/linode.py
Added:
libcloud/trunk/libcloud/common/linode.py
Modified:
libcloud/trunk/libcloud/compute/drivers/linode.py
Added: libcloud/trunk/libcloud/common/linode.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/common/linode.py?rev=1172064&view=auto
==============================================================================
--- libcloud/trunk/libcloud/common/linode.py (added)
+++ libcloud/trunk/libcloud/common/linode.py Sat Sep 17 20:27:59 2011
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+__all__ = [
+ 'API_HOST',
+ 'API_ROOT'
+]
+
+
+API_HOST = 'api.linode.com'
+API_ROOT = '/'
Modified: libcloud/trunk/libcloud/compute/drivers/linode.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/linode.py?rev=1172064&r1=1172063&r2=1172064&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/linode.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/linode.py Sat Sep 17 20:27:59 2011
@@ -38,14 +38,12 @@ except ImportError:
from libcloud.common.base import ConnectionKey, Response
from libcloud.common.types import InvalidCredsError, MalformedResponseError
+from libcloud.common.linode import API_HOST, API_ROOT
from libcloud.compute.types import Provider, NodeState
from libcloud.compute.base import NodeDriver, NodeSize, Node, NodeLocation
from libcloud.compute.base import NodeAuthPassword, NodeAuthSSHKey
from libcloud.compute.base import NodeImage
-# Where requests go - in beta situations, this information may change.
-LINODE_API = "api.linode.com"
-LINODE_ROOT = "/"
# Map of TOTALRAM to PLANID, allows us to figure out what plan
# a particular node is on (updated with new plan sizes 6/28/10)
@@ -164,7 +162,7 @@ class LinodeConnection(ConnectionKey):
Wraps SSL connections to the Linode API, automagically injecting the
parameters that the API needs for each request."""
- host = LINODE_API
+ host = API_HOST
responseCls = LinodeResponse
def add_default_params(self, params):
@@ -230,7 +228,7 @@ class LinodeNodeDriver(NodeDriver):
@return: C{list} of L{Node} objects that the API key can access"""
params = { "api_action": "linode.list" }
- data = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ data = self.connection.request(API_ROOT, params=params).objects[0]
return self._to_nodes(data)
def reboot_node(self, node):
@@ -242,7 +240,7 @@ class LinodeNodeDriver(NodeDriver):
@keyword node: the Linode to reboot
@type node: L{Node}"""
params = { "api_action": "linode.reboot", "LinodeID": node.id }
- self.connection.request(LINODE_ROOT, params=params)
+ self.connection.request(API_ROOT, params=params)
return True
def destroy_node(self, node):
@@ -260,7 +258,7 @@ class LinodeNodeDriver(NodeDriver):
@type node: L{Node}"""
params = { "api_action": "linode.delete", "LinodeID": node.id,
"skipChecks": True }
- self.connection.request(LINODE_ROOT, params=params)
+ self.connection.request(API_ROOT, params=params)
return True
def create_node(self, **kwargs):
@@ -382,7 +380,7 @@ class LinodeNodeDriver(NodeDriver):
else:
kernel = 110 if image.extra['pvops'] else 60
params = { "api_action": "avail.kernels" }
- kernels = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ kernels = self.connection.request(API_ROOT, params=params).objects[0]
if kernel not in [z["KERNELID"] for z in kernels]:
raise LinodeException(0xFB, "Invalid kernel -- avail.kernels")
@@ -407,7 +405,7 @@ class LinodeNodeDriver(NodeDriver):
"PlanID": size.id,
"PaymentTerm": payment
}
- data = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ data = self.connection.request(API_ROOT, params=params).objects[0]
linode = { "id": data["LinodeID"] }
# Step 1b. linode.update to rename the Linode
@@ -416,7 +414,7 @@ class LinodeNodeDriver(NodeDriver):
"LinodeID": linode["id"],
"Label": name
}
- self.connection.request(LINODE_ROOT, params=params)
+ self.connection.request(API_ROOT, params=params)
# Step 1c. linode.ip.addprivate if it was requested
if "ex_private" in kwargs and kwargs["ex_private"]:
@@ -424,7 +422,7 @@ class LinodeNodeDriver(NodeDriver):
"api_action": "linode.ip.addprivate",
"LinodeID": linode["id"]
}
- self.connection.request(LINODE_ROOT, params=params)
+ self.connection.request(API_ROOT, params=params)
# Step 2: linode.disk.createfromdistribution
if not root:
@@ -438,7 +436,7 @@ class LinodeNodeDriver(NodeDriver):
"rootPass": root,
}
if ssh: params["rootSSHKey"] = ssh
- data = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ data = self.connection.request(API_ROOT, params=params).objects[0]
linode["rootimage"] = data["DiskID"]
# Step 3: linode.disk.create for swap
@@ -449,7 +447,7 @@ class LinodeNodeDriver(NodeDriver):
"Type": "swap",
"Size": swap
}
- data = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ data = self.connection.request(API_ROOT, params=params).objects[0]
linode["swapimage"] = data["DiskID"]
# Step 4: linode.config.create for main profile
@@ -462,7 +460,7 @@ class LinodeNodeDriver(NodeDriver):
"Comments": comments,
"DiskList": disks
}
- data = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ data = self.connection.request(API_ROOT, params=params).objects[0]
linode["config"] = data["ConfigID"]
# Step 5: linode.boot
@@ -471,11 +469,11 @@ class LinodeNodeDriver(NodeDriver):
"LinodeID": linode["id"],
"ConfigID": linode["config"]
}
- self.connection.request(LINODE_ROOT, params=params)
+ self.connection.request(API_ROOT, params=params)
# Make a node out of it and hand it back
params = { "api_action": "linode.list", "LinodeID": linode["id"] }
- data = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ data = self.connection.request(API_ROOT, params=params).objects[0]
return self._to_nodes(data)
def list_sizes(self, location=None):
@@ -490,7 +488,7 @@ class LinodeNodeDriver(NodeDriver):
@return: a C{list} of L{NodeSize}s"""
params = { "api_action": "avail.linodeplans" }
- data = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ data = self.connection.request(API_ROOT, params=params).objects[0]
sizes = []
for obj in data:
n = NodeSize(id=obj["PLANID"], name=obj["LABEL"], ram=obj["RAM"],
@@ -506,7 +504,7 @@ class LinodeNodeDriver(NodeDriver):
@return: a C{list} of L{NodeImage}s"""
params = { "api_action": "avail.distributions" }
- data = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ data = self.connection.request(API_ROOT, params=params).objects[0]
distros = []
for obj in data:
i = NodeImage(id=obj["DISTRIBUTIONID"],
@@ -524,7 +522,7 @@ class LinodeNodeDriver(NodeDriver):
@return: a C{list} of L{NodeLocation}s"""
params = { "api_action": "avail.datacenters" }
- data = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ data = self.connection.request(API_ROOT, params=params).objects[0]
nl = []
for dc in data:
country = None
@@ -548,7 +546,7 @@ class LinodeNodeDriver(NodeDriver):
@type dc: L{NodeLocation}"""
did = dc.id
params = { "api_action": "avail.datacenters" }
- data = self.connection.request(LINODE_ROOT, params=params).objects[0]
+ data = self.connection.request(API_ROOT, params=params).objects[0]
for datacenter in data:
if did == dc["DATACENTERID"]:
self.datacenter = did
@@ -585,7 +583,7 @@ class LinodeNodeDriver(NodeDriver):
twenty_five = [q for q in twenty_five if q]
params = { "api_action": "batch",
"api_requestArray": json.dumps(twenty_five) }
- req = self.connection.request(LINODE_ROOT, params=params)
+ req = self.connection.request(API_ROOT, params=params)
if not req.success() or len(req.objects) == 0:
return None
ip_answers.extend(req.objects)