return output
-def AddOSToInstance(instance, os_disk, swap_disk):
+def AddOSToInstance(instance):
"""Add an OS to an instance.
- Args:
- instance: the instance object
- os_disk: the instance-visible name of the os device
- swap_disk: the instance-visible name of the swap device
+ @type instance: L{objects.Instance}
+ @param instance: Instance whose OS is to be installed
"""
inst_os = OSFromDisk(instance.os)
create_script = inst_os.create_script
-
- os_device = instance.FindDisk(os_disk)
- if os_device is None:
- logging.error("Can't find this device-visible name '%s'", os_disk)
- return False
-
- swap_device = instance.FindDisk(swap_disk)
- if swap_device is None:
- logging.error("Can't find this device-visible name '%s'", swap_disk)
- return False
-
- real_os_dev = _RecursiveFindBD(os_device)
- if real_os_dev is None:
- raise errors.BlockDeviceError("Block device '%s' is not set up" %
- str(os_device))
- real_os_dev.Open()
-
- real_swap_dev = _RecursiveFindBD(swap_device)
- if real_swap_dev is None:
- raise errors.BlockDeviceError("Block device '%s' is not set up" %
- str(swap_device))
- real_swap_dev.Open()
+ create_env = OSEnvironment(instance)
logfile = "%s/add-%s-%s-%d.log" % (constants.LOG_OS_DIR, instance.os,
instance.name, int(time.time()))
if not os.path.exists(constants.LOG_OS_DIR):
os.mkdir(constants.LOG_OS_DIR, 0750)
- command = utils.BuildShellCmd("cd %s && %s -i %s -b %s -s %s &>%s",
- inst_os.path, create_script, instance.name,
- real_os_dev.dev_path, real_swap_dev.dev_path,
- logfile)
- env = {'HYPERVISOR': instance.hypervisor}
+ command = utils.BuildShellCmd("cd %s && %s &>%s",
+ inst_os.path, create_script, logfile)
- result = utils.RunCmd(command, env=env)
+ result = utils.RunCmd(command, env=create_env)
if result.failed:
logging.error("os create command '%s' returned error: %s, logfile: %s,"
" output: %s", command, result.fail_reason, logfile,
return True
-def RunRenameInstance(instance, old_name, os_disk, swap_disk):
+def RunRenameInstance(instance, old_name):
"""Run the OS rename script for an instance.
- Args:
- instance: the instance object
- old_name: the old name of the instance
- os_disk: the instance-visible name of the os device
- swap_disk: the instance-visible name of the swap device
+ @type instance: objects.Instance
+ @param instance: Instance whose OS is to be installed
+ @type old_name: string
+ @param old_name: previous instance name
"""
inst_os = OSFromDisk(instance.os)
script = inst_os.rename_script
-
- os_device = instance.FindDisk(os_disk)
- if os_device is None:
- logging.error("Can't find this device-visible name '%s'", os_disk)
- return False
-
- swap_device = instance.FindDisk(swap_disk)
- if swap_device is None:
- logging.error("Can't find this device-visible name '%s'", swap_disk)
- return False
-
- real_os_dev = _RecursiveFindBD(os_device)
- if real_os_dev is None:
- raise errors.BlockDeviceError("Block device '%s' is not set up" %
- str(os_device))
- real_os_dev.Open()
-
- real_swap_dev = _RecursiveFindBD(swap_device)
- if real_swap_dev is None:
- raise errors.BlockDeviceError("Block device '%s' is not set up" %
- str(swap_device))
- real_swap_dev.Open()
+ rename_env = OSEnvironment(instance)
+ rename_env['OLD_INSTANCE_NAME'] = old_name
logfile = "%s/rename-%s-%s-%s-%d.log" % (constants.LOG_OS_DIR, instance.os,
old_name,
if not os.path.exists(constants.LOG_OS_DIR):
os.mkdir(constants.LOG_OS_DIR, 0750)
- command = utils.BuildShellCmd("cd %s && %s -o %s -n %s -b %s -s %s &>%s",
- inst_os.path, script, old_name, instance.name,
- real_os_dev.dev_path, real_swap_dev.dev_path,
- logfile)
+ command = utils.BuildShellCmd("cd %s && %s &>%s",
+ inst_os.path, script, logfile)
- result = utils.RunCmd(command)
+ result = utils.RunCmd(command, env=rename_env)
if result.failed:
logging.error("os create command '%s' returned error: %s output: %s",
True if successful, False otherwise.
"""
+ # TODO(ultrotter): Import/Export still to be converted to OS API 10
+ logging.error("Import/Export still to be converted to OS API 10")
+ return False
+
inst_os = OSFromDisk(instance.os)
export_script = inst_os.export_script
False in case of error, True otherwise.
"""
+ # TODO(ultrotter): Import/Export still to be converted to OS API 10
+ logging.error("Import/Export still to be converted to OS API 10")
+ return False
+
inst_os = OSFromDisk(instance.os)
import_script = inst_os.import_script