#!/usr/bin/perl # IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html BEGIN { $::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : -d '/opt/xcat' ? '/opt/xcat' : '/usr'; } use lib "$::XCATROOT/lib/perl"; use File::Basename; use xCAT::MsgUtils; use xCAT::Client; my $bname = basename($0); ######################################### # Main # # xcatDBcmds # # Build hash and submit request # # Handles: mkdef, chdef, lsdef, rmdef, and xcat2nim commands # # Note: The subroutines that implement these commands # are, for the most part, in: # /opt/xcat/lib/perl/xCAT_plugin/DBobjectdefs.pm # /opt/xcat/lib/perl/xCAT_plugin/xcat2nim.pm # /opt/xcat/lib/perl/xCAT/DBobjUtils.pm # -on the xCAT management node # ######################################### my $cmdref; # set the command name to pass to the plugin if ($bname =~ /xcatDBcmds/) { $cmdref->{command}->[0] = shift @ARGV; } elsif ($bname =~ /^(.*$)/) { $cmdref->{command}->[0] = $1; } else { printf("Bad usage\n"); exit 1; } # get info from files piped in as stdin if (-p STDIN) { my $data; while ( ) { $data.=$_; } $cmdref->{stdin}->[0]=$data; } # add all the cmd line args to the hash - to pass to the plugin subroutine foreach (@ARGV) { push(@{$cmdref->{arg}}, $_); } xCAT::Client::submit_request($cmdref,\&xCAT::Client::handle_response); exit $xCAT::Client::EXITCODE;