]> andersk Git - moira.git/blobdiff - incremental/afs_utils.pl
Separated out the nightly reaper.
[moira.git] / incremental / afs_utils.pl
index c1fd793c2fc3da3228bf88cb567952af71a09e01..75d1e4894d1ecd0a8500439c1464d379280421ed 100644 (file)
@@ -56,7 +56,7 @@ sub afs_find
 {
     local($cell,$type,$quota) = @_;
     local($j);
-    local(@max);
+    local(@max) = '';
 
     &afs_lock;
     chop(@afs_data);
@@ -88,6 +88,7 @@ sub afs_find
 sub afs_quota_adj
 {
     local($cell,$asrv,$apart,$adj) = @_;
+    local($found) = 0;
 
     &afs_lock;
     chop(@afs_data);
@@ -97,73 +98,10 @@ sub afs_quota_adj
        if ($c eq $cell && $as eq $asrv && $ap eq $apart) {
            $alloc += $adj;
            $_ = join(' ',$c,$asrv,$apart,$t,$total,$used,$alloc);
+           $found = 1;
        }
        print SRV "$_\n";
     }
     &afs_unlock;
-}
-
-
-#
-# Nightly reaper - Recompute all usages/allocations.
-#
-sub afs_nightly
-{
-    local ($key, @vos, %used,%alloc,%total, %a);
-    local ($c,$as,$ap,$total,$used,$alloc);
-
-    &afs_lock;
-    truncate(SRV, 0);
-    for (@afs_data) {
-       $as = $ap = 0;
-       if ($_ !~ /^\#/) {
-           ($c,$as,$ap,$t,$total,$used,$alloc) = split(/\s+/,$_);
-           ($as) = gethostbyname($as);
-           $c =~ tr/a-z/A-Z/;
-           $as =~ tr/a-z/A-Z/;
-           $ap =~ s:^([^/]):/vicep\1:;
-       }
-       if (!$as || !$ap) {
-           print SRV "$_\n"; next;
-       }
-
-       $key = "$c $as $ap";
-       $total{$key} = $used{$key} = $alloc{$key} = 0;
-       $type{$key} = $t;
-
-       open(VOS,"$vos partinfo $as $ap -cell $c -noauth|");
-       chop(@vos = <VOS>);
-       close(VOS);
-       next if ($?);
-       @vos = split(/\s+/,$vos[0]);
-       $total{$key} = pop(@vos);
-       $used{$key} = $total{$key}-$vos[5];
-
-       open(VOS,"$vos listvol $as $ap -cell $c -long -noauth|");
-       @vos = <VOS>;
-       close(VOS);
-       next if ($?);
-
-       while ($_ = shift(@vos)) {
-           next unless /On-line/;
-           local($vn,$id) = split(/\s+/, $_);
-           shift(@vos);
-           local($p,$p,$p) = split(/\s+/, shift(@vos));
-           local($q,$q,$q) = split(/\s+/, shift(@vos));
-           if ($id==$p || !$a{$p}) {
-               $a{$p} = $q;
-           }
-       }
-       for $p (keys %a) { $alloc{$key} += $a{$p}; delete $a{$p}; }
-    }
-
-    for (sort keys %total) {
-       print SRV "$_ $type{$_} $total{$_} $used{$_} $alloc{$_}\n";
-       delete $type{$_};
-       delete $total{$_};
-       delete $used{$_};
-       delete $alloc{$_};
-    }
-
-    &afs_unlock;
+    return($found);
 }
This page took 0.033465 seconds and 4 git commands to generate.