]> git.proxmox.com Git - pve-cluster.git/blame - data/cts/create_vm_test.pl
lock locally on cluster create and join
[pve-cluster.git] / data / cts / create_vm_test.pl
CommitLineData
fe000966
DM
1#!/usr/bin/perl -w
2
3use strict;
4use POSIX;
5use File::Path qw(make_path remove_tree);
6use IO::File;
7
8my (undef, $nodename) = POSIX::uname();
9
10sub safe_mkdir {
11 my $dir = shift;
12 (mkdir $dir) || die "safe_mkdir $dir failed - $!\n";
13}
14
15sub safe_rmdir {
16 my $dir = shift;
17 (rmdir $dir) || die "safe_rmdir $dir failed - $!\n";
18}
19
20sub safe_unlink {
21 my $file = shift;
22 (unlink $file) || die "safe_unlink $file failed - $!\n";
23}
24
25sub create_vmfile {
26 my ($filename) = shift;
27
28 my $fh = new IO::File $filename, O_RDWR|O_CREAT|O_EXCL;
29 die "cant create file $filename - $!" if !defined $fh;
30
31 #my $data = "$filename\n" x 30;
32 my $data = "0" x 1024;
33
34 (print $fh $data) || die "write $filename failed\n";
35 close ($fh);
36
37 #system("cat $filename");
38 #system("df -h /etc/pve");
39}
40
41sub start_vmtest {
42 my ($subdir) = @_;
43
44 for (my $i = 1000; $i < 1100; $i++) {
45 my $filename = "$subdir/${i}.conf";
46 create_vmfile($filename);
47 }
48
49 for (my $i = 1000; $i < 1100; $i++) {
50 my $filename = "$subdir/${i}.conf";
51 safe_unlink($filename);
52 }
53}
54
55sub start_subtest {
56 my ($subdir) = @_;
57
58 safe_mkdir $subdir;
59
60 start_vmtest($subdir);
61
62 safe_rmdir $subdir;
63}
64
65sub start_test {
66 my ($subdir) = @_;
67
68 safe_mkdir $subdir;
69
70 start_subtest("$subdir/qemu-server");
71
72 safe_rmdir $subdir;
73}
74
75
76my $basedir = "/etc/pve/nodes/";
77
78my $testdir = "$basedir/${nodename}-test1";
79
80remove_tree($testdir);
81
82while(1) {
83 eval {
84 local $SIG{INT} = sub { die "interrupted" };
85 start_test("$testdir");
86 };
87 my $err = $@;
88
89 system("date; df -h /etc/pve");
90
91 die $err if $err;
92}