fix various issues
authorDirk Koopman <djk@tobit.co.uk>
Wed, 17 Aug 2016 15:24:01 +0000 (16:24 +0100)
committerDirk Koopman <djk@tobit.co.uk>
Wed, 17 Aug 2016 15:24:01 +0000 (16:24 +0100)
1. Make cluster.lck checking consistent and accurate.
2. Fix export_user actions to always put them in local_data.
3. Fix create_prefix.pl output file and input file searching. Basically
   this now looks for cty.dat and wpxloc.raw in local_data first and then
   falls backs to data. But puts the result in local_data unless the
   --system flag is set.

cmd/export_users.pl
perl/DXUser.pm
perl/cluster.pl
perl/create_prefix.pl
perl/create_sysop.pl
perl/lock_nodes.pl
perl/update_sysop.pl

index a7a2c6ec50fe06c35d16308022801cbbb7b03f3e..753a48facafa5b2cc74dd79b71e4cae8f13413fd 100644 (file)
@@ -4,7 +4,7 @@
 #
 #
 my $self = shift;
-my $line = shift || localdata("user_asc");
+my $line = shift || "user_asc";
 return (1, $self->msg('e5')) unless $self->priv >= 9;
 
 my ($fn, $flag) = split /\s+/, $line;
index dd31e6f632fffac6003e11bf3b700c8275cfb28b..60fc1afda1d69c2572710e9252445e4149f75d5f 100644 (file)
@@ -412,15 +412,17 @@ sub fields
 
 sub export
 {
-       my $fn = shift;
+       my $name = shift;
        my $basic_info_only = shift;
+
+       my $fn = "$main::local_data/$name";
        
        # save old ones
-       rename "$fn.oooo", "$fn.ooooo" if -e "$fn.oooo";
-       rename "$fn.ooo", "$fn.oooo" if -e "$fn.ooo";
-       rename "$fn.oo", "$fn.ooo" if -e "$fn.oo";
-       rename "$fn.o", "$fn.oo" if -e "$fn.o";
-       rename "$fn", "$fn.o" if -e "$fn";
+       move "$fn.oooo", "$fn.ooooo" if -e "$fn.oooo";
+       move "$fn.ooo", "$fn.oooo" if -e "$fn.ooo";
+       move "$fn.oo", "$fn.ooo" if -e "$fn.oo";
+       move "$fn.o", "$fn.oo" if -e "$fn.o";
+       move "$fn", "$fn.o" if -e "$fn";
 
        my $count = 0;
        my $err = 0;
index 86785a9777c45c8ae0a4284ec1a0b86c9b84d3da..d82dd2e73bbd8d67aa68538a39dd19e49f6ae00e 100755 (executable)
@@ -43,7 +43,10 @@ BEGIN {
                my $pid = <CLLOCK>;
                if ($pid) {
                        chomp $pid;
-                       die "Lockfile ($lockfn) and process $pid exist, another cluster running?" if kill 0, $pid;
+                       if (kill 0, $pid) {
+                               warn "Lockfile ($lockfn) and process $pid exist, another cluster running?\n";
+                               exit 1;
+                       }
                }
                unlink $lockfn;
                close CLLOCK;
@@ -56,6 +59,7 @@ BEGIN {
        $systime = time;
 }
 
+                       
 use Mojo::IOLoop;
 
 use DXVars;
index daf4a09e409171cb1433b068aa9aa9a8c1d218c6..60d7d2a1f462861d60868da871dacf37b6bdaaec 100755 (executable)
@@ -20,6 +20,7 @@ BEGIN {
        unshift @INC, "$root/local";
 }
 
+use DXVars;
 use SysVar;
 
 use Data::Dumper;
@@ -33,18 +34,22 @@ my %locn = ();                                              # the inverse of the above
 my %pre = ();                                          # the prefix hash
 my %pren = ();                                         # the inverse
 
-if (@ARGV && $ARVG[0] =~ /^--system$/) {
+my $prefix;
+
+if (@ARGV && $ARGV[0] =~ /^--system$/) {
        $prefix = $main::data;
        shift;
 } else {
-       $prefix = $main:local_data;
+       $prefix = $main::local_data;
 }
 
-# open the input file
-my $ifn = $ARGV[0] if $ARGV[0];
+my $ifn;
 
-$ifn = "$prefix/wpxloc.raw" if !$ifn;
-open (IN, $ifn) or die "can't open $ifn ($!)";
+$ifn = "$prefix/wpxloc.raw";
+unless (open (IN, $ifn)) {
+       $ifn = "$main::data/wpxloc.raw";
+       open(IN, $ifn) or die "can't open $ifn ($!)";
+}
 
 # first pass, find all the 'master' location records
 while (<IN>) {
@@ -104,10 +109,17 @@ close(IN);
 #print Data::Dumper->Dump([\%pre, \%locn], [qw(pre locn)]);
 
 # now open the cty.dat file if it is there
+my $r;
+$ifn = "$prefix/cty.dat";
+unless ($r = open (IN, $ifn)) {
+       $ifn = "$main::data/cty.dat";
+       $r = open(IN, $ifn);
+}
+
 my @f;
 my @a;
 $line = 0;
-if (open(IN, "$prefix/cty.dat")) {
+if ($r) {
        my $state = 0;
        while (<IN>) {
                $line++;
index 6e7db09d3144ae23d6f7f301bc687dc30ea8e392..99f3e0600d7b045177fb1d934df281c9f6881fb7 100755 (executable)
@@ -81,7 +81,7 @@ sub create_it
 
 die "\$myalias \& \$mycall are the same ($mycall)!, they must be different (hint: make \$mycall = '${mycall}-2';).\n" if $mycall eq $myalias;
 
-$lockfn = localdata("cluster.lck");       # lock file name
+$lockfn = "$main::local_data/cluster.lck";       # lock file name (now in local data)
 if (-e $lockfn) {
        open(CLLOCK, "$lockfn") or die "Can't open Lockfile ($lockfn) $!";
        my $pid = <CLLOCK>;
index 3ab0e7d170cae50401120a20f609aafa1b3554c7..2443e48b5353d96c4981714cc5daf59fa57684cd 100755 (executable)
@@ -15,7 +15,7 @@ BEGIN {
        # root of directory tree for this system
        $root = "/spider"; 
        $root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'};
-        unshift @INC, "$root/perl";     # this IS the right way round!
+    unshift @INC, "$root/perl";     # this IS the right way round!
        unshift @INC, "$root/local";
 }
 
@@ -23,7 +23,7 @@ use SysVar;
 use DXUser;
 use DXUtil;
 
-my $lockfn = localdata("cluster.lck");       # lock file name
+$lockfn = "$main::local_data/cluster.lck";       # lock file name (now in local d
 if (-e $lockfn) {
        open(CLLOCK, "$lockfn") or die "Can't open Lockfile ($lockfn) $!";
        my $pid = <CLLOCK>;
index 613e91f0bc35f9602846463d0a14624c648e8a4b..168ee16a9a9e9ce1c45cffe3f242b7a3952b1599 100755 (executable)
@@ -87,7 +87,7 @@ sub create_it
 
 die "\$myalias \& \$mycall are the same ($mycall)!, they must be different (hint: make \$mycall = '${mycall}-2';).\n" if $mycall eq $myalias;
 
-$lockfn = localdata("cluster.lck");       # lock file name
+$lockfn = "$main::local_data/cluster.lck";       # lock file name (now in local d
 if (-e $lockfn) {
        open(CLLOCK, "$lockfn") or die "Can't open Lockfile ($lockfn) $!";
        my $pid = <CLLOCK>;