[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST v6 04/24] Debian: refactor code to add preseed commands to the preseed file
Call it from ts-debian-hvm-install. This means that, in future, ts-debian-di-install can use preseed_hook_command and preseed_hook_installscript. The existing opencoded use of d-i/late_command in the guest preseed needs to become a preseed_hook_command so as not to clash with the use of preseed_hook_cmds(). This requires also adding a #! line and the "set -ex" boilerplate which in turn requires slightly rewriting the /boot/EFI handling part to also work if the system is not installed for EFI (in which case grubx64.efi isn't installed). Previously this would have needlessly created the directory and then ignored the error from cp. The ssh authorized keys bit isn't touched since it works as is and will go away in a subsequent patch. Apart from no longer creating /target/boot/efi/EFI/boot when it is not needed there is no functional change for now. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Cc: longtaox.pang@xxxxxxxxx --- v6: Move existing d-i/late_command preseed to use preseed_hook_command v5: Extended commit message v3: New patch --- Osstest/Debian.pm | 16 +++++++++++----- ts-debian-hvm-install | 20 +++++++++++++++----- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm index acdaaa8..0656ba4 100644 --- a/Osstest/Debian.pm +++ b/Osstest/Debian.pm @@ -37,7 +37,7 @@ BEGIN { %preseed_cmds preseed_base preseed_create - preseed_hook_command preseed_hook_installscript + preseed_hook_command preseed_hook_installscript preseed_hook_cmds di_installcmdline_core ); %EXPORT_TAGS = ( ); @@ -913,10 +913,7 @@ d-i partman-auto/expert_recipe string \\ END - foreach my $di_key (keys %preseed_cmds) { - $preseed_file .= "d-i preseed/$di_key string ". - (join ' && ', @{ $preseed_cmds{$di_key} }). "\n"; - } + $preseed_file .= preseed_hook_cmds(); if ($ho->{Flags}{'no-di-kernel'}) { $preseed_file .= <<END; @@ -960,4 +957,13 @@ chmod +x '$installer_pathname' END } +sub preseed_hook_cmds () { + my $preseed; + foreach my $di_key (keys %preseed_cmds) { + $preseed .= "d-i preseed/$di_key string ". + (join ' && ', @{ $preseed_cmds{$di_key} }). "\n"; + } + return $preseed; +} + 1; diff --git a/ts-debian-hvm-install b/ts-debian-hvm-install index cfd5144..c5e094c 100755 --- a/ts-debian-hvm-install +++ b/ts-debian-hvm-install @@ -70,13 +70,23 @@ d-i partman-auto/expert_recipe string \\ . d-i apt-setup/cdrom/set-first boolean false +END -d-i preseed/late_command string \\ - in-target mkdir -p /boot/efi/EFI/boot; \\ - in-target cp /boot/efi/EFI/debian/grubx64.efi /boot/efi/EFI/boot/bootx64.efi ;\\ - in-target mkdir -p /root/.ssh; \\ - in-target sh -c "echo -e '$authkeys'> /root/.ssh/authorized_keys"; +preseed_hook_command($gho, 'late_command', '', <<END); +#!/bin/sh +set -ex + +b=/target/boot/efi/EFI +if [ -e \$b/debian/grubx64.efi ] ; then + mkdir -p \$b/boot + cp \$b/debian/grubx64.efi \$b/boot/bootx64.efi +fi +in-target mkdir -p /root/.ssh +in-target sh -c "echo -e '$authkeys'> /root/.ssh/authorized_keys" END + + $preseed_file .= preseed_hook_cmds(); + return $preseed_file; } -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |