diff --git a/spec/acceptance/nova_wsgi_apache_spec.rb b/spec/acceptance/10_nova_wsgi_apache_spec.rb similarity index 100% rename from spec/acceptance/nova_wsgi_apache_spec.rb rename to spec/acceptance/10_nova_wsgi_apache_spec.rb diff --git a/spec/acceptance/98_libvirt_config_spec.rb b/spec/acceptance/98_libvirt_config_spec.rb new file mode 100644 index 000000000..940db3696 --- /dev/null +++ b/spec/acceptance/98_libvirt_config_spec.rb @@ -0,0 +1,83 @@ +require 'spec_helper_acceptance' + +describe 'basic libvirtd_config resource' do + + context 'default parameters' do + + it 'should work with no errors' do + pp= <<-EOS + Exec { logoutput => 'on_failure' } + + File <||> -> Libvirtd_config <||> + File <||> -> Virtlogd_config <||> + File <||> -> Virtlockd_config <||> + File <||> -> Virtnodedevd_config <||> + File <||> -> Virtproxyd_config <||> + File <||> -> Virtqemud_config <||> + File <||> -> Virtsecretd_config <||> + File <||> -> Virtstoraged_config <||> + + file { '/etc/libvirt' : + ensure => directory, + } + + [ + 'libvirtd', 'virtlogd', 'virtlockd', 'virtnodedevd', 'virtproxyd', + 'virtqemud', 'virtsecretd', 'virtstoraged' + ].each | String $daemon | { + + file { "/etc/libvirt/${daemon}.conf" : + ensure => file, + } + + create_resources("${daemon}_config", { + 'thisshouldexist' => { + 'value' => 1, + }, + 'thisshouldnotexist' => { + 'value' => '' + }, + 'thisshouldexist2' => { + 'value' => '', + 'ensure_absent_val' => 'toto', + 'quote' => true + }, + 'thisshouldnotexist2' => { + 'value' => 'toto', + 'ensure_absent_val' => 'toto' + }, + 'thisshouldexist3' => { + 'value' => 'foo', + 'quote' => true + }, + 'thisshouldnotexist3' => { + 'value' => '', + 'quote' => true + }, + }) + } + EOS + + # Run it twice and test for idempotency + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) + end + + [ + 'libvirtd', 'virtlogd', 'virtlockd', 'virtnodedevd', 'virtproxyd', + 'virtqemud', 'virtsecretd', 'virtstoraged' + ].each do | daemon | + describe file("/etc/libvirt/#{daemon}.conf") do + it { is_expected.to exist } + it { is_expected.to contain('thisshouldexist=1') } + it { is_expected.to contain('thisshouldexist2=""') } + it { is_expected.to contain('thisshouldexist3="foo"') } + + describe '#content' do + subject { super().content } + it { is_expected.to_not match /thisshouldnotexist/ } + end + end + end + end +end diff --git a/spec/acceptance/99_nova_config_spec.rb b/spec/acceptance/99_nova_config_spec.rb new file mode 100644 index 000000000..6bbfb0f75 --- /dev/null +++ b/spec/acceptance/99_nova_config_spec.rb @@ -0,0 +1,134 @@ +require 'spec_helper_acceptance' + +describe 'basic nova_config resource' do + + context 'default parameters' do + + it 'should work with no errors' do + pp= <<-EOS + Exec { logoutput => 'on_failure' } + + File <||> -> Nova_config <||> + File <||> -> Nova_api_paste_ini <||> + File <||> -> Nova_rootwrap_config <||> + + file { '/etc/nova' : + ensure => directory, + } + file { '/etc/nova/nova.conf' : + ensure => file, + } + file { '/etc/nova/api-paste.ini' : + ensure => file, + } + file { '/etc/nova/rootwrap.conf' : + ensure => file, + } + + nova_config { 'DEFAULT/thisshouldexist' : + value => 'foo', + } + + nova_config { 'DEFAULT/thisshouldnotexist' : + value => '', + } + + nova_config { 'DEFAULT/thisshouldexist2' : + value => '', + ensure_absent_val => 'toto', + } + + nova_config { 'DEFAULT/thisshouldnotexist2' : + value => 'toto', + ensure_absent_val => 'toto', + } + + nova_config { 'DEFAULT/thisshouldexist3' : + value => ['foo', 'bar'], + } + + nova_api_paste_ini { 'DEFAULT/thisshouldexist' : + value => 'foo', + } + + nova_api_paste_ini { 'DEFAULT/thisshouldnotexist' : + value => '', + } + + nova_api_paste_ini { 'DEFAULT/thisshouldexist2' : + value => '', + ensure_absent_val => 'toto', + } + + nova_api_paste_ini { 'DEFAULT/thisshouldnotexist2' : + value => 'toto', + ensure_absent_val => 'toto', + } + + nova_api_paste_ini { 'DEFAULT/thisshouldexist3' : + value => 'foo', + key_val_separator => ':' + } + + nova_rootwrap_config { 'DEFAULT/thisshouldexist' : + value => 'foo', + } + + nova_rootwrap_config { 'DEFAULT/thisshouldnotexist' : + value => '', + } + + nova_rootwrap_config { 'DEFAULT/thisshouldexist2' : + value => '', + ensure_absent_val => 'toto', + } + + nova_rootwrap_config { 'DEFAULT/thisshouldnotexist2' : + value => 'toto', + ensure_absent_val => 'toto', + } + EOS + + + # Run it twice and test for idempotency + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) + end + + describe file('/etc/nova/nova.conf') do + it { is_expected.to exist } + it { is_expected.to contain('thisshouldexist=foo') } + it { is_expected.to contain('thisshouldexist2=') } + it { is_expected.to contain('thisshouldexist3=foo') } + it { is_expected.to contain('thisshouldexist3=bar') } + + describe '#content' do + subject { super().content } + it { is_expected.to_not match /thisshouldnotexist/ } + end + end + + describe file('/etc/nova/api-paste.ini') do + it { is_expected.to exist } + it { is_expected.to contain('thisshouldexist=foo') } + it { is_expected.to contain('thisshouldexist2=') } + it { is_expected.to contain('thisshouldexist3:foo') } + + describe '#content' do + subject { super().content } + it { is_expected.to_not match /thisshouldnotexist/ } + end + end + + describe file('/etc/nova/rootwrap.conf') do + it { is_expected.to exist } + it { is_expected.to contain('thisshouldexist=foo') } + it { is_expected.to contain('thisshouldexist2=') } + + describe '#content' do + subject { super().content } + it { is_expected.to_not match /thisshouldnotexist/ } + end + end + end +end