[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




> -----Original Message-----
> From: Ian Campbell [mailto:ian.campbell@xxxxxxxxxx]
> Sent: Tuesday, April 21, 2015 6:40 PM
> To: Pang, LongtaoX
> Cc: xen-devel@xxxxxxxxxxxxx; Ian.Jackson@xxxxxxxxxxxxx; wei.liu2@xxxxxxxxxx; 
> Hu,
> Robert
> Subject: Re: [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 @@
> > +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.
> 
I am trying that.
> > +
> > +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?
> 
As mentioned in [0000 Patch], 'nested_l1' is ident for L1 guest VM, 'nestedl1' 
is hostname for L1 guest VM.
' store_runvar('nested_l1',$l1->{Guest});' is used to store L1's ident and L1's 
hostname to database, that will be used for 'selecthost()' function in later 
script.

> 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.
> 
I think I should define L1 ident with " my $l1_ident = 'nested_l1' in 
'ts-nested-setup'

> > +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).
> 
I think I could try it, that means I will add more parameters for 
'ts-nested-setup' script, not just 'host' and 'nestedl1'.

> 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?).
> 
Also, I think if use ' prepareguest_part_lvmdisk', I need set 'nestedl2_vg' and 
'nestedl2 _disk_lv' by make-flight.
But, when reuse 'ts-debian-hvm-install' to install L2, the ' 
prepareguest_part_lvmdisk' will be executed again(in 'more_prepareguest_hvm' 
function), then there will be multi runvars for 'nestedl2_vg' and 
'nestedl2_disk_lv' in standalone.db, is that OK? Please correct me if I am 
wrong.

> 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)?
> 
I think so, need a try.
> > +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®.