
Caused by trailing comma on keys= line Change-Id: Ie0a87642acbeb2a019f462889e8f8de84816377e Closes-Bug: #1365677
204 lines
6.7 KiB
Ruby
204 lines
6.7 KiB
Ruby
# encoding: UTF-8
|
|
require_relative 'spec_helper'
|
|
|
|
describe 'openstack-common::logging' do
|
|
describe 'ubuntu' do
|
|
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
|
let(:node) { runner.node }
|
|
let(:chef_run) { runner.converge(described_recipe) }
|
|
|
|
describe '/etc/openstack' do
|
|
let(:dir) { chef_run.directory('/etc/openstack') }
|
|
|
|
it 'should create /etc/openstack' do
|
|
expect(chef_run).to create_directory('/etc/openstack')
|
|
end
|
|
|
|
it 'has proper owner' do
|
|
expect(dir.owner).to eq('root')
|
|
expect(dir.group).to eq('root')
|
|
end
|
|
|
|
it 'has proper modes' do
|
|
expect(sprintf('%o', dir.mode)).to eq '755'
|
|
end
|
|
end
|
|
|
|
describe 'logging.conf' do
|
|
let(:file) { chef_run.template('/etc/openstack/logging.conf') }
|
|
|
|
it 'should create /etc/openstack/logging.conf' do
|
|
expect(chef_run).to create_template(file.name)
|
|
end
|
|
|
|
it 'has proper owner' do
|
|
expect(file.owner).to eq('root')
|
|
expect(file.group).to eq('root')
|
|
end
|
|
|
|
it 'has proper modes' do
|
|
expect(sprintf('%o', file.mode)).to eq '644'
|
|
end
|
|
|
|
context 'logging ignore' do
|
|
it 'adds loggers keys ignore' do
|
|
node.set['openstack']['logging']['ignore'] = {
|
|
'ignore.key.1' => 'ignore.value.1',
|
|
'ignore.key.2' => 'ignore.value.2'
|
|
}
|
|
[
|
|
/^\[loggers\]$/,
|
|
/^keys=.*ignore_key_1,ignore_key_2$/
|
|
].each do |content|
|
|
expect(chef_run).to render_file(file.name).with_content(content)
|
|
end
|
|
end
|
|
|
|
it 'adds specific logger ignore block' do
|
|
node.set['openstack']['logging']['ignore'] = {
|
|
'test.nova.api.openstack.wsgi' => 'WARNING'
|
|
}
|
|
content = [
|
|
'[logger_test_nova_api_openstack_wsgi]',
|
|
'level = WARNING',
|
|
'handlers = prod,debug',
|
|
'qualname = test.nova.api.openstack.wsgi'
|
|
]
|
|
expect(chef_run).to render_file(file.name).with_content(build_section(content))
|
|
end
|
|
end
|
|
|
|
context 'loggers' do
|
|
it 'adds default loggers' do
|
|
[
|
|
['[loggers]',
|
|
'keys=root,ceilometer,cinder,glance,horizon,keystone,nova,'\
|
|
'neutron,swift,trove,amqplib,sqlalchemy,boto,suds,eventletwsgi,'\
|
|
'nova_api_openstack_wsgi,nova_osapi_compute_wsgi_server'],
|
|
['[logger_root]',
|
|
'level=NOTSET',
|
|
'handlers=devel'],
|
|
['[logger_ceilometer]',
|
|
'level=DEBUG',
|
|
'handlers=prod,debug',
|
|
'qualname=ceilometer'],
|
|
['[logger_cinder]',
|
|
'level=DEBUG',
|
|
'handlers=prod,debug',
|
|
'qualname=cinder'],
|
|
['[logger_glance]',
|
|
'level=DEBUG',
|
|
'handlers=prod,debug',
|
|
'qualname=glance'],
|
|
['[logger_horizon]',
|
|
'level=DEBUG',
|
|
'handlers=prod,debug',
|
|
'qualname=horizon'],
|
|
['[logger_keystone]',
|
|
'level=DEBUG',
|
|
'handlers=prod,debug',
|
|
'qualname=keystone'],
|
|
['[logger_nova]',
|
|
'level=DEBUG',
|
|
'handlers=prod,debug',
|
|
'qualname=nova'],
|
|
['[logger_neutron]',
|
|
'level=DEBUG',
|
|
'handlers=prod,debug',
|
|
'qualname=neutron'],
|
|
['[logger_swift]',
|
|
'level=DEBUG',
|
|
'handlers=prod,debug',
|
|
'qualname=swift'],
|
|
['[logger_trove]',
|
|
'level=DEBUG',
|
|
'handlers=prod,debug',
|
|
'qualname=trove'],
|
|
['[logger_amqplib]',
|
|
'level=WARNING',
|
|
'handlers=stderr',
|
|
'qualname=amqplib'],
|
|
['[logger_sqlalchemy]',
|
|
'level=WARNING',
|
|
'handlers=stderr',
|
|
'qualname=sqlalchemy'],
|
|
['[logger_boto]',
|
|
'level=WARNING',
|
|
'handlers=stderr',
|
|
'qualname=boto'],
|
|
['[logger_suds]',
|
|
'level=INFO',
|
|
'handlers=stderr',
|
|
'qualname=suds'],
|
|
['[logger_eventletwsgi]',
|
|
'level=WARNING',
|
|
'handlers=stderr',
|
|
'qualname=eventlet.wsgi.server'],
|
|
['[logger_nova_api_openstack_wsgi]',
|
|
'level=WARNING',
|
|
'handlers=prod,debug',
|
|
'qualname=nova.api.openstack.wsgi'],
|
|
['[logger_nova_osapi_compute_wsgi_server]',
|
|
'level=WARNING',
|
|
'handlers=prod,debug',
|
|
'qualname=nova.osapi_compute.wsgi.server']
|
|
].each do |content|
|
|
expect(chef_run).to render_file(file.name).with_content(build_section(content))
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'formatters' do
|
|
it 'adds default formatters' do
|
|
[
|
|
['[formatters]',
|
|
'keys=normal,normal_with_name,debug,syslog_with_name,syslog_debug'],
|
|
['[formatter_normal]',
|
|
'format=%(asctime)s %(levelname)s %(message)s'],
|
|
['[formatter_normal_with_name]',
|
|
'format=[%(name)s]: %(asctime)s %(levelname)s %(message)s'],
|
|
['[formatter_debug]',
|
|
'format=[%(name)s]: %(asctime)s %(levelname)s %(module)s.%(funcName)s %(message)s'],
|
|
['[formatter_syslog_with_name]',
|
|
'format=%(name)s: %(levelname)s %(message)s'],
|
|
['[formatter_syslog_debug]',
|
|
'format=%(name)s: %(levelname)s %(module)s.%(funcName)s %(message)s']
|
|
].each do |content|
|
|
expect(chef_run).to render_file(file.name).with_content(build_section(content))
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'handlers' do
|
|
it 'adds default handlers' do
|
|
[
|
|
['[handlers]',
|
|
'keys=stderr,devel,prod,debug'],
|
|
['[handler_stderr]',
|
|
'args=(sys.stderr,)',
|
|
'class=StreamHandler',
|
|
'formatter=debug'],
|
|
['[handler_devel]',
|
|
'args=(sys.stdout,)',
|
|
'class=StreamHandler',
|
|
'formatter=debug',
|
|
'level=NOTSET'],
|
|
['[handler_prod]',
|
|
"args=(('/dev/log'), handlers.SysLogHandler.LOG_LOCAL0)",
|
|
'class=handlers.SysLogHandler',
|
|
'formatter=syslog_with_name',
|
|
'level=INFO'],
|
|
['[handler_debug]',
|
|
"args=(('/dev/log'), handlers.SysLogHandler.LOG_LOCAL1)",
|
|
'class=handlers.SysLogHandler',
|
|
'formatter=syslog_debug',
|
|
'level=DEBUG']
|
|
].each do |content|
|
|
expect(chef_run).to render_file(file.name).with_content(build_section(content))
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|