]> git.proxmox.com Git - pve-container.git/commitdiff
Adapt and add testcases for mp support
authorFabian Grünbichler <f.gruenbichler@proxmox.com>
Wed, 24 Feb 2016 11:28:35 +0000 (12:28 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 25 Feb 2016 08:20:08 +0000 (09:20 +0100)
16 files changed:
src/test/snapshot-expected/create/lxc/103.conf [new file with mode: 0644]
src/test/snapshot-expected/create/lxc/203.conf [new file with mode: 0644]
src/test/snapshot-expected/delete/lxc/105.conf
src/test/snapshot-expected/delete/lxc/106.conf [new file with mode: 0644]
src/test/snapshot-expected/delete/lxc/203.conf [new file with mode: 0644]
src/test/snapshot-expected/rollback/lxc/105.conf [new file with mode: 0644]
src/test/snapshot-expected/rollback/lxc/207.conf [new file with mode: 0644]
src/test/snapshot-expected/rollback/lxc/208.conf [new file with mode: 0644]
src/test/snapshot-input/create/lxc/103.conf [new file with mode: 0644]
src/test/snapshot-input/create/lxc/203.conf [new file with mode: 0644]
src/test/snapshot-input/delete/lxc/106.conf [new file with mode: 0644]
src/test/snapshot-input/delete/lxc/203.conf [new file with mode: 0644]
src/test/snapshot-input/rollback/lxc/105.conf [new file with mode: 0644]
src/test/snapshot-input/rollback/lxc/207.conf [new file with mode: 0644]
src/test/snapshot-input/rollback/lxc/208.conf [new file with mode: 0644]
src/test/snapshot-test.pm

diff --git a/src/test/snapshot-expected/create/lxc/103.conf b/src/test/snapshot-expected/create/lxc/103.conf
new file mode 100644 (file)
index 0000000..2396d92
--- /dev/null
@@ -0,0 +1,27 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:snapshotable-disk-3,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:snapshotable-disk-3,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/create/lxc/203.conf b/src/test/snapshot-expected/create/lxc/203.conf
new file mode 100644 (file)
index 0000000..4546668
--- /dev/null
@@ -0,0 +1,10 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:unsnapshotable-disk-1,mp=/invalid/mountpoint
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+swap: 512
index c6d04c9227f372fb0201e1742b5e08c710d57eaf..b5a2837346a94d57aa8e5de2091c27bb287a26cb 100644 (file)
@@ -7,3 +7,4 @@ net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
 ostype: redhat
 rootfs: local:snapshotable-disk-1
 swap: 512
+unused0: local:unsnapshotable-disk-1
diff --git a/src/test/snapshot-expected/delete/lxc/106.conf b/src/test/snapshot-expected/delete/lxc/106.conf
new file mode 100644 (file)
index 0000000..4546668
--- /dev/null
@@ -0,0 +1,10 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:unsnapshotable-disk-1,mp=/invalid/mountpoint
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+swap: 512
diff --git a/src/test/snapshot-expected/delete/lxc/203.conf b/src/test/snapshot-expected/delete/lxc/203.conf
new file mode 100644 (file)
index 0000000..46233d5
--- /dev/null
@@ -0,0 +1,26 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:unsnapshotable-disk-1,mp=/invalid/mountpoint
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:unsnapshotable-disk-1,mp=/invalid/mountpoint
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+snapstate: delete
+snaptime: 1234567890
+swap: 512
+unused0: local:snapshotable-disk-1
diff --git a/src/test/snapshot-expected/rollback/lxc/105.conf b/src/test/snapshot-expected/rollback/lxc/105.conf
new file mode 100644 (file)
index 0000000..031f0e0
--- /dev/null
@@ -0,0 +1,29 @@
+# should be preserved
+arch: amd64
+cpulimit: 2
+cpuunits: 2048
+hostname: test2
+memory: 4096
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:snapshotable-disk-3,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 1024
+unused0: preserved:some-disk-1
+
+[test]
+# should be thrown away
+arch: amd64
+cpulimit: 2
+cpuunits: 2048
+hostname: test2
+memory: 4096
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:snapshotable-disk-3,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 1024
diff --git a/src/test/snapshot-expected/rollback/lxc/207.conf b/src/test/snapshot-expected/rollback/lxc/207.conf
new file mode 100644 (file)
index 0000000..a844523
--- /dev/null
@@ -0,0 +1,29 @@
+# should be preserved
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:unsnapshotable-disk-1,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+unused0: preserved:some-disk-1
+
+[test]
+# should be thrown away
+arch: amd64
+cpulimit: 2
+cpuunits: 2048
+hostname: test2
+memory: 4096
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:unsnapshotable-disk-1,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 1024
diff --git a/src/test/snapshot-expected/rollback/lxc/208.conf b/src/test/snapshot-expected/rollback/lxc/208.conf
new file mode 100644 (file)
index 0000000..a6d56fd
--- /dev/null
@@ -0,0 +1,30 @@
+# should be preserved
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: rollback
+memory: 2048
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:unsnapshotable-disk-1,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+unused0: preserved:some-disk-1
+
+[test]
+# should be thrown away
+arch: amd64
+cpulimit: 2
+cpuunits: 2048
+hostname: test2
+memory: 4096
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:snapshotable-disk-4,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 1024
diff --git a/src/test/snapshot-input/create/lxc/103.conf b/src/test/snapshot-input/create/lxc/103.conf
new file mode 100644 (file)
index 0000000..86590b8
--- /dev/null
@@ -0,0 +1,11 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:snapshotable-disk-3,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+swap: 512
diff --git a/src/test/snapshot-input/create/lxc/203.conf b/src/test/snapshot-input/create/lxc/203.conf
new file mode 100644 (file)
index 0000000..4546668
--- /dev/null
@@ -0,0 +1,10 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:unsnapshotable-disk-1,mp=/invalid/mountpoint
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+swap: 512
diff --git a/src/test/snapshot-input/delete/lxc/106.conf b/src/test/snapshot-input/delete/lxc/106.conf
new file mode 100644 (file)
index 0000000..a21c535
--- /dev/null
@@ -0,0 +1,25 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:unsnapshotable-disk-1,mp=/invalid/mountpoint
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:unsnapshotable-disk-1,mp=/invalid/mountpoint
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/delete/lxc/203.conf b/src/test/snapshot-input/delete/lxc/203.conf
new file mode 100644 (file)
index 0000000..a21c535
--- /dev/null
@@ -0,0 +1,25 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:unsnapshotable-disk-1,mp=/invalid/mountpoint
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:unsnapshotable-disk-1,mp=/invalid/mountpoint
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/rollback/lxc/105.conf b/src/test/snapshot-input/rollback/lxc/105.conf
new file mode 100644 (file)
index 0000000..2a40587
--- /dev/null
@@ -0,0 +1,29 @@
+# should be preserved
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:snapshotable-disk-3,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+unused0: preserved:some-disk-1
+
+[test]
+# should be thrown away
+arch: amd64
+cpulimit: 2
+cpuunits: 2048
+hostname: test2
+memory: 4096
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:snapshotable-disk-3,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 1024
diff --git a/src/test/snapshot-input/rollback/lxc/207.conf b/src/test/snapshot-input/rollback/lxc/207.conf
new file mode 100644 (file)
index 0000000..a844523
--- /dev/null
@@ -0,0 +1,29 @@
+# should be preserved
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:unsnapshotable-disk-1,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+unused0: preserved:some-disk-1
+
+[test]
+# should be thrown away
+arch: amd64
+cpulimit: 2
+cpuunits: 2048
+hostname: test2
+memory: 4096
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:unsnapshotable-disk-1,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 1024
diff --git a/src/test/snapshot-input/rollback/lxc/208.conf b/src/test/snapshot-input/rollback/lxc/208.conf
new file mode 100644 (file)
index 0000000..c9a23c9
--- /dev/null
@@ -0,0 +1,29 @@
+# should be preserved
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:unsnapshotable-disk-1,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+unused0: preserved:some-disk-1
+
+[test]
+# should be thrown away
+arch: amd64
+cpulimit: 2
+cpuunits: 2048
+hostname: test2
+memory: 4096
+mp0: local:snapshotable-disk-2,mp=/invalid/mp0
+mp1: local:snapshotable-disk-4,mp=/invalid/mp1
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 1024
index 69de5216ddc86683c58132f089441f5135328b89..c0504f65911bd8f3c978f057d35f5db6fcfedb5e 100644 (file)
@@ -332,9 +332,18 @@ printf("Expected error for snapshot_commit with invalid snapshot state\n");
 testcase_commit("203", "test", "wrong snapshot state\n");
 
 $vol_snapshot_possible->{"local:snapshotable-disk-1"} = 1;
+$vol_snapshot_possible->{"local:snapshotable-disk-2"} = 1;
+$vol_snapshot_possible->{"local:snapshotable-disk-3"} = 1;
 $vol_snapshot_delete_possible->{"local:snapshotable-disk-1"} = 1;
 $vol_snapshot_rollback_enabled->{"local:snapshotable-disk-1"} = 1;
+$vol_snapshot_rollback_enabled->{"local:snapshotable-disk-2"} = 1;
+$vol_snapshot_rollback_enabled->{"local:snapshotable-disk-3"} = 1;
 $vol_snapshot_rollback_possible->{"local:snapshotable-disk-1"} = 1;
+$vol_snapshot_rollback_possible->{"local:snapshotable-disk-2"} = 1;
+$vol_snapshot_rollback_possible->{"local:snapshotable-disk-3"} = 1;
+
+# possible, but fails
+$vol_snapshot_rollback_possible->{"local:snapshotable-disk-4"} = 1;
 
 printf("\n");
 printf("Setting up Mocking for PVE::Storage\n");
@@ -363,14 +372,20 @@ testcase_create("101", "test", 0, "test comment", "", { "local:snapshotable-disk
 printf("Successful snapshot_create with one existing snapshots\n");
 testcase_create("102", "test2", 0, "test comment", "", { "local:snapshotable-disk-1" => "test2" });
 
+printf("Successful snapshot_create with multiple mps\n");
+testcase_create("103", "test", 0, "test comment", "", { "local:snapshotable-disk-1" => "test", "local:snapshotable-disk-2" => "test", "local:snapshotable-disk-3" => "test" });
+
 printf("Expected error for snapshot_create when volume snapshot is not possible\n");
 testcase_create("201", "test", 0, "test comment", "volume snapshot disabled\n\n");
 
 printf("Expected error for snapshot_create with broken lxc-freeze\n");
 $freeze_possible = 0;
-testcase_create("202", "test", 0, "test comment", "lxc-[un]freeze disabled\n\n", undef, { "local:snapshotable-disk-1" => "test" });
+testcase_create("202", "test", 0, "test comment", "lxc-[un]freeze disabled\n\n");
 $freeze_possible = 1;
 
+printf("Expected error for snapshot_create when mp volume snapshot is not possible\n");
+testcase_create("203", "test", 0, "test comment", "volume snapshot disabled\n\n", { "local:snapshotable-disk-1" => "test" }, { "local:snapshotable-disk-1" => "test" });
+
 $nodename = "delete";
 printf("\n");
 printf("Running delete tests\n");
@@ -391,9 +406,15 @@ testcase_delete("104", "test2", 0, "", { "local:snapshotable-disk-1" => "test2"
 printf("Successful snapshot_delete with broken volume_snapshot_delete and force=1\n");
 testcase_delete("105", "test", 1, "");
 
+printf("Successful snapshot_delete with mp broken volume_snapshot_delete and force=1\n");
+testcase_delete("106", "test", 1, "", { "local:snapshotable-disk-1" => "test" });
+
 printf("Expected error when snapshot_delete fails with broken volume_snapshot_delete and force=0\n");
 testcase_delete("201", "test", 0, "volume snapshot delete disabled\n");
 
+printf("Expected error when snapshot_delete fails with broken mp volume_snapshot_delete and force=0\n");
+testcase_delete("203", "test", 0, "volume snapshot delete disabled\n", { "local:snapshotable-disk-1" => "test" });
+
 printf("Expected error for snapshot_delete with locked config\n");
 testcase_delete("202", "test", 0, "VM is locked (backup)\n");
 
@@ -416,6 +437,9 @@ testcase_rollback("103", "test", "", { "local:snapshotable-disk-1" => "test" });
 printf("Successful snapshot_rollback to intermediate snapshot\n");
 testcase_rollback("104", "test2", "", { "local:snapshotable-disk-1" => "test2" });
 
+printf("Successful snapshot_rollback with multiple mp\n");
+testcase_rollback("105", "test", "", { "local:snapshotable-disk-1" => "test", "local:snapshotable-disk-2" => "test", "local:snapshotable-disk-3" => "test" });
+
 printf("Expected error for snapshot_rollback with non-existing snapshot\n");
 testcase_rollback("201", "test2", "snapshot 'test2' does not exist\n");
 
@@ -436,4 +460,12 @@ $kill_possible = 0;
 printf("Expected error for snapshot_rollback with unkillable container\n");
 testcase_rollback("206", "test", "unable to rollback vm 206: vm is running\n");
 
+$kill_possible = 1;
+
+printf("Expected error for snapshot_rollback with mp rollback_is_possible failure\n");
+testcase_rollback("207", "test", "volume_rollback_is_possible failed\n");
+
+printf("Expected error for snapshot_rollback with mp rollback failure (results in inconsistent state)\n");
+testcase_rollback("208", "test", "volume snapshot rollback disabled\n", { "local:snapshotable-disk-1" => "test", "local:snapshotable-disk-2" => "test" });
+
 done_testing();