-Institute new plugin phase 'init_plugin' and move AAsn to using it (have a function to request peer plugin action

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@3028 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
jbjohnso 2009-03-28 05:57:08 +00:00
parent d866132dcb
commit d8f935df65
2 changed files with 19 additions and 9 deletions

View File

@ -50,9 +50,10 @@ else if on the Management Node
#-------------------------------------------------------
sub handled_commands
{ return; }
sub init_plugin
{
my $doreq = shift;
# If called in XCATBYPASS mode, don't do any setup
if ($ENV{'XCATBYPASS'})
@ -157,7 +158,7 @@ sub handled_commands
if (grep(/$service/, @servicelist))
{
$rc = &setup_TFTP($nodename); # setup TFTP
$rc = &setup_TFTP($nodename,$doreq); # setup TFTP
if ($rc == 0)
{
xCAT::Utils->update_xCATSN($service);
@ -860,7 +861,8 @@ sub setup_SSH
#-----------------------------------------------------------------------------
sub setup_TFTP
{
my ($nodename) = @_;
my ($nodename, $doreq) = @_;
my $rc = 0;
my $cmd;
my $master;
@ -940,11 +942,11 @@ sub setup_TFTP
use xCAT_plugin::mknb;
$cmdref->{command}->[0] = "mknb";
$cmdref->{arg}->[0] = "ppc64";
${"xCAT_plugin::mknb::"}{process_request}->($cmdref, \&xCAT::Client::handle_response);
$doreq->($cmdref,\&xCAT::Client::handle_response);
$cmdref->{arg}->[0] = "x86";
${"xCAT_plugin::mknb::"}{process_request}->($cmdref, \&xCAT::Client::handle_response);
$doreq->($cmdref,\&xCAT::Client::handle_response);
$cmdref->{arg}->[0] = "x86_64";
${"xCAT_plugin::mknb::"}{process_request}->($cmdref, \&xCAT::Client::handle_response);
$doreq->($cmdref,\&xCAT::Client::handle_response);
#now, run nodeset enact on
my $mactab = xCAT::Table->new('mac');
my $hmtab = xCAT::Table->new('noderes');
@ -968,8 +970,7 @@ sub setup_TFTP
my $plugins_dir=$::XCATROOT.'/lib/perl/xCAT_plugin';
foreach my $modname (keys %netmethods) {
$cmdref->{node} = $netmethods{$modname};
require "$plugins_dir/$modname.pm";
${"xCAT_plugin::" . $modname . "::"}{process_request}->($cmdref, \&xCAT::Client::handle_response);
$doreq->($cmdref,\&xCAT::Client::handle_response);
}
}

View File

@ -423,6 +423,15 @@ sub scan_plugins {
}
}
}
my @plugins=glob($plugins_dir."/*.pm");
foreach (@plugins) {
/.*\/([^\/]*).pm$/;
my $modname = $1;
unless (defined(${"xCAT_plugin::".$modname."::"}{init_plugin})) {
next;
}
${"xCAT_plugin::".$modname."::"}{init_plugin}->();
}
}
scan_plugins;
eval {