7183018 Gui livecd is not using size from image.info but using fallback image size
authorswati sarraf <swati.sarraf@oracle.com>
Mon, 23 Jul 2012 09:34:40 -0700
changeset 1754 90688163755c
parent 1753 f73bfa44960e
child 1755 7b9a3250c069
7183018 Gui livecd is not using size from image.info but using fallback image size
usr/src/cmd/gui-install/src/disk_screen.py
--- a/usr/src/cmd/gui-install/src/disk_screen.py	Sun Jul 22 22:34:21 2012 -0600
+++ b/usr/src/cmd/gui-install/src/disk_screen.py	Mon Jul 23 09:34:40 2012 -0700
@@ -39,7 +39,6 @@
 
 import osol_install.errsvc as errsvc
 import osol_install.liberrsvc as liberrsvc
-from math import ceil 
 from solaris_install.data_object import ObjectNotFoundError
 from solaris_install.engine import InstallEngine
 from solaris_install.gui_install.base_screen import BaseScreen, \
@@ -53,12 +52,14 @@
 from solaris_install.gui_install.install_profile import InstallProfile
 from solaris_install.logger import INSTALL_LOGGER_NAME
 from solaris_install.target import Target
+from solaris_install.target.controller import FALLBACK_IMAGE_SIZE 
 from solaris_install.target.controller import TargetController, \
     BadDiskError, BadDiskBlockSizeError, SubSizeDiskError, DEFAULT_ZPOOL_NAME
 from solaris_install.target.logical import Zpool, Zvol, Filesystem
 from solaris_install.target.physical import Disk, Iscsi, Slice
 from solaris_install.target.shadow.physical import ShadowPhysical
 from solaris_install.target.size import Size
+from solaris_install.transfer.media_transfer import get_image_size
 
 ROOT_POOL = DEFAULT_ZPOOL_NAME
 EXPORT_FS_NAME = 'export'
@@ -645,13 +646,20 @@
         # Set up the TargetController
         LOGGER.info("TD found %d disks matching criteria", len(self._td_disks))
         self._target_controller = TargetController(doc)
-
+        try:
+            # Get the actual size from the image_info file 
+            image_size = Size(str(get_image_size(LOGGER)) + Size.mb_units) 
+        except: 
+            # if it fails to get the image size, pass fallback image size  
+            image_size = FALLBACK_IMAGE_SIZE
+            LOGGER.debug("Unable to get image size")
         # First, let TargetController choose an initially-selected disk,
         # as per its rules.
         try:
             # Note: we are assuming that TargetController.initialize()
             # selects a disk not in whole_disk mode
-            selected_disks = self._target_controller.initialize()
+            selected_disks = self._target_controller.initialize( 
+                image_size=image_size)
         except BadDiskError, err:
             LOGGER.error("TargetController failed to select an "
                 "initial disk: [%s]", err)
@@ -704,16 +712,12 @@
             # Blank out the size values until they are available
             size_str = size_str.replace('%s', '')
         else:
-            rec_orig = \
+            rec_size = locale.format('%.1f',
                 self._target_controller.recommended_target_size.get(
-                    units=Size.gb_units)
-            rec_roundup = (ceil(rec_orig * 10)) * 0.1 
-            rec_size = locale.format('%.1f', rec_roundup)
-            min_orig = \
+                    units=Size.gb_units))
+            min_size = locale.format('%.1f',
                 self._target_controller.minimum_target_size.get(
-                    units=Size.gb_units)
-            min_roundup = (ceil(min_orig * 10)) * 0.1 
-            min_size = locale.format('%.1f', min_roundup)
+                    units=Size.gb_units))
             size_str = size_str % (rec_size, min_size)
 
         self.set_titles(_("Disk Selection"),