use Encode;
use File::stat qw();
+use File::Path qw(make_path);
use JSON;
use Net::SSLeay;
use POSIX qw(ENOENT);
'priv/shadow.cfg' => 1,
'priv/tfa.cfg' => 1,
'priv/token.cfg' => 1,
+ 'priv/acme/plugins.cfg' => 1,
'/qemu-server/' => 1,
'/openvz/' => 1,
'/lxc/' => 1,
'status.cfg' => 1,
'ceph.conf' => 1,
'sdn/vnets.cfg' => 1,
- 'sdn/vnets.cfg.new' => 1,
'sdn/zones.cfg' => 1,
- 'sdn/zones.cfg.new' => 1,
'sdn/controllers.cfg' => 1,
- 'sdn/controllers.cfg.new' => 1,
'virtual-guest/cpu-models.conf' => 1,
};
+sub prepare_observed_file_basedirs {
+
+ if (check_cfs_is_mounted(1)) {
+ warn "pmxcfs isn't mounted (/etc/pve), chickening out..\n";
+ return;
+ }
+
+ for my $f (sort keys %$observed) {
+ next if $f !~ m!^(.*)/[^/]+$!;
+ my $dir = "$basedir/$1";
+ next if -e $dir; # can also be a link, so just use -e xist check
+ print "creating directory '$dir' for observerd files\n";
+ make_path($dir);
+ }
+}
+
sub base_dir {
return $basedir;
}
$@ = $err;
} else {
# add lock info for plain errors
- $@ = "error with cfs lock '$lockid': $err";
+ $@ = "error during cfs-locked '$lockid' operation: $err";
}
return undef;
}