7183018 Gui livecd is not using size from image.info but using fallback image size
--- 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"),