[PATCH] Change source to xinclude in multicast-all recipe
by Jan Tluka
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
recipes/multicast/multicast-all.xml | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/recipes/multicast/multicast-all.xml b/recipes/multicast/multicast-all.xml
index 7b653d0..6855055 100644
--- a/recipes/multicast/multicast-all.xml
+++ b/recipes/multicast/multicast-all.xml
@@ -1,5 +1,5 @@
<!-- Execute all tests for multicast -->
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<machine id="1">
<interfaces>
@@ -34,12 +34,12 @@
<alias name="nonexistent_ip" value="127.0.0.200"/>
</define>
- <task source="cmd_sequences/max_groups.xml"/>
- <task source="cmd_sequences/block_source.xml"/>
- <task source="cmd_sequences/source_membership.xml"/>
- <task source="cmd_sequences/membership.xml"/>
- <task source="cmd_sequences/if.xml"/>
- <task source="cmd_sequences/ttl.xml"/>
- <task source="cmd_sequences/loop.xml"/>
- <task source="cmd_sequences/simple.xml"/>
+ <xi:include href="cmd_sequences/max_groups.xml"/>
+ <xi:include href="cmd_sequences/block_source.xml"/>
+ <xi:include href="cmd_sequences/source_membership.xml"/>
+ <xi:include href="cmd_sequences/membership.xml"/>
+ <xi:include href="cmd_sequences/if.xml"/>
+ <xi:include href="cmd_sequences/ttl.xml"/>
+ <xi:include href="cmd_sequences/loop.xml"/>
+ <xi:include href="cmd_sequences/simple.xml"/>
</lnstrecipe>
--
1.8.1.4
10 years, 7 months
[PATCH] Fix team driver recipes to use xinclude instead of source
by Jan Tluka
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
recipes/team/recipex_ab_001.xml | 8 ++++----
recipes/team/recipex_ab_002.xml | 22 +++++++++++-----------
recipes/team/recipex_ab_003.xml | 8 ++++----
recipes/team/recipex_ab_004.xml | 8 ++++----
recipes/team/recipex_bcast_001.xml | 8 ++++----
recipes/team/recipex_bcast_002.xml | 22 +++++++++++-----------
recipes/team/recipex_bcast_003.xml | 8 ++++----
recipes/team/recipex_bcast_004.xml | 8 ++++----
recipes/team/recipex_lacp_001.xml | 8 ++++----
recipes/team/recipex_lacp_002.xml | 22 +++++++++++-----------
recipes/team/recipex_lacp_003.xml | 8 ++++----
recipes/team/recipex_lacp_004.xml | 8 ++++----
recipes/team/recipex_lacp_act_001.xml | 8 ++++----
recipes/team/recipex_lacp_act_002.xml | 22 +++++++++++-----------
recipes/team/recipex_lacp_act_003.xml | 8 ++++----
recipes/team/recipex_lacp_act_004.xml | 8 ++++----
recipes/team/recipex_lb_001.xml | 8 ++++----
recipes/team/recipex_lb_002.xml | 22 +++++++++++-----------
recipes/team/recipex_lb_003.xml | 8 ++++----
recipes/team/recipex_lb_004.xml | 8 ++++----
recipes/team/recipex_lb_act_001.xml | 8 ++++----
recipes/team/recipex_lb_act_002.xml | 22 +++++++++++-----------
recipes/team/recipex_lb_act_003.xml | 8 ++++----
recipes/team/recipex_lb_act_004.xml | 8 ++++----
recipes/team/recipex_rr_001.xml | 8 ++++----
recipes/team/recipex_rr_002.xml | 22 +++++++++++-----------
recipes/team/recipex_rr_003.xml | 8 ++++----
recipes/team/recipex_rr_004.xml | 8 ++++----
recipes/team/recipey_ab_lw_001.xml | 8 ++++----
recipes/team/recipey_ab_lw_002.xml | 8 ++++----
recipes/team/recipey_ab_lw_003.xml | 8 ++++----
recipes/team/recipey_ab_lw_004.xml | 8 ++++----
recipes/team/recipey_ab_lw_005.xml | 8 ++++----
recipes/team/recipey_ab_lw_006.xml | 8 ++++----
recipes/team/recipey_ab_lw_007.xml | 8 ++++----
recipes/team/recipey_ab_lw_008.xml | 8 ++++----
recipes/team/recipey_lacp_act_flows.xml | 8 ++++----
recipes/team/recipey_lacp_hashes.xml | 8 ++++----
recipes/team/recipey_lacp_passive.xml | 8 ++++----
recipes/team/recipey_lacp_slowrate.xml | 8 ++++----
recipes/team/recipey_lb_act_flows.xml | 8 ++++----
recipes/team/recipey_lb_hashes.xml | 8 ++++----
recipes/team/recipey_rr_queue_mapping.xml | 8 ++++----
43 files changed, 221 insertions(+), 221 deletions(-)
diff --git a/recipes/team/recipex_ab_001.xml b/recipes/team/recipex_ab_001.xml
index 37232b6..5f0b50a 100644
--- a/recipes/team/recipex_ab_001.xml
+++ b/recipes/team/recipex_ab_001.xml
@@ -1,4 +1,4 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
@@ -6,7 +6,7 @@
</define>
<machine id="1">
<params/>
- <interfaces source="interfaces-team_ab.xml"/>
+ <xi:include href="interfaces-team_ab.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
@@ -14,8 +14,8 @@
</define>
<machine id="2">
<params/>
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_ab_002.xml b/recipes/team/recipex_ab_002.xml
index 391d139..b22d7b7 100644
--- a/recipes/team/recipex_ab_002.xml
+++ b/recipes/team/recipex_ab_002.xml
@@ -1,18 +1,18 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab.xml"/>
+ <xi:include href="interfaces-team_ab.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
<define>
@@ -23,12 +23,12 @@
<alias name="nonexistent_ip" value="127.0.0.200"/>
</define>
- <task source="../multicast/cmd_sequences/max_groups.xml"/>
- <task source="../multicast/cmd_sequences/block_source.xml"/>
- <task source="../multicast/cmd_sequences/source_membership.xml"/>
- <task source="../multicast/cmd_sequences/membership.xml"/>
- <task source="../multicast/cmd_sequences/if.xml"/>
- <task source="../multicast/cmd_sequences/ttl.xml"/>
- <task source="../multicast/cmd_sequences/loop.xml"/>
- <task source="../multicast/cmd_sequences/simple.xml"/>
+ <xi:include href="../multicast/cmd_sequences/max_groups.xml"/>
+ <xi:include href="../multicast/cmd_sequences/block_source.xml"/>
+ <xi:include href="../multicast/cmd_sequences/source_membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/if.xml"/>
+ <xi:include href="../multicast/cmd_sequences/ttl.xml"/>
+ <xi:include href="../multicast/cmd_sequences/loop.xml"/>
+ <xi:include href="../multicast/cmd_sequences/simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_ab_003.xml b/recipes/team/recipex_ab_003.xml
index 45e7143..a00c42a 100644
--- a/recipes/team/recipex_ab_003.xml
+++ b/recipes/team/recipex_ab_003.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab.xml"/>
+ <xi:include href="interfaces-team_ab.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple.xml"/>
+ <xi:include href="interfaces-simple.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen.xml"/>
+ <xi:include href="sequence_pktgen.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_ab_004.xml b/recipes/team/recipex_ab_004.xml
index 81420b8..3cce865 100644
--- a/recipes/team/recipex_ab_004.xml
+++ b/recipes/team/recipex_ab_004.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab.xml"/>
+ <xi:include href="interfaces-team_ab.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_iperf.xml"/>
+ <xi:include href="sequence_iperf.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_bcast_001.xml b/recipes/team/recipex_bcast_001.xml
index 6487253..89b12c5 100644
--- a/recipes/team/recipex_bcast_001.xml
+++ b/recipes/team/recipex_bcast_001.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_bcast.xml"/>
+ <xi:include href="interfaces-team_bcast.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_bcast_002.xml b/recipes/team/recipex_bcast_002.xml
index 274a676..590a61c 100644
--- a/recipes/team/recipex_bcast_002.xml
+++ b/recipes/team/recipex_bcast_002.xml
@@ -1,18 +1,18 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_bcast.xml"/>
+ <xi:include href="interfaces-team_bcast.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
<define>
@@ -23,12 +23,12 @@
<alias name="nonexistent_ip" value="127.0.0.200"/>
</define>
- <task source="../multicast/cmd_sequences/max_groups.xml"/>
- <task source="../multicast/cmd_sequences/block_source.xml"/>
- <task source="../multicast/cmd_sequences/source_membership.xml"/>
- <task source="../multicast/cmd_sequences/membership.xml"/>
- <task source="../multicast/cmd_sequences/if.xml"/>
- <task source="../multicast/cmd_sequences/ttl.xml"/>
- <task source="../multicast/cmd_sequences/loop.xml"/>
- <task source="../multicast/cmd_sequences/simple.xml"/>
+ <xi:include href="../multicast/cmd_sequences/max_groups.xml"/>
+ <xi:include href="../multicast/cmd_sequences/block_source.xml"/>
+ <xi:include href="../multicast/cmd_sequences/source_membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/if.xml"/>
+ <xi:include href="../multicast/cmd_sequences/ttl.xml"/>
+ <xi:include href="../multicast/cmd_sequences/loop.xml"/>
+ <xi:include href="../multicast/cmd_sequences/simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_bcast_003.xml b/recipes/team/recipex_bcast_003.xml
index cb1c002..26464ca 100644
--- a/recipes/team/recipex_bcast_003.xml
+++ b/recipes/team/recipex_bcast_003.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_bcast.xml"/>
+ <xi:include href="interfaces-team_bcast.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple.xml"/>
+ <xi:include href="interfaces-simple.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen.xml"/>
+ <xi:include href="sequence_pktgen.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_bcast_004.xml b/recipes/team/recipex_bcast_004.xml
index f804166..67364ad 100644
--- a/recipes/team/recipex_bcast_004.xml
+++ b/recipes/team/recipex_bcast_004.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_bcast.xml"/>
+ <xi:include href="interfaces-team_bcast.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_iperf.xml"/>
+ <xi:include href="sequence_iperf.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lacp_001.xml b/recipes/team/recipex_lacp_001.xml
index 3e53cbe..18884ff 100644
--- a/recipes/team/recipex_lacp_001.xml
+++ b/recipes/team/recipex_lacp_001.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp.xml"/>
+ <xi:include href="interfaces-team_lacp.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lacp_002.xml b/recipes/team/recipex_lacp_002.xml
index 3036d78..cf6007b 100644
--- a/recipes/team/recipex_lacp_002.xml
+++ b/recipes/team/recipex_lacp_002.xml
@@ -1,18 +1,18 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp.xml"/>
+ <xi:include href="interfaces-team_lacp.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
<define>
@@ -23,12 +23,12 @@
<alias name="nonexistent_ip" value="127.0.0.200"/>
</define>
- <task source="../multicast/cmd_sequences/max_groups.xml"/>
- <task source="../multicast/cmd_sequences/block_source.xml"/>
- <task source="../multicast/cmd_sequences/source_membership.xml"/>
- <task source="../multicast/cmd_sequences/membership.xml"/>
- <task source="../multicast/cmd_sequences/if.xml"/>
- <task source="../multicast/cmd_sequences/ttl.xml"/>
- <task source="../multicast/cmd_sequences/loop.xml"/>
- <task source="../multicast/cmd_sequences/simple.xml"/>
+ <xi:include href="../multicast/cmd_sequences/max_groups.xml"/>
+ <xi:include href="../multicast/cmd_sequences/block_source.xml"/>
+ <xi:include href="../multicast/cmd_sequences/source_membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/if.xml"/>
+ <xi:include href="../multicast/cmd_sequences/ttl.xml"/>
+ <xi:include href="../multicast/cmd_sequences/loop.xml"/>
+ <xi:include href="../multicast/cmd_sequences/simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lacp_003.xml b/recipes/team/recipex_lacp_003.xml
index eeb2a01..8cfa5e1 100644
--- a/recipes/team/recipex_lacp_003.xml
+++ b/recipes/team/recipex_lacp_003.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp.xml"/>
+ <xi:include href="interfaces-team_lacp.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen_lacp.xml"/>
+ <xi:include href="sequence_pktgen_lacp.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lacp_004.xml b/recipes/team/recipex_lacp_004.xml
index a4a88d4..e2a7e13 100644
--- a/recipes/team/recipex_lacp_004.xml
+++ b/recipes/team/recipex_lacp_004.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp.xml"/>
+ <xi:include href="interfaces-team_lacp.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
- <task source="sequence_iperf.xml"/>
+ <xi:include href="sequence_iperf.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lacp_act_001.xml b/recipes/team/recipex_lacp_act_001.xml
index 7636dbf..df30707 100644
--- a/recipes/team/recipex_lacp_act_001.xml
+++ b/recipes/team/recipex_lacp_act_001.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp_act.xml"/>
+ <xi:include href="interfaces-team_lacp_act.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lacp_act_002.xml b/recipes/team/recipex_lacp_act_002.xml
index d19f620..4104d37 100644
--- a/recipes/team/recipex_lacp_act_002.xml
+++ b/recipes/team/recipex_lacp_act_002.xml
@@ -1,18 +1,18 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp_act.xml"/>
+ <xi:include href="interfaces-team_lacp_act.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
<define>
@@ -23,12 +23,12 @@
<alias name="nonexistent_ip" value="127.0.0.200"/>
</define>
- <task source="../multicast/cmd_sequences/max_groups.xml"/>
- <task source="../multicast/cmd_sequences/block_source.xml"/>
- <task source="../multicast/cmd_sequences/source_membership.xml"/>
- <task source="../multicast/cmd_sequences/membership.xml"/>
- <task source="../multicast/cmd_sequences/if.xml"/>
- <task source="../multicast/cmd_sequences/ttl.xml"/>
- <task source="../multicast/cmd_sequences/loop.xml"/>
- <task source="../multicast/cmd_sequences/simple.xml"/>
+ <xi:include href="../multicast/cmd_sequences/max_groups.xml"/>
+ <xi:include href="../multicast/cmd_sequences/block_source.xml"/>
+ <xi:include href="../multicast/cmd_sequences/source_membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/if.xml"/>
+ <xi:include href="../multicast/cmd_sequences/ttl.xml"/>
+ <xi:include href="../multicast/cmd_sequences/loop.xml"/>
+ <xi:include href="../multicast/cmd_sequences/simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lacp_act_003.xml b/recipes/team/recipex_lacp_act_003.xml
index 5b7cf91..496b1b9 100644
--- a/recipes/team/recipex_lacp_act_003.xml
+++ b/recipes/team/recipex_lacp_act_003.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp_act.xml"/>
+ <xi:include href="interfaces-team_lacp_act.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen_lacp.xml"/>
+ <xi:include href="sequence_pktgen_lacp.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lacp_act_004.xml b/recipes/team/recipex_lacp_act_004.xml
index 186fe9d..0752e10 100644
--- a/recipes/team/recipex_lacp_act_004.xml
+++ b/recipes/team/recipex_lacp_act_004.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp_act.xml"/>
+ <xi:include href="interfaces-team_lacp_act.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
- <task source="sequence_iperf.xml"/>
+ <xi:include href="sequence_iperf.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lb_001.xml b/recipes/team/recipex_lb_001.xml
index 6dd5334..51325ac 100644
--- a/recipes/team/recipex_lb_001.xml
+++ b/recipes/team/recipex_lb_001.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lb.xml"/>
+ <xi:include href="interfaces-team_lb.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lb_002.xml b/recipes/team/recipex_lb_002.xml
index 4a9f093..6629b19 100644
--- a/recipes/team/recipex_lb_002.xml
+++ b/recipes/team/recipex_lb_002.xml
@@ -1,18 +1,18 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lb.xml"/>
+ <xi:include href="interfaces-team_lb.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
<define>
@@ -23,12 +23,12 @@
<alias name="nonexistent_ip" value="127.0.0.200"/>
</define>
- <task source="../multicast/cmd_sequences/max_groups.xml"/>
- <task source="../multicast/cmd_sequences/block_source.xml"/>
- <task source="../multicast/cmd_sequences/source_membership.xml"/>
- <task source="../multicast/cmd_sequences/membership.xml"/>
- <task source="../multicast/cmd_sequences/if.xml"/>
- <task source="../multicast/cmd_sequences/ttl.xml"/>
- <task source="../multicast/cmd_sequences/loop.xml"/>
- <task source="../multicast/cmd_sequences/simple.xml"/>
+ <xi:include href="../multicast/cmd_sequences/max_groups.xml"/>
+ <xi:include href="../multicast/cmd_sequences/block_source.xml"/>
+ <xi:include href="../multicast/cmd_sequences/source_membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/if.xml"/>
+ <xi:include href="../multicast/cmd_sequences/ttl.xml"/>
+ <xi:include href="../multicast/cmd_sequences/loop.xml"/>
+ <xi:include href="../multicast/cmd_sequences/simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lb_003.xml b/recipes/team/recipex_lb_003.xml
index 03f9d0d..97183ff 100644
--- a/recipes/team/recipex_lb_003.xml
+++ b/recipes/team/recipex_lb_003.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lb.xml"/>
+ <xi:include href="interfaces-team_lb.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple.xml"/>
+ <xi:include href="interfaces-simple.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen.xml"/>
+ <xi:include href="sequence_pktgen.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lb_004.xml b/recipes/team/recipex_lb_004.xml
index 956d2c7..c49cdac 100644
--- a/recipes/team/recipex_lb_004.xml
+++ b/recipes/team/recipex_lb_004.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lb.xml"/>
+ <xi:include href="interfaces-team_lb.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_iperf.xml"/>
+ <xi:include href="sequence_iperf.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lb_act_001.xml b/recipes/team/recipex_lb_act_001.xml
index 59ec09b..4774792 100644
--- a/recipes/team/recipex_lb_act_001.xml
+++ b/recipes/team/recipex_lb_act_001.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lb_act.xml"/>
+ <xi:include href="interfaces-team_lb_act.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lb_act_002.xml b/recipes/team/recipex_lb_act_002.xml
index 09c3de6..da6ec86 100644
--- a/recipes/team/recipex_lb_act_002.xml
+++ b/recipes/team/recipex_lb_act_002.xml
@@ -1,18 +1,18 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lb_act.xml"/>
+ <xi:include href="interfaces-team_lb_act.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
<define>
@@ -23,12 +23,12 @@
<alias name="nonexistent_ip" value="127.0.0.200"/>
</define>
- <task source="../multicast/cmd_sequences/max_groups.xml"/>
- <task source="../multicast/cmd_sequences/block_source.xml"/>
- <task source="../multicast/cmd_sequences/source_membership.xml"/>
- <task source="../multicast/cmd_sequences/membership.xml"/>
- <task source="../multicast/cmd_sequences/if.xml"/>
- <task source="../multicast/cmd_sequences/ttl.xml"/>
- <task source="../multicast/cmd_sequences/loop.xml"/>
- <task source="../multicast/cmd_sequences/simple.xml"/>
+ <xi:include href="../multicast/cmd_sequences/max_groups.xml"/>
+ <xi:include href="../multicast/cmd_sequences/block_source.xml"/>
+ <xi:include href="../multicast/cmd_sequences/source_membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/if.xml"/>
+ <xi:include href="../multicast/cmd_sequences/ttl.xml"/>
+ <xi:include href="../multicast/cmd_sequences/loop.xml"/>
+ <xi:include href="../multicast/cmd_sequences/simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lb_act_003.xml b/recipes/team/recipex_lb_act_003.xml
index b410aaf..d78f6b4 100644
--- a/recipes/team/recipex_lb_act_003.xml
+++ b/recipes/team/recipex_lb_act_003.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lb_act.xml"/>
+ <xi:include href="interfaces-team_lb_act.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple.xml"/>
+ <xi:include href="interfaces-simple.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen.xml"/>
+ <xi:include href="sequence_pktgen.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_lb_act_004.xml b/recipes/team/recipex_lb_act_004.xml
index 64801c1..041157d 100644
--- a/recipes/team/recipex_lb_act_004.xml
+++ b/recipes/team/recipex_lb_act_004.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lb_act.xml"/>
+ <xi:include href="interfaces-team_lb_act.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_iperf.xml"/>
+ <xi:include href="sequence_iperf.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_rr_001.xml b/recipes/team/recipex_rr_001.xml
index 4fe0198..3de5a51 100644
--- a/recipes/team/recipex_rr_001.xml
+++ b/recipes/team/recipex_rr_001.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_rr.xml"/>
+ <xi:include href="interfaces-team_rr.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_rr_002.xml b/recipes/team/recipex_rr_002.xml
index 12e520d..d969be0 100644
--- a/recipes/team/recipex_rr_002.xml
+++ b/recipes/team/recipex_rr_002.xml
@@ -1,18 +1,18 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_rr.xml"/>
+ <xi:include href="interfaces-team_rr.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
<define>
@@ -23,12 +23,12 @@
<alias name="nonexistent_ip" value="127.0.0.200"/>
</define>
- <task source="../multicast/cmd_sequences/max_groups.xml"/>
- <task source="../multicast/cmd_sequences/block_source.xml"/>
- <task source="../multicast/cmd_sequences/source_membership.xml"/>
- <task source="../multicast/cmd_sequences/membership.xml"/>
- <task source="../multicast/cmd_sequences/if.xml"/>
- <task source="../multicast/cmd_sequences/ttl.xml"/>
- <task source="../multicast/cmd_sequences/loop.xml"/>
- <task source="../multicast/cmd_sequences/simple.xml"/>
+ <xi:include href="../multicast/cmd_sequences/max_groups.xml"/>
+ <xi:include href="../multicast/cmd_sequences/block_source.xml"/>
+ <xi:include href="../multicast/cmd_sequences/source_membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/membership.xml"/>
+ <xi:include href="../multicast/cmd_sequences/if.xml"/>
+ <xi:include href="../multicast/cmd_sequences/ttl.xml"/>
+ <xi:include href="../multicast/cmd_sequences/loop.xml"/>
+ <xi:include href="../multicast/cmd_sequences/simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_rr_003.xml b/recipes/team/recipex_rr_003.xml
index e82bb8a..befd964 100644
--- a/recipes/team/recipex_rr_003.xml
+++ b/recipes/team/recipex_rr_003.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_rr.xml"/>
+ <xi:include href="interfaces-team_rr.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple.xml"/>
+ <xi:include href="interfaces-simple.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen.xml"/>
+ <xi:include href="sequence_pktgen.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipex_rr_004.xml b/recipes/team/recipex_rr_004.xml
index a5efa24..5689d1d 100644
--- a/recipes/team/recipex_rr_004.xml
+++ b/recipes/team/recipex_rr_004.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_rr.xml"/>
+ <xi:include href="interfaces-team_rr.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_iperf.xml"/>
+ <xi:include href="sequence_iperf.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_ab_lw_001.xml b/recipes/team/recipey_ab_lw_001.xml
index 4d1b482..5f9a667 100644
--- a/recipes/team/recipey_ab_lw_001.xml
+++ b/recipes/team/recipey_ab_lw_001.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab_lw_001.xml"/>
+ <xi:include href="interfaces-team_ab_lw_001.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_ab_lw_002.xml b/recipes/team/recipey_ab_lw_002.xml
index 531c1da..fc8819b 100644
--- a/recipes/team/recipey_ab_lw_002.xml
+++ b/recipes/team/recipey_ab_lw_002.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab_lw_002.xml"/>
+ <xi:include href="interfaces-team_ab_lw_002.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_ab_lw_003.xml b/recipes/team/recipey_ab_lw_003.xml
index 046b591..1b1da10 100644
--- a/recipes/team/recipey_ab_lw_003.xml
+++ b/recipes/team/recipey_ab_lw_003.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab_lw_003.xml"/>
+ <xi:include href="interfaces-team_ab_lw_003.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_ab_lw_004.xml b/recipes/team/recipey_ab_lw_004.xml
index f58d1f9..8e4d61e 100644
--- a/recipes/team/recipey_ab_lw_004.xml
+++ b/recipes/team/recipey_ab_lw_004.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab_lw_004.xml"/>
+ <xi:include href="interfaces-team_ab_lw_004.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_ab_lw_005.xml b/recipes/team/recipey_ab_lw_005.xml
index 5741b86..5bd5d15 100644
--- a/recipes/team/recipey_ab_lw_005.xml
+++ b/recipes/team/recipey_ab_lw_005.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab_lw_005.xml"/>
+ <xi:include href="interfaces-team_ab_lw_005.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_ab_lw_006.xml b/recipes/team/recipey_ab_lw_006.xml
index 8f98207..430cba0 100644
--- a/recipes/team/recipey_ab_lw_006.xml
+++ b/recipes/team/recipey_ab_lw_006.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab_lw_006.xml"/>
+ <xi:include href="interfaces-team_ab_lw_006.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_ab_lw_007.xml b/recipes/team/recipey_ab_lw_007.xml
index 0661f86..23c6e82 100644
--- a/recipes/team/recipey_ab_lw_007.xml
+++ b/recipes/team/recipey_ab_lw_007.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab_lw_007.xml"/>
+ <xi:include href="interfaces-team_ab_lw_007.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_ab_lw_008.xml b/recipes/team/recipey_ab_lw_008.xml
index 9daf884..ca5df32 100644
--- a/recipes/team/recipey_ab_lw_008.xml
+++ b/recipes/team/recipey_ab_lw_008.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_ab_lw_008.xml"/>
+ <xi:include href="interfaces-team_ab_lw_008.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_lacp_act_flows.xml b/recipes/team/recipey_lacp_act_flows.xml
index c6b2d62..94041c9 100644
--- a/recipes/team/recipey_lacp_act_flows.xml
+++ b/recipes/team/recipey_lacp_act_flows.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp_act.xml"/>
+ <xi:include href="interfaces-team_lacp_act.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen_flows.xml"/>
+ <xi:include href="sequence_pktgen_flows.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_lacp_hashes.xml b/recipes/team/recipey_lacp_hashes.xml
index 3a3e3ab..a704ee5 100644
--- a/recipes/team/recipey_lacp_hashes.xml
+++ b/recipes/team/recipey_lacp_hashes.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp.xml"/>
+ <xi:include href="interfaces-team_lacp.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen_hashes.xml"/>
+ <xi:include href="sequence_pktgen_hashes.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_lacp_passive.xml b/recipes/team/recipey_lacp_passive.xml
index 2723f84..4799ca4 100644
--- a/recipes/team/recipey_lacp_passive.xml
+++ b/recipes/team/recipey_lacp_passive.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp_passive.xml"/>
+ <xi:include href="interfaces-team_lacp_passive.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_lacp_slowrate.xml b/recipes/team/recipey_lacp_slowrate.xml
index cddb3e8..d169178 100644
--- a/recipes/team/recipey_lacp_slowrate.xml
+++ b/recipes/team/recipey_lacp_slowrate.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lacp_slowrate.xml"/>
+ <xi:include href="interfaces-team_lacp_slowrate.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-bond_lacp.xml"/>
+ <xi:include href="interfaces-bond_lacp.xml"/>
</machine>
</machines>
- <task source="sequence_ping_simple.xml"/>
+ <xi:include href="sequence_ping_simple.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_lb_act_flows.xml b/recipes/team/recipey_lb_act_flows.xml
index 2755426..433dbc9 100644
--- a/recipes/team/recipey_lb_act_flows.xml
+++ b/recipes/team/recipey_lb_act_flows.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lb_act.xml"/>
+ <xi:include href="interfaces-team_lb_act.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen_flows.xml"/>
+ <xi:include href="sequence_pktgen_flows.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_lb_hashes.xml b/recipes/team/recipey_lb_hashes.xml
index ad7cf3a..46e746a 100644
--- a/recipes/team/recipey_lb_hashes.xml
+++ b/recipes/team/recipey_lb_hashes.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_lb.xml"/>
+ <xi:include href="interfaces-team_lb.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-simple_br.xml"/>
+ <xi:include href="interfaces-simple_br.xml"/>
</machine>
</machines>
- <task source="sequence_pktgen_hashes.xml"/>
+ <xi:include href="sequence_pktgen_hashes.xml"/>
</lnstrecipe>
\ No newline at end of file
diff --git a/recipes/team/recipey_rr_queue_mapping.xml b/recipes/team/recipey_rr_queue_mapping.xml
index d286493..dfb6d8b 100644
--- a/recipes/team/recipey_rr_queue_mapping.xml
+++ b/recipes/team/recipey_rr_queue_mapping.xml
@@ -1,19 +1,19 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<define>
<alias name="testip" value="192.168.111.1/24"/>
<alias name="testip6" value="fe01::1/64"/>
</define>
<machine id="1">
- <interfaces source="interfaces-team_rr_queue_mapping.xml"/>
+ <xi:include href="interfaces-team_rr_queue_mapping.xml"/>
</machine>
<define>
<alias name="testip" value="192.168.111.2/24"/>
<alias name="testip6" value="fe01::2/64"/>
</define>
<machine id="2">
- <interfaces source="interfaces-br_queue_mapping.xml"/>
+ <xi:include href="interfaces-br_queue_mapping.xml"/>
</machine>
</machines>
- <task source="sequence_queue_mapping.xml"/>
+ <xi:include href="sequence_queue_mapping.xml"/>
</lnstrecipe>
\ No newline at end of file
--
1.8.1.4
10 years, 7 months
[lnst] NetTestController: Check tasks before configuration
by Jiří Pírko
commit f894ccbe09b0137a87460144b3d85c8cc477b207
Author: Radek Pazdera <rpazdera(a)redhat.com>
Date: Tue Sep 24 10:16:47 2013 +0200
NetTestController: Check tasks before configuration
The tasks were checked after all the machines were configured. And in
case there was some trivial error in the task (such as a wrong path),
the whole network configuration was just a plain waste of time.
This commit moves the checks before the configuration is processed.
Issue #36
Signed-off-by: Radek Pazdera <rpazdera(a)redhat.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
lnst/Controller/NetTestController.py | 13 ++++++-------
1 files changed, 6 insertions(+), 7 deletions(-)
---
diff --git a/lnst/Controller/NetTestController.py b/lnst/Controller/NetTestController.py
index 02d38c8..85253ed 100644
--- a/lnst/Controller/NetTestController.py
+++ b/lnst/Controller/NetTestController.py
@@ -167,9 +167,6 @@ class NetTestController:
def _prepare_network(self):
recipe = self._recipe
- mreq = self._get_machine_requirements()
- self._prepare_provisioning(mreq)
-
machines = self._machines
for m_id in machines.keys():
self._prepare_machine(m_id)
@@ -179,7 +176,8 @@ class NetTestController:
for iface_xml_data in machine_xml_data["interfaces"]:
self._prepare_interface(m_id, iface_xml_data)
- def _prepare_provisioning(self, mreq):
+ def _prepare_provisioning(self):
+ mreq = self._get_machine_requirements()
sp = self._slave_pool
machines = self._machines
if not sp.provision_machines(mreq, machines):
@@ -479,13 +477,13 @@ class NetTestController:
os.remove("/tmp/.lnst_virt_conf")
def match_setup(self):
- mreq = self._get_machine_requirements()
- self._prepare_provisioning(mreq)
+ self._prepare_provisioning()
return {"passed": True}
def config_only_recipe(self):
try:
+ self._prepare_provisioning()
self._prepare_network()
except (KeyboardInterrupt, Exception) as exc:
msg = "Exception raised during configuration."
@@ -502,8 +500,9 @@ class NetTestController:
def run_recipe(self, packet_capture=False):
try:
- self._prepare_network()
+ self._prepare_provisioning()
self._prepare_tasks()
+ self._prepare_network()
except (KeyboardInterrupt, Exception) as exc:
msg = "Exception raised during configuration."
logging.error(msg)
10 years, 7 months
[lnst] smoke: remove source references
by Jiří Pírko
commit c8edab3c868080c82368d5ed87c65f5f51530d03
Author: Ondrej Lichtner <olichtne(a)redhat.com>
Date: Mon Sep 23 16:30:46 2013 +0200
smoke: remove source references
This commit removes the old source attributes, since we moved to using
XInclude. But since using XInclude for such simple recipe generation is
a bit of an overkill the generation script uses simple string replacing.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
recipes/smoke/generate-recipes.py | 61 ++++++++----------------------------
recipes/smoke/lib/recipe-temp.xml | 8 ++--
2 files changed, 18 insertions(+), 51 deletions(-)
---
diff --git a/recipes/smoke/generate-recipes.py b/recipes/smoke/generate-recipes.py
index c7eedb9..2361aab 100755
--- a/recipes/smoke/generate-recipes.py
+++ b/recipes/smoke/generate-recipes.py
@@ -45,48 +45,6 @@ def replace_variables(recipe, name1, name2, variables):
recipe = recipe.replace("#%s#" % name, val)
return recipe
-def handleNode(node):
- if node.nodeType == node.ELEMENT_NODE:
- if node.hasAttribute("source"):
- src_file_name = node.getAttribute("source")
- loaded_dom = xml.dom.minidom.parse(src_file_name)
- loaded_node = None
- try:
- loaded_node = loaded_dom.getElementsByTagName(node.nodeName)[0]
- except Exception:
- msg = ("No '%s' element present in included file '%s'."
- % (node.nodeName, src_file_name))
- raise Exception(msg, node)
-
- old_attrs = node.attributes
-
- parent = node.parentNode
- parent.replaceChild(loaded_node, node)
- node = loaded_node
-
- # copy all of the original attributes to the sourced node
- for i in range(old_attrs.length):
- attr = old_attrs.item(i)
- # do not overwrite sourced attributes
- if not node.hasAttribute(attr.name) and attr.name != "source":
- node.setAttribute(attr.name, attr.value)
-
- handleNode(node)
- else:
- childNodes = list(node.childNodes)
- for child in childNodes:
- if child.nodeType == node.TEXT_NODE and child.data.isspace():
- node.removeChild(child)
- else:
- handleNode(child)
-
-def expand_sources(recipe):
- document = xml.dom.minidom.parseString(recipe)
- for child in document.childNodes:
- handleNode(child)
- recipe = document.toprettyxml()
- return recipe
-
def main():
DIR = "tests/"
LIB = "../lib/"
@@ -104,7 +62,11 @@ def main():
if not re.match("task-.*", seq):
continue
print "Found a task: %s%s" % (LIB, seq)
- sequences += "\n <task source=\"%s%s\"/>" % (LIB, seq)
+
+ task_f = open("%s/%s" % (LIB, seq), 'r')
+ task = task_f.read()
+
+ sequences += "\n%s" % task
conf_files = [LIB+i for i in os.listdir(LIB) if re.match("conf-.*", i)]
for conf in conf_files:
@@ -123,11 +85,16 @@ def main():
recipe_name = "recipe-%s-%s.xml" % (name1, name2)
print "Generating %s%s..." % (DIR, recipe_name),
- recipe = template.replace("#CONF1#", machine1)\
- .replace("#CONF2#", machine2)\
- .replace("#SEQUENCES#", sequences)
+ m1_f = open(machine1, 'r')
+ m1 = m1_f.read()
+
+ m2_f = open(machine2, 'r')
+ m2 = m2_f.read()
- recipe = expand_sources(recipe)
+
+ recipe = template.replace("#CONF1#", m1)\
+ .replace("#CONF2#", m2)\
+ .replace("#SEQUENCES#", sequences)
recipe = replace_variables(recipe, name1, name2, variables)
diff --git a/recipes/smoke/lib/recipe-temp.xml b/recipes/smoke/lib/recipe-temp.xml
index 954b7ef..ad03a3f 100644
--- a/recipes/smoke/lib/recipe-temp.xml
+++ b/recipes/smoke/lib/recipe-temp.xml
@@ -1,17 +1,17 @@
-<lnstrecipe>
+<lnstrecipe xmlns:xi="http://www.w3.org/2003/XInclude">
<machines>
<machine id="1">
<define>
<alias name="testip" value="192.168.100.240/24"/>
</define>
- <interfaces source="#CONF1#"/>
+ #CONF1#
</machine>
<machine id="2">
<define>
<alias name="testip" value="192.168.100.215/24"/>
</define>
- <interfaces source="#CONF2#"/>
+ #CONF2#
</machine>
</machines>
#SEQUENCES#
-</lnstrecipe>
\ No newline at end of file
+</lnstrecipe>
10 years, 7 months
[lnst] NetTestController: print value of slave exceptions
by Jiří Pírko
commit 6f49136ed1c4c143a8a60c094abc1d92123dc30c
Author: Ondrej Lichtner <olichtne(a)redhat.com>
Date: Mon Sep 23 14:15:46 2013 +0200
NetTestController: print value of slave exceptions
Previously the controller would only print that there was an exception
raised on a certain slave machine, and there would be a traceback in
debug logs from that slave. Now the value of the exception will be added
to our controller logs, that makes it easier to spot what went wrong
without looking up the traceback.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
lnst/Controller/NetTestController.py | 2 +-
lnst/Controller/NetTestResultSerializer.py | 2 +-
lnst/Slave/NetTestSlave.py | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/lnst/Controller/NetTestController.py b/lnst/Controller/NetTestController.py
index acef4aa..02d38c8 100644
--- a/lnst/Controller/NetTestController.py
+++ b/lnst/Controller/NetTestController.py
@@ -755,7 +755,7 @@ class MessageDispatcher(ConnectionHandler):
machine = self._machines[message[0]]
machine.interface_update(message[1])
elif message[1]["type"] == "exception":
- msg = "Recieved an exception from slave: %s" % message[0]
+ msg = "Slave %s: %s" % (message[0], message[1]["Exception"])
raise CommandException(msg)
elif message[1]["type"] == "error":
msg = "Recieved an error message from slave %s: %s" %\
diff --git a/lnst/Controller/NetTestResultSerializer.py b/lnst/Controller/NetTestResultSerializer.py
index 514988b..9c26dfc 100644
--- a/lnst/Controller/NetTestResultSerializer.py
+++ b/lnst/Controller/NetTestResultSerializer.py
@@ -76,7 +76,7 @@ class NetTestResultSerializer:
if recipe["result"] == "FAIL" and \
"err_msg" in recipe and recipe["err_msg"] != "":
err_msg = recipe["err_msg"]
- output_pairs.append((4*" " + "error message:" + err_msg, ""))
+ output_pairs.append((4*" " + "error message: " + err_msg, ""))
seq_num = 1
for task in recipe["tasks"]:
diff --git a/lnst/Slave/NetTestSlave.py b/lnst/Slave/NetTestSlave.py
index b867db2..76359d5 100644
--- a/lnst/Slave/NetTestSlave.py
+++ b/lnst/Slave/NetTestSlave.py
@@ -489,7 +489,7 @@ class NetTestSlave:
type, value, tb = sys.exc_info()
exc_trace = ''.join(traceback.format_exception(type,
value, tb))
- response = {"type": "exception", "Exception": exc_trace}
+ response = {"type": "exception", "Exception": value}
self._server_handler.send_data_to_ctl(response)
return
10 years, 7 months
[lnst] Machine: default command timeout
by Jiří Pírko
commit 71e38fee8bb4f6743b6b6f57b0c5c0a8e1ab1f16
Author: Ondrej Lichtner <olichtne(a)redhat.com>
Date: Mon Sep 23 13:53:38 2013 +0200
Machine: default command timeout
We used to have a default timeout for commands with the previous rpc
implementation, but didn't implement it in the new one. This commit adds
a default timeout for commands, the time is set in the DEFAULT_TIMEOUT
constant, which for now is 60 seconds.
This also fixes result reporting for killed commands.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
lnst/Common/NetTestCommand.py | 8 ++++----
lnst/Controller/Machine.py | 12 +++++++++---
lnst/Slave/NetTestSlave.py | 2 +-
3 files changed, 14 insertions(+), 8 deletions(-)
---
diff --git a/lnst/Common/NetTestCommand.py b/lnst/Common/NetTestCommand.py
index fa36d29..9e1708d 100644
--- a/lnst/Common/NetTestCommand.py
+++ b/lnst/Common/NetTestCommand.py
@@ -187,13 +187,13 @@ class NetTestCommand:
def get_result(self):
if self._killed:
- result = {}
+ self._cmd_cls.set_pass()
+ result = self._cmd_cls.get_result()
result["passed"] = True
result["msg"] = "Command killed."
- else:
- result = self._result
+ self._result = result
- return result
+ return self._result
def set_result(self, result):
if self._control_cmd != None:
diff --git a/lnst/Controller/Machine.py b/lnst/Controller/Machine.py
index 428323e..9fc0b64 100644
--- a/lnst/Controller/Machine.py
+++ b/lnst/Controller/Machine.py
@@ -30,6 +30,8 @@ from lnst.Common.Utils import wait_for, md5sum, dir_md5sum, create_tar_archive
from lnst.Common.ConnectionHandler import send_data, recv_data
from lnst.Common.ConnectionHandler import ConnectionHandler
+DEFAULT_TIMEOUT = 60
+
class MachineError(Exception):
pass
@@ -202,15 +204,19 @@ class Machine(object):
timeout = command["timeout"]
logging.debug("Setting timeout to \"%d\"", timeout)
signal.alarm(timeout)
+ else:
+ logging.debug("Setting default timeout (%ds)." % DEFAULT_TIMEOUT)
+ signal.alarm(DEFAULT_TIMEOUT)
try:
cmd_res = self._rpc_call("run_command", command)
except MachineError as exc:
if "bg_id" in command:
- self._rpc_call("kill_command", command["bg_id"])
+ cmd_res = self._rpc_call("kill_command", command["bg_id"])
else:
- self._rpc_call("kill_command", None)
- cmd_res = {"passed": False, "err_msg": str(exc)}
+ cmd_res = self._rpc_call("kill_command", None)
+ cmd_res["passed"] = False
+ cmd_res["msg"] = str(exc)
signal.alarm(0)
signal.signal(signal.SIGALRM, prev_handler)
diff --git a/lnst/Slave/NetTestSlave.py b/lnst/Slave/NetTestSlave.py
index f68b96f..b867db2 100644
--- a/lnst/Slave/NetTestSlave.py
+++ b/lnst/Slave/NetTestSlave.py
@@ -287,7 +287,7 @@ class SlaveMethods:
cmd = self._command_context.get_cmd(id)
cmd.kill(None)
self._command_context.del_cmd(cmd)
- return True
+ return cmd.get_result()
def machine_cleanup(self):
logging.info("Performing machine cleanup.")
10 years, 7 months
[lnst] SlaveMachineParser: Adding rpc_port parameter
by Jiří Pírko
commit 40cecb25ce8b9b163e38edb91be715cca1d9f7ce
Author: Radek Pazdera <rpazdera(a)redhat.com>
Date: Mon Sep 23 13:27:42 2013 +0200
SlaveMachineParser: Adding rpc_port parameter
This patch adds support for the rpc_port parameter to slave machine
configuration files, which was erroneously dropped during the
refactoring of the parsers.
Issue #42.
Signed-off-by: Radek Pazdera <rpazdera(a)redhat.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
lnst/Controller/Machine.py | 11 ++++++++---
lnst/Controller/NetTestController.py | 3 +--
lnst/Controller/SlavePool.py | 16 ++++++++++++----
3 files changed, 21 insertions(+), 9 deletions(-)
---
diff --git a/lnst/Controller/Machine.py b/lnst/Controller/Machine.py
index 4ac7d2f..428323e 100644
--- a/lnst/Controller/Machine.py
+++ b/lnst/Controller/Machine.py
@@ -21,6 +21,7 @@ import signal
from time import sleep
from xmlrpclib import Binary
from pprint import pprint, pformat
+from lnst.Common.Config import lnst_config
from lnst.Common.Logs import log_exc_traceback
from lnst.Common.XmlRpc import ServerProxy, ServerException
from lnst.Common.NetUtils import MacPool, normalize_hwaddr
@@ -43,7 +44,7 @@ class Machine(object):
deconfiguration, and running commands.
"""
- def __init__(self, m_id, hostname=None, libvirt_domain=None):
+ def __init__(self, m_id, hostname=None, libvirt_domain=None, rpcport=None):
self._id = m_id
self._hostname = hostname
self._connection = None
@@ -56,6 +57,11 @@ class Machine(object):
if libvirt_domain:
self._domain_ctl = VirtDomainCtl(libvirt_domain)
+ if rpcport:
+ self._port = rpcport
+ else:
+ self._port = lnst_config.get_option('environment', 'rpcport')
+
self._msg_dispatcher = None
self._mac_pool = None
@@ -226,9 +232,8 @@ class Machine(object):
""" Returns machine's id as defined in the recipe """
return self._id
- def set_rpc(self, dispatcher, port):
+ def set_rpc(self, dispatcher):
self._msg_dispatcher = dispatcher
- self._port = port
def get_mac_pool(self):
if self._mac_pool:
diff --git a/lnst/Controller/NetTestController.py b/lnst/Controller/NetTestController.py
index 2d562e0..acef4aa 100644
--- a/lnst/Controller/NetTestController.py
+++ b/lnst/Controller/NetTestController.py
@@ -202,8 +202,7 @@ class NetTestController:
address = socket.gethostbyname(machine.get_hostname())
self._log_ctl.add_slave(m_id, address)
- port = lnst_config.get_option('environment', 'rpcport')
- machine.set_rpc(self._msg_dispatcher, port)
+ machine.set_rpc(self._msg_dispatcher)
machine.set_mac_pool(self._mac_pool)
machine.set_network_bridges(self._network_bridges)
diff --git a/lnst/Controller/SlavePool.py b/lnst/Controller/SlavePool.py
index 33dca41..9304ed9 100644
--- a/lnst/Controller/SlavePool.py
+++ b/lnst/Controller/SlavePool.py
@@ -102,8 +102,8 @@ class SlavePool:
available = False
hostname = machine_spec["params"]["hostname"]
- if "rpcport" in machine_spec:
- port = machine_spec["params"]["rpcport"]
+ if "rpc_port" in machine_spec["params"]:
+ port = machine_spec["params"]["rpc_port"]
else:
port = lnst_config.get_option('environment', 'rpcport')
@@ -130,7 +130,11 @@ class SlavePool:
for param in machine_xml_data["params"]:
name = str(param["name"])
value = str(param["value"])
- machine_spec["params"][name] = value
+
+ if name == "rpc_port":
+ machine_spec["params"][name] = int(value)
+ else:
+ machine_spec["params"][name] = value
mandatory_params = ["hostname"]
for p in mandatory_params:
@@ -245,7 +249,11 @@ class SlavePool:
if "libvirt_domain" in pm["params"]:
libvirt_domain = pm["params"]["libvirt_domain"]
- machine = Machine(tm_id, hostname, libvirt_domain)
+ rpcport = None
+ if "rpc_port" in pm["params"]:
+ rpcport = pm["params"]["rpc_port"]
+
+ machine = Machine(tm_id, hostname, libvirt_domain, rpcport)
used = []
if_map = self._map["machines"][tm_id]["interfaces"]
10 years, 7 months
[lnst] NetTestCommand: change exception handling
by Jiří Pírko
commit 7f684ee0dc322b3dd55296cc5a9391db22aaf6fc
Author: Ondrej Lichtner <olichtne(a)redhat.com>
Date: Mon Sep 23 10:40:20 2013 +0200
NetTestCommand: change exception handling
This commit fixes a bug that appears when a test option is missing in
the recipe. When such a situation appears, the slave throws an exception
that wasn't handled anywhere and resulted in the crash of the
controller.
After this commit the commands can either return properly- the have a
result, end with a KeyboardInterrupt or be killed - a default result is
set, or a different exception is raised - the command result is set to
fail and the exception is saved in result data. This shows up nicely in
results on the controller.
The missing option exception now also says which option is missing.
Another problem that appears is when an unexpected exception is raised
on the slave and is not handled- in such a situation the controller will
crash, and nothing nice can be written to the results. This situation is
now handled and the results will contain an exception logged into debug
logs (on the slave and sent to controller), and the controller will
report an unexpected exception being raised on a certain slave machine.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
lnst/Common/NetTestCommand.py | 18 ++++++++----------
lnst/Common/TestsCommon.py | 2 +-
lnst/Controller/NetTestController.py | 6 +++++-
lnst/Slave/NetTestSlave.py | 2 +-
4 files changed, 15 insertions(+), 13 deletions(-)
---
diff --git a/lnst/Common/NetTestCommand.py b/lnst/Common/NetTestCommand.py
index 965f675..fa36d29 100644
--- a/lnst/Common/NetTestCommand.py
+++ b/lnst/Common/NetTestCommand.py
@@ -144,21 +144,18 @@ class NetTestCommand:
result = {}
try:
self._cmd_cls.run()
- res_data = self._cmd_cls.get_result()
- result["type"] = "result"
- result["cmd_id"] = self._id
- result["result"] = res_data
except KeyboardInterrupt:
+ pass
+ except:
+ type, value, tb = sys.exc_info()
+ data = {"Exception": "%s" % value}
+ self._cmd_cls.set_fail(data)
+ finally:
res_data = self._cmd_cls.get_result()
result["type"] = "result"
result["cmd_id"] = self._id
result["result"] = res_data
- except:
- type, value, tb = sys.exc_info()
- result = {"type": "exception",
- "cmd_id": self._id,
- "Exception": ''.join(traceback.format_exception(type,
- value, tb))}
+
send_data(self._write_pipe, result)
self._write_pipe.close()
@@ -243,6 +240,7 @@ def NetTestCommandTest(command, resource_table):
test_name = command["module"]
if not test_name in resource_table["module"]:
msg = "Test module '%s' not found" % test_name
+ raise Exception(msg)
module_path = resource_table["module"][test_name]
module_name = "Test%s" % test_name
diff --git a/lnst/Common/TestsCommon.py b/lnst/Common/TestsCommon.py
index 3008e81..01ae678 100644
--- a/lnst/Common/TestsCommon.py
+++ b/lnst/Common/TestsCommon.py
@@ -105,7 +105,7 @@ class TestGeneric(NetTestCommandGeneric):
option = self._command["options"][name]
except KeyError:
if mandatory:
- raise TestOptionMissing
+ raise TestOptionMissing("Missing option '%s'!" % name)
if multi:
return [default]
else:
diff --git a/lnst/Controller/NetTestController.py b/lnst/Controller/NetTestController.py
index a88058f..2d562e0 100644
--- a/lnst/Controller/NetTestController.py
+++ b/lnst/Controller/NetTestController.py
@@ -597,7 +597,11 @@ class NetTestController:
try:
cmd_res = machine.run_command(command)
except Exception as exc:
- cmd_res = {"passed": False, "err_msg": "Exception raised."}
+ cmd_res = {"passed": False,
+ "res_data": {"Exception": str(exc)},
+ "msg": "Exception raised.",
+ "res_header": "EXCEPTION",
+ "report": str(exc)}
raise
finally:
if self._res_serializer:
diff --git a/lnst/Slave/NetTestSlave.py b/lnst/Slave/NetTestSlave.py
index cbb3958..f68b96f 100644
--- a/lnst/Slave/NetTestSlave.py
+++ b/lnst/Slave/NetTestSlave.py
@@ -511,7 +511,7 @@ class NetTestSlave:
% msg["cmd_id"])
else:
logging.debug("Recieved an exception from foreground command")
- logging.error(msg["Exception"])
+ logging.debug(msg["Exception"])
cmd = self._cmd_context.get_cmd(msg["cmd_id"])
cmd.join()
self._cmd_context.del_cmd(cmd)
10 years, 7 months
[lnst] Config: Create pool dir with user config
by Jiří Pírko
commit 5915b4cd687a3e8c607a7dd789278353aaadfda5
Author: Radek Pazdera <rpazdera(a)redhat.com>
Date: Fri Sep 20 14:19:18 2013 +0200
Config: Create pool dir with user config
When there controller initializes user configuration in his home dir (in
case it is not present during the first run), it only prepared the
config. However, a config without a pool is useless. This required the
user to edit the file manually to add it's own pool dir.
This commit adds automatic creation of the 'pool/' directory to the
initialization sequence, so users don't have to do it manualy.
Signed-off-by: Radek Pazdera <rpazdera(a)redhat.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
lnst-ctl | 7 ++++-
lnst/Common/Config.py | 58 ++++++++++++++++++++++++++----------------------
lnst/Common/Utils.py | 10 ++++++++
3 files changed, 46 insertions(+), 29 deletions(-)
---
diff --git a/lnst-ctl b/lnst-ctl
index ac71925..1ed9b2f 100755
--- a/lnst-ctl
+++ b/lnst-ctl
@@ -20,6 +20,7 @@ import datetime
from lnst.Common.Logs import LoggingCtl, log_exc_traceback
from lnst.Common.Config import lnst_config
from lnst.Common.Colours import load_presets_from_config
+from lnst.Common.Utils import mkdir_p
from lnst.Controller.NetTestController import NetTestController, NetTestError
from lnst.Controller.NetTestResultSerializer import NetTestResultSerializer
@@ -133,8 +134,10 @@ def main():
if os.path.isfile(usr_cfg):
lnst_config.load_config(usr_cfg)
else:
- if not os.path.isdir(os.path.dirname(usr_cfg)):
- os.makedirs(os.path.dirname(usr_cfg))
+ usr_cfg_dir = os.path.dirname(usr_cfg)
+ pool_dir = usr_cfg_dir + "/pool"
+ mkdir_p(pool_dir)
+ lnst_config.set_option("environment", "pool_dirs", [pool_dir])
with open(usr_cfg, 'w') as f:
f.write(lnst_config.dump_config())
diff --git a/lnst/Common/Config.py b/lnst/Common/Config.py
index 3255311..ffecfb6 100644
--- a/lnst/Common/Config.py
+++ b/lnst/Common/Config.py
@@ -29,42 +29,42 @@ class Config():
_scheme = None
def __init__(self):
- self.options = dict()
+ self._options = dict()
def controller_init(self):
- self.options['environment'] = dict()
- self.options['environment']['mac_pool_range'] = {\
+ self._options['environment'] = dict()
+ self._options['environment']['mac_pool_range'] = {\
"value" : ['52:54:01:00:00:01', '52:54:01:FF:FF:FF'],
"additive" : False,
"action" : self.optionMacRange,
"name" : "mac_pool_range"}
- self.options['environment']['rpcport'] = {\
+ self._options['environment']['rpcport'] = {\
"value" : DefaultRPCPort,
"additive" : False,
"action" : self.optionPort,
"name" : "rpcport"}
- self.options['environment']['pool_dirs'] = {\
+ self._options['environment']['pool_dirs'] = {\
"value" : [],
"additive" : True,
"action" : self.optionDirList,
"name" : "machine_pool_dirs"}
- self.options['environment']['tool_dirs'] = {\
+ self._options['environment']['tool_dirs'] = {\
"value" : [],
"additive" : True,
"action" : self.optionDirList,
"name" : "test_tool_dirs"}
- self.options['environment']['module_dirs'] = {\
+ self._options['environment']['module_dirs'] = {\
"value" : [],
"additive" : True,
"action" : self.optionDirList,
"name" : "test_module_dirs"}
- self.options['environment']['log_dir'] = {\
+ self._options['environment']['log_dir'] = {\
"value" : os.path.abspath(os.path.join(
os.path.dirname(sys.argv[0]), './Logs')),
"additive" : False,
"action" : self.optionPath,
"name" : "log_dir"}
- self.options['environment']['resource_dir'] = {\
+ self._options['environment']['resource_dir'] = {\
"value" : "",
"additive" : False,
"action" : self.optionPath,
@@ -73,28 +73,28 @@ class Config():
self.colours_scheme()
def slave_init(self):
- self.options['environment'] = dict()
- self.options['environment']['log_dir'] = {\
+ self._options['environment'] = dict()
+ self._options['environment']['log_dir'] = {\
"value" : os.path.abspath(os.path.join(
os.path.dirname(sys.argv[0]), './Logs')),
"additive" : False,
"action" : self.optionPath,
"name" : "log_dir"}
- self.options['environment']['use_nm'] = {\
+ self._options['environment']['use_nm'] = {\
"value" : True,
"additive" : False,
"action" : self.optionBool,
"name" : "use_nm"}
- self.options['cache'] = dict()
- self.options['cache']['dir'] = {\
+ self._options['cache'] = dict()
+ self._options['cache']['dir'] = {\
"value" : os.path.abspath(os.path.join(
os.path.dirname(sys.argv[0]), './cache')),
"additive" : False,
"action" : self.optionPath,
"name" : "cache_dir"}
- self.options['cache']['expiration_period'] = {\
+ self._options['cache']['expiration_period'] = {\
"value" : 7*24*60*60, # 1 week
"additive" : False,
"action" : self.optionTimeval,
@@ -103,25 +103,25 @@ class Config():
self.colours_scheme()
def colours_scheme(self):
- self.options['colours'] = dict()
- self.options['colours']["disable_colours"] = {\
+ self._options['colours'] = dict()
+ self._options['colours']["disable_colours"] = {\
"value": False, "additive": False,
"action": self.optionBool, "name": "disable_colours"}
for preset in ["faded", "alert", "highlight", "pass", "fail", "error",
"info", "debug", "warning", "log_header"]:
- self.options['colours'][preset] = {\
+ self._options['colours'][preset] = {\
"value": get_preset_conf(preset), "additive": False,
"action": self.optionColour, "name": preset}
def get_config(self):
- return self.options
+ return self._options
def get_section(self, section):
- if section not in self.options:
+ if section not in self._options:
msg = 'Unknow section: %s' % section
raise ConfigError(msg)
- return self.options[section]
+ return self._options[section]
def get_option(self, section, option):
sect = self.get_section(section)
@@ -130,6 +130,10 @@ class Config():
raise ConfigError(msg)
return sect[option]["value"]
+ def set_option(self, section, option, value):
+ sect = self.get_section(section)
+ sect[option]["value"] = value
+
def load_config(self, path):
'''Parse and load the config file'''
exp_path = os.path.expanduser(path)
@@ -144,14 +148,14 @@ class Config():
def handleSections(self, sections, path):
for section in sections:
- if section in self.options:
+ if section in self._options:
self.handleOptions(section, sections[section], path)
else:
msg = "Unknown section: %s" % section
raise ConfigError(msg)
def handleOptions(self, section_name, config, cfg_path):
- section = self.options[section_name]
+ section = self._options[section_name]
config.pop('__name__', None)
for opt in config:
@@ -262,18 +266,18 @@ class Config():
def dump_config(self):
string = ""
- for section in self.options:
+ for section in self._options:
string += "[%s]\n" % section
- for option in self.options[section]:
+ for option in self._options[section]:
val = self.value_to_string(section, option)
- opt_name = self.options[section][option]["name"]
+ opt_name = self._options[section][option]["name"]
string += "%s = %s\n" % (opt_name, val)
return string
def value_to_string(self, section, option):
string = ""
- value = self.options[section][option]["value"]
+ value = self._options[section][option]["value"]
if type(value) == list:
string = " ".join(value)
diff --git a/lnst/Common/Utils.py b/lnst/Common/Utils.py
index c3acafb..3b00afb 100644
--- a/lnst/Common/Utils.py
+++ b/lnst/Common/Utils.py
@@ -16,6 +16,7 @@ import os
import hashlib
import tempfile
import subprocess
+import errno
from lnst.Common.ExecCmd import exec_cmd
def die_when_parent_die():
@@ -157,3 +158,12 @@ def check_process_running(process_name):
return True
except subprocess.CalledProcessError:
return False
+
+def mkdir_p(path):
+ try:
+ os.makedirs(path)
+ except OSError as exc:
+ if exc.errno == errno.EEXIST and os.path.isdir(path):
+ pass
+ else:
+ raise
10 years, 7 months
[lnst] SlavePool: Adding a warning when a pool dir is empty
by Jiří Pírko
commit 53c567a1f83e7f2bc17cb741107f0af316bde50e
Author: Radek Pazdera <rpazdera(a)redhat.com>
Date: Fri Sep 20 12:53:47 2013 +0200
SlavePool: Adding a warning when a pool dir is empty
Signed-off-by: Radek Pazdera <rpazdera(a)redhat.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
lnst/Controller/SlavePool.py | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
---
diff --git a/lnst/Controller/SlavePool.py b/lnst/Controller/SlavePool.py
index ebd3c2a..33dca41 100644
--- a/lnst/Controller/SlavePool.py
+++ b/lnst/Controller/SlavePool.py
@@ -54,6 +54,9 @@ class SlavePool:
for dirent in dentries:
res.append(self.add_file("%s/%s" % (pool_dir, dirent)))
+ if len(res) == 0:
+ logging.warn("No machines found in this directory")
+
max_len = 0
for m_id, _ in res:
if len(m_id) > max_len:
10 years, 7 months