[pve-devel] r5439 - pve-cluster/trunk/data/perl

svn-commits at proxmox.com svn-commits at proxmox.com
Tue Jan 25 11:28:18 CET 2011


Author: dietmar
Date: 2011-01-25 11:28:18 +0100 (Tue, 25 Jan 2011)
New Revision: 5439

Modified:
   pve-cluster/trunk/data/perl/Cluster.pm
Log:
implement template (only support local locks)


Modified: pve-cluster/trunk/data/perl/Cluster.pm
===================================================================
--- pve-cluster/trunk/data/perl/Cluster.pm	2011-01-25 10:25:18 UTC (rev 5438)
+++ pve-cluster/trunk/data/perl/Cluster.pm	2011-01-25 10:28:18 UTC (rev 5439)
@@ -13,10 +13,16 @@
 use Encode;
 use base 'Exporter';
 
-our @EXPORT_OK = qw(cfs_read_file cfs_write_file cfs_register_file);
+our @EXPORT_OK = qw(
+cfs_read_file 
+cfs_write_file 
+cfs_register_file 
+cfs_lock_file);
 
 use Data::Dumper; # fixme: remove
 
+my $lockdir = "/var/lock/pve-manager";
+mkdir $lockdir;
 
 # x509 certificate utils
 
@@ -465,6 +471,19 @@
     PVE::Tools::file_set_contents($fsname, $raw);
 }
 
+sub cfs_lock_file {
+    my ($filename, $timeout, $text, $code, @param) = @_;
+
+    my $info = $file_info->{$filename} || die "unknown file '$filename'";
+
+    my $lockid = $filename;
+    $lockid =~ s/[.\/]/_/g;
+
+    # fimxe: do cluster wide lock instead
+
+    PVE::Tools::lock_file("$lockdir/.lock-file-$lockid", $timeout, $text, $code, @param);
+}
+
 my $log_levels = {
     "emerg" => 0,
     "alert" => 1,



More information about the pve-devel mailing list