Fix adding lnx bond to ovs bridge issue
Change-Id: I77879ee472c9860e30c7117c3903d15f0b009195 Closes-bug: #1524355
This commit is contained in:
parent
1418dacbd0
commit
4fe44b9266
@ -188,7 +188,7 @@ Puppet::Type.type(:l2_bond).provide(:lnx, :parent => Puppet::Provider::Lnx_base)
|
||||
# do not remove bridge-based interface from his bridge
|
||||
case port_bridges_hash[@resource[:bond]][:br_type]
|
||||
when :ovs
|
||||
ovs_vsctl(['del-port', br_name, @resource[:bond]])
|
||||
self.class.ovs_vsctl(['del-port', br_name, @resource[:bond]])
|
||||
# todo catch exception
|
||||
when :lnx
|
||||
self.class.brctl(['delif', br_name, @resource[:bond]])
|
||||
@ -202,7 +202,7 @@ Puppet::Type.type(:l2_bond).provide(:lnx, :parent => Puppet::Provider::Lnx_base)
|
||||
if !@property_flush[:bridge].nil? and @property_flush[:bridge].to_sym != :absent
|
||||
case @bridges[@property_flush[:bridge]][:br_type]
|
||||
when :ovs
|
||||
ovs_vsctl(['add-port', @property_flush[:bridge], @resource[:bond]])
|
||||
self.class.ovs_vsctl(['add-port', @property_flush[:bridge], @resource[:bond]])
|
||||
when :lnx
|
||||
self.class.brctl(['addif', @property_flush[:bridge], @resource[:bond]])
|
||||
else
|
||||
|
@ -185,3 +185,67 @@ describe Puppet::Type.type(:l2_bond).provider(:lnx) do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe Puppet::Type.type(:l2_bond).provider(:lnx) do
|
||||
|
||||
let(:resource) {
|
||||
Puppet::Type.type(:l2_bond).new(
|
||||
:provider => :lnx,
|
||||
:name => 'bond12',
|
||||
:bridge => 'br-ovs',
|
||||
:slaves => ['eth1', 'eth2'],
|
||||
:bond_properties => {
|
||||
'mode' => '802.3ad',
|
||||
'lacp_rate' => 'fast',
|
||||
'xmit_hash_policy' => 'layer2+3',
|
||||
'updelay' => '111',
|
||||
'downdelay' => '222',
|
||||
'ad_select' => '2',
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
let(:provider) { resource.provider }
|
||||
let(:instance) { provider.class.instances }
|
||||
|
||||
describe "lnx bond in ovs bridge" do
|
||||
before(:each) do
|
||||
puppet_debug_override()
|
||||
provider.class.stubs(:iproute).with('addr', 'flush', 'dev', 'eth1').returns(true)
|
||||
provider.class.stubs(:iproute).with('addr', 'flush', 'dev', 'eth2').returns(true)
|
||||
end
|
||||
|
||||
it "Create lnx bond and put into ovs bridge" do
|
||||
provider.class.stubs(:set_sys_class).with('/sys/class/net/bonding_masters', '+bond12').returns(true)
|
||||
provider.class.stubs(:get_sys_class).with("/sys/class/net/bond12/bonding/slaves", true).returns([])
|
||||
provider.class.stubs(:set_sys_class).with('/sys/class/net/bond12/bonding/slaves', '+eth1').returns(true)
|
||||
provider.class.stubs(:set_sys_class).with('/sys/class/net/bond12/bonding/slaves', '+eth2').returns(true)
|
||||
provider.class.stubs(:interface_down).with('bond12').returns(true)
|
||||
provider.class.stubs(:interface_down).with('bond12', true).returns(true)
|
||||
provider.class.stubs(:interface_down).with('eth1').returns(true)
|
||||
provider.class.stubs(:interface_down).with('eth2').returns(true)
|
||||
provider.class.stubs(:get_sys_class).with('/sys/class/net/bond12/bonding/mode').returns('balance-rr')
|
||||
provider.class.stubs(:set_sys_class).with('/sys/class/net/bond12/bonding/mode', '802.3ad').returns(true)
|
||||
provider.class.stubs(:get_sys_class).with('/sys/class/net/bond12/bonding/xmit_hash_policy').returns('layer2')
|
||||
provider.class.stubs(:set_sys_class).with('/sys/class/net/bond12/bonding/xmit_hash_policy', 'layer2+3').returns(true)
|
||||
provider.class.stubs(:get_sys_class).with('/sys/class/net/bond12/bonding/lacp_rate').returns('slow')
|
||||
provider.class.stubs(:set_sys_class).with('/sys/class/net/bond12/bonding/lacp_rate', 'fast').returns(true)
|
||||
provider.class.stubs(:get_sys_class).with('/sys/class/net/bond12/bonding/ad_select').returns('stable')
|
||||
provider.class.stubs(:set_sys_class).with('/sys/class/net/bond12/bonding/ad_select', '2').returns(true)
|
||||
provider.class.stubs(:get_sys_class).with('/sys/class/net/bond12/bonding/updelay').returns('0')
|
||||
provider.class.stubs(:set_sys_class).with('/sys/class/net/bond12/bonding/updelay', '111').returns(true)
|
||||
provider.class.stubs(:get_sys_class).with('/sys/class/net/bond12/bonding/downdelay').returns('0')
|
||||
provider.class.stubs(:set_sys_class).with('/sys/class/net/bond12/bonding/downdelay', '222').returns(true)
|
||||
provider.class.stubs(:get_bridge_list).returns({'br-ovs'=>{:br_type=>:ovs},})
|
||||
provider.class.stubs(:get_port_bridges_pairs).returns({"br-storage"=>{:bridge=>"br-storage", :br_type=>:ovs}})
|
||||
provider.class.stubs(:ovs_vsctl).with(['add-port', 'br-ovs', 'bond12']).once
|
||||
provider.class.stubs(:interface_up).with('bond12').returns(true)
|
||||
provider.class.stubs(:interface_up).with('eth1').returns(true)
|
||||
provider.class.stubs(:interface_up).with('eth2').returns(true)
|
||||
provider.create
|
||||
provider.flush
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user