]> andersk Git - moira.git/blame - incremental/afs_nightly.pl
Code style cleanup. (No functional changes)
[moira.git] / incremental / afs_nightly.pl
CommitLineData
6231b320 1#!/afs/athena/contrib/perl/perl
2
3require "/moira/bin/afs_utils.pl";
08afe93f 4
5#
6# Nightly reaper - Recompute all usages/allocations.
7#
8
9local ($key, @vos, %used,%alloc,%total, %a);
10local ($c,$as,$ap,$total,$used,$alloc);
11
ea0d6880 12if (open(TMP,"/afs/athena.mit.edu/service/afs_data")) {
e9993d7d 13 @new_data = <TMP>;
08afe93f 14 close(TMP);
15}
16
e9993d7d 17chop(@new_data);
71186e53 18
19for (@new_data) {
20 ($c,$as,$ap) = split(/\s+/,$_);
21 ($as) = gethostbyname($as) unless ($c =~ /^\#/);
22 $c =~ tr/a-z/A-Z/;
23 $as =~ tr/a-z/A-Z/;
24 $ap =~ s:^([^/]):/vicep\1:;
25 $ok{"$c $as $ap"} = 1;
26}
e9993d7d 27for (@new_data) {
08afe93f 28 $as = $ap = 0;
29 if ($_ !~ /^\#/) {
e9993d7d 30 ($c,$as,$ap,$type) = split(/\s+/,$_);
08afe93f 31 ($as) = gethostbyname($as);
32 $c =~ tr/a-z/A-Z/;
33 $as =~ tr/a-z/A-Z/;
34 $ap =~ s:^([^/]):/vicep\1:;
35 }
e9993d7d 36 next unless ($as && $ap);
5eaef520 37
e9993d7d 38 &afs_lock;
39 truncate(SRV, 0);
40 for (@afs_data) {
41 ($c2,$as2,$ap2) = split(/\s+/,$_);
71186e53 42 next unless ($c2 =~ /^\#/ || $ok{"$c2 $as2 $ap2"});
e9993d7d 43 print SRV $_ unless ($c eq $c2 && $as eq $as2 && $ap eq $ap2);
44 }
45 &afs_unlock;
5eaef520 46
754ef493 47 open(VOS,"$vos partinfo $as $ap -cell $c -noauth|");
48 chop(@vos = <VOS>);
49 close(VOS);
08afe93f 50 next if ($?);
754ef493 51 @vos = split(/\s+/,$vos[0]);
52 $total = pop(@vos);
53 $used = $total-$vos[5];
e9993d7d 54 $alloc = 0;
5eaef520 55
08afe93f 56 open(VOS,"$vos listvol $as $ap -cell $c -long -noauth|");
57 @vos = <VOS>;
58 close(VOS);
59 next if ($?);
5eaef520 60
08afe93f 61 while ($_ = shift(@vos)) {
62 next unless /On-line/;
63 local($vn,$id) = split(/\s+/, $_);
64 shift(@vos);
65 local($p,$p,$p) = split(/\s+/, shift(@vos));
66 local($q,$q,$q) = split(/\s+/, shift(@vos));
67 if ($id==$p || !$a{$p}) {
68 $a{$p} = $q;
69 }
70 }
e9993d7d 71 for $p (keys %a) { $alloc += $a{$p}; delete $a{$p}; }
08afe93f 72
e9993d7d 73 &afs_lock;
74 seek(SRV, 0, 2);
75 print SRV "$c $as $ap $type $total $used $alloc\n";
76 &afs_unlock;
08afe93f 77}
This page took 3.512774 seconds and 5 git commands to generate.