Author: arkurth
Date: Tue Sep 24 20:27:25 2013
New Revision: 1525998

URL: http://svn.apache.org/r1525998
Log:
VCL-678
Commented out some chatty lines in get_package_hierarchy. Added code so that 
only the original call to get_package_hierarchy displays the result in vcld.log 
rather than each recursive iteration.

Added get_calling_subroutine to utils.pm.

VCL-708
Renamed global Jabber variables in utils.pm to upper-case to match all other 
global variables.

Reworked and cleaned up the INIT section of utils.pm. The global variables were 
defined twice. Some variables were no longer being used.

VCL-729
Updated utils.pm::mail to check if $RETURNPATH is defined. It is only passed to 
Mail::Mailer if defined.

Other
Updated create_os_object, create_mn_os_object, create_provisioning_object to 
display $EVAL_ERROR if the object couldn't be created.

Modified:
    vcl/trunk/managementnode/lib/VCL/Module.pm
    vcl/trunk/managementnode/lib/VCL/utils.pm

Modified: vcl/trunk/managementnode/lib/VCL/Module.pm
URL: 
http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module.pm?rev=1525998&r1=1525997&r2=1525998&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module.pm Tue Sep 24 20:27:25 2013
@@ -315,7 +315,7 @@ sub create_os_object {
        # Attempt to load the OS module
        eval "use $os_perl_package";
        if ($EVAL_ERROR) {
-               notify($ERRORS{'WARNING'}, 0, "$os_perl_package module could 
not be loaded, returning 0");
+               notify($ERRORS{'WARNING'}, 0, "$os_perl_package module could 
not be loaded, error:\n" . $EVAL_ERROR);
                return 0;
        }
        notify($ERRORS{'DEBUG'}, 0, "$os_perl_package module loaded");
@@ -382,7 +382,7 @@ sub create_mn_os_object {
        my $mn_os_perl_package = 'VCL::Module::OS::Linux::ManagementNode';
        eval "use $mn_os_perl_package";
        if ($EVAL_ERROR) {
-               notify($ERRORS{'WARNING'}, 0, "$mn_os_perl_package module could 
not be loaded, returning 0");
+               notify($ERRORS{'WARNING'}, 0, "$mn_os_perl_package module could 
not be loaded, error:\n" . $EVAL_ERROR);
                return 0;
        }
        notify($ERRORS{'DEBUG'}, 0, "$mn_os_perl_package module loaded");
@@ -535,7 +535,7 @@ sub create_provisioning_object {
        # Attempt to load the computer provisioning module
        eval "use $provisioning_perl_package";
        if ($EVAL_ERROR) {
-               notify($ERRORS{'WARNING'}, 0, "$provisioning_perl_package 
module could not be loaded, returning 0");
+               notify($ERRORS{'WARNING'}, 0, "$provisioning_perl_package 
module could not be loaded, error:\n" . $EVAL_ERROR);
                return 0;
        }
        notify($ERRORS{'DEBUG'}, 0, "$provisioning_perl_package module loaded");
@@ -964,7 +964,7 @@ sub get_package_hierarchy {
                # Argument is not a reference, assume argument is a string 
containing a package name
                $package_name = $argument;
        }
-       notify($ERRORS{'DEBUG'}, 0, "finding package hierarchy for: 
$package_name");
+       #notify($ERRORS{'DEBUG'}, 0, "finding package hierarchy for: 
$package_name");
        
        # Use eval to retrieve the package name's @ISA array
        my @package_isa = eval '@' . $package_name . '::ISA';
@@ -978,11 +978,11 @@ sub get_package_hierarchy {
        
        # Check if @ISA is empty
        if ($package_isa_count == 0) {
-               notify($ERRORS{'DEBUG'}, 0, "$package_name has no parent 
packages");
+               #notify($ERRORS{'DEBUG'}, 0, "$package_name has no parent 
packages");
                return ();
        }
        
-       notify($ERRORS{'DEBUG'}, 0, "parent package names for $package_name:\n" 
. format_data(\@package_isa));
+       #notify($ERRORS{'DEBUG'}, 0, "parent package names for 
$package_name:\n" . format_data(\@package_isa));
        my $parent_package_name = $package_isa[0];
        
        # Warn if package uses multiple inheritance, only use 1st element of 
package's @ISA array
@@ -996,7 +996,11 @@ sub get_package_hierarchy {
        # Recursively call this sub on the parent package and add the results 
to the return array
        push @return_package_names, get_package_hierarchy($parent_package_name);
        
-       notify($ERRORS{'DEBUG'}, 0, "returning for $package_name:\n" . 
format_data(\@return_package_names));
+       # Print the package names only for the original argument, not for 
recursive packages
+       my $calling_subroutine = get_calling_subroutine();
+       if ($calling_subroutine !~ /get_package_hierarchy/) {
+               notify($ERRORS{'DEBUG'}, 0, "returning for $package_name:\n" . 
join("\n", @return_package_names));
+       }
        return @return_package_names;
 }
 

Modified: vcl/trunk/managementnode/lib/VCL/utils.pm
URL: 
http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=1525998&r1=1525997&r2=1525998&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/utils.pm Tue Sep 24 20:27:25 2013
@@ -102,6 +102,7 @@ our @EXPORT = qw(
   get_affiliation_info
   get_block_request_image_info
   get_caller_trace
+  get_calling_subroutine
   get_computer_current_state_name
   get_computer_grp_members
   get_computer_ids
@@ -227,11 +228,6 @@ our @EXPORT = qw(
   $DATABASE
   $DEFAULTHELPEMAIL
   $FQDN
-  $jabPass
-  $jabPort
-  $jabResource
-  $jabServer
-  $jabUser
   $LOGFILE
   $MYSQL_SSL
   $MYSQL_SSL_CERT
@@ -252,40 +248,63 @@ our @EXPORT = qw(
 
 );
 
-#our 
%ERRORS=('DEPENDENT'=>4,'UNKNOWN'=>3,'OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'MAILMASTERS'=>5);
+our %ERRORS = (
+       'OK' => 0,
+       'WARNING' => 1,
+       'CRITICAL' => 2,
+       'UNKNOWN' => 3,
+       'DEPENDENT' => 4,
+       'MAILMASTERS' => 5,
+       'DEBUG' => 6
+);
+
+our $PROCESSNAME;
+our $LOGFILE;
+our $PIDFILE;
+our $FQDN;
+
+our $SERVER;
+our $DATABASE;
+our $WRTUSER;
+our $WRTPASS;
+our $MYSQL_SSL;
+our $MYSQL_SSL_CERT;
+
+our $JABBER;
+our $JABBER_SERVER;
+our $JABBER_USER;
+our $JABBER_PASSWORD;
+our $JABBER_RESOURCE;
+our $JABBER_PORT;
+
+our $DEFAULTHELPEMAIL;
+our $RETURNPATH;
+
+our $WINDOWS_ROOT_PASSWORD;
+
+our $XMLRPC_USER;
+our $XMLRPC_PASS;
+our $XMLRPC_URL;
+
+our $BIN_PATH = $FindBin::Bin;
+our $TOOLS = "$FindBin::Bin/../tools";
+our $VERBOSE;
+our $CONF_FILE_PATH;
+our $DAEMON_MODE;
+our $SETUP_MODE;
+
 
 INIT {
        # Parse config file and set globals
-       our ($JABBER, $jabServer, $jabUser, $jabPass, $jabResource, $jabPort) = 
0;
-       our ($LOGFILE, $PIDFILE, $PROCESSNAME);
-       our ($DATABASE, $SERVER, $WRTUSER, $WRTPASS, $LockerRdUser, $rdPass) = 
0;
-       our ($DEFAULTHELPEMAIL, $RETURNPATH) = 0;
-       our ($XCATROOT) = 0;
-       our ($FQDN)     = 0;
-       our ($MYSQL_SSL,       $MYSQL_SSL_CERT);
-       our ($WINDOWS_ROOT_PASSWORD);
-   our ($XMLRPC_USER, $XMLRPC_PASS, $XMLRPC_URL);
-
+       
        # Set Getopt pass_through so this module doesn't erase parameters that 
other modules may use
        Getopt::Long::Configure('pass_through');
-
-       # Set the VERBOSE flag to 0 by default
-       our $VERBOSE = 0;
-       
-       # Set the SETUP_MODE flag to 0 by default
-       our $SETUP_MODE = 0;
-       
-       # Set the SETUP_MODE flag to 1 by default
-       our $DAEMON_MODE = 1;
-
-       # Use the default configuration file path if -conf isn't specified on 
the command line
-       our $BIN_PATH = $FindBin::Bin;
        
        # Set a default config file path
        my $hostname = hostname();
        $hostname =~ s/\..*//g;
        my $cwd = getcwd();
-       our $CONF_FILE_PATH = "$cwd/$hostname.conf";
+       $CONF_FILE_PATH = "$cwd/$hostname.conf";
        if (!-f $CONF_FILE_PATH) {
                if ($BIN_PATH =~ /dev/) {
                        $CONF_FILE_PATH = "/etc/vcl/vcldev.conf";
@@ -305,212 +324,129 @@ INIT {
                                  'setup!' => \$SETUP_MODE,
                                  'verbose!' => \$VERBOSE,
        );
+
+       my %parameters = (
+               'log'                                                   => 
\$LOGFILE,
+               'pidfile'                                       => \$PIDFILE,
+               'fqdn'                                          => \$FQDN,
+               'database'                                      => \$DATABASE,
+               'server'                                                => 
\$SERVER,
+               'lockerwrtuser'                 => \$WRTUSER,
+               'wrtpass'                                       => \$WRTPASS,
+               'xmlrpc_username'                       => \$XMLRPC_USER,
+               'xmlrpc_pass'                           => \$XMLRPC_PASS,
+               'xmlrpc_url'                            => \$XMLRPC_URL,
+               'enable_mysql_ssl'              => \$MYSQL_SSL,
+               'mysql_ssl_cert'                        => \$MYSQL_SSL_CERT,
+               'returnpath'                            => \$RETURNPATH,
+               'jabber'                                                => 
\$JABBER,
+               'jabserver'                                     => 
\$JABBER_SERVER,
+               'jabuser'                                       => 
\$JABBER_USER,
+               'jabpass'                                       => 
\$JABBER_PASSWORD,
+               'jabport'                                       => 
\$JABBER_PORT,
+               'jabresource'                           => \$JABBER_RESOURCE,
+               'processname'                           => \$PROCESSNAME,
+               'windows_root_password' => \$WINDOWS_ROOT_PASSWORD,
+               'verbose'                                       => \$VERBOSE,
+               'defaulthelpemail'              => \$DEFAULTHELPEMAIL,
+       );
        
        # Make sure the config file exists
        if (!-f $CONF_FILE_PATH) {
                if (!$SETUP_MODE) {
-                       print STDOUT "ERROR: config file does not exist: 
$CONF_FILE_PATH\n";
+                       print STDERR "FATAL: vcld configuration file does not 
exist: $CONF_FILE_PATH\n";
                        help();
                }
        }
-       elsif (open(CONF, $CONF_FILE_PATH)) {
-               my @conf = <CONF>;
-               close(CONF);
-               foreach my $l (@conf) {
-                       # Remove all new line and carriage return characters 
from the end of the line
-                       # Chomp doesn't always remove carriage returns
-                       $l =~ s/[\r\n]*$//;
-                       
-                       #logfile
-                       if ($l =~ /^log=(.*)/ && (!defined($LOGFILE))) {
-                               chomp($l);
-                               $LOGFILE = $1;
-                       }
-                       #pidfile
-                       if ($l =~ /^pidfile=(.*)/) {
-                               chomp($l);
-                               $PIDFILE = $1;
-                       }
-
-                       #FQDN - to many issues trying to figure out my FQDN so 
just tell me
-                       if ($l =~ /^FQDN=([-.a-zA-Z0-9]*)/) {
-                               $FQDN = $1;
-                       }
-
-                       #mysql settings
-                       #name of db
-                       if ($l =~ /^database=(.*)/) {
-                               $DATABASE = $1;
-                       }
-                       #name of database server
-                       if ($l =~ /^server=([-.a-zA-Z0-9]*)/) {
-                               $SERVER = $1;
-                       }
-                       #write user name
-                       if ($l =~ /^LockerWrtUser=(.*)/) {
-                               $WRTUSER = $1;
-                       }
-
-                       #write user password
-                       if ($l =~ /^wrtPass=(.*)/) {
-                               $WRTPASS = $1;
-                       }
-
-                       #read user name
-                       if ($l =~ /^LockerRdUser=(.*)/) {
-                               $LockerRdUser = $1;
-                       }
-
-                       #read user password
-                       if ($l =~ /^rdPass=(.*)/) {
-                               $rdPass = $1;
-                       }
-         
-                       #xmlrpc_username
-                       if ($l =~ /^xmlrpc_username=(.*)/) {
-                               $XMLRPC_USER = $1;
-                       }
-
-                       #xmlrpc_username password
-                       if ($l =~ /^xmlrpc_pass=(.*)/) {
-                               $XMLRPC_PASS = $1;
-                       }
-         
-                       #xmlrpc_url
-                       if ($l =~ /^xmlrpc_url=(.*)/) {
-                               $XMLRPC_URL = $1;
-                       }
-
-                       #is mysql ssl option enabled
-                       if ($l =~ /^enable_mysql_ssl=(yes)/) {
-                               $MYSQL_SSL = 1;
-                       }
-                       elsif ($l =~ /^enable_mysql_ssl=(no)/) {
-                               $MYSQL_SSL = 0;
-                       }
-
-                       #collect path to cert -- only valid if $MYSQL_SSL is 
true
-                       if ($l =~ /^mysql_ssl_cert=(.*)/) {
-                               $MYSQL_SSL_CERT = $1;
-                       }
+       elsif (!open(CONF, $CONF_FILE_PATH)) {
+               print STDERR "FATAL: failed to open vcld configuration file: 
$CONF_FILE_PATH, $!\n";
+               exit;
+       }
        
-                       #Sendmail Envelope Sender 
-                       if ($l =~ /^RETURNPATH=([,-.\@a-zA-Z0-9_]*)/) {
-                               $RETURNPATH = $1;
-                       }
-
-                       #jabber - stuff
-                       if ($l =~ /^jabber=(yes)/) {
-                               $JABBER = 1;
-                       }
-                       if ($l =~ /^jabber=(no)/) {
-                               $JABBER = 0;
-                       }
-                       #collect remaining pieces of the jabber settings
-                       #$jabServer,$jabUser,$jabPass,$jabResource,$jabPort
-                       if ($l =~ /^jabServer=([.a-zA-Z0-9]*)/) {
-                               $jabServer = $1;
-                       }
-                       if ($l =~ /^jabPort=([0-9]*)/) {
-                               $jabPort = $1;
-                       }
-                       if ($l =~ /^jabUser=(.*)/) {
-                               $jabUser = $1;
-                       }
-                       if ($l =~ /^jabPass=(.*)/) {
-                               $jabPass = $1;
-                       }
-                       if ($l =~ /^jabResource=(.*)/) {
-                               $jabResource = $1;
-                       }
-
-                       #process name
-                       if ($l =~ /^processname=([-_a-zA-Z0-9]*)/) {
-                               $PROCESSNAME = $1;
-                       }
-
-
-                       if ($l =~ /^windows_root_password=(.*)/i) {
-                               $WINDOWS_ROOT_PASSWORD = $1;
+       my @conf_file_lines = <CONF>;
+       close(CONF);
+       
+       my $line_number = 0;
+       foreach my $line (@conf_file_lines) {
+               $line_number++;
+               
+               $line =~ s/[\s]*$//g;
+               
+               # Skip commented and blank lines
+               if ($line =~ /^\s*#/ || $line !~ /\w/) {
+                       next;
+               }
+               
+               my ($parameter, $value) = $line =~ /\s*([^=]+)=(.+)/;
+               if (!defined($parameter) || !defined($value)) {
+                       print STDERR "WARNING: ignoring line $line_number in 
$CONF_FILE_PATH: $line\n";
+                       next;
+               }
+               
+               # Remove any leading and trailing spaces
+               for ($parameter, $value) {
+                       s/^\s+//;
+                       s/\s+$//;
+               }
+               
+               $parameter = lc($parameter);
+               
+               if (my $variable_ref = $parameters{$parameter}) {
+                       if (defined($$variable_ref)) {
+                               #print STDOUT "INFO: ignoring previously set 
parameter: $parameter\n";
                        }
-
-                       if ($l =~ /^verbose=(.*)/i && !$VERBOSE) {
-                               $VERBOSE = $1;
+                       else {
+                               $$variable_ref = $value;
+                               #print STDOUT "set parameter: '$parameter' = 
'$value'\n";
                        }
-
-            if ($l =~ /^defaulthelpemail=(.*)/i){
-                $DEFAULTHELPEMAIL = $1;
-            }
-                       
-               }    # Close foreach line in conf file
-       }    # Close open conf file
-
-       else {
-               die "failed to open vcld configuration file: $CONF_FILE_PATH, 
exiting --  $! \n";
-       }
-
-       if (!$PROCESSNAME) {
-               $PROCESSNAME = "vcld";
-       }
-       if (!($LOGFILE) && $LOGFILE ne '0') {
-               #set default
-               $LOGFILE = "/var/log/$PROCESSNAME.log";
+               }
+               else {
+                       print STDERR "WARNING: unsupported parameter found on 
line $line_number in $CONF_FILE_PATH: " . string_to_ascii($parameter) . "\n";
+               }
        }
-
-       if (!$WINDOWS_ROOT_PASSWORD) {
-               $WINDOWS_ROOT_PASSWORD = "clOudy";
+       
+       if (!$FQDN) {
+               print STDERR "FATAL: FQDN parameter must be configured in 
$CONF_FILE_PATH\n";
+               exit;
        }
-
-       if (!($FQDN)) {
-               print STDOUT "FQDN is not listed\n";
+       
+       $PROCESSNAME = 'vcld' if !$PROCESSNAME;
+       $PIDFILE = "/var/run/$PROCESSNAME.pid" if !$PIDFILE;
+       $LOGFILE = "/var/log/$PROCESSNAME.log" if !defined($LOGFILE);
+       $WINDOWS_ROOT_PASSWORD = "clOudy" if !defined($WINDOWS_ROOT_PASSWORD);
+       $DEFAULTHELPEMAIL = "vcl_help\@example.org" if !$DEFAULTHELPEMAIL;
+       
+       # Can't be both daemon mode and setup mode, use setup if both are set
+       if ($SETUP_MODE) {
+               $DAEMON_MODE = 0;
        }
-       if (!($PIDFILE)) {
-               #set default
-               $PIDFILE = "/var/run/$PROCESSNAME.pid";
+       elsif (!defined($DAEMON_MODE)) {
+               $DAEMON_MODE = 1;
        }
-       if (!($RETURNPATH)){
-               $RETURNPATH="";
+       
+       # Set boolean variables to 0 or 1, they may be set to 'no' or 'yes' in 
the conf file
+       for ($MYSQL_SSL, $JABBER, $VERBOSE, $DAEMON_MODE, $SETUP_MODE) {
+               if (!$_ || $_ =~ /no/i) {
+                       $_ = 0;
+               }
+               else {
+                       $_ = 1;
+               }
        }
-
+       
        if ($JABBER) {
-               #jabber is enabled - import required jabber module
-               # todo - check if Jabber module is installed
-               # i.e. perl -MNet::Jabber -e1
-               # check version -- perl -MNet::Jabber -e'print 
$Net::Jabber::VERSION\n";'
-               require "Net/Jabber.pm";
-               import Net::Jabber qw(client);
+               # Jabber is enabled - import required module
+               eval {
+                       require "Net/Jabber.pm";
+                       import Net::Jabber qw(client);
+               };
+               if ($EVAL_ERROR) {
+                       print STDERR "FATAL: failed to load Jabber module, 
error:\n$EVAL_ERROR\n";
+                       exit;
+               }
        }
-
-       # Can't be both daemon mode and setup mode, use setup if both are set
-       $DAEMON_MODE = 0 if ($DAEMON_MODE && $SETUP_MODE);
-
 } ## end INIT
 
-
-our ($JABBER, $PROCESSNAME);
-our %ERRORS = ('DEPENDENT' => 4, 'UNKNOWN' => 3, 'OK' => 0, 'WARNING' => 1, 
'CRITICAL' => 2, 'MAILMASTERS' => 5, 'DEBUG' => 6);
-our ($LockerWrtUser, $wrtPass,  $database,       $server);
-our ($jabServer,     $jabUser,  $jabPass,        $jabResource, $jabPort);
-our ($vcldquerykey, $RETURNPATH);
-our ($LOGFILE, $PIDFILE, $VCLDRPCQUERYKEY);
-our ($SERVER, $DATABASE, $WRTUSER, $WRTPASS);
-our ($MYSQL_SSL,       $MYSQL_SSL_CERT);
-our ($FQDN);
-our $XCATROOT           = "/opt/xcat";
-our $TOOLS              = "$FindBin::Bin/../tools";
-our $VMWARE_MAC_GENERATED;
-our $VERBOSE;
-our $CONF_FILE_PATH;
-our $WINDOWS_ROOT_PASSWORD;
-our ($XMLRPC_USER, $XMLRPC_PASS, $XMLRPC_URL);
-our $DAEMON_MODE;
-our $SETUP_MODE;
-our $BIN_PATH;
-
-our $DEFAULTHELPEMAIL = "vcl_help\@example.org"; # default value if 
affiliation helpaddress is not set
-
-sub makedatestring;
-
 #/////////////////////////////////////////////////////////////////////////////
 
 =head2 help
@@ -1196,8 +1132,14 @@ sub mail {
        if (!(defined($from))) {
                $from = $DEFAULTHELPEMAIL;
        }
-       my $localreturnpath = "-f $RETURNPATH";
-       my $mailer = Mail::Mailer->new("sendmail", $localreturnpath);
+       
+       my $mailer;
+       if (defined($RETURNPATH)) {
+               $mailer = Mail::Mailer->new("sendmail", "-f $RETURNPATH");
+       }
+       else {
+               $mailer = Mail::Mailer->new("sendmail");
+       }
        
        my $shared_mail_box = '';
        my $management_node_info = get_management_node_info();
@@ -2738,28 +2680,28 @@ sub notify_via_IM {
                }
                
                # Attempt to connect to the jabber server
-               my $jabber_connect_result = $jabber_client->Connect(hostname => 
$jabServer, port => $jabPort);
+               my $jabber_connect_result = $jabber_client->Connect(hostname => 
$JABBER_SERVER, port => $JABBER_PORT);
                if (!$jabber_connect_result) {
-                       notify($ERRORS{'DEBUG'}, 0, "connected to jabber 
server: $jabServer, port: $jabPort, result: $jabber_connect_result");
+                       notify($ERRORS{'DEBUG'}, 0, "connected to jabber 
server: $JABBER_SERVER, port: $JABBER_PORT, result: $jabber_connect_result");
                }
                else {
-                       notify($ERRORS{'WARNING'}, 0, "failed to connect to 
jabber server: $jabServer, port: $jabPort, result: $jabber_connect_result");
+                       notify($ERRORS{'WARNING'}, 0, "failed to connect to 
jabber server: $JABBER_SERVER, port: $JABBER_PORT, result: 
$jabber_connect_result");
                        return;
                }
                
                # Attempt to authenticate to jabber
                my @jabber_auth_result = $jabber_client->AuthSend(
-                       username => $jabUser,
-                       password => $jabPass,
-                       resource => $jabResource
+                       username => $JABBER_USER,
+                       password => $JABBER_PASSWORD,
+                       resource => $JABBER_RESOURCE
                );
                
                # Check the jabber authentication result
                if ($jabber_auth_result[0] && $jabber_auth_result[0] eq "ok") {
-                       notify($ERRORS{'DEBUG'}, 0, "authenticated to jabber 
server: $jabServer, user: $jabUser, resource: $jabResource");
+                       notify($ERRORS{'DEBUG'}, 0, "authenticated to jabber 
server: $JABBER_SERVER, user: $JABBER_USER, resource: $JABBER_RESOURCE");
                }
                else {
-                       notify($ERRORS{'WARNING'}, 0, "failed to authenticate 
to jabber server: $jabServer, user: $jabUser, resource: $jabResource");
+                       notify($ERRORS{'WARNING'}, 0, "failed to authenticate 
to jabber server: $JABBER_SERVER, user: $JABBER_USER, resource: 
$JABBER_RESOURCE");
                        return;
                }
        
@@ -2778,7 +2720,7 @@ sub notify_via_IM {
                        notify($ERRORS{'OK'}, 0, "jabber message sent to 
$im_id");
                }
                else {
-                       notify($ERRORS{'WARNING'}, 0, "failed to send jabber 
message to $jabUser");
+                       notify($ERRORS{'WARNING'}, 0, "failed to send jabber 
message to $JABBER_USER");
                        return;
                }
                
@@ -3995,7 +3937,7 @@ EOF
                        notify($ERRORS{'DEBUG'}, 0, "decrypted vmprofile 
password with key: " . $vmhost_info->{vmprofile}{rsakey});
                }
                else {
-                       Nnotify($ERRORS{'WARNING'}, 0, "unable to decrypt 
vmprofile password");    
+                       notify($ERRORS{'WARNING'}, 0, "unable to decrypt 
vmprofile password");    
                }
        }
        # Clean up the extraneous data
@@ -7494,6 +7436,22 @@ sub get_caller_trace {
 
 #/////////////////////////////////////////////////////////////////////////////
 
+=head2 get_calling_subroutine
+
+ Parameters  : none
+ Returns     : string
+ Description : Returns the name of the subroutine which called the subroutine 
in
+               which get_calling_subroutine is called.
+
+=cut
+
+sub get_calling_subroutine {
+       my @caller = caller(2);
+       return $caller[3];
+}
+
+#/////////////////////////////////////////////////////////////////////////////
+
 =head2 get_management_node_id
 
  Parameters  :


Reply via email to