Class: Pvectl::Repositories::TimeConfig

Inherits:
Base
  • Object
show all
Defined in:
lib/pvectl/repositories/time_config.rb

Overview

Repository for Proxmox node time and timezone settings.

Wraps the ‘/nodes/node/time` API endpoint:

  • GET fetches ‘localtime, timezone`

  • PUT sets the timezone (the only writable field)

Examples:

Fetching time

repo = TimeConfig.new(connection)
config = repo.fetch("pve1")
config.timezone #=> "Europe/Warsaw"

Setting timezone

repo.set_timezone("pve1", "UTC")

See Also:

Instance Method Summary collapse

Methods inherited from Base

#get, #initialize, #list

Constructor Details

This class inherits a constructor from Pvectl::Repositories::Base

Instance Method Details

#fetch(node_name) ⇒ Models::TimeConfig

Fetches time and timezone settings for a node.

Parameters:

  • node_name (String)

    cluster node name

Returns:



26
27
28
29
30
# File 'lib/pvectl/repositories/time_config.rb', line 26

def fetch(node_name)
  response = connection.client["nodes/#{node_name}/time"].get
  data = extract_data(response) || {}
  build_model(data.merge(node_name: node_name))
end

#set_timezone(node_name, timezone) ⇒ nil

Sets the timezone on a node.

Parameters:

  • node_name (String)

    cluster node name

  • timezone (String)

    IANA timezone identifier (e.g., “Europe/Warsaw”)

Returns:

  • (nil)

    Proxmox returns null on success



37
38
39
40
# File 'lib/pvectl/repositories/time_config.rb', line 37

def set_timezone(node_name, timezone)
  connection.client["nodes/#{node_name}/time"].put(timezone: timezone)
  nil
end