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 2014/07/31 00:30:17 UTC

[2/2] git commit: Add ex_clone_node method to vSphere driver.

Add ex_clone_node method to vSphere driver.


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

Branch: refs/heads/trunk
Commit: 106846bf67ce8ccb04befdeaf90408b425852c18
Parents: abdde15
Author: Tomaz Muraus <to...@apache.org>
Authored: Thu Jul 31 00:29:44 2014 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Thu Jul 31 00:29:44 2014 +0200

----------------------------------------------------------------------
 libcloud/compute/drivers/vsphere.py | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/106846bf/libcloud/compute/drivers/vsphere.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/vsphere.py b/libcloud/compute/drivers/vsphere.py
index 31086e5..da40ba9 100644
--- a/libcloud/compute/drivers/vsphere.py
+++ b/libcloud/compute/drivers/vsphere.py
@@ -175,6 +175,33 @@ class VSphereNodeDriver(NodeDriver):
         return nodes
 
     @wrap_non_libcloud_exceptions
+    def ex_clone_node(self, node, name, power_on=True, template=False):
+        """
+        Clone the provided node.
+
+        :param node: Node to clone.
+        :type node: :class:`Node`
+
+        :param name: Name of the new node.
+        :type name: ``str``
+
+        :param power_on: Power the new node on after being created.
+        :type power_on: ``bool``
+
+        :param template: Specifies whether or not the new virtual machine
+                         should be marked as a template.
+        :type template: ``bool``
+
+        :return: New node.
+        :rtype: :class:`Node`
+        """
+        vm = self._get_vm_for_node(node=node)
+        new_vm = vm.clone(name=name, power_on=power_on, template=template)
+        new_node = self._to_node(vm=new_vm)
+
+        return new_node
+
+    @wrap_non_libcloud_exceptions
     def reboot_node(self, node):
         vm = self._get_vm_for_node(node=node)
         vm.reset()