Rearrange some code in PXEDeploy.prepare

Change-Id: I6063ca8c4695d4cd678ad6fd08f2d52648754a36
This commit is contained in:
Zhenguo Niu 2015-04-15 22:41:53 +08:00
parent 7ff924574a
commit 06fad8e1eb
1 changed files with 12 additions and 11 deletions

View File

@ -437,17 +437,18 @@ class PXEDeploy(base.DeployInterface):
:param task: a TaskManager instance containing the node to act on.
"""
node = task.node
# TODO(deva): optimize this if rerun on existing files
if CONF.pxe.ipxe_enabled:
# Copy the iPXE boot script to HTTP root directory
bootfile_path = os.path.join(CONF.pxe.http_root,
os.path.basename(CONF.pxe.ipxe_boot_script))
shutil.copyfile(CONF.pxe.ipxe_boot_script, bootfile_path)
pxe_info = _get_image_info(task.node, task.context)
pxe_options = _build_pxe_config_options(task.node, pxe_info,
pxe_info = _get_image_info(node, task.context)
pxe_options = _build_pxe_config_options(node, pxe_info,
task.context)
if deploy_utils.get_boot_mode_for_deploy(task.node) == 'uefi':
if deploy_utils.get_boot_mode_for_deploy(node) == 'uefi':
pxe_config_template = CONF.pxe.uefi_pxe_config_template
else:
pxe_config_template = CONF.pxe.pxe_config_template
@ -457,35 +458,35 @@ class PXEDeploy(base.DeployInterface):
# FIXME(lucasagomes): If it's local boot we should not cache
# the image kernel and ramdisk (Or even require it).
_cache_ramdisk_kernel(task.context, task.node, pxe_info)
_cache_ramdisk_kernel(task.context, node, pxe_info)
iwdi = task.node.driver_internal_info.get('is_whole_disk_image')
# NOTE(deva): prepare may be called from conductor._do_takeover
# in which case, it may need to regenerate the PXE config file for an
# already-active deployment.
if task.node.provision_state == states.ACTIVE:
if node.provision_state == states.ACTIVE:
# this should have been stashed when the deploy was done
# but let's guard, just in case it's missing
iwdi = node.driver_internal_info.get('is_whole_disk_image')
try:
root_uuid_or_disk_id = task.node.driver_internal_info[
root_uuid_or_disk_id = node.driver_internal_info[
'root_uuid_or_disk_id']
except KeyError:
if not iwdi:
LOG.warn(_LW("The UUID for the root partition can't be "
"found, unable to switch the pxe config from "
"deployment mode to service (boot) mode for node "
"%(node)s"), {"node": task.node.uuid})
"%(node)s"), {"node": node.uuid})
else:
LOG.warn(_LW("The disk id for the whole disk image can't "
"be found, unable to switch the pxe config from "
"deployment mode to service (boot) mode for "
"node %(node)s"), {"node": task.node.uuid})
"node %(node)s"), {"node": node.uuid})
else:
pxe_config_path = pxe_utils.get_pxe_config_file_path(
task.node.uuid)
node.uuid)
deploy_utils.switch_pxe_config(
pxe_config_path, root_uuid_or_disk_id,
deploy_utils.get_boot_mode_for_deploy(task.node),
deploy_utils.get_boot_mode_for_deploy(node),
iwdi)
def clean_up(self, task):