Rework the error routine so it will not error out.
- Under a certain condition, the variable $freenas_rest_connection would not be defined resulting in a perl ‘blessed’ error. Added logic to see if a variable is being passed in the @_ and use it, else use $freenas_rest_connection. - Use caller (1)[3] instead of passing the function name through the @_.
This commit is contained in:
parent
739b6fb0f6
commit
a40e0ac299
|
|
@ -358,7 +358,7 @@ sub freenas_api_connect {
|
|||
syslog("info", (caller(0))[3] . " : REST connection successful to '" . $apihost . "' using the '" . $scheme . "' protocol");
|
||||
$runawayprevent = 0;
|
||||
} elsif ($runawayprevent > 1) { # Make sure we are not recursion calling.
|
||||
freenas_api_log_error($freenas_server_list->{$apihost}, "freenas_api_call");
|
||||
freenas_api_log_error($freenas_server_list->{$apihost});
|
||||
die "Loop recursion prevention";
|
||||
} elsif ($code == 302) { # A 302 from FreeNAS means it doesn't like v1.0 APIs.
|
||||
syslog("info", (caller(0))[3] . " : Changing to v2.0 API's");
|
||||
|
|
@ -371,7 +371,7 @@ sub freenas_api_connect {
|
|||
$scfg->{freenas_use_ssl} = 1;
|
||||
freenas_api_connect($scfg);
|
||||
} else { # For now, any other code we fail.
|
||||
freenas_api_log_error($freenas_server_list->{$apihost}, "freenas_api_call");
|
||||
freenas_api_log_error($freenas_server_list->{$apihost});
|
||||
die "Unable to connect to the FreeNAS API service at '" . $apihost . "' using the '" . $scheme . "' protocol";
|
||||
}
|
||||
$freenas_rest_connection = $freenas_server_list->{$apihost};
|
||||
|
|
@ -448,9 +448,10 @@ sub freenas_api_call {
|
|||
# Writes the Response and Content to SysLog
|
||||
#
|
||||
sub freenas_api_log_error {
|
||||
my ($method) = @_;
|
||||
syslog("info","[ERROR]FreeNAS::API::" . $method . " : Response code: " . $freenas_rest_connection->responseCode());
|
||||
syslog("info","[ERROR]FreeNAS::API::" . $method . " : Response content: " . $freenas_rest_connection->responseContent());
|
||||
my ($rest_connection) = @_;
|
||||
my $connection = ((defined $rest_connection) ? $rest_connection : $freenas_rest_connection);
|
||||
syslog("info","[ERROR]FreeNAS::API::" . (caller(1))[3] . " : Response code: " . $connection->responseCode());
|
||||
syslog("info","[ERROR]FreeNAS::API::" . (caller(1))[3] . " : Response content: " . $connection->responseContent());
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -469,7 +470,7 @@ sub freenas_iscsi_get_globalconfiguration {
|
|||
syslog("info", (caller(0))[3] . " : target_basename=" . $result->{$freenas_api_variables->{'basename'}});
|
||||
return $result;
|
||||
} else {
|
||||
freenas_api_log_error("get_globalconfig");
|
||||
freenas_api_log_error();
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
|
|
@ -490,7 +491,7 @@ sub freenas_iscsi_get_extent {
|
|||
syslog("info", (caller(0))[3] . " : successful");
|
||||
return $result;
|
||||
} else {
|
||||
freenas_api_log_error("get_extent");
|
||||
freenas_api_log_error();
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
|
|
@ -526,7 +527,7 @@ sub freenas_iscsi_create_extent {
|
|||
syslog("info", "FreeNAS::API::create_extent(lun_path=" . $result->{$freenas_api_variables->{'extentpath'}} . ") : successful");
|
||||
return $result;
|
||||
} else {
|
||||
freenas_api_log_error("create_extent");
|
||||
freenas_api_log_error();
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
|
|
@ -548,7 +549,7 @@ sub freenas_iscsi_remove_extent {
|
|||
syslog("info", (caller(0))[3] . "(extent_id=$extent_id) : successful");
|
||||
return 1;
|
||||
} else {
|
||||
freenas_api_log_error("remove_extent");
|
||||
freenas_api_log_error();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -569,7 +570,7 @@ sub freenas_iscsi_get_target {
|
|||
syslog("info", (caller(0))[3] . " : successful");
|
||||
return $result;
|
||||
} else {
|
||||
freenas_api_log_error("get_target");
|
||||
freenas_api_log_error();
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
|
|
@ -599,7 +600,7 @@ sub freenas_iscsi_get_target_to_extent {
|
|||
}
|
||||
return $result;
|
||||
} else {
|
||||
freenas_api_log_error("get_target_to_extent");
|
||||
freenas_api_log_error();
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
|
|
@ -630,7 +631,7 @@ sub freenas_iscsi_create_target_to_extent {
|
|||
syslog("info", (caller(0))[3] . "(target_id=$target_id, extent_id=$extent_id, lun_id=$lun_id) : successful");
|
||||
return $result;
|
||||
} else {
|
||||
freenas_api_log_error("create_target_to_extent");
|
||||
freenas_api_log_error();
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
|
|
@ -658,7 +659,7 @@ sub freenas_iscsi_remove_target_to_extent {
|
|||
syslog("info", (caller(0))[3] . "(link_id=$link_id) : successful");
|
||||
return 1;
|
||||
} else {
|
||||
freenas_api_log_error("remove_target_to_extent");
|
||||
freenas_api_log_error();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue