Add fail_mode parameter to OVS Ports
According to info in https://bugs.launchpad.net/tripleo/+bug/1640812
when setting a OVS bridge with physical interface we need to
define fail_mode in OVS_EXTRA parameter of ifcfg to make
sure it's set at the desired mode after reboot.
This patch adds new parameter fail_mode to vs_port (as ifcfg is created
as part of vs_port, not vs_bridge) and defaults it to required value "standalone".
Similar patch was implemented to os-net-config in
e479535b50
Change-Id: I5f7448e3504c9190d7fe5f4a7958c604ef91a058
Closes-Bug: #1656795
This commit is contained in:
parent
8aa83e6265
commit
026f64ade4
@ -44,7 +44,7 @@ Puppet::Type.type(:vs_port).provide(
|
|||||||
|
|
||||||
if interface_physical?
|
if interface_physical?
|
||||||
template = DEFAULT
|
template = DEFAULT
|
||||||
extras = nil
|
extras = { 'OVS_EXTRA' => "\"set bridge #{@resource[:bridge]} fail_mode=#{@resource[:fail_mode]}\"" }
|
||||||
|
|
||||||
if link?
|
if link?
|
||||||
extras = dynamic_default if dynamic?
|
extras = dynamic_default if dynamic?
|
||||||
@ -132,7 +132,7 @@ Puppet::Type.type(:vs_port).provide(
|
|||||||
bridge_mac_address = File.read("/sys/class/net/#{@resource[:port]}/address").chomp
|
bridge_mac_address = File.read("/sys/class/net/#{@resource[:port]}/address").chomp
|
||||||
if bridge_mac_address != ''
|
if bridge_mac_address != ''
|
||||||
list.merge!({ 'OVS_EXTRA' =>
|
list.merge!({ 'OVS_EXTRA' =>
|
||||||
"\"set bridge #{@resource[:bridge]} other-config:hwaddr=#{bridge_mac_address}\"" })
|
"\"set bridge #{@resource[:bridge]} other-config:hwaddr=#{bridge_mac_address} fail_mode=#{@resource[:fail_mode]}\"" })
|
||||||
end
|
end
|
||||||
list
|
list
|
||||||
end
|
end
|
||||||
|
@ -152,6 +152,17 @@ Puppet::Type.newtype(:vs_port) do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
newparam(:fail_mode) do
|
||||||
|
desc "Set fail mode for this port.
|
||||||
|
|
||||||
|
Possible values are 'standalone' or 'secure'.
|
||||||
|
By default standalone is used."
|
||||||
|
|
||||||
|
defaultto "standalone"
|
||||||
|
|
||||||
|
newvalues(:"standalone", :"secure")
|
||||||
|
end
|
||||||
|
|
||||||
autorequire(:vs_bridge) do
|
autorequire(:vs_bridge) do
|
||||||
self[:bridge] if self[:bridge]
|
self[:bridge] if self[:bridge]
|
||||||
end
|
end
|
||||||
|
17
spec/unit/puppet/lib/type/vs_port_spec.rb
Normal file
17
spec/unit/puppet/lib/type/vs_port_spec.rb
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Puppet::Type.type(:vs_port) do
|
||||||
|
|
||||||
|
it "should support only secure and standalone as a value for fail_mode" do
|
||||||
|
expect do
|
||||||
|
described_class.new(:name => 'foo', :ensure => :present, :fail_mode => 'secure')
|
||||||
|
end.to_not raise_error
|
||||||
|
expect do
|
||||||
|
described_class.new(:name => 'foo', :ensure => :present, :fail_mode => 'standalone')
|
||||||
|
end.to_not raise_error
|
||||||
|
expect do
|
||||||
|
described_class.new(:name => 'foo', :ensure => :present, :fail_mode => 'nomode')
|
||||||
|
end.to raise_error(Puppet::ResourceError, /Invalid value/)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user