From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH OSSTEST] Allow per-host TFTP setup Date: Wed, 12 Feb 2014 14:16:25 +0000 Message-ID: <1392214585-26602-1-git-send-email-ian.campbell@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: ian.jackson@eu.citrix.com Cc: Ian Campbell , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org I run osstest against machines which are in both the XenServer and XenClient administrative domains, and hence which have different TFTP servers, accessible locally via different NFS mounted paths. Make it possible to specify various bits of TFTP path via ~/.xen-osstest/config Signed-off-by: Ian Campbell --- Osstest/Debian.pm | 6 +++++- Osstest/TestSupport.pm | 5 ++++- ts-host-install | 16 ++++++++++------ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm index 6759263..a70d35b 100644 --- a/Osstest/Debian.pm +++ b/Osstest/Debian.pm @@ -554,7 +554,11 @@ END foreach my $kp (keys %{ $ho->{Flags} }) { $kp =~ s/need-kernel-deb-// or next; - my $d_i= $c{TftpPath}.'/'.$c{TftpDiBase}.'/'.$r{arch}.'/'.$c{TftpDiVersion}.'-'.$ho->{Suite}; + my $tftppath = get_host_property($ho, "TftpPath", $c{TftpPath}); + my $tftpdibase = get_host_property($ho, "TftpDiBase", $c{TftpDiBase}); + my $tftpdiversion = get_host_property($ho, "TftpDiVersion", $c{TftpDiVersion}); + + my $d_i= $tftppath.'/'.$tftpdibase.'/'.$r{arch}.'/'.$tftpdiversion.'-'.$ho->{Suite}; my $kurl = create_webfile($ho, "kernel", sub { copy("$d_i/$kp.deb", $_[0]); diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm index a513540..5c01ffa 100644 --- a/Osstest/TestSupport.pm +++ b/Osstest/TestSupport.pm @@ -1839,8 +1839,11 @@ sub host_pxefile ($) { sub setup_pxeboot ($$) { my ($ho, $bootfile) = @_; + my $p= get_host_property($ho, "TftpPath", $c{TftpPath}); + my $d= get_host_property($ho, "TftpPxeDir", $c{TftpPxeDir}); my $f= host_pxefile($ho); - file_link_contents("$c{TftpPath}$c{TftpPxeDir}$f", $bootfile); + + file_link_contents("$p$d$f", $bootfile); } sub setup_pxeboot_local ($) { diff --git a/ts-host-install b/ts-host-install index 5c0018e..2e711fe 100755 --- a/ts-host-install +++ b/ts-host-install @@ -122,19 +122,23 @@ END sub setup_pxeboot_firstboot($) { my ($ps_url) = @_; - my $d_i= $c{TftpDiBase}.'/'.$r{arch}.'/'.$c{TftpDiVersion}.'-'.$ho->{Suite}; + my $tftppath = get_host_property($ho, "TftpPath", $c{TftpPath}); + my $tftpdibase = get_host_property($ho, "TftpDiBase", $c{TftpDiBase}); + my $tftpdiversion = get_host_property($ho, "TftpDiVersion", $c{TftpDiVersion}); + + my $d_i= $tftpdibase.'/'.$r{arch}.'/'.$tftpdiversion.'-'.$ho->{Suite}; my @installcmdline= qw(vga=normal); push @installcmdline, di_installcmdline_core($ho, $ps_url, %xopts); my $src_initrd= "$d_i/initrd.gz"; - my @initrds= "$c{TftpPath}/$src_initrd"; + my @initrds= "$tftppath/$src_initrd"; my $kernel; foreach my $fp (keys %{ $ho->{Flags} }) { $fp =~ s/^need-firmware-deb-// or next; - my $cpio= "$c{TftpPath}/$d_i/$fp.cpio.gz"; + my $cpio= "$tftppath/$d_i/$fp.cpio.gz"; if (stat $cpio) { logm("using firmware from: $cpio"); push @initrds, $cpio; @@ -147,7 +151,7 @@ sub setup_pxeboot_firstboot($) { foreach my $kp (keys %{ $ho->{Flags} }) { $kp =~ s/need-kernel-deb-// or next; - my $kern= "$c{TftpPath}/$d_i/linux.$kp"; + my $kern= "$tftppath/$d_i/linux.$kp"; if (stat $kern) { logm("using kernel from: $kern"); $kernel = "/$d_i/linux.$kp"; @@ -157,7 +161,7 @@ sub setup_pxeboot_firstboot($) { die "$kp $kern $!"; } - my $cpio= "$c{TftpPath}/$d_i/$kp.cpio.gz"; + my $cpio= "$tftppath/$d_i/$kp.cpio.gz"; if (stat $cpio) { logm("using kernel modules from: $cpio"); push @initrds, $cpio; @@ -195,7 +199,7 @@ END logm("using initrds: @initrds"); my $initrd= "$c{TftpTmpDir}$ho->{Name}--initrd.gz"; - system_checked("cat -- @initrds >$c{TftpPath}$initrd"); + system_checked("cat -- @initrds >$tftppath$initrd"); push @installcmdline, ("initrd=/$initrd", "domain=$c{TestHostDomain}", -- 1.8.5.2