[Devstack]Add ability to enable ironic node pty console

Make it possible to enable pty console, so that we can test shellinabox
console with the vm, but in order to not affect the gate logs, we need
to keep the log console by default.

Related-bug: #1526305
Change-Id: I9cb13c85fe1b5d596582dbe15bbd9adf98b03140
This commit is contained in:
Zhenguo Niu 2015-12-11 15:50:26 +08:00
parent aa1f251b69
commit 24955b2125
3 changed files with 17 additions and 12 deletions

View File

@ -359,13 +359,10 @@ function configure_ironic_conductor {
iniset $IRONIC_CONF_FILE pxe tftp_root $IRONIC_TFTPBOOT_DIR iniset $IRONIC_CONF_FILE pxe tftp_root $IRONIC_TFTPBOOT_DIR
iniset $IRONIC_CONF_FILE pxe tftp_master_path $IRONIC_TFTPBOOT_DIR/master_images iniset $IRONIC_CONF_FILE pxe tftp_master_path $IRONIC_TFTPBOOT_DIR/master_images
local pxe_params="" local pxe_params="nofb nomodeset vga=normal console=ttyS0"
if [[ "$IRONIC_VM_LOG_CONSOLE" == "True" ]] ; then
pxe_params+="nofb nomodeset vga=normal console=ttyS0"
if is_deployed_with_ipa_ramdisk; then if is_deployed_with_ipa_ramdisk; then
pxe_params+=" systemd.journald.forward_to_console=yes" pxe_params+=" systemd.journald.forward_to_console=yes"
fi fi
fi
# When booting with less than 1GB, we need to switch from default tmpfs # When booting with less than 1GB, we need to switch from default tmpfs
# to ramfs for ramdisks to decompress successfully. # to ramfs for ramdisks to decompress successfully.
if (is_ironic_hardware && [[ "$IRONIC_HW_NODE_RAM" -lt 1024 ]]) || if (is_ironic_hardware && [[ "$IRONIC_HW_NODE_RAM" -lt 1024 ]]) ||

View File

@ -41,6 +41,16 @@ CONSOLE_LOG = """
""" """
CONSOLE_PTY = """
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
"""
def main(): def main():
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
description="Configure a kvm virtual machine for the seed image.") description="Configure a kvm virtual machine for the seed image.")
@ -91,11 +101,9 @@ def main():
params['emulator'] = "/usr/bin/qemu-kvm" params['emulator'] = "/usr/bin/qemu-kvm"
if args.console_log: if args.console_log:
params['bios_serial'] = "<bios useserial='yes'/>" params['console'] = CONSOLE_LOG % {'console_log': args.console_log}
params['console_log'] = CONSOLE_LOG % {'console_log': args.console_log}
else: else:
params['bios_serial'] = '' params['console'] = CONSOLE_PTY
params['console_log'] = ''
libvirt_template = source_template % params libvirt_template = source_template % params
conn = libvirt.open("qemu:///system") conn = libvirt.open("qemu:///system")

View File

@ -6,7 +6,7 @@
<type arch='%(arch)s' machine='pc-1.0'>hvm</type> <type arch='%(arch)s' machine='pc-1.0'>hvm</type>
<boot dev='%(bootdev)s'/> <boot dev='%(bootdev)s'/>
<bootmenu enable='no'/> <bootmenu enable='no'/>
%(bios_serial)s <bios useserial='yes'/>
</os> </os>
<features> <features>
<acpi/> <acpi/>
@ -40,7 +40,7 @@
<model type='cirrus' vram='9216' heads='1'/> <model type='cirrus' vram='9216' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video> </video>
%(console_log)s %(console)s
<memballoon model='virtio'> <memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</memballoon> </memballoon>