#!/usr/bin/perl -w if (@ARGV != 2) { die "usage: $0 \n"; } $clustertoc = shift(@ARGV); $metacluster = shift(@ARGV); open(CLUSTERTOC, $clustertoc) || die "opening $clustertoc: $!\n"; @lines = ; close(CLUSTERTOC); print join(" ", find_members($metacluster, @lines)), "\n"; sub find_members { my ($metacluster) = shift(@_); my (@lines) = @_; my ($found); my (@members) = (); if ($metacluster !~ /^SUNWC/) { return $metacluster; } $found = 0; for $line (@lines) { chomp($line); if ($line =~ m/^METACLUSTER=$metacluster\b/) { $found = 1; } if ($line =~ m/^CLUSTER=$metacluster\b/) { $found = 1; } if ($found && $line =~ m/^END\b/) { last; } if ($found && $line =~ m/^SUNW_CSRMEMBER=(\S+)/) { push(@members, find_members($1, @lines)); } } if (@members == 0) { die "could not find members for metacluster $metacluster\n"; } return @members; }