[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [OSSTEST Nested PATCH v8 5/7] Add new script to customize nested test configuration



On Mon, 2015-04-13 at 17:19 -0400, longtao.pang wrote:
> 1. In this script, make some appropriate runvars which selecthost would
> recognise.
> 2. Prepare the configurations for installing L2 guest VM.
> 3. Create a lv disk in L0 and hot-attach it to L1, need to restart L1 to
> make the block disk to be recognized by L1 system, then using this disk
> to create a VG that used for installing L2.
> 
> Signed-off-by: longtao.pang <longtaox.pang@xxxxxxxxx>
> ---
> Changes in v8:
> 1. Replace '$nested_host' by '$l1->{Guest}'.
> ---
>  ts-nested-setup |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 52 insertions(+)
>  create mode 100755 ts-nested-setup
> 
> diff --git a/ts-nested-setup b/ts-nested-setup
> new file mode 100755
> index 0000000..41d5e80
> --- /dev/null
> +++ b/ts-nested-setup
> @@ -0,0 +1,52 @@
> +#!/usr/bin/perl -w
> +# This is part of "osstest", an automated testing framework for Xen.
> +# Copyright (C) 2015 Intel Inc.
> +#
> +# This program is free software: you can redistribute it and/or modify
> +# it under the terms of the GNU Affero General Public License as published by
> +# the Free Software Foundation, either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU Affero General Public License for more details.
> +#
> +# You should have received a copy of the GNU Affero General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +
> +use strict qw(vars);
> +use DBI;
> +use Osstest;
> +use Osstest::Debian;
> +use Osstest::TestSupport;
> +
> +tsreadconfig();
> +our ($l0,$l1) = ts_get_host_guest(@ARGV);
> +
> +guest_check_ip($l1);
> +target_cmd_root($l1, "mkdir -p /home/osstest/.ssh && cp 
> /root/.ssh/authorized_keys /home/osstest/.ssh/");
> +my $url = $c{WebspaceUrl}.$c{WebspaceCommon}.$l0->{Name}."_".'overlay.tar';
> +target_cmd_root($l1, <<END);
> +    wget -O overlay.tar $url
> +    tar -xf overlay.tar -C /
> +    rm overlay.tar -f
> +    update-rc.d osstest-confirm-booted start 99 2 .
> +END

I cc'd you on some patches which I think should help avoid this
duplication.

> +
> +store_runvar('nested_l1',$l1->{Guest});

I'm not sure what this is for and it would normally be wrong to hardcode
nested_l1 like that, where is it used?

Most places you seem to use nestedl1, not nested_l1. I think you ended
up with this due to not using guest_var and the various hardcoding
you've done elsewhere. I suspect with all that fixed and make-flight
updated accordingly you won't need this var any more.

> +store_runvar("$l1->{Guest}_ip",$l1->{Ip});
> +
> +my $l2_disk_mb = 20000;
> +my $l2_lv_name = 'nestedl2-disk';
> +my $vgname = $l0->{Name};
> +$vgname .= ".$c{TestHostDomain}" if ($l0->{Suite} =~ m/lenny/);
> +target_cmd_root($l0, <<END);
> +    lvremove -f /dev/${vgname}/${l2_lv_name} ||:
> +    lvcreate -L ${l2_disk_mb}M -n $l2_lv_name $vgname
> +    dd if=/dev/zero of=/dev/${vgname}/${l2_lv_name} count=10

I think you can do all of this by passing a suitable l2 $gho to
prepareguest_part_lvmdisk, can't you?

I think you can get that by my $l2 = selectguest($ARGV[????], $l1).

Where ARGV[????] is a new parameter passed by sg-run-job i.e. nestedl2,
i.e. the one after whatever ts_get_host_guest consumes at the top of the
file (so ARGV[2] perhaps?).

Once you have that $l2 you can then use guest_var for e.g. the size,
which will be good because it will be picked up by your modifications to
ts-debian-hvm-install such that they automatically match.

> +    xl block-attach $l1->{Name} /dev/${vgname}/${l2_lv_name},raw,sdb,rw

You use sdb here, but xvdb below. I think xvdb would work here, or to
avoid HVM confusion wrt SCSI vs PV perhaps use xvde throughout (since it
has no emulated counterpart by default IIRC)?

> +END
> +target_install_packages_norec($l1, qw(lvm2 rsync genisoimage));
> +target_reboot($l1);
> +target_cmd_root($l1, "pvcreate /dev/xvdb && vgcreate ${l2_lv_name}_vg 
> /dev/xvdb");



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.