Fix vsctl call

Change-Id: I700ff89d0ff90fabc1843f0e740ab38d7fbaa45a
Closes-Bug: #1587310
This commit is contained in:
Mikhail 2017-02-02 19:50:29 +04:00 committed by Aleksey Zvyagintsev
parent f8cb785734
commit f199c0ba29
2 changed files with 49 additions and 4 deletions

View File

@ -43,14 +43,14 @@ Puppet::Type.type(:l2_port).provide(:dpdkovs, :parent => Puppet::Provider::Ovs_b
def flush
if ! @property_flush.empty?
debug("FLUSH properties: #{@property_flush}")
if !@property_flush[:vendor_specific][:max_queues].nil? and @property_flush[:vendor_specific][:max_queues] != :absent
if !@property_flush[:vendor_specific]['max_queues'].nil? and @property_flush[:vendor_specific]['max_queues'] != :absent
dpdk_port = self.class.get_dpdk_ports_mapping[@resource[:interface]]
vsctl('set', 'Interface', '#{dpdk_port}', 'options:n_rxq=#{@property_flush[:vendor_specific][:max_queues].to_i}')
vsctl('set', 'Interface', dpdk_port, "options:n_rxq=#{@property_flush[:vendor_specific]['max_queues'].to_i}")
end
if !@property_flush[:mtu].nil? and @property_flush[:mtu] != :absent
dpdk_port = self.class.get_dpdk_ports_mapping[@resource[:interface]]
vsctl('set', 'Interface', '#{dpdk_port}', 'mtu_request=#{mtu}')
vsctl('set', 'Interface', dpdk_port, "mtu_request=#{@property_flush[:mtu]}")
end
@property_hash = resource.to_hash
end

View File

@ -20,8 +20,33 @@ describe Puppet::Type.type(:l2_port).provider(:dpdkovs) do
:name => 'eth0',
)
}
let(:provider_port) { resource_port.provider }
let(:resource_port_mtu) {
Puppet::Type.type(:l2_port).new(
:provider => 'dpdkovs',
:bridge => 'br1',
:name => 'eth0',
:mtu => '1504',
:vendor_specific => {
:driver => 'i40e',
},
)
}
let(:resource_port_multiq) {
Puppet::Type.type(:l2_port).new(
:provider => 'dpdkovs',
:bridge => 'br1',
:name => 'eth0',
:vendor_specific => {
:max_queues => '8',
},
)
}
let(:provider_port) { resource_port.provider }
let(:provider_port_mtu) { resource_port_mtu.provider }
let(:provider_port_multiq) { resource_port_multiq.provider }
let(:dpdk_ports_mapping) {
{
'eth0' => 'dpdk0'
@ -44,5 +69,25 @@ describe Puppet::Type.type(:l2_port).provider(:dpdkovs) do
provider_port.class.stubs(:get_dpdk_ports_mapping).returns(dpdk_ports_mapping)
provider_port.create
end
it "Create port with custom mtu" do
provider_br1.create
provider_br1.flush
provider_port_mtu.class.stubs(:vsctl).with(['--may-exist', 'add-port', 'br1', 'dpdk0', '--', 'set', 'Interface', 'dpdk0', 'type=dpdk']).returns(true)
provider_port_mtu.class.stubs(:get_dpdk_ports_mapping).returns(dpdk_ports_mapping)
provider_port_mtu.create
provider_port_mtu.class.stubs(:vsctl).with('set', 'Interface', 'dpdk0', 'mtu_request=1504').returns(true)
provider_port_mtu.flush
end
it " Create port with multiq" do
provider_br1.create
provider_br1.flush
provider_port_multiq.class.stubs(:vsctl).with(['--may-exist', 'add-port', 'br1', 'dpdk0', '--', 'set', 'Interface', 'dpdk0', 'type=dpdk']).returns(true)
provider_port_multiq.class.stubs(:get_dpdk_ports_mapping).returns(dpdk_ports_mapping)
provider_port_multiq.create
provider_port_multiq.class.stubs(:vsctl).with('set', 'Interface', 'dpdk0', 'options:n_rxq=8').returns(true)
provider_port_multiq.flush
end
end
end