[24137] in Source-Commits
/svn/athena r23739 - trunk/debathena/config/afs-config/debian
daemon@ATHENA.MIT.EDU (Evan Broder)
Sun Apr 12 02:06:49 2009
Date: Sun, 12 Apr 2009 02:06:39 -0400
From: Evan Broder <broder@MIT.EDU>
Message-Id: <200904120606.n3C66doO003324@drugstore.mit.edu>
To: source-commits@mit.edu
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Author: broder
Date: 2009-04-12 02:06:39 -0400 (Sun, 12 Apr 2009)
New Revision: 23739
Added:
trunk/debathena/config/afs-config/debian/update-cellservdb
Modified:
trunk/debathena/config/afs-config/debian/changelog
trunk/debathena/config/afs-config/debian/debathena-afs-config.install
trunk/debathena/config/afs-config/debian/debathena-afs-config.postinst
Log:
In afs-config:
* Add script to `fs newcell` any cells that are out of date according to
the newly installed CellServDB. (Trac: #186)
Modified: trunk/debathena/config/afs-config/debian/changelog
===================================================================
--- trunk/debathena/config/afs-config/debian/changelog 2009-04-12 05:48:20 UTC (rev 23738)
+++ trunk/debathena/config/afs-config/debian/changelog 2009-04-12 06:06:39 UTC (rev 23739)
@@ -1,3 +1,10 @@
+debathena-afs-config (1.8) unstable; urgency=low
+
+ * Add script to `fs newcell` any cells that are out of date according to
+ the newly installed CellServDB. (Trac: #186)
+
+ -- Evan Broder <broder@mit.edu> Sun, 12 Apr 2009 01:59:31 -0400
+
debathena-afs-config (1.7) unstable; urgency=low
* New build for huge set of CellServDB updates.
Modified: trunk/debathena/config/afs-config/debian/debathena-afs-config.install
===================================================================
--- trunk/debathena/config/afs-config/debian/debathena-afs-config.install 2009-04-12 05:48:20 UTC (rev 23738)
+++ trunk/debathena/config/afs-config/debian/debathena-afs-config.install 2009-04-12 06:06:39 UTC (rev 23739)
@@ -4,3 +4,4 @@
debian/SuidCells.debathena etc/openafs
debian/ThisCell.debathena etc/openafs
debian/cacheinfo.debathena etc/openafs
+debian/update-cellservdb usr/sbin
Modified: trunk/debathena/config/afs-config/debian/debathena-afs-config.postinst
===================================================================
--- trunk/debathena/config/afs-config/debian/debathena-afs-config.postinst 2009-04-12 05:48:20 UTC (rev 23738)
+++ trunk/debathena/config/afs-config/debian/debathena-afs-config.postinst 2009-04-12 06:06:39 UTC (rev 23739)
@@ -27,6 +27,7 @@
else
/etc/init.d/openafs-client restart || true
fi
+ update-cellservdb
;;
abort-upgrade|abort-remove|abort-deconfigure)
Added: trunk/debathena/config/afs-config/debian/update-cellservdb
===================================================================
--- trunk/debathena/config/afs-config/debian/update-cellservdb 2009-04-12 05:48:20 UTC (rev 23738)
+++ trunk/debathena/config/afs-config/debian/update-cellservdb 2009-04-12 06:06:39 UTC (rev 23739)
@@ -0,0 +1,36 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+my %cm_servers;
+open(FS, '-|', 'fs', 'listcells', '-numeric') or die;
+while (<FS>) {
+ if (/^Cell dynroot on hosts\.$/) {
+ } elsif (/^Cell (\S+) on hosts (.+)\.$/) {
+ $cm_servers{$1} = [split(' ', $2)];
+ } else {
+ die;
+ }
+}
+close(FS) or die;
+
+my %csdb_servers;
+my $cell;
+open(CSDB, '<', '/etc/openafs/CellServDB') or die;
+while (<CSDB>) {
+ if (/^>([^#\s]+)/) {
+ $cell = $1;
+ } elsif (/^([^#\s]+)/) {
+ push(@{$csdb_servers{$cell}}, $1);
+ } else {
+ die;
+ }
+}
+close(CSDB);
+
+while (my ($cell, $servers) = each(%csdb_servers)) {
+ if (!exists($cm_servers{$cell}) or
+ join(' ', sort(@{$cm_servers{$cell}})) ne join(' ', sort(@$servers))) {
+ system('fs', 'newcell', '-name', $cell, '-servers', @$servers);
+ }
+}
Property changes on: trunk/debathena/config/afs-config/debian/update-cellservdb
___________________________________________________________________
Name: svn:executable
+ *