Class: Cisco::NtpServer

Inherits:
NodeUtil show all
Defined in:
lib/cisco_node_utils/ntp_server.rb

Overview

NtpServer - node utility class for NTP Server configuration management

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from NodeUtil

config_get, #config_get, config_get_default, #config_get_default, #config_set, config_set, #node, node, #show

Constructor Details

#initialize(ntpserver_id, prefer, instantiate = true) ⇒ NtpServer

Returns a new instance of NtpServer.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/cisco_node_utils/ntp_server.rb', line 25

def initialize(ntpserver_id, prefer, instantiate=true)
  @ntpserver_id = ntpserver_id.to_s
  @ntpserver_prefer = prefer

  unless @ntpserver_id =~ /^[a-zA-Z0-9\.\:]*$/
    fail ArgumentError,
         'Invalid value (IPv4/IPv6 address contains invalid characters)'
  end

  begin
    IPAddr.new(@ntpserver_id)
  rescue
    raise ArgumentError,
          'Invalid value (Name is not a valid single IPv4/IPv6 address)'
  end

  unless @ntpserver_prefer == true ||
         @ntpserver_prefer == false ||
         @ntpserver_prefer.nil?
    fail ArgumentError, 'Invalid value(prefer must be true or false)'
  end
  create if instantiate
end

Class Method Details

.ntpservers ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/cisco_node_utils/ntp_server.rb', line 49

def self.ntpservers
  hash = {}
  ntpservers_list = config_get('ntp_server', 'server')
  return hash if ntpservers_list.empty?

  preferred_servers = config_get('ntp_server', 'prefer')

  ntpservers_list.each do |id|
    hash[id] = NtpServer.new(id, preferred_servers.include?(id), false)
  end

  hash
end

Instance Method Details

#==(other) ⇒ Object



63
64
65
# File 'lib/cisco_node_utils/ntp_server.rb', line 63

def ==(other)
  name == other.name && prefer == other.prefer
end

#create ⇒ Object



67
68
69
70
# File 'lib/cisco_node_utils/ntp_server.rb', line 67

def create
  config_set('ntp_server', 'server', state: '', ip: @ntpserver_id,
              prefer: @ntpserver_prefer ? 'prefer' : '')
end

#destroy ⇒ Object



72
73
74
75
# File 'lib/cisco_node_utils/ntp_server.rb', line 72

def destroy
  config_set('ntp_server', 'server',
             state: 'no', ip: @ntpserver_id, prefer: '')
end

#name ⇒ Object



77
78
79
# File 'lib/cisco_node_utils/ntp_server.rb', line 77

def name
  @ntpserver_id
end

#prefer ⇒ Object



81
82
83
# File 'lib/cisco_node_utils/ntp_server.rb', line 81

def prefer
  @ntpserver_prefer
end