]>
git.proxmox.com Git - qemu-server.git/blob - test/test_get_replicatable_volumes.pl
26 path
=> "/var/lib/vz",
30 pool
=> 'nonexistent-testpool',
43 my $rawconf = "scsi0: non-existent-store:vm-103-disk-1,size=8G\n";
44 my $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
49 my $test_name = "test non existent storage";
51 eval { $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0); };
52 is($@, "storage 'non-existent-store' does not exists\n", $test_name);
55 $test_name = "test with disk from other VM (not owner)";
57 $rawconf = "scsi0: local:103/vm-103-disk-1.qcow2,size=8G\n";
58 $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
60 $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0);
61 is_deeply
($volumes, {}, $test_name);
64 $test_name = "test missing replicate feature";
66 $rawconf = "scsi0: local:$vmid/vm-$vmid-disk-1.qcow2,size=8G\n";
67 $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
69 eval { $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0); };
70 is($@, "missing replicate feature on volume 'local:900/vm-900-disk-1.qcow2'\n", $test_name);
73 $test_name = "test raw path disk with replicate enabled";
75 $rawconf = "scsi0: /dev/disk/abcdefg,size=8G\n";
76 $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
78 eval { $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0); };
79 is($@, "unable to replicate local file/device '/dev/disk/abcdefg'\n", $test_name);
82 $test_name = "test raw path disk with replicate disabled";
84 $rawconf = "scsi0: /dev/disk/abcdefg,size=8G,replicate=0\n";
85 $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
87 $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0);
88 is_deeply
($volumes, {}, $test_name);
91 $test_name = "test CDROM with iso file";
93 $rawconf = "ide2: local:iso/pve-cd.iso,media=cdrom\n";
94 $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
96 $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0);
97 is_deeply
($volumes, {}, $test_name);
100 $test_name = "test CDROM with access to physical 'cdrom' device";
102 $rawconf = "ide2: cdrom,media=cdrom\n";
103 $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
105 $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0);
106 is_deeply
($volumes, {}, $test_name);
109 $test_name = "test hidden volid in snapshot";
111 $rawconf = <<__EOD__;
113 scsi0: local-zfs:vm-$vmid-disk-2,size=8G
116 scsi0: local-zfs:vm-$vmid-disk-1,size=8G
119 $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
120 $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0);
122 "local-zfs:vm-$vmid-disk-1" => 1,
123 "local-zfs:vm-$vmid-disk-2" => 1,
125 is_deeply
($volumes, $expect, $test_name);
128 $test_name = "test volid with different replicate setting in snapshot";
129 $rawconf = <<__EOD__;
131 scsi0: local-zfs:vm-$vmid-disk-1,size=8G,replicate=0
134 scsi0: local-zfs:vm-$vmid-disk-1,size=8G
137 $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
138 $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0);
140 "local-zfs:vm-$vmid-disk-1" => 1,
142 is_deeply
($volumes, $expect, $test_name);
145 $test_name = "test vm with replicatable unused volumes";
147 $rawconf = <<__EOD__;
148 scsi0: local-zfs:vm-$vmid-disk-1,size=8G
149 unused1: local-zfs:vm-$vmid-disk-2
150 unused5: local-zfs:vm-$vmid-disk-3
153 $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
154 $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0);
156 "local-zfs:vm-$vmid-disk-1" => 1,
157 "local-zfs:vm-$vmid-disk-2" => 1,
158 "local-zfs:vm-$vmid-disk-3" => 1,
160 is_deeply
($volumes, $expect, $test_name);
163 $test_name = "test vm with non-replicatable unused volumes";
164 $rawconf = <<__EOD__;
165 scsi0: local-zfs:vm-$vmid-disk-1,size=8G
166 unused1: local:$vmid/vm-$vmid-disk-2.raw
169 $conf = PVE
::QemuServer
::parse_vm_config
("/qemu-server/$vmid.conf", $rawconf);
170 eval { $volumes = PVE
::QemuConfig-
>get_replicatable_volumes($storecfg, $vmid, $conf, 0, 0); };
171 is($@, "missing replicate feature on volume 'local:900/vm-900-disk-2.raw'\n", $test_name);