X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=spec%2Fclasses%2Fopendaylight_spec.rb;h=c430a55f9fa1a60e20bfcc3602c98940f250adda;hb=HEAD;hp=635298d9b519168e6b34c7f7f3db073e2128a13f;hpb=cf31ed33dc99b39921a91246de32ea2963db3171;p=integration%2Fpackaging%2Fpuppet-opendaylight.git diff --git a/spec/classes/opendaylight_spec.rb b/spec/classes/opendaylight_spec.rb index 635298d..c430a55 100644 --- a/spec/classes/opendaylight_spec.rb +++ b/spec/classes/opendaylight_spec.rb @@ -10,11 +10,8 @@ describe 'opendaylight' do describe 'Fedora' do operatingsystem = 'Fedora' - # This is the Fedora Yum repo URL - yum_repo = 'https://copr-be.cloud.fedoraproject.org/results/dfarrell07/OpenDaylight/fedora-$releasever-$basearch/' - # All tests for supported versions of Fedora - ['20', '21'].each do |operatingsystemmajrelease| + ['25', '26'].each do |operatingsystemmajrelease| context "#{operatingsystemmajrelease}" do let(:facts) {{ :osfamily => osfamily, @@ -23,12 +20,42 @@ describe 'opendaylight' do }} # Run shared tests applicable to all supported OSs # Note that this function is defined in spec_helper - generic_tests(yum_repo) + generic_tests + + # Run tests that specialize in checking rpm-based installs + # NB: Only testing defaults here, specialized rpm tests elsewhere + # Note that this function is defined in spec_helper + rpm_install_tests(operatingsystem: operatingsystem) + + # Run tests that specialize in checking Karaf feature installs + # NB: Only testing defaults here, specialized Karaf tests elsewhere + # Note that this function is defined in spec_helper + karaf_feature_tests + + # Run tests that specialize in checking ODL's REST port config + # NB: Only testing defaults here, specialized log level tests elsewhere + # Note that this function is defined in spec_helper + odl_rest_port_tests + + # Run tests that specialize in checking custom log level config + # NB: Only testing defaults here, specialized log level tests elsewhere + # Note that this function is defined in spec_helper + log_level_tests + + # Run tests that specialize in checking ODL OVSDB HA config + # NB: Only testing defaults here, specialized enabling HA tests elsewhere + # Note that this function is defined in spec_helper + enable_ha_tests + + # Run tests that specialize in checking log file settings + # NB: Only testing defaults here, specialized log file settings tests elsewhere + # Note that this function is defined in spec_helper + log_settings end end # All tests for unsupported versions of Fedora - ['18', '19', '22'].each do |operatingsystemmajrelease| + ['23'].each do |operatingsystemmajrelease| context "#{operatingsystemmajrelease}" do let(:facts) {{ :osfamily => osfamily, @@ -37,7 +64,8 @@ describe 'opendaylight' do }} # Run shared tests applicable to all unsupported OSs # Note that this function is defined in spec_helper - unsupported_os_tests("Unsupported OS: #{operatingsystem} #{operatingsystemmajrelease}") + expected_msg = "Unsupported OS: #{operatingsystem} #{operatingsystemmajrelease}" + unsupported_os_tests(expected_msg: expected_msg) end end end @@ -46,9 +74,6 @@ describe 'opendaylight' do describe 'CentOS' do operatingsystem = 'CentOS' - # This is the CentOS 7 Yum repo URL - yum_repo = 'https://copr-be.cloud.fedoraproject.org/results/dfarrell07/OpenDaylight/epel-7-$basearch/' - # All tests for supported versions of CentOS ['7'].each do |operatingsystemmajrelease| context "#{operatingsystemmajrelease}" do @@ -59,12 +84,42 @@ describe 'opendaylight' do }} # Run shared tests applicable to all supported OSs # Note that this function is defined in spec_helper - generic_tests(yum_repo) + generic_tests + + # Run test that specialize in checking rpm-based installs + # NB: Only testing defaults here, specialized rpm tests elsewhere + # Note that this function is defined in spec_helper + rpm_install_tests + + # Run test that specialize in checking Karaf feature installs + # NB: Only testing defaults here, specialized Karaf tests elsewhere + # Note that this function is defined in spec_helper + karaf_feature_tests + + # Run tests that specialize in checking ODL's REST port config + # NB: Only testing defaults here, specialized log level tests elsewhere + # Note that this function is defined in spec_helper + odl_rest_port_tests + + # Run test that specialize in checking custom log level config + # NB: Only testing defaults here, specialized log level tests elsewhere + # Note that this function is defined in spec_helper + log_level_tests + + # Run tests that specialize in checking ODL OVSDB HA config + # NB: Only testing defaults here, specialized enabling HA tests elsewhere + # Note that this function is defined in spec_helper + enable_ha_tests + + # Run tests that specialize in checking log file settings + # NB: Only testing defaults here, specialized log file settings tests elsewhere + # Note that this function is defined in spec_helper + log_settings end end # All tests for unsupported versions of CentOS - ['5', '6', '8'].each do |operatingsystemmajrelease| + ['6'].each do |operatingsystemmajrelease| context "#{operatingsystemmajrelease}" do let(:facts) {{ :osfamily => osfamily, @@ -73,14 +128,93 @@ describe 'opendaylight' do }} # Run shared tests applicable to all unsupported OSs # Note that this function is defined in spec_helper - unsupported_os_tests("Unsupported OS: #{operatingsystem} #{operatingsystemmajrelease}") + expected_msg = "Unsupported OS: #{operatingsystem} #{operatingsystemmajrelease}" + unsupported_os_tests(expected_msg: expected_msg) + end + end + end + end + + # All tests for OSs in the Debian family (Ubuntu) + describe 'OS family Debian' do + osfamily = 'Debian' + + # All tests for Ubuntu 16.04 + describe 'Ubuntu' do + operatingsystem = 'Ubuntu' + + # All tests for supported versions of Ubuntu + ['16.04'].each do |operatingsystemrelease| + context "#{operatingsystemrelease}" do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemrelease => operatingsystemrelease, + :lsbdistid => operatingsystem, + :lsbdistrelease => operatingsystemrelease, + :lsbdistcodename => 'xenial', + :puppetversion => '4.9.0', + :path => ['/usr/local/bin', '/usr/bin', '/bin'], + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking deb-based installs + # Note that this function is defined in spec_helper + deb_install_tests + + # Run test that specialize in checking Karaf feature installs + # NB: Only testing defaults here, specialized Karaf tests elsewhere + # Note that this function is defined in spec_helper + karaf_feature_tests + + # Run tests that specialize in checking ODL's REST port config + # NB: Only testing defaults here, specialized log level tests elsewhere + # Note that this function is defined in spec_helper + odl_rest_port_tests + + # Run test that specialize in checking custom log level config + # NB: Only testing defaults here, specialized log level tests elsewhere + # Note that this function is defined in spec_helper + log_level_tests + + # Run tests that specialize in checking ODL OVSDB HA config + # NB: Only testing defaults here, specialized enabling HA tests elsewhere + # Note that this function is defined in spec_helper + enable_ha_tests + + # Run tests that specialize in checking log file settings + # NB: Only testing defaults here, specialized log file settings tests elsewhere + # Note that this function is defined in spec_helper + log_settings + end + end + + # All tests for unsupported versions of Ubuntu + ['12.04', '14.04', '15.10'].each do |operatingsystemrelease| + context "#{operatingsystemrelease}" do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemrelease => operatingsystemrelease, + :lsbdistid => operatingsystem, + :lsbdistrelease => operatingsystemrelease, + :lsbdistcodename => 'xenial', + :puppetversion => '4.9.0', + }} + # Run shared tests applicable to all unsupported OSs + # Note that this function is defined in spec_helper + expected_msg = "Unsupported OS: #{operatingsystem} #{operatingsystemrelease}" + unsupported_os_tests(expected_msg: expected_msg) end end end end # All tests for unsupported OS families - ['Debian', 'Suse', 'Solaris'].each do |osfamily| + ['Suse', 'Solaris'].each do |osfamily| context "OS family #{osfamily}" do let(:facts) {{ :osfamily => osfamily, @@ -88,7 +222,8 @@ describe 'opendaylight' do # Run shared tests applicable to all unsupported OSs # Note that this function is defined in spec_helper - unsupported_os_tests("Unsupported OS family: #{osfamily}") + expected_msg = "Unsupported OS family: #{osfamily}" + unsupported_os_tests(expected_msg: expected_msg) end end end @@ -101,11 +236,7 @@ describe 'opendaylight' do osfamily = 'RedHat' operatingsystem = 'CentOS' operatingsystemmajrelease = '7' - # This is the CentOS 7 Yum repo URL - yum_repo = 'https://copr-be.cloud.fedoraproject.org/results/dfarrell07/OpenDaylight/epel-7-$basearch/' describe 'using default features' do - # NB: This list should be the same as the one in opendaylight::params - default_features = ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management'] context 'and not passing extra features' do let(:facts) {{ :osfamily => osfamily, @@ -117,11 +248,11 @@ describe 'opendaylight' do # Run shared tests applicable to all supported OSs # Note that this function is defined in spec_helper - generic_tests(yum_repo) + generic_tests # Run test that specialize in checking Karaf feature installs # Note that this function is defined in spec_helper - karaf_feature_tests(default_features) + karaf_feature_tests end context 'and passing extra features' do @@ -139,11 +270,11 @@ describe 'opendaylight' do # Run shared tests applicable to all supported OSs # Note that this function is defined in spec_helper - generic_tests(yum_repo) + generic_tests # Run test that specialize in checking Karaf feature installs # Note that this function is defined in spec_helper - karaf_feature_tests(default_features + extra_features) + karaf_feature_tests(extra_features: extra_features) end end @@ -162,11 +293,11 @@ describe 'opendaylight' do # Run shared tests applicable to all supported OSs # Note that this function is defined in spec_helper - generic_tests(yum_repo) + generic_tests # Run test that specialize in checking Karaf feature installs # Note that this function is defined in spec_helper - karaf_feature_tests(default_features) + karaf_feature_tests(default_features: default_features) end context 'and passing extra features' do @@ -185,72 +316,997 @@ describe 'opendaylight' do # Run shared tests applicable to all supported OSs # Note that this function is defined in spec_helper - generic_tests(yum_repo) + generic_tests # Run test that specialize in checking Karaf feature installs # Note that this function is defined in spec_helper - karaf_feature_tests(default_features + extra_features) + karaf_feature_tests(default_features: default_features, extra_features: extra_features) end end end - # All install method tests - describe 'install method tests' do + # All ODL IP/REST port tests + describe 'IP and REST port tests' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + context 'using default REST port' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking ODL REST port config + # Note that this function is defined in spec_helper + odl_rest_port_tests + end + + context 'overriding default REST and IP port' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :odl_rest_port => 7777, + :odl_bind_ip => '127.0.0.1' + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests(odl_bind_ip: '127.0.0.1') + + # Run test that specialize in checking ODL REST port config + # Note that this function is defined in spec_helper + odl_rest_port_tests(odl_rest_port: 7777, odl_bind_ip: '127.0.0.1') + end + end + + # All custom log level tests + describe 'custom log level tests' do # Non-OS-type tests assume CentOS 7 # See issue #43 for reasoning: # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 osfamily = 'RedHat' operatingsystem = 'CentOS' operatingsystemmajrelease = '7' - # This is the CentOS 7 Yum repo URL - yum_repo = 'https://copr-be.cloud.fedoraproject.org/results/dfarrell07/OpenDaylight/epel-7-$basearch/' + context 'using default log levels' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} - # All tests for RPM install method - context 'RPM' do + let(:params) {{ }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking custom log level config + # Note that this function is defined in spec_helper + log_level_tests + end + + context 'adding one custom log level' do let(:facts) {{ :osfamily => osfamily, :operatingsystem => operatingsystem, :operatingsystemmajrelease => operatingsystemmajrelease, }} + custom_log_levels = { 'org.opendaylight.ovsdb' => 'TRACE' } + let(:params) {{ - :install_method => 'rpm', + :log_levels => custom_log_levels, }} # Run shared tests applicable to all supported OSs # Note that this function is defined in spec_helper - generic_tests(yum_repo) + generic_tests - # Run test that specialize in checking Karaf feature installs + # Run test that specialize in checking log level config # Note that this function is defined in spec_helper - install_method_tests('rpm', yum_repo) + log_level_tests(log_levels: custom_log_levels) end - # All tests for tarball install method - describe 'tarball' do - describe 'using default tarball_url' do - tarball_url = 'https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz' - context 'using default unitfile_url' do - unitfile_url = 'https://github.com/dfarrell07/opendaylight-systemd/archive/master/opendaylight-unitfile.tar.gz' - let(:facts) {{ - :osfamily => osfamily, - :operatingsystem => operatingsystem, - :operatingsystemmajrelease => operatingsystemmajrelease, - }} + context 'adding two custom log levels' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} - let(:params) {{ - :install_method => 'tarball', - }} + custom_log_levels = { 'org.opendaylight.ovsdb' => 'TRACE', + 'org.opendaylight.ovsdb.lib' => 'INFO' } - # Run shared tests applicable to all supported OSs - # Note that this function is defined in spec_helper - generic_tests(yum_repo) + let(:params) {{ + :log_levels => custom_log_levels, + }} - # Run test that specialize in checking Karaf feature installs - # Note that this function is defined in spec_helper - install_method_tests('tarball', yum_repo, tarball_url, unitfile_url) - end - end + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking log level config + # Note that this function is defined in spec_helper + log_level_tests(log_levels: custom_log_levels) + end + end + + describe 'log mechanism settings' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + + # All custom log file size and rollover tests + context 'log to file using default size and rollover' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings + end + + context 'log to file customizing size' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :log_max_size => '100MB', + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings(log_max_size: '100MB') + end + + context 'log to file customizing rollover' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :log_max_rollover => 10, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings(log_max_rollover: 10) + end + + context 'log to file customizing size and rollover' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :log_max_size => '250MB', + :log_max_rollover => 8, + :log_rollover_fileindex => 'min' + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings(log_max_size: '250MB', + log_max_rollover: 8, + log_rollover_fileindex: 'min') + end + + context 'log to file customizing pattern' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :log_pattern => '%d{ISO8601} | %-5p | %-16t | %m%n', + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings(log_pattern: '%d{ISO8601} | %-5p | %-16t | %m%n') + end + + context 'log to file enabling the PaxOsgi appender' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :enable_paxosgi_logger => true, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings(enable_paxosgi_logger: true) + end + + context 'log to file disabling the PaxOsgi appender' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :enable_paxosgi_logger => false, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings(enable_paxosgi_logger: false) + end + + context 'log to console' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :log_mechanism => 'console', + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings(log_mechanism: 'console') + end + + context 'log to console customizing pattern' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :log_mechanism => 'console', + :log_pattern => '%d{ISO8601} | %-5p | %-16t | %m%n', + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings(log_mechanism: 'console', + log_pattern: '%d{ISO8601} | %-5p | %-16t | %m%n') + end + + context 'log to console enabling the PaxOsgi appender' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :log_mechanism => 'console', + :enable_paxosgi_logger => true, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings(log_mechanism: 'console', + enable_paxosgi_logger: true) + end + + context 'log to console disabling the PaxOsgi appender' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :log_mechanism => 'console', + :enable_paxosgi_logger => false, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + log_settings(log_mechanism: 'console', + enable_paxosgi_logger: false) + end + + context 'setting inactivity probe' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :inactivity_probe => 99999, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + end + end + + # All OVSDB HA enable/disable tests + describe 'OVSDB HA enable/disable tests' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + context 'using enable_ha default' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking ODL OVSDB HA config + # Note that this function is defined in spec_helper + enable_ha_tests + end + + context 'using false for enable_ha' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :enable_ha => false, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking ODL OVSDB HA config + # Note that this function is defined in spec_helper + enable_ha_tests(enable_ha: false) + end + + context 'using true for enable_ha' do + context 'using ha_node_count >=2' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :enable_ha => true, + :ha_node_ips => ['0.0.0.0', '127.0.0.1'] + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking ODL OVSDB HA config + # Note that this function is defined in spec_helper + enable_ha_tests(enable_ha: true, ha_node_ips: ['0.0.0.0', '127.0.0.1']) + end + + context 'using custom modules for sharding' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :enable_ha => true, + :ha_node_ips => ['0.0.0.0', '127.0.0.1'], + :ha_db_modules => {'default' => false, 'topology' => 'urn:opendaylight:topology'} + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking ODL OVSDB HA config + # Note that this function is defined in spec_helper + enable_ha_tests(enable_ha: true, ha_node_ips: ['0.0.0.0', '127.0.0.1']) + end + end + end + + + # All install method tests + describe 'install method tests' do + + # All tests for RPM install method + describe 'RPM' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemrelease = '7.0' + operatingsystemmajrelease = '7' + + context 'installing from default repo' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking RPM-based installs + # Note that this function is defined in spec_helper + rpm_install_tests + end + + context 'installing from Nexus repo' do + rpm_repo = 'https://nexus.opendaylight.org/content/repositories/opendaylight-neon-epel-7-$basearch-devel' + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :rpm_repo => rpm_repo, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking RPM-based installs + # Note that this function is defined in spec_helper + rpm_install_tests(rpm_repo: rpm_repo) + end + end + + # All tests for Deb install method + describe 'Deb' do + osfamily = 'Debian' + operatingsystem = 'Ubuntu' + operatingsystemrelease = '16.04' + operatingsystemmajrelease = '16' + lsbdistcodename = 'xenial' + + context 'installing Deb' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemrelease => operatingsystemrelease, + :operatingsystemmajrelease => operatingsystemmajrelease, + :lsbdistid => operatingsystem, + :lsbdistrelease => operatingsystemrelease, + :lsbmajdistrelease => operatingsystemmajrelease, + :lsbdistcodename => lsbdistcodename, + :puppetversion => Puppet.version, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking RPM-based installs + # Note that this function is defined in spec_helper + deb_install_tests + end + + context 'installing Nitrogen Deb' do + deb_repo = 'ppa:odl-team/nitrogen' + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemrelease => operatingsystemrelease, + :operatingsystemmajrelease => operatingsystemmajrelease, + :lsbdistid => operatingsystem, + :lsbdistrelease => operatingsystemrelease, + :lsbmajdistrelease => operatingsystemmajrelease, + :lsbdistcodename => lsbdistcodename, + :puppetversion => Puppet.version, + }} + + let(:params) {{ + :deb_repo => deb_repo, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking RPM-based installs + # Note that this function is defined in spec_helper + deb_install_tests(deb_repo: deb_repo) + end + end + end + + # SNAT Mechanism tests + describe 'SNAT mechanism tests' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + context 'using controller' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :extra_features => ['odl-netvirt-openstack'], + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking security groups + # Note that this function is defined in spec_helper + snat_mechanism_tests + end + + context 'using conntrack' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :snat_mechanism => 'conntrack', + :extra_features => ['odl-netvirt-openstack'], + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking security groups + # Note that this function is defined in spec_helper + snat_mechanism_tests('conntrack') + end + end + + # SFC tests + describe 'SFC tests' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + context 'not using odl-netvirt-sfc feature' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking security groups + # Note that this function is defined in spec_helper + sfc_tests + end + + context 'using odl-netvirt-sfc feature' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :extra_features => ['odl-netvirt-sfc'], + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking security groups + # Note that this function is defined in spec_helper + sfc_tests(extra_features: ['odl-netvirt-sfc']) + end + end + + # DSCP marking tests + describe 'DSCP marking tests' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + context 'use default value' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking security groups + # Note that this function is defined in spec_helper + dscp_tests + end + + context 'inherit DSCP values' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :inherit_dscp_marking => :true, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking security groups + # Note that this function is defined in spec_helper + dscp_tests(inherit_dscp_marking: true) + end + end + + # VPP routing node config tests + describe 'VPP routing node tests' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + context 'using default - no routing node' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking routing-node config + # Note that this function is defined in spec_helper + vpp_routing_node_tests + end + + context 'using node name for routing node' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :vpp_routing_node => 'test-node-1', + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking routing-node config + # Note that this function is defined in spec_helper + vpp_routing_node_tests(routing_node: 'test-node-1') + end + end + + # ODL username/password tests + describe 'ODL username/password tests' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + context 'using default username/password' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking username/password config + # Note that this function is defined in spec_helper + username_password_tests('admin','admin') + end + + context 'specifying non-default username/password' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :username => 'test', + :password => 'test' + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking routing-node config + # Note that this function is defined in spec_helper + username_password_tests('test', 'test') + end + end + + # websocket address tests + describe 'ODL websocket address tests' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + context 'using default websocket address' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking websocket address + # Note that this function is defined in spec_helper + odl_websocket_address_tests + end + + context 'overriding websocket address' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :odl_bind_ip => '127.0.0.1' + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests(odl_bind_ip: '127.0.0.1') + + # Run test that specialize in checking websocket address + # Note that this function is defined in spec_helper + odl_websocket_address_tests(odl_bind_ip: '127.0.0.1') + end + end + + # TLS tests + describe 'ODL TLS tests' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + context 'enabling TLS without required keystore password (negative test)' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :enable_tls => :true + }} + + # Run test that specialize in checking TLS + # Note that this function is defined in spec_helper + odl_tls_tests(enable_tls:true) + end + context 'enabling TLS with required params' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :enable_tls => true, + :tls_keystore_password => '123456', + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test that specialize in checking TLS + # Note that this function is defined in spec_helper + odl_tls_tests(enable_tls:true, tls_keystore_password:'123456') + end + end + + describe 'polling enablement settings' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + + # Default statistics polling off + context 'do not poll ovs statistics' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + stats_polling_enablement_tests + end + + # Default statistics polling on + context 'poll ovs statistics' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :stats_polling_enabled => true, + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests + + # Run test specific to log settings + stats_polling_enablement_tests(stats_polling_enabled:true) + end + end + + describe 'Different IPv support tests' do + # Non-OS-type tests assume CentOS 7 + # See issue #43 for reasoning: + # https://github.com/dfarrell07/puppet-opendaylight/issues/43#issue-57343159 + osfamily = 'RedHat' + operatingsystem = 'CentOS' + operatingsystemmajrelease = '7' + + context 'IPv6 deployment' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :odl_bind_ip => '::1' + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests(odl_bind_ip:'::1') + end + + context 'IPv4 deployment' do + let(:facts) {{ + :osfamily => osfamily, + :operatingsystem => operatingsystem, + :operatingsystemmajrelease => operatingsystemmajrelease, + }} + + let(:params) {{ + :odl_bind_ip => '127.0.0.1' + }} + + # Run shared tests applicable to all supported OSs + # Note that this function is defined in spec_helper + generic_tests(odl_bind_ip:'127.0.0.1') end end end