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?
|
||||
template = DEFAULT
|
||||
extras = nil
|
||||
extras = { 'OVS_EXTRA' => "\"set bridge #{@resource[:bridge]} fail_mode=#{@resource[:fail_mode]}\"" }
|
||||
|
||||
if link?
|
||||
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
|
||||
if bridge_mac_address != ''
|
||||
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
|
||||
list
|
||||
end
|
||||
|
|
|
@ -152,6 +152,17 @@ Puppet::Type.newtype(:vs_port) do
|
|||
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
|
||||
self[:bridge] if self[:bridge]
|
||||
end
|
||||
|
|
|
@ -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