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

client, #client, config_get, #config_get, #config_get_default, config_get_default, config_set, #config_set, #get, #ios_xr?, #nexus?, #node, node, platform, #platform, supports?, #supports?

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

.ntpserversObject



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

#createObject



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

#destroyObject



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

#nameObject



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

def name
  @ntpserver_id
end

#preferObject



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

def prefer
  @ntpserver_prefer
end