X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=spec%2Fclasses%2Fopendaylight_spec.rb;h=c430a55f9fa1a60e20bfcc3602c98940f250adda;hb=HEAD;hp=7c0a1d1e8fc245c66a8c14fa50e3a8fa62a6bd38;hpb=3c3ff2992b52aab697528c03b95f57686efd9597;p=integration%2Fpackaging%2Fpuppet-opendaylight.git diff --git a/spec/classes/opendaylight_spec.rb b/spec/classes/opendaylight_spec.rb index 7c0a1d1..c430a55 100644 --- a/spec/classes/opendaylight_spec.rb +++ b/spec/classes/opendaylight_spec.rb @@ -11,7 +11,7 @@ describe 'opendaylight' do operatingsystem = 'Fedora' # All tests for supported versions of Fedora - ['24', '25'].each do |operatingsystemmajrelease| + ['25', '26'].each do |operatingsystemmajrelease| context "#{operatingsystemmajrelease}" do let(:facts) {{ :osfamily => osfamily, @@ -46,6 +46,11 @@ describe 'opendaylight' do # 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 @@ -105,6 +110,11 @@ describe 'opendaylight' do # 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 @@ -174,6 +184,11 @@ describe 'opendaylight' do # 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 @@ -310,8 +325,8 @@ describe 'opendaylight' do end end - # All ODL REST port tests - describe 'REST port 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 @@ -336,7 +351,7 @@ describe 'opendaylight' do odl_rest_port_tests end - context 'overriding default REST port' do + context 'overriding default REST and IP port' do let(:facts) {{ :osfamily => osfamily, :operatingsystem => operatingsystem, @@ -345,15 +360,16 @@ describe 'opendaylight' do 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 + 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_rest_port_tests(odl_rest_port: 7777, odl_bind_ip: '127.0.0.1') end end @@ -429,6 +445,249 @@ describe 'opendaylight' do 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 @@ -535,7 +794,7 @@ describe 'opendaylight' do operatingsystemrelease = '7.0' operatingsystemmajrelease = '7' - context 'installing default RPM' do + context 'installing from default repo' do let(:facts) {{ :osfamily => osfamily, :operatingsystem => operatingsystem, @@ -551,8 +810,8 @@ describe 'opendaylight' do rpm_install_tests end - context 'installing Beryllium RPM' do - rpm_repo = 'opendaylight-40-release' + 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, @@ -603,8 +862,8 @@ describe 'opendaylight' do deb_install_tests end - context 'installing Carbon Deb' do - deb_repo = 'ppa:odl-team/carbon' + context 'installing Nitrogen Deb' do + deb_repo = 'ppa:odl-team/nitrogen' let(:facts) {{ :osfamily => osfamily, :operatingsystem => operatingsystem, @@ -630,50 +889,93 @@ describe 'opendaylight' do deb_install_tests(deb_repo: deb_repo) end end - end - # Security Group Tests - describe 'security group tests' do + # 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 supported stateful' do + 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, - :operatingsystemrelease => '7.3', }} let(:params) {{ - :security_group_mode => 'stateful', - :extra_features => ['odl-netvirt-openstack'], + :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 - enable_sg_tests('stateful', '7.3') + sfc_tests end - context 'using unsupported stateful' do + context 'using odl-netvirt-sfc feature' do let(:facts) {{ :osfamily => osfamily, :operatingsystem => operatingsystem, :operatingsystemmajrelease => operatingsystemmajrelease, - :operatingsystemrelease => '7.2.1511', }} let(:params) {{ - :security_group_mode => 'stateful', - :extra_features => ['odl-netvirt-openstack'], + :extra_features => ['odl-netvirt-sfc'], }} # Run shared tests applicable to all supported OSs @@ -682,20 +984,45 @@ describe 'opendaylight' do # Run test that specialize in checking security groups # Note that this function is defined in spec_helper - enable_sg_tests('stateful', '7.2.1511') + sfc_tests(extra_features: ['odl-netvirt-sfc']) end + end - context 'using transparent with unsupported stateful' do + # 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, - :operatingsystemrelease => '7.2.1511', }} let(:params) {{ - :security_group_mode => 'transparent', - :extra_features => ['odl-netvirt-openstack'], + :inherit_dscp_marking => :true, }} # Run shared tests applicable to all supported OSs @@ -704,7 +1031,7 @@ describe 'opendaylight' do # Run test that specialize in checking security groups # Note that this function is defined in spec_helper - enable_sg_tests('transparent', '7.2.1511') + dscp_tests(inherit_dscp_marking: true) end end @@ -803,4 +1130,183 @@ describe 'opendaylight' do 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