+++ /dev/null
-module IFCFG
- class OVS
- attr_reader :ifcfg
-
- def self.exists?(name)
- File.exist?(BASE + name)
- end
-
- def self.remove(name)
- File.delete(BASE + name)
- rescue Errno::ENOENT
- end
-
- def initialize(name, seed=nil)
- @name = name
- @ifcfg = {}
- set(seed)
- set_key('DEVICE', @name)
- set_key('DEVICETYPE', 'ovs')
- replace_key('BOOTPROTO', 'OVSBOOTPROTO') if self.class == IFCFG::Bridge
- end
-
- def del_key(key)
- @ifcfg.delete(key)
- end
-
- def key?(key)
- @ifcfg.has_key?(key)
- end
-
- def key(key)
- @ifcfg.has_key?(key)
- end
-
- def replace_key(key, new_key)
- value = @ifcfg[key]
- @ifcfg.delete(key)
- set_key(new_key, value)
- end
-
- def set(list)
- if list != nil && list.class == Hash
- list.each { |key, value| set_key(key, value) }
- end
- end
-
- def set_key(key, value)
- @ifcfg.delete_if { |k, v| k == key } if self.key?(key)
- @ifcfg.merge!({key => value })
- end
-
- def to_s
- str = ''
- @ifcfg.each { |x, y|
- str << "#{x}=#{y}\n"
- }
- str
- end
-
- def save(filename)
- File.open(filename, 'w') { |file| file << self.to_s }
- end
- end
-
- class Bridge < OVS
- def initialize(name, template=nil)
- super(name, template)
- set_key('TYPE', 'OVSBridge')
- del_key('HWADDR')
- end
- end
-
- class Port < OVS
- def initialize(name, bridge)
- super(name)
- set_key('TYPE', 'OVSPort')
- set_key('OVS_BRIDGE', bridge)
- set_key('ONBOOT', 'yes')
- set_key('BOOTPROTO', 'none')
- end
- end
-end