e452d1d7b0
-Factor out common broadcast scope to xCAT::Scope git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@380 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
28 lines
783 B
Perl
28 lines
783 B
Perl
package xCAT::Scope;
|
|
use xCAT::Utils;
|
|
use xCAT::Table;
|
|
sub get_broadcast_scope {
|
|
my $req = shift;
|
|
if ($req =~ /xCAT::Scope/) {
|
|
$req = shift;
|
|
}
|
|
$callback = shift;
|
|
if ($req->{_xcatdest}) { return [$req]; } #Exit if the packet has been preprocessed in its history
|
|
my @requests = ({%$req}); #Start with a straight copy to reflect local instance
|
|
my $sitetab = xCAT::Table->new('site');
|
|
(my $ent) = $sitetab->getAttribs({key=>'xcatservers'},'value');
|
|
$sitetab->close;
|
|
if ($ent and $ent->{value}) {
|
|
foreach (split /,/,$ent->{value}) {
|
|
if (xCAT::Utils->thishostisnot($_)) {
|
|
my $reqcopy = {%$req};
|
|
$reqcopy->{'_xcatdest'} = $_;
|
|
push @requests,$reqcopy;
|
|
}
|
|
}
|
|
}
|
|
return \@requests;
|
|
}
|
|
|
|
1;
|