[pve-devel] [PATCH manager 1/1] Fix #7175: use timedatectl for timezone handling
Fabian Grünbichler
f.gruenbichler at proxmox.com
Thu Jan 15 11:25:55 CET 2026
On December 25, 2025 9:05 am, Stefan Mayr wrote:
> Suggested-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
> Signed-off-by: Stefan Mayr <stefan at mayr-stefan.de>
> ---
> PVE/API2/Nodes.pm | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
> index 6a6465b6..54ed712e 100644
> --- a/PVE/API2/Nodes.pm
> +++ b/PVE/API2/Nodes.pm
> @@ -1582,10 +1582,15 @@ __PACKAGE__->register_method({
> code => sub {
> my ($param) = @_;
>
> + my $timezone;
> my $ctime = time();
> my $ltime = timegm_nocheck(localtime($ctime));
> + PVE::Tools::run_command(
> + ['timedatectl', 'show', '--property=Timezone', '--value'],
> + outfunc => sub { $timezone //= shift },
> + );
> my $res = {
> - timezone => PVE::INotify::read_file('timezone'),
> + timezone => $timezone,
> time => $ctime,
> localtime => $ltime,
> };
> @@ -1619,7 +1624,7 @@ __PACKAGE__->register_method({
> code => sub {
> my ($param) = @_;
>
> - PVE::INotify::write_file('timezone', $param->{timezone});
> + PVE::Tools::run_command(['timedatectl', 'set-timezone', $param->{timezone}]);
should we restrict this parameter? AFAICT, only [a-zA-Z][a-zA-Z/_\-]*
are currently valid in timezone values?
alternatively we could query the valid names first (list-timezones) and
then check that the passed value is contained in that set..
>
> return;
> },
> --
> 2.34.1
>
>
>
More information about the pve-devel
mailing list