Hello,
First, I think this is a great project and think it has a lot of potential. Second, I'm wondering if someone might be able to help me model my current test cases in lnst. I'll include the job xml that I'm currently using in beaker and try and break it down here.
The physical setup is between two real systems, and on each real system is 3 virtual systems:
SystemA rhel6u4_1 rhel6u4_2 rhel6u4_3
SystemB rhel6u4_4 rhel6u4_5 rhel6u4_6
SystemA and SystemB have multiple network interfaces. We want to test OpenVSwitch with the bnx2x driver and vlans.
My test plan does the following: - Provision SystemA with RHEL6U4 - Install three virt guests - Install openVswitch - Configure ovsbridge1 using p2p1 (we know this is the bnx2x card), use a local private ip address, also configure which trunks will support. - Add the ovsbridge1 interface to rhel6u4_1,rhel6u4_2 with tag 100 - Add the ovsbridge1 interface to rhel6u4_3 with tag 200 - Start the virt guests with their new config. All guests will start with eth0, and when running they will configure eth1 - From each guest ping the other guests, record pass/fail based on whether you should have been able to or not. - same test as previous but using netperf.
In parallel I do the same thing on SystemB.
SystemA interface p2p1 is connected through a private switch to SystemB interface p2p1
This works but I am hard coded to using two hosts that I know are configured the way I need. From looking at lnst it looks like this could be done more dynamically. I did see some references to beaker integration but I didn't see anything more.
Is this use case too complicated? Do you see subsets that could be tackled now?
Any help would be appreciated. Thanks!
Hi Bill,
we discussed your test scenario at the meeting and in general the dynamic selection of the test machines should be possible in coordination with Beaker. Unfortunately we don't have a working Beaker tasking at the moment but I'm going to update it since many changes have been done in the last year. Along with that I'll update the Beaker task howto that has been also outdated for a few months.
Please stay tuned, I'd like to give you something useful before next Wednesday.
-Jan
Wed, Mar 13, 2013 at 06:15:42PM CET, bpeck@redhat.com wrote:
Hello,
First, I think this is a great project and think it has a lot of potential. Second, I'm wondering if someone might be able to help me model my current test cases in lnst. I'll include the job xml that I'm currently using in beaker and try and break it down here.
The physical setup is between two real systems, and on each real system is 3 virtual systems:
SystemA rhel6u4_1 rhel6u4_2 rhel6u4_3
SystemB rhel6u4_4 rhel6u4_5 rhel6u4_6
SystemA and SystemB have multiple network interfaces. We want to test OpenVSwitch with the bnx2x driver and vlans.
My test plan does the following:
- Provision SystemA with RHEL6U4
- Install three virt guests
- Install openVswitch
- Configure ovsbridge1 using p2p1 (we know this is the bnx2x card),
use a local private ip address, also configure which trunks will support.
- Add the ovsbridge1 interface to rhel6u4_1,rhel6u4_2 with tag 100
- Add the ovsbridge1 interface to rhel6u4_3 with tag 200
- Start the virt guests with their new config. All guests will start
with eth0, and when running they will configure eth1
- From each guest ping the other guests, record pass/fail based on
whether you should have been able to or not.
- same test as previous but using netperf.
In parallel I do the same thing on SystemB.
SystemA interface p2p1 is connected through a private switch to SystemB interface p2p1
This works but I am hard coded to using two hosts that I know are configured the way I need. From looking at lnst it looks like this could be done more dynamically. I did see some references to beaker integration but I didn't see anything more.
Is this use case too complicated? Do you see subsets that could be tackled now?
Any help would be appreciated. Thanks!
<job> <whiteboard> bnx2x openvswitch with vlans </whiteboard> <recipeSet> <recipe kernel_options="" kernel_options_post="" ks_meta="" role="None" whiteboard="rhel6u4_1 rhel6u4_2 rhel6u4_3"> <guestrecipe guestargs=" -s 10 --hvm --kvm --serial pty" guestname="rhel6u4_1" whiteboard="rhel6u4_1"> <distroRequires> <and> <distro_family op="=" value="RedHatEnterpriseLinux6"/> <distro_tag op="=" value="STABLE"/> <distro_variant op="=" value="Server"/> <distro_arch op="=" value="x86_64"/> </and> </distroRequires> <hostRequires> <system_type value="Virtual"/> </hostRequires> <task name="/distribution/install" role="STANDALONE"> <params/> </task> <task name="/distribution/command" role="STANDALONE"> <params> <param name="CMDS_TO_RUN" value="yum -y install netperf"/> </params> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/add_interface"/> <param name="INTERFACES" value="eth1"/> <param name="eth1" value="DEVICE=eth1 TYPE=Ethernet ONBOOT=yes IPADDR=192.168.1.1 NETMASK=255.255.255.0"/> </params> </task> <task name="/distribution/reservesys"> <params> <param name="RESERVE_IF_FAIL" value="True"/> </params> </task> </guestrecipe> <guestrecipe guestargs=" -s 10 --hvm --kvm --serial pty" guestname="rhel6u4_2" whiteboard="rhel6u4_u2"> <distroRequires> <and> <distro_family op="=" value="RedHatEnterpriseLinux6"/> <distro_tag op="=" value="STABLE"/> <distro_variant op="=" value="Server"/> <distro_arch op="=" value="x86_64"/> </and> </distroRequires> <hostRequires> <system_type value="Virtual"/> </hostRequires> <task name="/distribution/install" role="STANDALONE"> <params/> </task> <task name="/distribution/command" role="STANDALONE"> <params> <param name="CMDS_TO_RUN" value="yum -y install netperf"/> </params> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/add_interface"/> <param name="INTERFACES" value="eth1"/> <param name="eth1" value="DEVICE=eth1 TYPE=Ethernet ONBOOT=yes IPADDR=192.168.1.2 NETMASK=255.255.255.0"/> </params> </task> <task name="/distribution/reservesys"> <params> <param name="RESERVE_IF_FAIL" value="True"/> </params> </task> </guestrecipe> <guestrecipe guestargs=" -s 10 --hvm --kvm --serial pty" guestname="rhel6u4_3" whiteboard="rhel6u4_3"> <repos> <repo name="openvswitch" url="http://file.bos.redhat.com/~bpeck/openvswitch/"/> </repos> <distroRequires> <and> <distro_family op="=" value="RedHatEnterpriseLinux6"/> <distro_tag op="=" value="STABLE"/> <distro_variant op="=" value="Server"/> <distro_arch op="=" value="i386"/> </and> </distroRequires> <hostRequires> <system_type value="Virtual"/> </hostRequires> <task name="/distribution/install" role="STANDALONE"> <params/> </task> <task name="/distribution/command" role="STANDALONE"> <params> <param name="CMDS_TO_RUN" value="yum -y install netperf"/> </params> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/add_interface"/> <param name="INTERFACES" value="eth1"/> <param name="eth1" value="DEVICE=eth1 TYPE=Ethernet ONBOOT=yes IPADDR=192.168.1.3 NETMASK=255.255.255.0"/> </params> </task> <task name="/distribution/reservesys"> <params> <param name="RESERVE_IF_FAIL" value="True"/> </params> </task> </guestrecipe> <distroRequires> <and> <distro_family op="=" value="RedHatEnterpriseLinux6"/> <distro_tag op="=" value="STABLE"/> <distro_variant op="=" value="Server"/> <distro_arch op="=" value="x86_64"/> </and> </distroRequires> <hostRequires> <system> <name op="=" value="SystemA.example.com"/> </system> </hostRequires> <task name="/distribution/install" role="STANDALONE"/> <task name="/distribution/virt/install" role="SERVERS"> <params> <param name="KILLTIMEOVERRIDE" value="59280"/> </params> </task> <task name="/distribution/command" role="STANDALONE"> <params> <param name="CMDS_TO_RUN" value="yum -y install openvswitch; chkconfig --add openvswitch"/> </params> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/add_interface"/> <param name="INTERFACES" value="ovsbridge1 p2p1"/> <param name="ovsbridge1" value="DEVICE=ovsbridge1 ONBOOT=yes DEVICETYPE=ovs TYPE=OVSBridge OVSBOOTPROTO=static IPADDR=192.168.1.21 NETMASK=255.255.255.0"/> <param name="p2p1" value="DEVICE=p2p1 ONBOOT=yes BOOTPROTO=none DEVICETYPE=ovs TYPE=OVSPort OVS_BRIDGE=ovsbridge1 OVS_OPTIONS=trunk=100,200"/> </params> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/openvswitch/libvirt/add_interface"/> <param name="GUESTS" value="rhel6u4_1 rhel6u4_2 rhel6u4_3"/> <param name="rhel6u4_1" value="switch=ovsbridge1;tag=100"/> <param name="rhel6u4_2" value="switch=ovsbridge1;tag=100"/> <param name="rhel6u4_3" value="switch=ovsbridge1;tag=200"/> </params> </task> <task name="/distribution/virt/start" role="STANDALONE"> <params/> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/libvirt/ping git://git.example.com/users/bpeck/tests.git?master#kernel/networking/libvirt/netperf-server git://git.example.com/users/bpeck/tests.git?master#kernel/networking/libvirt/netperf-client"/> <param name="WHITEBOARD" value="bnx2x"/> <param name="GUESTS" value="rhel6u4_1 rhel6u4_2 rhel6u4_3"/> <param name="rhel6u4_1" value="valid_addrs=192.168.1.1;192.168.1.2;192.168.1.4;192.168.1.5 invalid_addrs=192.168.1.3;192.168.1.6"/> <param name="rhel6u4_2" value="valid_addrs=192.168.1.1;192.168.1.2;192.168.1.4;192.168.1.5 invalid_addrs=192.168.1.3;192.168.1.6"/> <param name="rhel6u4_3" value="invalid_addrs=192.168.1.1;192.168.1.2;192.168.1.4;192.168.1.5 valid_addrs=192.168.1.3;192.168.1.6"/> </params> </task> <task name="/distribution/reservesys"> <params> <param name="RESERVE_IF_FAIL" value="True"/> </params> </task> </recipe> <recipe kernel_options="" kernel_options_post="" ks_meta="" role="None" whiteboard="rhel6u4_4 rhel6u4_5 rhel6u4_6"> <guestrecipe guestargs=" -s 10 --hvm --kvm --serial pty" guestname="rhel6u4_4" whiteboard="rhel6u4_4"> <distroRequires> <and> <distro_family op="=" value="RedHatEnterpriseLinux6"/> <distro_tag op="=" value="STABLE"/> <distro_variant op="=" value="Server"/> <distro_arch op="=" value="x86_64"/> </and> </distroRequires> <hostRequires> <system_type value="Virtual"/> </hostRequires> <task name="/distribution/install" role="STANDALONE"> <params/> </task> <task name="/distribution/command" role="STANDALONE"> <params> <param name="CMDS_TO_RUN" value="yum -y install netperf"/> </params> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/add_interface"/> <param name="INTERFACES" value="eth1"/> <param name="eth1" value="DEVICE=eth1 TYPE=Ethernet ONBOOT=yes IPADDR=192.168.1.4 NETMASK=255.255.255.0"/> </params> </task> <task name="/distribution/reservesys"> <params> <param name="RESERVE_IF_FAIL" value="True"/> </params> </task> </guestrecipe> <guestrecipe guestargs=" -s 10 --hvm --kvm --serial pty" guestname="rhel6u4_5" whiteboard="rhel6u4_5"> <repos> <repo name="openvswitch" url="http://file.bos.redhat.com/~bpeck/openvswitch/"/> </repos> <distroRequires> <and> <distro_family op="=" value="RedHatEnterpriseLinux6"/> <distro_tag op="=" value="STABLE"/> <distro_variant op="=" value="Server"/> <distro_arch op="=" value="x86_64"/> </and> </distroRequires> <hostRequires> <system_type value="Virtual"/> </hostRequires> <task name="/distribution/install" role="STANDALONE"> <params/> </task> <task name="/distribution/command" role="STANDALONE"> <params> <param name="CMDS_TO_RUN" value="yum -y install netperf"/> </params> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/add_interface"/> <param name="INTERFACES" value="eth1"/> <param name="eth1" value="DEVICE=eth1 TYPE=Ethernet ONBOOT=yes IPADDR=192.168.1.5 NETMASK=255.255.255.0"/> </params> </task> <task name="/distribution/reservesys"> <params> <param name="RESERVE_IF_FAIL" value="True"/> </params> </task> </guestrecipe> <guestrecipe guestargs=" -s 10 --hvm --kvm --serial pty" guestname="rhel6u4_6" whiteboard="rhel6u4_6"> <distroRequires> <and> <distro_family op="=" value="RedHatEnterpriseLinux6"/> <distro_tag op="=" value="STABLE"/> <distro_variant op="=" value="Server"/> <distro_arch op="=" value="i386"/> </and> </distroRequires> <hostRequires> <system_type value="Virtual"/> </hostRequires> <task name="/distribution/install" role="STANDALONE"> <params/> </task> <task name="/distribution/command" role="STANDALONE"> <params> <param name="CMDS_TO_RUN" value="yum -y install netperf"/> </params> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/add_interface"/> <param name="INTERFACES" value="eth1"/> <param name="eth1" value="DEVICE=eth1 TYPE=Ethernet ONBOOT=yes IPADDR=192.168.1.6 NETMASK=255.255.255.0"/> </params> </task> <task name="/distribution/reservesys"> <params> <param name="RESERVE_IF_FAIL" value="True"/> </params> </task> </guestrecipe> <distroRequires> <and> <distro_family op="=" value="RedHatEnterpriseLinux6"/> <distro_tag op="=" value="STABLE"/> <distro_variant op="=" value="Server"/> <distro_arch op="=" value="x86_64"/> </and> </distroRequires> <hostRequires> <system> <name op="=" value="SystemB.example.com"/> </system> </hostRequires> <task name="/distribution/install" role="STANDALONE"/> <task name="/distribution/virt/install" role="SERVERS"> <params> <param name="KILLTIMEOVERRIDE" value="59280"/> </params> </task> <task name="/distribution/command" role="STANDALONE"> <params> <param name="CMDS_TO_RUN" value="yum -y install openvswitch; chkconfig --add openvswitch"/> </params> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/add_interface"/> <param name="INTERFACES" value="ovsbridge1 p2p1"/> <param name="ovsbridge1" value="DEVICE=ovsbridge1 ONBOOT=yes DEVICETYPE=ovs TYPE=OVSBridge OVSBOOTPROTO=static IPADDR=192.168.1.41 NETMASK=255.255.255.0"/> <param name="p2p1" value="DEVICE=p2p1 ONBOOT=yes BOOTPROTO=none DEVICETYPE=ovs TYPE=OVSPort OVS_BRIDGE=ovsbridge1 OVS_OPTIONS=trunk=100,200"/> </params> </task> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/openvswitch/libvirt/add_interface"/> <param name="GUESTS" value="rhel6u4_4 rhel6u4_5 rhel6u4_6"/> <param name="rhel6u4_4" value="switch=ovsbridge1;tag=100"/> <param name="rhel6u4_5" value="switch=ovsbridge1;tag=100"/> <param name="rhel6u4_6" value="switch=ovsbridge1;tag=200"/> </params> </task> <task name="/distribution/virt/start" role="STANDALONE"/> <task name="/distribution/get_task" role="STANDALONE"> <params> <param name="GITURIS" value="git://git.example.com/users/bpeck/tests.git?master#kernel/networking/libvirt/ping git://git.example.com/users/bpeck/tests.git?master#kernel/networking/libvirt/netperf-server git://git.example.com/users/bpeck/tests.git?master#kernel/networking/libvirt/netperf-client"/> <param name="WHITEBOARD" value="bnx2x"/> <param name="GUESTS" value="rhel6u4_4 rhel6u4_5 rhel6u4_6"/> <param name="rhel6u4_4" value="valid_addrs=192.168.1.1;192.168.1.2;192.168.1.4;192.168.1.5 invalid_addrs=192.168.1.3;192.168.1.6"/> <param name="rhel6u4_5" value="valid_addrs=192.168.1.1;192.168.1.2;192.168.1.4;192.168.1.5 invalid_addrs=192.168.1.3;192.168.1.6"/> <param name="rhel6u4_6" value="invalid_addrs=192.168.1.1;192.168.1.2;192.168.1.4;192.168.1.5 valid_addrs=192.168.1.3;192.168.1.6"/> </params> </task> <task name="/distribution/reservesys"> <params> <param name="RESERVE_IF_FAIL" value="True"/> </params> </task> </recipe> </recipeSet> </job>
LNST-developers mailing list LNST-developers@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/lnst-developers
lnst-developers@lists.fedorahosted.org