Class: Pvectl::Repositories::Dns
- Defined in:
- lib/pvectl/repositories/dns.rb,
sig/pvectl/repositories/dns.rbs
Overview
Repository for per-node DNS resolver settings.
Uses the /nodes/{node}/dns endpoint to fetch and update
the DNS configuration of a single node.
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#build_model(data) ⇒ Models::DnsConfig
Builds DnsConfig model from API data.
-
#fetch(node_name) ⇒ Models::DnsConfig
Fetches the DNS configuration for a node.
-
#update(node_name, params = {}) ⇒ void
Updates the DNS configuration for a node.
Methods inherited from Base
#extract_data, #get, #initialize, #list, #models_from, #unwrap
Constructor Details
This class inherits a constructor from Pvectl::Repositories::Base
Instance Method Details
#build_model(data) ⇒ Models::DnsConfig
Builds DnsConfig model from API data.
49 50 51 |
# File 'lib/pvectl/repositories/dns.rb', line 49 def build_model(data) Models::DnsConfig.new(data) end |
#fetch(node_name) ⇒ Models::DnsConfig
Fetches the DNS configuration for a node.
25 26 27 28 29 |
# File 'lib/pvectl/repositories/dns.rb', line 25 def fetch(node_name) response = connection.client["nodes/#{node_name}/dns"].get data = extract_data(response) || {} build_model(data.merge(node: node_name)) end |
#update(node_name, params = {}) ⇒ void
This method returns an undefined value.
Updates the DNS configuration for a node.
The Proxmox PUT endpoint requires search and accepts optional
dns1, dns2, dns3. Only provided keys are sent.
39 40 41 |
# File 'lib/pvectl/repositories/dns.rb', line 39 def update(node_name, params = {}) connection.client["nodes/#{node_name}/dns"].put(params) end |