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/01/31 23:12:54 UTC

[7/9] git commit: No need to clone installation CDs, update docstring.

No need to clone installation CDs, update docstring.


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

Branch: refs/heads/trunk
Commit: e69c865ee3c215cca382e6c4ed8926b15accb25a
Parents: ca7fb90
Author: Tomaz Muraus <to...@apache.org>
Authored: Fri Jan 31 22:54:39 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Fri Jan 31 22:56:04 2014 +0100

----------------------------------------------------------------------
 libcloud/compute/drivers/cloudsigma.py | 46 ++++++++++++++++++-----------
 1 file changed, 29 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/e69c865e/libcloud/compute/drivers/cloudsigma.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/cloudsigma.py b/libcloud/compute/drivers/cloudsigma.py
index 2288fc4..833dea2 100644
--- a/libcloud/compute/drivers/cloudsigma.py
+++ b/libcloud/compute/drivers/cloudsigma.py
@@ -1065,12 +1065,20 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver):
         """
         Create a new server.
 
-        Server creation consists of 4 separate steps:
+        Server creation consists multiple steps depending on the type of the
+        image used.
 
-        1. Clone provided library drive so we can use it
-        2. Resize cloned drive to the desired size
-        3. Create a server and attach cloned drive
-        4. Start a server.
+        1. Installation CD:
+
+            1. Create a server and attach installation cd
+            2. Start a server
+
+        2. Pre-installed image:
+
+            1. Clone provided library drive so we can use it
+            2. Resize cloned drive to the desired size
+            3. Create a server and attach cloned drive
+            4. Start a server
 
         :param ex_metadata: Key / value pairs to associate with the
                             created node. (optional)
@@ -1101,21 +1109,25 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver):
         drive_size = (size.disk * 1024 * 1024 * 1024)  # size is specified in
                                                        # GB
 
-        # 1. Clone library drive so we can use it
-        drive = self.ex_clone_drive(drive=image, name=drive_name)
+        if not is_installation_cd:
+            # 1. Clone library drive so we can use it
+            drive = self.ex_clone_drive(drive=image, name=drive_name)
 
-        # Wait for drive clone to finish
-        drive = self._wait_for_drive_state_transition(drive=drive,
-                                                      state='unmounted')
+            # Wait for drive clone to finish
+            drive = self._wait_for_drive_state_transition(drive=drive,
+                                                          state='unmounted')
 
-        # 2. Resize drive to the desired disk size if the desired disk size is
-        # larger than the cloned drive size.
-        if drive_size > drive.size:
-            drive = self.ex_resize_drive(drive=drive, size=drive_size)
+            # 2. Resize drive to the desired disk size if the desired disk size
+            # is larger than the cloned drive size.
+            if drive_size > drive.size:
+                drive = self.ex_resize_drive(drive=drive, size=drive_size)
 
-        # Wait for drive resize to finish
-        drive = self._wait_for_drive_state_transition(drive=drive,
-                                                      state='unmounted')
+            # Wait for drive resize to finish
+            drive = self._wait_for_drive_state_transition(drive=drive,
+                                                          state='unmounted')
+        else:
+            # No need to clone installation CDs
+            drive = image
 
         # 3. Create server and attach cloned drive
         # ide 0:0