Eliminated hard requires for SOAP::Lite and JSON

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@13877 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
bp-sawyers 2012-09-22 16:20:24 +00:00
parent 4ea6bae9a0
commit a18348883d
7 changed files with 33 additions and 9 deletions

View File

@ -528,12 +528,9 @@ sub isLinux
#-------------------------------------------------------------------------------
sub Version
{
#The following tag tells the build script where to append build info
my $version = shift;
$version = xCAT::Version->Version();
return $version;
}
#-------------------------------------------------------------------------------

View File

@ -38,7 +38,7 @@ use strict;
sub Version
{
#The following tag tells the build script where to append build info
#The following tags tells the build script where to append build info
my $version = shift;
if ($version eq 'short')
{

View File

@ -14,7 +14,7 @@ package xCAT::hpoa;
use strict;
use SOAP::Lite;
#use SOAP::Lite; # hpblade.pm requires SOAP::Lite before requiring hpoa.pm, so we can check for SOAP::Lite dynamically
use vars qw(@ISA);
@ISA = qw(SOAP::Lite);

View File

@ -271,10 +271,9 @@ sub init_plugin
# $rc = &setup_NTPmn(); # setup NTP on the Management Node
if (xCAT::Utils->isLinux())
{
print "\n"
; # make OK prints look better. Only need to do this for the 1st service.
my @tmp = xCAT::TableUtils->get_site_attribute("vsftp");
if ($tmp[0] && ($tmp[0] !~ /0|NO|No|no|N|n/ )) {
print "\n"; # make OK prints look better. Only need to do this for the 1st service.
$rc = &setup_FTP(); # setup FTP
}
#enable the tftp-hpa for MN

View File

@ -30,7 +30,7 @@ use Net::SSLeay qw(die_now die_if_ssl_error);
use Data::Dumper;
use POSIX "WNOHANG";
use Getopt::Long;
use xCAT::hpoa;
#use xCAT::hpoa; # require this dynamically below instead
sub handled_commands {
return {
@ -326,6 +326,14 @@ sub preprocess_request {
$request = {};
return;
}
# require SOAP::Lite for hpoa.pm so we can do it dynamically
my $soapsupport = eval { require SOAP::Lite; };
unless ($soapsupport) { #Still no SOAP::Lite module
$callback->({error=>"SOAP::Lite perl module missing. Install perl-SOAP-Lite before running HP blade commands.",errorcode=>[42]});
return [];
}
require xCAT::hpoa;
#get the MMs for the nodes for the nodes in order to figure out which service nodes to send the requests to
my $mptab = xCAT::Table->new("mp");
@ -600,6 +608,15 @@ sub process_request {
unless ($command) {
return; #Empty request
}
# require SOAP::Lite for hpoa.pm so we can do it dynamically
my $soapsupport = eval { require SOAP::Lite; };
unless ($soapsupport) { #Still no SOAP::Lite module
$callback->({error=>"SOAP::Lite perl module missing. Install perl-SOAP-Lite before running HP blade commands.",errorcode=>[42]});
return [];
}
require xCAT::hpoa;
if (ref($request->{arg})) {
@exargs = @{$request->{arg}};
} else {

View File

@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
use CGI qw/:standard/;
use JSON;
#use JSON; # require this dynamically later on so that installations that do not use xcatws.cgi do not need perl-JSON
use Data::Dumper;
#added the line:
@ -103,6 +103,15 @@ if ($queryhash{'format'}) {
addPageContent("The format '$format' is not valid");
sendResponseMsg($STATUS_BAD_REQUEST);
}
if ($format eq 'json') {
# require JSON dynamically and let them know if it is not installed
my $jsoninstalled = eval { require JSON; };
unless ($jsoninstalled) {
addPageContent($q->p("JSON perl module missing. Install perl-JSON before using the xCAT REST web services API."));
sendResponseMsg($STATUS_SERVICE_UNAVAILABLE);
}
}
}
my $XCAT_PATH = '/opt/xcat/bin';

View File

@ -27,6 +27,8 @@ Requires: xCAT-server xCAT-client perl-DBD-SQLite
Requires: httpd nfs-utils nmap bind perl-XML-Parser perl(CGI)
# On RHEL this pulls in dhcp, on SLES it pulls in dhcp-server
Requires: /usr/sbin/dhcpd
# On RHEL this pulls in openssh-server, on SLES it pulls in openssh
Requires: /usr/bin/ssh
%ifnarch s390x
Requires: /etc/xinetd.d/tftp
# yaboot-xcat is pulled in so any MN can manage ppc nodes