You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by an...@apache.org on 2017/04/01 00:49:01 UTC

[2/4] libcloud git commit: add a few missing functions and fix state

add a few missing functions and fix state


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f90a2516
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f90a2516
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f90a2516

Branch: refs/heads/trunk
Commit: f90a251671a5231e806c9ac4da02cc1e12deafa2
Parents: 53591b7
Author: Markos Gogoulos <mg...@mist.io>
Authored: Wed Feb 15 17:40:50 2017 +0200
Committer: Anthony Shaw <an...@apache.org>
Committed: Sat Apr 1 11:47:22 2017 +1100

----------------------------------------------------------------------
 libcloud/compute/drivers/linode.py | 41 ++++++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/f90a2516/libcloud/compute/drivers/linode.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/linode.py b/libcloud/compute/drivers/linode.py
index e24e367..94ac2a0 100644
--- a/libcloud/compute/drivers/linode.py
+++ b/libcloud/compute/drivers/linode.py
@@ -97,7 +97,7 @@ class LinodeNodeDriver(NodeDriver):
         (-1): NodeState.PENDING,    # Being Created
         0: NodeState.PENDING,     # Brand New
         1: NodeState.RUNNING,     # Running
-        2: NodeState.TERMINATED,  # Powered Off
+        2: NodeState.STOPPED,  # Powered Off
         3: NodeState.REBOOTING,   # Shutting Down
         4: NodeState.UNKNOWN      # Reserved
     }
@@ -118,6 +118,15 @@ class LinodeNodeDriver(NodeDriver):
         data = self.connection.request(API_ROOT, params=params).objects[0]
         return self._to_nodes(data)
 
+    def ex_start_node(self, node):
+        """
+        Boot the given Linode
+
+        """
+        params = {"api_action": "linode.boot", "LinodeID": node.id}
+        self.connection.request(API_ROOT, params=params)
+        return True
+
     def reboot_node(self, node):
         """
         Reboot the given Linode
@@ -364,6 +373,10 @@ class LinodeNodeDriver(NodeDriver):
             "Comments": comments,
             "DiskList": disks
         }
+        if "ex_private" in kwargs and kwargs["ex_private"]:
+            params['helper_network'] = True
+            params['helper_distro'] = True
+
         data = self.connection.request(API_ROOT, params=params).objects[0]
         linode["config"] = data["ConfigID"]
 
@@ -388,6 +401,32 @@ class LinodeNodeDriver(NodeDriver):
 
         return None
 
+    def ex_resize_node(self, node, size):
+        """Resizes a Linode from one plan to another
+
+        Immediately shuts the Linode down, charges/credits the account,
+        and issue a migration to another host server.
+        Requires a size (numeric), which is the desired PlanID available from
+        avail.LinodePlans()
+        After resize is complete the node needs to be booted
+        """
+
+        params = {"api_action": "linode.resize", "LinodeID": node.id,
+                  "PlanID": size}
+        self.connection.request(API_ROOT, params=params)
+        return True
+
+    def ex_rename_node(self, node, name):
+        """Renames a node"""
+
+        params = {
+            "api_action": "linode.update",
+            "LinodeID": node.id,
+            "Label": name
+        }
+        data = self.connection.request(API_ROOT, params=params)
+        return True
+
     def list_sizes(self, location=None):
         """
         List available Linode plans