aboutsummaryrefslogtreecommitdiffstats
path: root/spec/unit
diff options
context:
space:
mode:
authorkarthik s <ksundara@redhat.com>2016-08-26 21:48:04 +0530
committerkarthik s <ksundara@redhat.com>2016-08-29 19:41:35 +0530
commiteec3bba44b5a7e09dba4d427bd0d3d71a4956a7a (patch)
treee5dd6531b22285007b24470c808f5e6df8d59af4 /spec/unit
parent6a6aeaa95313bf78c0cf19cca6331bc1d23e6563 (diff)
Configure the numvfs for SRIOV interfaces
This patch shall create VFs via the PCI SYS interface. Default value : $::os_service_default Sample Format : ['eth0:4','eth2:128'] For values as in sample format, the sriov_numvfs config files for eth0 and eth2 will have the values 4 and 128 respectively The SR-IOV numvfs configuration shall be persisted in /sbin/ifup-local so that, during the bootup of the compute nodes, the numvfs configuration will be restored. Change-Id: I7450b904475bdf46498d9af633416b3eba12f761 Implements: blueprint tripleo-sriov Signed-off-by: karthik s <ksundara@redhat.com>
Diffstat (limited to 'spec/unit')
-rw-r--r--spec/unit/provider/sriov_vf_config/numvfs_spec.rb40
-rw-r--r--spec/unit/type/sriov_vf_config_spec.rb47
2 files changed, 87 insertions, 0 deletions
diff --git a/spec/unit/provider/sriov_vf_config/numvfs_spec.rb b/spec/unit/provider/sriov_vf_config/numvfs_spec.rb
new file mode 100644
index 0000000..ac1a398
--- /dev/null
+++ b/spec/unit/provider/sriov_vf_config/numvfs_spec.rb
@@ -0,0 +1,40 @@
+require 'puppet'
+require 'spec_helper'
+require 'puppet/provider/sriov_vf_config/numvfs'
+
+provider_class = Puppet::Type.type(:sriov_vf_config).
+ provider(:numvfs)
+
+describe provider_class do
+
+ let(:test_cfg_path) { "/tmp/test-ifup-local.txt" }
+ let :numvfs_conf do
+ {
+ :name => 'eth0:10',
+ :ensure => 'present',
+ }
+ end
+
+ describe 'when setting the attributes' do
+ let :resource do
+ Puppet::Type::Sriov_vf_config.new(numvfs_conf)
+ end
+
+ let :provider do
+ provider_class.new(resource)
+ end
+
+ it 'should return the correct interface name' do
+ expect(provider.sriov_get_interface).to eql('eth0')
+ end
+
+ it 'should return the correct numvfs value' do
+ expect(provider.sriov_numvfs_value).to eql(10)
+ end
+
+ it 'should return path of the file to enable vfs' do
+ expect(provider.sriov_numvfs_path).to eql('/sys/class/net/eth0/device/sriov_numvfs')
+ end
+ end
+
+end
diff --git a/spec/unit/type/sriov_vf_config_spec.rb b/spec/unit/type/sriov_vf_config_spec.rb
new file mode 100644
index 0000000..9a911f6
--- /dev/null
+++ b/spec/unit/type/sriov_vf_config_spec.rb
@@ -0,0 +1,47 @@
+require 'puppet'
+require 'puppet/type/sriov_vf_config'
+
+describe 'Puppet::Type.type(:sriov_vf_config)' do
+ it 'should allow name to be passed' do
+ expect{Puppet::Type.type(:sriov_vf_config).new(
+ :name => 'eth0:10',
+ :ensure => 'present'
+ )}.not_to raise_error
+ end
+ it 'should allow name to be passed with -' do
+ expect{Puppet::Type.type(:sriov_vf_config).new(
+ :name => 'eth-0:10',
+ :ensure => 'present'
+ )}.not_to raise_error
+ end
+ it 'should allow name to be passed with _' do
+ expect{Puppet::Type.type(:sriov_vf_config).new(
+ :name => 'eth_0:10',
+ :ensure => 'present'
+ )}.not_to raise_error
+ end
+ it 'should throw error for invalid format' do
+ expect{Puppet::Type.type(:sriov_vf_config).new(
+ :name => 'eth0',
+ :ensure => 'present'
+ )}.to raise_error(Puppet::ResourceError)
+ end
+ it 'should throw error for invalid format without interface name' do
+ expect{Puppet::Type.type(:sriov_vf_config).new(
+ :name => ':9',
+ :ensure => 'present'
+ )}.to raise_error(Puppet::ResourceError)
+ end
+ it 'should throw error for invalid format for numvfs' do
+ expect{Puppet::Type.type(:sriov_vf_config).new(
+ :name => 'eth8:none',
+ :ensure => 'present'
+ )}.to raise_error(Puppet::ResourceError)
+ end
+ it 'should throw error for invalid format without numvfs' do
+ expect{Puppet::Type.type(:sriov_vf_config).new(
+ :name => 'eth0:',
+ :ensure => 'present'
+ )}.to raise_error(Puppet::ResourceError)
+ end
+end