Class: Puppet::Provider::NetworkDns::CiscoNexus
- Inherits:
-
ResourceApi::SimpleProvider
- Object
- ResourceApi::SimpleProvider
- Puppet::Provider::NetworkDns::CiscoNexus
- Defined in:
- lib/puppet/provider/network_dns/cisco_nexus.rb
Overview
Implementation for the network_dns type using the Resource API.
Instance Method Summary collapse
- #canonicalize(_context, resources) ⇒ Object
- #delete(_context, _name) ⇒ Object
- #get(_context, vrf = nil) ⇒ Object
-
#handle_domain(value) ⇒ Object
handle the domain, i.e.
-
#handle_hostname(value) ⇒ Object
handle the hostname, i.e.
- #handle_searches(values) ⇒ Object
- #handle_servers(values) ⇒ Object
- #update(context, name, should) ⇒ Object
- #validate_name(name) ⇒ Object
Instance Method Details
#canonicalize(_context, resources) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/puppet/provider/network_dns/cisco_nexus.rb', line 18 def canonicalize(_context, resources) require 'cisco_node_utils' resources.each do |resource| resource[:search] = resource[:search].sort if resource[:search] resource[:servers] = resource[:servers].sort if resource[:servers] end resources end |
#delete(_context, _name) ⇒ Object
61 62 63 |
# File 'lib/puppet/provider/network_dns/cisco_nexus.rb', line 61 def delete(_context, _name) raise Puppet::ResourceError, 'This provider does not support ensure => absent' end |
#get(_context, vrf = nil) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/puppet/provider/network_dns/cisco_nexus.rb', line 27 def get(_context, vrf=nil) require 'cisco_node_utils' @domain = Cisco::DomainName.domainnames @searches = Cisco::DnsDomain.dnsdomains || {} @servers = Cisco::NameServer.nameservers || {} @hostname = Cisco::HostName.hostname || {} current_state = { name: (vrf.nil? || vrf.empty?) ? 'settings' : vrf.first, ensure: 'present', domain: @domain.keys.first, hostname: @hostname.keys.first, search: @searches.keys.sort, servers: @servers.keys.sort, } [current_state] end |
#handle_domain(value) ⇒ Object
handle the domain, i.e. if ” then destroy all domains and do not create one
103 104 105 106 107 108 109 110 111 |
# File 'lib/puppet/provider/network_dns/cisco_nexus.rb', line 103 def handle_domain(value) @domain = Cisco::DomainName.domainnames if value == '' @domain[@domain.keys.first].destroy if @domain[@domain.keys.first] else @domain[value].destroy if @domain[value] Cisco::DomainName.new(value) end end |
#handle_hostname(value) ⇒ Object
handle the hostname, i.e. if ” then destroy all hostnames and do not create one
91 92 93 94 95 96 97 98 99 |
# File 'lib/puppet/provider/network_dns/cisco_nexus.rb', line 91 def handle_hostname(value) @hostname = Cisco::HostName.hostname || {} if value == '' @hostname[@hostname.keys.first].destroy if @hostname[@hostname.keys.first] else @hostname[value].destroy if @hostname[value] Cisco::HostName.new(value) end end |
#handle_searches(values) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/puppet/provider/network_dns/cisco_nexus.rb', line 77 def handle_searches(values) @searches = Cisco::DnsDomain.dnsdomains || {} to_remove = @searches.keys - values to_create = values - @searches.keys to_remove.each do |search| @searches[search].destroy end to_create.each do |search| Cisco::DnsDomain.new(search) end end |
#handle_servers(values) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/puppet/provider/network_dns/cisco_nexus.rb', line 65 def handle_servers(values) @servers = Cisco::NameServer.nameservers || {} to_remove = @servers.keys - values to_create = values - @servers.keys to_remove.each do |server| @servers[server].destroy end to_create.each do |server| Cisco::NameServer.new(server) end end |
#update(context, name, should) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/puppet/provider/network_dns/cisco_nexus.rb', line 46 def update(context, name, should) validate_name(name) context.notice("Updating '#{name}' with #{should.inspect}") @domain = Cisco::DomainName.domainnames @searches = Cisco::DnsDomain.dnsdomains || {} @servers = Cisco::NameServer.nameservers || {} @hostname = Cisco::HostName.hostname || {} handle_hostname(should[:hostname]) if should[:hostname] handle_domain(should[:domain]) if should[:domain] handle_servers(should[:servers]) if should[:servers] handle_searches(should[:search]) if should[:search] end |
#validate_name(name) ⇒ Object
113 114 115 |
# File 'lib/puppet/provider/network_dns/cisco_nexus.rb', line 113 def validate_name(name) raise Puppet::ResourceError, '`name` must be `settings`' if name != 'settings' end |