puppet-nova/spec/classes/nova_db_online_data_migrations_spec.rb
Diana Clarke e128ba6538 Correct permissions on the nova logfiles
When you execute nova-manage commands, oslo logs to the following
location (file name is dynamically created based on command name).

    /var/log/nova/nova-manage.log

Because puppet-nova is executing these commands as root,
nova-manage.log is owned by root, preventing the 'nova-manage
db archive_deleted_rows' entry in nova's crontab from executing.

    Permission denied: '/var/log/nova/nova-manage.log'

This log file is also an outlier, as all other log files in
/var/log/nova/ are owned by nova:nova.

Similar issues are possible for other nova logs, if for example
a nova services is initially started manually as root, so the
ownership of all nova logs is corrected before configuring nova.

Co-Authored-By: Oliver Walsh <owalsh@redhat.com>
Co-Authored-By: Diana Clarke <diana.joan.clarke@gmail.com>
Co-Authored-By: Maciej Kucia <maciej@kucia.net>
Closes-Bug: #1671681
Change-Id: I0ca0110cbf9139c79074cf603dcab9135f96e765
2017-12-19 20:24:52 +00:00

93 lines
2.9 KiB
Ruby

require 'spec_helper'
describe 'nova::db::online_data_migrations' do
shared_examples_for 'nova-db-online-data-migrations' do
it 'runs nova-db-sync' do
is_expected.to contain_exec('nova-db-online-data-migrations').with(
:command => '/usr/bin/nova-manage db online_data_migrations',
:user => 'nova',
:refreshonly => 'true',
:try_sleep => 5,
:tries => 10,
:timeout => 300,
:logoutput => 'on_failure',
:subscribe => ['Anchor[nova::install::end]',
'Anchor[nova::config::end]',
'Anchor[nova::dbsync_api::end]',
'Anchor[nova::db_online_data_migrations::begin]'],
:notify => 'Anchor[nova::db_online_data_migrations::end]',
)
end
describe "overriding extra_params" do
let :params do
{
:extra_params => '--config-file /etc/nova/nova.conf',
}
end
it {
is_expected.to contain_exec('nova-db-online-data-migrations').with(
:command => '/usr/bin/nova-manage --config-file /etc/nova/nova.conf db online_data_migrations',
:user => 'nova',
:refreshonly => 'true',
:try_sleep => 5,
:tries => 10,
:timeout => 300,
:logoutput => 'on_failure',
:subscribe => ['Anchor[nova::install::end]',
'Anchor[nova::config::end]',
'Anchor[nova::dbsync_api::end]',
'Anchor[nova::db_online_data_migrations::begin]'],
:notify => 'Anchor[nova::db_online_data_migrations::end]',
)
}
end
describe "overriding db_sync_timeout" do
let :params do
{
:db_sync_timeout => 750,
}
end
it {
is_expected.to contain_exec('nova-db-online-data-migrations').with(
:command => '/usr/bin/nova-manage db online_data_migrations',
:user => 'nova',
:refreshonly => 'true',
:try_sleep => 5,
:tries => 10,
:timeout => 750,
:logoutput => 'on_failure',
:subscribe => ['Anchor[nova::install::end]',
'Anchor[nova::config::end]',
'Anchor[nova::dbsync_api::end]',
'Anchor[nova::db_online_data_migrations::begin]'],
:notify => 'Anchor[nova::db_online_data_migrations::end]',
)
}
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge(OSDefaults.get_facts({
:processorcount => 8,
:concat_basedir => '/var/lib/puppet/concat'
}))
end
it_configures 'nova-db-online-data-migrations'
end
end
end