@@ -500,6 +500,9 @@ sub _check_domain_network($domain, $net_name) {
500
500
}
501
501
502
502
sub test_change_network_internal ($vm , $net ) {
503
+
504
+ my ($net2 ) = grep { $_ -> {name } eq $net -> {name } } $vm -> list_virtual_networks;
505
+ is($net2 -> {id }, $net -> {id }) or exit ;
503
506
if ($vm -> type eq ' KVM' ) {
504
507
test_change_network_internal_kvm($vm , $net );
505
508
} elsif ($vm -> type eq ' Void' ) {
@@ -803,13 +806,59 @@ sub test_new_network($vm) {
803
806
804
807
}
805
808
806
- sub test_change_forward ($vm , $net ) {
809
+ sub _add_nat ($vm , $net2 ) {
810
+ my $net = $vm -> vm-> get_network_by_name($net2 -> {name });
811
+
812
+ my $doc = XML::LibXML-> load_xml(string => $net -> get_xml_description);
813
+ my ($forward ) = $doc -> findnodes(" /network/forward" );
814
+ my ($nat ) = $forward -> findnodes(" nat" );
815
+
816
+ my $is_active = $net -> is_active;
817
+ $net -> destroy() if $is_active ;
818
+ my ($xml_network ) = $doc -> findnodes(" /network" );
819
+ $nat = $xml_network -> addNewChild(undef ," nat" );
820
+
821
+ my $port = $nat -> addNewChild(undef ," port" );
822
+ $port -> setAttribute(" start" => 1024);
823
+ $port -> setAttribute(" end" => 65535);
824
+
825
+ $net = $vm -> vm-> define_network($doc -> toString);
826
+ $net -> create() if $is_active ;
827
+ }
828
+
829
+ sub _del_nat ($vm , $net2 ) {
830
+ my $net = $vm -> vm-> get_network_by_name($net2 -> {name });
831
+
832
+ my $doc = XML::LibXML-> load_xml(string => $net -> get_xml_description);
833
+
834
+ my ($port ) = $doc -> findnodes(" /network/nat/port" );
835
+ return if !$port ;
836
+
837
+ diag(" removing port " .$doc -> toString);
838
+
839
+ my $is_active = $net -> is_active;
840
+ $net -> destroy() if $is_active ;
841
+ my ($nat ) = $doc -> findnodes(" /network/nat" );
842
+ ($port ) = $nat -> findnodes(" port" );
843
+ $nat -> removeChild($port );
844
+
845
+ $net = $vm -> vm-> define_network($doc -> toString);
846
+ $net -> create() if $is_active ;
847
+
848
+ }
849
+
850
+ sub test_change_forward ($vm , $add_nat =1) {
851
+
852
+ return if $vm -> type ne ' KVM' ;
853
+
854
+ my $net = test_add_network($vm );
855
+
807
856
my $net2 = dclone($net );
808
857
my $user2 = create_user();
809
858
810
- is($net2 -> {forward_mode },' nat' ) or exit ;
859
+ _add_nat($vm , $net2 ) if $vm -> type eq ' KVM' && $add_nat ;
860
+ _del_nat($vm , $net2 ) if $vm -> type eq ' KVM' && !$add_nat ;
811
861
812
- warn Dumper($net2 );
813
862
for my $mode (' none' , ' nat' ) {
814
863
$net2 -> {forward_mode } = $mode ;
815
864
my $req_change2 = Ravada::Request-> change_network(
@@ -823,7 +872,12 @@ sub test_change_forward($vm, $net) {
823
872
test_change_network_internal($vm , $net2 );
824
873
825
874
}
826
- exit ;
875
+ my $req = Ravada::Request-> remove_network(
876
+ uid => user_admin-> id
877
+ ,id => $net -> {id }
878
+ );
879
+ wait_request(check_error => 0);
880
+
827
881
}
828
882
829
883
# #######################################################################
@@ -857,9 +911,11 @@ for my $vm_name ( vm_names() ) {
857
911
858
912
test_list_networks($vm );
859
913
914
+ test_change_forward($vm , 0);
915
+ test_change_forward($vm , 1);
916
+
860
917
my $net = test_add_network($vm );
861
918
862
- test_change_forward($vm , $net );
863
919
test_assign_network($vm , $net );
864
920
test_assign_network_clone($vm , $net , 0);
865
921
test_assign_network_clone($vm , $net , 1); # volatile clone
0 commit comments