From 5300060d16537c5ca6a1f9882a996fba4a4c810e Mon Sep 17 00:00:00 2001 From: Sergey Vasilenko Date: Thu, 11 Feb 2016 15:15:29 +0300 Subject: [PATCH] Refactor spec-tests and add workarounds for run tests under OSx platform Also change fixtures for more optimal usage. Change-Id: Iaac54e16f9a5b2b540f636768635fa5d4ff782eb Closes-bug: #1544638 Partial-Bug: #1539975 --- deployment/puppet/l23network/.fixtures.yml | 13 +++++++++++++ deployment/puppet/l23network/.gitignore | 4 +--- .../manifests/examples/run_network_scheme.pp | 7 +++++++ deployment/puppet/l23network/manifests/init.pp | 16 ++++++++++------ .../puppet/l23network/manifests/params.pp | 7 ++++--- deployment/puppet/l23network/metadata.json | 3 +-- .../spec/classes/l23network_init__spec.rb | 17 +++++------------ .../l23network/spec/fixtures/manifests/site.pp | 6 ++++++ .../spec/fixtures/modules/l23network/lib | 1 - .../spec/fixtures/modules/l23network/manifests | 1 - .../spec/fixtures/modules/l23network/templates | 1 - .../ovs_centos7__ovs2lnx_patch__spec.rb | 2 +- .../ovs_redhat7__ovs2lnx_patch__spec.rb | 2 +- 13 files changed, 49 insertions(+), 31 deletions(-) delete mode 120000 deployment/puppet/l23network/spec/fixtures/modules/l23network/lib delete mode 120000 deployment/puppet/l23network/spec/fixtures/modules/l23network/manifests delete mode 120000 deployment/puppet/l23network/spec/fixtures/modules/l23network/templates diff --git a/deployment/puppet/l23network/.fixtures.yml b/deployment/puppet/l23network/.fixtures.yml index 4e54e8df4e..d90c82c8d4 100644 --- a/deployment/puppet/l23network/.fixtures.yml +++ b/deployment/puppet/l23network/.fixtures.yml @@ -1,3 +1,16 @@ +# For a standalone version should be: +# +# fixtures: +# forge_modules: +# stdlib: +# repo: "puppetlabs/stdlib" +# ref: "4.9.0" +# filemapper: +# repo: "adrien/filemapper" +# ref: "1.1.3" +# symlinks: +# l23network: "#{source_dir}" + fixtures: symlinks: l23network: "#{source_dir}" diff --git a/deployment/puppet/l23network/.gitignore b/deployment/puppet/l23network/.gitignore index eda59daf1c..e79c28703f 100644 --- a/deployment/puppet/l23network/.gitignore +++ b/deployment/puppet/l23network/.gitignore @@ -13,9 +13,7 @@ lib/bundler/man pkg rdoc spec/reports -spec/fixtures/modules/filemapper -spec/fixtures/modules/stdlib -spec/fixtures/modules/sysctl +spec/fixtures/modules test/tmp test/version_tmp tmp diff --git a/deployment/puppet/l23network/manifests/examples/run_network_scheme.pp b/deployment/puppet/l23network/manifests/examples/run_network_scheme.pp index 0787380f46..735a4077ae 100644 --- a/deployment/puppet/l23network/manifests/examples/run_network_scheme.pp +++ b/deployment/puppet/l23network/manifests/examples/run_network_scheme.pp @@ -3,6 +3,13 @@ class l23network::examples::run_network_scheme ( $settings_yaml ){ + include ::l23network::params + + # this is a workaround for run spec tests not only on Linux platform + if $::l23network::params::network_manager_name != undef { + Package<| title == $::l23network::params::network_manager_name |> { provider => apt } + } + class {'::l23network': } $config = parseyaml($settings_yaml) diff --git a/deployment/puppet/l23network/manifests/init.pp b/deployment/puppet/l23network/manifests/init.pp index 2336a22789..46971b8a08 100644 --- a/deployment/puppet/l23network/manifests/init.pp +++ b/deployment/puppet/l23network/manifests/init.pp @@ -116,20 +116,24 @@ class l23network ( Anchor['l23network::l2::init'] -> Anchor['l23network::init'] anchor { 'l23network::init': } - unless $network_manager { - package{$::l23network::params::network_manager_name: - ensure => 'purged', + if ! $network_manager { + if $::l23network::params::network_manager_name != undef { + package{$::l23network::params::network_manager_name: + ensure => 'purged', + } + Package[$::l23network::params::network_manager_name] -> Anchor['l23network::init'] } - Package[$::l23network::params::network_manager_name] -> Anchor['l23network::init'] # It is not enough to just remove package, we have to stop the service as well. # Because SystemD continues running the service after package removing, # with Upstart - all is ok. - if $::l23_os =~ /(?i:redhat7|centos7)/ { + if $::l23_os =~ /(?i)redhat7|centos7/ { service{$::l23network::params::network_manager_name: ensure => 'stopped', } - Package[$::l23network::params::network_manager_name] ~> Service[$::l23network::params::network_manager_name] + if $::l23network::params::network_manager_name != undef { + Package[$::l23network::params::network_manager_name] ~> Service[$::l23network::params::network_manager_name] + } Service[$::l23network::params::network_manager_name] -> Anchor['l23network::init'] } } diff --git a/deployment/puppet/l23network/manifests/params.pp b/deployment/puppet/l23network/manifests/params.pp index 8f2354af21..7897103622 100644 --- a/deployment/puppet/l23network/manifests/params.pp +++ b/deployment/puppet/l23network/manifests/params.pp @@ -19,7 +19,7 @@ class l23network::params { $network_manager_name = 'network-manager' $extra_tools = 'iputils-arping' } - /(?i:redhat|centos)/: { + /(?i)redhat|centos/: { $interfaces_dir = '/etc/sysconfig/network-scripts' $interfaces_file = undef $ovs_service_name = 'openvswitch' @@ -44,10 +44,11 @@ class l23network::params { $lnx_bridge_tools = undef $ovs_datapath_package_name = undef $ovs_common_package_name = undef - $ovs_kern_module_name = unedf + $ovs_kern_module_name = undef + $network_manager_name = undef } default: { - fail("Unsupported OS: ${::l23_os}/${::operatingsystem}") + fail("Unsupported OS: ${l23_os}/${::operatingsystem}") } } } diff --git a/deployment/puppet/l23network/metadata.json b/deployment/puppet/l23network/metadata.json index f8d31b8239..6659da3136 100644 --- a/deployment/puppet/l23network/metadata.json +++ b/deployment/puppet/l23network/metadata.json @@ -14,7 +14,7 @@ "operatingsystem_support": [ { "operatingsystem": "RedHat", - "operatingsystemrelease": ["6.5"] + "operatingsystemrelease": ["6.5", "7.0", "7.1"] }, { "operatingsystem": "Ubuntu", @@ -24,7 +24,6 @@ "description": "Configure network features for 2nd and 3d network level.", "dependencies": [ { "name": "puppetlabs/stdlib", "version_requirement": ">=4.0.0 <5.0.0" }, - { "name": "duritong/sysctl", "version_requirement": ">=0.0.1 <1.0.0" }, { "name": "adrien/filemapper", "version_requirement": ">=1.1.3" } ] } diff --git a/deployment/puppet/l23network/spec/classes/l23network_init__spec.rb b/deployment/puppet/l23network/spec/classes/l23network_init__spec.rb index 8352dc5f90..002fab2148 100644 --- a/deployment/puppet/l23network/spec/classes/l23network_init__spec.rb +++ b/deployment/puppet/l23network/spec/classes/l23network_init__spec.rb @@ -15,10 +15,7 @@ describe 'l23network', :type => :class do puppet_debug_override() end - it do - should compile.with_all_deps - end - + it { should compile.with_all_deps } it { should contain_package('bridge-utils').with_ensure('present') } it { should contain_package('ethtool').with_ensure('present') } it { should contain_package('ifenslave').with_ensure('present') } @@ -28,6 +25,7 @@ describe 'l23network', :type => :class do it { should contain_anchor('l23network::l2::init').that_requires('Package[vlan]') } it { should contain_anchor('l23network::l2::init').that_requires('Package[ifenslave]') } it { should contain_anchor('l23network::l2::init').that_requires('Package[ethtool]') } + end context 'default init of l23network module(CentOS6)' do @@ -42,10 +40,7 @@ describe 'l23network', :type => :class do puppet_debug_override() end - it do - should compile.with_all_deps - end - + it { should compile.with_all_deps } it { should contain_package('bridge-utils').with_ensure('present') } it { should contain_package('ethtool').with_ensure('present') } it { should_not contain_package('ifenslave').with_ensure('present') } @@ -69,10 +64,7 @@ describe 'l23network', :type => :class do puppet_debug_override() end - it do - should compile.with_all_deps - end - + it { should compile.with_all_deps } it { should contain_package('bridge-utils').with_ensure('present') } it { should contain_package('ethtool').with_ensure('present') } it { should_not contain_package('ifenslave').with_ensure('present') } @@ -80,6 +72,7 @@ describe 'l23network', :type => :class do it { should contain_package('NetworkManager').with_ensure('purged') } it { should contain_service('NetworkManager').with_ensure('stopped') } it { should contain_anchor('l23network::l2::init').that_comes_before('Anchor[l23network::init]') } + end context 'init l23network module with enabled OVS' do diff --git a/deployment/puppet/l23network/spec/fixtures/manifests/site.pp b/deployment/puppet/l23network/spec/fixtures/manifests/site.pp index 2ecaa69e61..95660ba8f8 100644 --- a/deployment/puppet/l23network/spec/fixtures/manifests/site.pp +++ b/deployment/puppet/l23network/spec/fixtures/manifests/site.pp @@ -1 +1,7 @@ include ::l23network::params + +# this is a workaround for run spec tests not only on Linux platform +if $::l23network::params::network_manager_name != undef { + Package<| title == $::l23network::params::network_manager_name |> { provider => apt } +} +### \ No newline at end of file diff --git a/deployment/puppet/l23network/spec/fixtures/modules/l23network/lib b/deployment/puppet/l23network/spec/fixtures/modules/l23network/lib deleted file mode 120000 index 42892ea045..0000000000 --- a/deployment/puppet/l23network/spec/fixtures/modules/l23network/lib +++ /dev/null @@ -1 +0,0 @@ -../../../../lib \ No newline at end of file diff --git a/deployment/puppet/l23network/spec/fixtures/modules/l23network/manifests b/deployment/puppet/l23network/spec/fixtures/modules/l23network/manifests deleted file mode 120000 index 373b99206f..0000000000 --- a/deployment/puppet/l23network/spec/fixtures/modules/l23network/manifests +++ /dev/null @@ -1 +0,0 @@ -../../../../manifests \ No newline at end of file diff --git a/deployment/puppet/l23network/spec/fixtures/modules/l23network/templates b/deployment/puppet/l23network/spec/fixtures/modules/l23network/templates deleted file mode 120000 index f8a06d1d1c..0000000000 --- a/deployment/puppet/l23network/spec/fixtures/modules/l23network/templates +++ /dev/null @@ -1 +0,0 @@ -../../../../templates \ No newline at end of file diff --git a/deployment/puppet/l23network/spec/unit/puppet/provider/l23_stored_config/ovs_centos7__ovs2lnx_patch__spec.rb b/deployment/puppet/l23network/spec/unit/puppet/provider/l23_stored_config/ovs_centos7__ovs2lnx_patch__spec.rb index b9780ee4a6..28d49ade77 100644 --- a/deployment/puppet/l23network/spec/unit/puppet/provider/l23_stored_config/ovs_centos7__ovs2lnx_patch__spec.rb +++ b/deployment/puppet/l23network/spec/unit/puppet/provider/l23_stored_config/ovs_centos7__ovs2lnx_patch__spec.rb @@ -109,7 +109,7 @@ describe Puppet::Type.type(:l23_stored_config).provider(:ovs_centos7) do context 'three bridges patch error' do subject { providers[:ovs2lnx_bad_patch] } it { expect{ subject.class.format_file('filepath', [subject]) - }.to raise_error(Puppet::Error, %r{Patch\s+ovs2lnx-bpatch\s+has\s+more\s+than\s+2\s+bridges:\s+\["ovs-br",\s+"lnx-br",\s+"br-fake"].\s+Patch\s+can\s+connect\s+\*ONLY\*\s+2\s+bridges!}) } + }.to raise_error(Puppet::Error, %r{Patch\s+ovs2lnx-bpatch\s+has\s+more\s+than\s+2\s+bridges:\s+\["ovs-br",\s+"lnx-br",\s+"br-fake"\].\s+Patch\s+can\s+connect\s+\*ONLY\*\s+2\s+bridges!}) } end context 'the same provider of bridges error' do diff --git a/deployment/puppet/l23network/spec/unit/puppet/provider/l23_stored_config/ovs_redhat7__ovs2lnx_patch__spec.rb b/deployment/puppet/l23network/spec/unit/puppet/provider/l23_stored_config/ovs_redhat7__ovs2lnx_patch__spec.rb index 0c6b53591c..5a3839be6f 100644 --- a/deployment/puppet/l23network/spec/unit/puppet/provider/l23_stored_config/ovs_redhat7__ovs2lnx_patch__spec.rb +++ b/deployment/puppet/l23network/spec/unit/puppet/provider/l23_stored_config/ovs_redhat7__ovs2lnx_patch__spec.rb @@ -109,7 +109,7 @@ describe Puppet::Type.type(:l23_stored_config).provider(:ovs_redhat7) do context 'three bridges patch error' do subject { providers[:ovs2lnx_bad_patch] } it { expect{ subject.class.format_file('filepath', [subject]) - }.to raise_error(Puppet::Error, %r{Patch\s+ovs2lnx-bpatch\s+has\s+more\s+than\s+2\s+bridges:\s+\["ovs-br",\s+"lnx-br",\s+"br-fake"].\s+Patch\s+can\s+connect\s+\*ONLY\*\s+2\s+bridges!}) } + }.to raise_error(Puppet::Error, %r{Patch\s+ovs2lnx-bpatch\s+has\s+more\s+than\s+2\s+bridges:\s+\["ovs-br",\s+"lnx-br",\s+"br-fake"\].\s+Patch\s+can\s+connect\s+\*ONLY\*\s+2\s+bridges!}) } end context 'the same provider of bridges error' do