Class: Iface::RangeFile

Inherits:
ConfigFile show all
Defined in:
lib/iface/config_file.rb

Overview

Represents a range config file (a range of IP addresses)

These are files named like “ifcfg-eth0-range0”.

Instance Attribute Summary collapse

Attributes inherited from ConfigFile

#device, #filename, #vars

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ConfigFile

create, file_type_name, parse_filename, #to_s, #value_set_class

Constructor Details

#initialize(filename, device, range_num, clone_num, io) ⇒ RangeFile

Returns a new instance of RangeFile.



175
176
177
178
179
180
# File 'lib/iface/config_file.rb', line 175

def initialize(filename, device, range_num, clone_num, io)
  super
  @start_ip_num = string_to_ip_num(vars['ipaddr_start'])
  @end_ip_num = string_to_ip_num(vars['ipaddr_end'])
  @start_clone_num = vars['clonenum_start']&.to_i
end

Instance Attribute Details

#start_clone_numObject (readonly)

Returns the value of attribute start_clone_num.



169
170
171
# File 'lib/iface/config_file.rb', line 169

def start_clone_num
  @start_clone_num
end

Class Method Details

.recognize?(_device, range_num, _clone_num) ⇒ Boolean

Returns:

  • (Boolean)


171
172
173
# File 'lib/iface/config_file.rb', line 171

def self.recognize?(_device, range_num, _clone_num)
  !range_num.nil?
end

Instance Method Details

#end_ip_numObject



195
196
197
# File 'lib/iface/config_file.rb', line 195

def end_ip_num
  @end_ip_num.to_ip
end

#include?(ip) ⇒ Boolean

Returns:

  • (Boolean)


186
187
188
189
# File 'lib/iface/config_file.rb', line 186

def include?(ip)
  ip_num = string_to_ip_num(ip)
  @start_ip_num <= ip_num && ip_num <= @end_ip_num
end

#start_ip_numObject



191
192
193
# File 'lib/iface/config_file.rb', line 191

def start_ip_num
  @start_ip_num.to_ip
end

#static?Boolean

Returns:

  • (Boolean)


182
183
184
# File 'lib/iface/config_file.rb', line 182

def static?
  true
end

#string_to_ip_num(str) ⇒ Object



199
200
201
# File 'lib/iface/config_file.rb', line 199

def string_to_ip_num(str)
  str.split('.').collect { |x| x.to_i.to_s(16).rjust(2, '0') }.join.hex
end