[pve-devel] [RFC common 1/1] REST environment: add static log_warn function
Fabian Ebner
f.ebner at proxmox.com
Wed Sep 1 13:02:05 CEST 2021
Am 23.08.21 um 18:22 schrieb Thomas Lamprecht:
> On 06/08/2021 14:57, Fabian Ebner wrote:
>> which can be called even when the environment is not initialized.
>>
>> Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
>> ---
>> src/PVE/RESTEnvironment.pm | 12 +++++++++---
>> 1 file changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/PVE/RESTEnvironment.pm b/src/PVE/RESTEnvironment.pm
>> index 189a6cd..4278966 100644
>> --- a/src/PVE/RESTEnvironment.pm
>> +++ b/src/PVE/RESTEnvironment.pm
>> @@ -712,14 +712,20 @@ sub fork_worker {
>> return wantarray ? ($upid, $res) : $upid;
>> }
>>
>> -sub warn {
>> - my ($self, $message) = @_;
>> +sub log_warn {
>> + my ($message) = @_;
>>
>> chomp($message);
>>
>> print STDERR "WARN: $message\n";
>>
>> - $self->{warning_count}++;
>> + $rest_env->{warning_count}++ if $rest_env;
>> +}
>> +
>> +sub warn {
>> + my ($self, $message) = @_;
>> +
>> + log_warn($message);
>> }
>>
>> # Abstract function
>>
>
> The approach seems OK-ish in general to me, was there any off-list discussion against this
> or just not prioritized for review yet?
>
I can't remember any off-list discussion about this, but I'm wondering
two things:
1. Would adding an EXPORT_OK for the function be ok?
2. The following approach leads to a bit of duplication, but would
ensure that if a derived class overrides warn() then log_warn() will use
that one too. Should that be preferred?
diff --git a/src/PVE/RESTEnvironment.pm b/src/PVE/RESTEnvironment.pm
index 189a6cd..bf10040 100644
--- a/src/PVE/RESTEnvironment.pm
+++ b/src/PVE/RESTEnvironment.pm
@@ -712,6 +712,17 @@ sub fork_worker {
return wantarray ? ($upid, $res) : $upid;
}
+sub log_warn {
+ my ($message) = @_;
+
+ if ($rest_env) {
+ $rest_env->warn($message);
+ } else {
+ chomp($message);
+ print STDERR "WARN: $message\n";
+ }
+}
+
sub warn {
my ($self, $message) = @_;
More information about the pve-devel
mailing list