Refactor ChefSpec tests
Change-Id: I015d59f5d7f929bd421846f50e1b7a8ad5156248 Implements: blueprint refactor-spec-files
This commit is contained in:
parent
626e5cb54b
commit
3acda13581
@ -84,7 +84,7 @@ template '/etc/swift/account-server.conf' do
|
||||
source 'account-server.conf.erb'
|
||||
owner 'swift'
|
||||
group 'swift'
|
||||
mode '0600'
|
||||
mode 0600
|
||||
variables(
|
||||
'bind_ip' => node['openstack']['object-storage']['network']['account-bind-ip'],
|
||||
'bind_port' => node['openstack']['object-storage']['network']['account-bind-port']
|
||||
|
@ -83,7 +83,7 @@ directory '/etc/swift' do
|
||||
action :create
|
||||
owner 'swift'
|
||||
group 'swift'
|
||||
mode '0700'
|
||||
mode 0700
|
||||
only_if '/usr/bin/id swift'
|
||||
end
|
||||
|
||||
@ -99,7 +99,7 @@ file '/etc/swift/swift.conf' do
|
||||
action :create
|
||||
owner 'swift'
|
||||
group 'swift'
|
||||
mode '0700'
|
||||
mode 0700
|
||||
content "[swift-hash]\nswift_hash_path_suffix=#{swifthash}\n"
|
||||
only_if '/usr/bin/id swift'
|
||||
end
|
||||
@ -122,7 +122,7 @@ template '/etc/swift/pull-rings.sh' do
|
||||
source 'pull-rings.sh.erb'
|
||||
owner 'swift'
|
||||
group 'swift'
|
||||
mode '0700'
|
||||
mode 0700
|
||||
variables(
|
||||
builder_ip: git_builder_ip,
|
||||
service_prefix: platform_options['service_prefix']
|
||||
|
@ -84,7 +84,7 @@ template '/etc/swift/container-server.conf' do
|
||||
source 'container-server.conf.erb'
|
||||
owner 'swift'
|
||||
group 'swift'
|
||||
mode '0600'
|
||||
mode 0600
|
||||
variables(
|
||||
'bind_ip' => node['openstack']['object-storage']['network']['container-bind-ip'],
|
||||
'bind_port' => node['openstack']['object-storage']['network']['container-bind-port']
|
||||
@ -102,7 +102,7 @@ if platform?('ubuntu')
|
||||
cookbook_file '/etc/init/swift-container-sync.conf' do
|
||||
owner 'root'
|
||||
group 'root'
|
||||
mode '0755'
|
||||
mode 0755
|
||||
source 'swift-container-sync.conf.upstart'
|
||||
action :create
|
||||
not_if '[ -e /etc/init/swift-container-sync.conf ]'
|
||||
|
@ -69,7 +69,7 @@ if node['openstack']['object-storage']['statistics']['enabled']
|
||||
source 'swift-statsd-publish.py.erb'
|
||||
owner 'root'
|
||||
group 'root'
|
||||
mode '0755'
|
||||
mode 0755
|
||||
end
|
||||
cron 'cron_swift_statsd_publish' do
|
||||
command "#{platform_options['swift_statsd_publish']} > /dev/null 2>&1"
|
||||
@ -81,7 +81,7 @@ template '/etc/swift/dispersion.conf' do
|
||||
source 'dispersion.conf.erb'
|
||||
owner 'swift'
|
||||
group 'swift'
|
||||
mode '0600'
|
||||
mode 0600
|
||||
variables(
|
||||
'auth_url' => node['openstack']['object-storage']['auth_url'],
|
||||
'auth_user' => auth_user,
|
||||
|
@ -87,7 +87,7 @@ template '/etc/swift/object-server.conf' do
|
||||
source 'object-server.conf.erb'
|
||||
owner 'swift'
|
||||
group 'swift'
|
||||
mode '0600'
|
||||
mode 0600
|
||||
variables(
|
||||
'bind_ip' => node['openstack']['object-storage']['network']['object-bind-ip'],
|
||||
'bind_port' => node['openstack']['object-storage']['network']['object-bind-port']
|
||||
|
@ -132,7 +132,7 @@ template '/etc/swift/proxy-server.conf' do
|
||||
source 'proxy-server.conf.erb'
|
||||
owner 'swift'
|
||||
group 'swift'
|
||||
mode '0600'
|
||||
mode 0600
|
||||
variables(
|
||||
'authmode' => node['openstack']['object-storage']['authmode'],
|
||||
'bind_host' => node['openstack']['object-storage']['network']['proxy-bind-ip'],
|
||||
|
@ -73,7 +73,7 @@ end
|
||||
|
||||
template '/etc/rsyncd.conf' do
|
||||
source 'rsyncd.conf.erb'
|
||||
mode '0644'
|
||||
mode 0644
|
||||
notifies :restart, "service[#{rsync_servicename}]", :immediately
|
||||
end
|
||||
|
||||
|
@ -24,7 +24,7 @@ template '/etc/swift/drive-audit.conf' do
|
||||
source 'drive-audit.conf.erb'
|
||||
owner 'swift'
|
||||
group 'swift'
|
||||
mode '0600'
|
||||
mode 0600
|
||||
end
|
||||
|
||||
cron 'drive-audit' do
|
||||
|
@ -3,51 +3,46 @@ require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::account-server' do
|
||||
describe 'ubuntu' do
|
||||
|
||||
before do
|
||||
swift_stubs
|
||||
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
@node = @chef_run.node
|
||||
@node.set['openstack']['object-storage']['disk_enum_expr'] = "[{ 'sda' => {}}]"
|
||||
@node.set['openstack']['object-storage']['disk_test_filter'] = [
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
node.set['openstack']['object-storage']['disk_enum_expr'] = "[{ 'sda' => {}}]"
|
||||
node.set['openstack']['object-storage']['disk_test_filter'] = [
|
||||
'candidate =~ /sd[^a]/ or candidate =~ /hd[^a]/ or candidate =~ /vd[^a]/ or candidate =~ /xvd[^a]/',
|
||||
"File.exist?('/dev/' + candidate)",
|
||||
"not system('/sbin/parted /dev/' + candidate + ' -s print | grep linux-swap')",
|
||||
"not info.has_key?('removable') or info['removable'] == 0.to_s"]
|
||||
|
||||
# mock out an interface on the storage node
|
||||
@node.set['network'] = MOCK_NODE_NETWORK_DATA['network']
|
||||
node.set['network'] = MOCK_NODE_NETWORK_DATA['network']
|
||||
|
||||
@chef_run.converge 'openstack-object-storage::account-server'
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
include_context 'swift-stubs'
|
||||
|
||||
it 'installs swift account packages' do
|
||||
expect(@chef_run).to install_package 'swift-account'
|
||||
expect(chef_run).to install_package('swift-account')
|
||||
end
|
||||
|
||||
it 'installs swiftclient package' do
|
||||
expect(@chef_run).to install_package 'python-swiftclient'
|
||||
expect(chef_run).to install_package('python-swiftclient')
|
||||
end
|
||||
|
||||
it 'starts swift account services on boot' do
|
||||
%w{swift-account swift-account-auditor swift-account-reaper swift-account-replicator}.each do |svc|
|
||||
expect(@chef_run).to enable_service(svc)
|
||||
expect(chef_run).to enable_service(svc)
|
||||
end
|
||||
end
|
||||
|
||||
describe '/etc/swift/account-server.conf' do
|
||||
let(:file) { chef_run.template('/etc/swift/account-server.conf') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.template '/etc/swift/account-server.conf'
|
||||
end
|
||||
|
||||
it 'has proper owner' do
|
||||
expect(@file.owner).to eq('swift')
|
||||
expect(@file.group).to eq('swift')
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '600'
|
||||
it 'creates account-server.conf' do
|
||||
expect(chef_run).to create_template(file.name).with(
|
||||
user: 'swift',
|
||||
group: 'swift',
|
||||
mode: 0600
|
||||
)
|
||||
end
|
||||
|
||||
{ 'bind_ip' => '0.0.0.0',
|
||||
@ -55,12 +50,9 @@ describe 'openstack-object-storage::account-server' do
|
||||
'log_statsd_default_sample_rate' => '1',
|
||||
'log_statsd_metric_prefix' => 'openstack.swift.Fauxhai' }.each do |k, v|
|
||||
it "sets the #{k}" do
|
||||
expect(@chef_run).to render_file(@file.name).with_content(/^#{Regexp.quote("#{k} = #{v}")}$/)
|
||||
expect(chef_run).to render_file(file.name).with_content(/^#{Regexp.quote("#{k} = #{v}")}$/)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -2,9 +2,7 @@
|
||||
require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::client' do
|
||||
|
||||
describe 'ubuntu' do
|
||||
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
|
@ -3,107 +3,91 @@ require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::common' do
|
||||
describe 'ubuntu' do
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
before do
|
||||
swift_stubs
|
||||
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
@node = @chef_run.node
|
||||
include_context 'swift-stubs'
|
||||
|
||||
# TODO: this does not work
|
||||
# ::Chef::Log.should_receive(:info).with('chefspec: precise-updates/icehouse')
|
||||
|
||||
@chef_run.converge 'openstack-object-storage::common'
|
||||
it 'includes openstack-common::sysctl' do
|
||||
expect(chef_run).to include_recipe('openstack-common::sysctl')
|
||||
end
|
||||
|
||||
describe '60-openstack.conf' do
|
||||
before do
|
||||
@file = @chef_run.template '/etc/sysctl.d/60-openstack.conf'
|
||||
end
|
||||
let(:file) { chef_run.template('/etc/sysctl.d/60-openstack.conf') }
|
||||
|
||||
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'
|
||||
it 'creates /etc/sysctl.d/60-openstack.conf' do
|
||||
expect(chef_run).to create_template(file.name).with(
|
||||
user: 'root',
|
||||
group: 'root',
|
||||
mode: 0644
|
||||
)
|
||||
end
|
||||
|
||||
it 'sets the net.ipv4.tcp_tw_recycle' do
|
||||
match = 'net.ipv4.tcp_tw_recycle = 1'
|
||||
expect(@chef_run).to render_file(@file.name).with_content(match)
|
||||
expect(chef_run).to render_file(file.name).with_content(match)
|
||||
end
|
||||
|
||||
it 'sets the net.ipv4.tcp_tw_reuse' do
|
||||
match = 'net.ipv4.tcp_tw_reuse = 1'
|
||||
expect(@chef_run).to render_file(@file.name).with_content(match)
|
||||
expect(chef_run).to render_file(file.name).with_content(match)
|
||||
end
|
||||
|
||||
it 'sets the net.ipv4.tcp_syncookies' do
|
||||
match = 'net.ipv4.tcp_syncookies = 0'
|
||||
expect(@chef_run).to render_file(@file.name).with_content(match)
|
||||
expect(chef_run).to render_file(file.name).with_content(match)
|
||||
end
|
||||
end
|
||||
|
||||
it 'installs git package for ring management' do
|
||||
expect(@chef_run).to install_package 'git'
|
||||
expect(chef_run).to install_package('git')
|
||||
end
|
||||
|
||||
describe '/etc/swift' do
|
||||
let(:dir) { chef_run.directory('/etc/swift') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.directory '/etc/swift'
|
||||
it 'creates /etc/swift' do
|
||||
expect(chef_run).to create_directory(dir.name).with(
|
||||
user: 'swift',
|
||||
group: 'swift',
|
||||
mode: 0700
|
||||
)
|
||||
end
|
||||
|
||||
it 'has proper owner' do
|
||||
expect(@file.owner).to eq('swift')
|
||||
expect(@file.group).to eq('swift')
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '700'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe '/etc/swift/swift.conf' do
|
||||
let(:file) { chef_run.file('/etc/swift/swift.conf') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.file '/etc/swift/swift.conf'
|
||||
end
|
||||
|
||||
it 'has proper owner' do
|
||||
expect(@file.owner).to eq('swift')
|
||||
expect(@file.group).to eq('swift')
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '700'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe '/etc/swift/pull-rings.sh' do
|
||||
|
||||
before do
|
||||
@file = @chef_run.template '/etc/swift/pull-rings.sh'
|
||||
end
|
||||
|
||||
it 'has proper owner' do
|
||||
expect(@file.owner).to eq('swift')
|
||||
expect(@file.group).to eq('swift')
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '700'
|
||||
it 'creates swift.conf' do
|
||||
expect(chef_run).to create_file(file.name).with(
|
||||
user: 'swift',
|
||||
group: 'swift',
|
||||
mode: 0700
|
||||
)
|
||||
end
|
||||
|
||||
it 'template contents' do
|
||||
pending 'TODO: implement'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
describe '/etc/swift/pull-rings.sh' do
|
||||
let(:file) { chef_run.template('/etc/swift/pull-rings.sh') }
|
||||
|
||||
it 'creates pull-rings.sh' do
|
||||
expect(chef_run).to create_template(file.name).with(
|
||||
user: 'swift',
|
||||
group: 'swift',
|
||||
mode: 0700
|
||||
)
|
||||
end
|
||||
|
||||
it 'template contents' do
|
||||
pending 'TODO: implement'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -3,52 +3,46 @@ require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::container-server' do
|
||||
describe 'ubuntu' do
|
||||
|
||||
before do
|
||||
swift_stubs
|
||||
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
@node = @chef_run.node
|
||||
@node.set['openstack']['object-storage']['container-server']['allowed_sync_hosts'] = ['host1', 'host2', 'host3']
|
||||
@node.set['openstack']['object-storage']['disk_enum_expr'] = "[{ 'sda' => {}}]"
|
||||
@node.set['openstack']['object-storage']['disk_test_filter'] = [
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
node.set['openstack']['object-storage']['container-server']['allowed_sync_hosts'] = ['host1', 'host2', 'host3']
|
||||
node.set['openstack']['object-storage']['disk_enum_expr'] = "[{ 'sda' => {}}]"
|
||||
node.set['openstack']['object-storage']['disk_test_filter'] = [
|
||||
'candidate =~ /sd[^a]/ or candidate =~ /hd[^a]/ or candidate =~ /vd[^a]/ or candidate =~ /xvd[^a]/',
|
||||
"File.exist?('/dev/' + candidate)",
|
||||
"not system('/sbin/parted /dev/' + candidate + ' -s print | grep linux-swap')",
|
||||
"not info.has_key?('removable') or info['removable'] == 0.to_s"]
|
||||
|
||||
# mock out an interface on the storage node
|
||||
@node.set['network'] = MOCK_NODE_NETWORK_DATA['network']
|
||||
|
||||
@chef_run.converge 'openstack-object-storage::container-server'
|
||||
node.set['network'] = MOCK_NODE_NETWORK_DATA['network']
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
include_context 'swift-stubs'
|
||||
|
||||
it 'installs swift container packages' do
|
||||
expect(@chef_run).to install_package 'swift-container'
|
||||
expect(chef_run).to install_package('swift-container')
|
||||
end
|
||||
|
||||
it 'starts swift container services on boot' do
|
||||
%w{swift-container swift-container-auditor swift-container-replicator swift-container-updater swift-container-sync}.each do |svc|
|
||||
expect(@chef_run).to enable_service(svc)
|
||||
expect(chef_run).to enable_service(svc)
|
||||
end
|
||||
end
|
||||
|
||||
describe '/etc/swift/container-server.conf' do
|
||||
let(:file) { chef_run.template('/etc/swift/container-server.conf') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.template '/etc/swift/container-server.conf'
|
||||
end
|
||||
|
||||
it 'has proper owner' do
|
||||
expect(@file.owner).to eq('swift')
|
||||
expect(@file.group).to eq('swift')
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '600'
|
||||
it 'creates account-server.conf' do
|
||||
expect(chef_run).to create_template(file.name).with(
|
||||
user: 'swift',
|
||||
group: 'swift',
|
||||
mode: 0600
|
||||
)
|
||||
end
|
||||
|
||||
it 'has allowed sync hosts' do
|
||||
expect(@chef_run).to render_file(@file.name).with_content('allowed_sync_hosts = host1,host2,host3')
|
||||
expect(chef_run).to render_file(file.name).with_content('allowed_sync_hosts = host1,host2,host3')
|
||||
end
|
||||
|
||||
{ 'bind_ip' => '0.0.0.0',
|
||||
@ -56,31 +50,37 @@ describe 'openstack-object-storage::container-server' do
|
||||
'log_statsd_default_sample_rate' => '1',
|
||||
'log_statsd_metric_prefix' => 'openstack.swift.Fauxhai' }.each do |k, v|
|
||||
it "sets the #{k}" do
|
||||
expect(@chef_run).to render_file(@file.name).with_content(/^#{Regexp.quote("#{k} = #{v}")}$/)
|
||||
expect(chef_run).to render_file(file.name).with_content(/^#{Regexp.quote("#{k} = #{v}")}$/)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
it 'should create container sync upstart conf for ubuntu' do
|
||||
expect(@chef_run).to create_cookbook_file '/etc/init/swift-container-sync.conf'
|
||||
end
|
||||
describe 'container sync' do
|
||||
let(:file) { chef_run.cookbook_file('/etc/init/swift-container-sync.conf') }
|
||||
let(:link) { chef_run.link('/etc/init.d/swift-container-sync') }
|
||||
|
||||
it 'should create container sync init script for ubuntu' do
|
||||
expect(@chef_run).to create_link '/etc/init.d/swift-container-sync'
|
||||
it 'creates /etc/init/swift-container-sync.conf' do
|
||||
expect(chef_run).to create_cookbook_file(file.name).with(
|
||||
user: 'root',
|
||||
group: 'root',
|
||||
mode: 0755
|
||||
)
|
||||
end
|
||||
|
||||
it 'creates /etc/init.d/swift-container-sync' do
|
||||
expect(chef_run).to create_link(link.name)
|
||||
end
|
||||
end
|
||||
|
||||
describe '/etc/swift/container-server.conf' do
|
||||
let(:file) { chef_run.template('/etc/swift/container-server.conf') }
|
||||
|
||||
before do
|
||||
@node = @chef_run.node
|
||||
@node.set['openstack']['object-storage']['container-server']['allowed_sync_hosts'] = []
|
||||
@chef_run.converge 'openstack-object-storage::container-server'
|
||||
@file = @chef_run.template '/etc/swift/container-server.conf'
|
||||
node.set['openstack']['object-storage']['container-server']['allowed_sync_hosts'] = []
|
||||
end
|
||||
|
||||
it 'has no allowed_sync_hosts on empty lists' do
|
||||
expect(@chef_run).not_to render_file(@file.name).with_content(/^allowed_sync_hots =/)
|
||||
expect(chef_run).not_to render_file(file.name).with_content(/^allowed_sync_hots =/)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -3,30 +3,29 @@ require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::disks' do
|
||||
describe 'ubuntu' do
|
||||
|
||||
before do
|
||||
swift_stubs
|
||||
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
@node = @chef_run.node
|
||||
@node.set['openstack']['object-storage']['disk_enum_expr'] = "[{ 'sda' => {}}]"
|
||||
@node.set['openstack']['object-storage']['disk_test_filter'] = [
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
node.set['openstack']['object-storage']['disk_enum_expr'] = "[{ 'sda' => {}}]"
|
||||
node.set['openstack']['object-storage']['disk_test_filter'] = [
|
||||
'candidate =~ /sd[^a]/ or candidate =~ /hd[^a]/ or candidate =~ /vd[^a]/ or candidate =~ /xvd[^a]/',
|
||||
"File.exist?('/dev/' + candidate)",
|
||||
"not system('/sbin/parted /dev/' + candidate + ' -s print | grep linux-swap')",
|
||||
"not info.has_key?('removable') or info['removable'] == 0.to_s"]
|
||||
|
||||
# mock out an interface on the storage node
|
||||
@node.set['network'] = MOCK_NODE_NETWORK_DATA['network']
|
||||
node.set['network'] = MOCK_NODE_NETWORK_DATA['network']
|
||||
|
||||
@chef_run.converge 'openstack-object-storage::disks'
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
include_context 'swift-stubs'
|
||||
|
||||
it 'installs xfs progs package' do
|
||||
expect(@chef_run).to install_package 'xfsprogs'
|
||||
expect(chef_run).to install_package('xfsprogs')
|
||||
end
|
||||
|
||||
it 'installs parted package' do
|
||||
expect(@chef_run).to install_package 'parted'
|
||||
expect(chef_run).to install_package('parted')
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -3,60 +3,50 @@ require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::management-server' do
|
||||
describe 'ubuntu' do
|
||||
|
||||
before do
|
||||
swift_stubs
|
||||
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
@node = @chef_run.node
|
||||
@chef_run.converge 'openstack-object-storage::management-server'
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
include_context 'swift-stubs'
|
||||
|
||||
it 'installs swift swauth package' do
|
||||
expect(@chef_run).to install_package 'swauth'
|
||||
expect(chef_run).to install_package 'swauth'
|
||||
end
|
||||
|
||||
describe '/etc/swift/dispersion.conf' do
|
||||
let(:file) { chef_run.template('/etc/swift/dispersion.conf') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.template '/etc/swift/dispersion.conf'
|
||||
end
|
||||
|
||||
it 'has proper owner' do
|
||||
expect(@file.owner).to eq('swift')
|
||||
expect(@file.group).to eq('swift')
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '600'
|
||||
it 'creates dispersion.conf' do
|
||||
expect(chef_run).to create_template(file.name).with(
|
||||
user: 'swift',
|
||||
group: 'swift',
|
||||
mode: 0600
|
||||
)
|
||||
end
|
||||
|
||||
it 'template contents' do
|
||||
pending 'TODO: implement'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe '/usr/local/bin/swift-statsd-publish.py' do
|
||||
let(:file) { chef_run.template('/usr/local/bin/swift-statsd-publish.py') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.template '/usr/local/bin/swift-statsd-publish.py'
|
||||
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 '755'
|
||||
it 'creates /usr/local/bin/swift-statsd-publish.py' do
|
||||
expect(chef_run).to create_template(file.name).with(
|
||||
user: 'root',
|
||||
group: 'root',
|
||||
mode: 0755
|
||||
)
|
||||
end
|
||||
|
||||
it 'has expected statsd host' do
|
||||
expect(@chef_run).to render_file(@file.name).with_content("self.statsd_host = '127.0.0.1'")
|
||||
expect(chef_run).to render_file(file.name).with_content(
|
||||
"self.statsd_host = '127.0.0.1'"
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -3,55 +3,48 @@ require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::object-server' do
|
||||
describe 'ubuntu' do
|
||||
|
||||
before do
|
||||
swift_stubs
|
||||
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
@node = @chef_run.node
|
||||
@node.set['openstack']['object-storage']['disk_enum_expr'] = "[{ 'sda' => {}}]"
|
||||
@node.set['openstack']['object-storage']['disk_test_filter'] = [
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
node.set['openstack']['object-storage']['disk_enum_expr'] = "[{ 'sda' => {}}]"
|
||||
node.set['openstack']['object-storage']['disk_test_filter'] = [
|
||||
'candidate =~ /sd[^a]/ or candidate =~ /hd[^a]/ or candidate =~ /vd[^a]/ or candidate =~ /xvd[^a]/',
|
||||
"File.exist?('/dev/' + candidate)",
|
||||
"not system('/sbin/parted /dev/' + candidate + ' -s print | grep linux-swap')",
|
||||
"not info.has_key?('removable') or info['removable'] == 0.to_s"]
|
||||
|
||||
# mock out an interface on the storage node
|
||||
@node.set['network'] = MOCK_NODE_NETWORK_DATA['network']
|
||||
node.set['network'] = MOCK_NODE_NETWORK_DATA['network']
|
||||
|
||||
@chef_run.converge 'openstack-object-storage::object-server'
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
include_context 'swift-stubs'
|
||||
|
||||
it 'installs swift packages' do
|
||||
expect(@chef_run).to install_package 'swift-object'
|
||||
expect(chef_run).to install_package('swift-object')
|
||||
end
|
||||
|
||||
it 'starts swift object services on boot' do
|
||||
%w{swift-object swift-object-replicator swift-object-auditor swift-object-updater}.each do |svc|
|
||||
expect(@chef_run).to enable_service(svc)
|
||||
expect(chef_run).to enable_service(svc)
|
||||
end
|
||||
end
|
||||
|
||||
describe '/var/spool/crontab/root' do
|
||||
|
||||
it 'template contents' do
|
||||
pending 'TODO: check for recon script'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe '/etc/swift/object-server.conf' do
|
||||
let(:file) { chef_run.template('/etc/swift/object-server.conf') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.template '/etc/swift/object-server.conf'
|
||||
end
|
||||
|
||||
it 'has proper owner' do
|
||||
expect(@file.owner).to eq('swift')
|
||||
expect(@file.group).to eq('swift')
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '600'
|
||||
it 'creates object-server.conf' do
|
||||
expect(chef_run).to create_template(file.name).with(
|
||||
user: 'swift',
|
||||
group: 'swift',
|
||||
mode: 0600
|
||||
)
|
||||
end
|
||||
|
||||
{ 'bind_ip' => '0.0.0.0',
|
||||
@ -59,12 +52,9 @@ describe 'openstack-object-storage::object-server' do
|
||||
'log_statsd_default_sample_rate' => '1',
|
||||
'log_statsd_metric_prefix' => 'openstack.swift.Fauxhai' }.each do |k, v|
|
||||
it "sets the #{k}" do
|
||||
expect(@chef_run).to render_file(@file.name).with_content(/^#{Regexp.quote("#{k} = #{v}")}$/)
|
||||
expect(chef_run).to render_file(file.name).with_content(/^#{Regexp.quote("#{k} = #{v}")}$/)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -3,44 +3,41 @@ require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::proxy-server' do
|
||||
describe 'ubuntu' do
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
node.automatic['cpu']['total'] = 6
|
||||
|
||||
before do
|
||||
swift_stubs
|
||||
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
@node = @chef_run.node
|
||||
@node.automatic['cpu']['total'] = 6
|
||||
@chef_run.converge 'openstack-object-storage::proxy-server'
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
include_context 'swift-stubs'
|
||||
|
||||
it 'installs memcache python packages' do
|
||||
expect(@chef_run).to install_package 'python-memcache'
|
||||
expect(chef_run).to install_package('python-memcache')
|
||||
end
|
||||
|
||||
it 'installs swift packages' do
|
||||
expect(@chef_run).to install_package 'swift-proxy'
|
||||
expect(chef_run).to install_package('swift-proxy')
|
||||
end
|
||||
|
||||
it 'installs swauth package if swauth is selected' do
|
||||
expect(@chef_run).to install_package 'swauth'
|
||||
expect(chef_run).to install_package('swauth')
|
||||
end
|
||||
|
||||
it 'starts swift-proxy on boot' do
|
||||
expect(@chef_run).to enable_service('swift-proxy')
|
||||
expect(chef_run).to enable_service('swift-proxy')
|
||||
end
|
||||
|
||||
describe '/etc/swift/proxy-server.conf' do
|
||||
let(:file) { chef_run.template('/etc/swift/proxy-server.conf') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.template '/etc/swift/proxy-server.conf'
|
||||
end
|
||||
|
||||
it 'has proper owner' do
|
||||
expect(@file.owner).to eq('swift')
|
||||
expect(@file.group).to eq('swift')
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '600'
|
||||
it 'creates proxy-server.conf' do
|
||||
expect(chef_run).to create_template(file.name).with(
|
||||
user: 'swift',
|
||||
group: 'swift',
|
||||
mode: 0600
|
||||
)
|
||||
end
|
||||
|
||||
it 'has proper pipeline in template' do
|
||||
@ -49,94 +46,77 @@ describe 'openstack-object-storage::proxy-server' do
|
||||
/^workers = 5$/
|
||||
]
|
||||
array.each do |content|
|
||||
expect(@chef_run).to render_file(@file.name).with_content(content)
|
||||
expect(chef_run).to render_file(file.name).with_content(content)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with domain_remap enabled' do
|
||||
before do
|
||||
node.set['openstack']['object-storage']['domain_remap']['enabled'] = true
|
||||
end
|
||||
|
||||
it 'has proper pipeline in template' do
|
||||
array = [
|
||||
/^pipeline = catch_errors healthcheck cache ratelimit domain_remap swauth proxy-logging proxy-server$/,
|
||||
/^storage_domain = example.com$/,
|
||||
/^path_root = v1$/,
|
||||
/^reseller_prefixes = AUTH$/
|
||||
]
|
||||
array.each do |content|
|
||||
expect(chef_run).to render_file(file.name).with_content(content)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with formpost enabled' do
|
||||
before do
|
||||
node.set['openstack']['object-storage']['formpost']['enabled'] = true
|
||||
end
|
||||
|
||||
it 'has proper pipeline in template' do
|
||||
array = [
|
||||
/^pipeline = catch_errors healthcheck cache ratelimit formpost swauth proxy-logging proxy-server$/
|
||||
]
|
||||
array.each do |content|
|
||||
expect(chef_run).to render_file(file.name).with_content(content)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with staticweb enabled' do
|
||||
before do
|
||||
node.set['openstack']['object-storage']['staticweb']['enabled'] = true
|
||||
end
|
||||
|
||||
it 'has proper pipeline in template' do
|
||||
array = [
|
||||
/^pipeline = catch_errors healthcheck cache ratelimit swauth staticweb proxy-logging proxy-server$/,
|
||||
/^cache_timeout = 300$/
|
||||
]
|
||||
array.each do |content|
|
||||
expect(chef_run).to render_file(file.name).with_content(content)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with tempurl enabled' do
|
||||
before do
|
||||
node.set['openstack']['object-storage']['tempurl']['enabled'] = true
|
||||
end
|
||||
|
||||
it 'has proper pipeline in template' do
|
||||
array = [
|
||||
/^pipeline = catch_errors healthcheck cache ratelimit tempurl swauth proxy-logging proxy-server$/,
|
||||
/^incoming_remove_headers = x-timestamp$/,
|
||||
/^incoming_allow_headers = $/,
|
||||
'outgoing_remove_headers = x-object-meta-*',
|
||||
'outgoing_allow_headers = x-object-meta-public-*'
|
||||
]
|
||||
array.each do |content|
|
||||
expect(chef_run).to render_file(file.name).with_content(content)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '/etc/swift/proxy-server.conf with domain_remap enabled' do
|
||||
|
||||
before do
|
||||
@node = @chef_run.node
|
||||
@node.set['openstack']['object-storage']['domain_remap']['enabled'] = true
|
||||
@chef_run.converge 'openstack-object-storage::proxy-server'
|
||||
@file = @chef_run.template '/etc/swift/proxy-server.conf'
|
||||
end
|
||||
|
||||
it 'has proper pipeline in template' do
|
||||
array = [
|
||||
/^pipeline = catch_errors healthcheck cache ratelimit domain_remap swauth proxy-logging proxy-server$/,
|
||||
/^storage_domain = example.com$/,
|
||||
/^path_root = v1$/,
|
||||
/^reseller_prefixes = AUTH$/
|
||||
]
|
||||
array.each do |content|
|
||||
expect(@chef_run).to render_file(@file.name).with_content(content)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '/etc/swift/proxy-server.conf with formpost enabled' do
|
||||
|
||||
before do
|
||||
@node = @chef_run.node
|
||||
@node.set['openstack']['object-storage']['formpost']['enabled'] = true
|
||||
@chef_run.converge 'openstack-object-storage::proxy-server'
|
||||
@file = @chef_run.template '/etc/swift/proxy-server.conf'
|
||||
end
|
||||
|
||||
it 'has proper pipeline in template' do
|
||||
array = [
|
||||
/^pipeline = catch_errors healthcheck cache ratelimit formpost swauth proxy-logging proxy-server$/
|
||||
]
|
||||
array.each do |content|
|
||||
expect(@chef_run).to render_file(@file.name).with_content(content)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '/etc/swift/proxy-server.conf with staticweb enabled' do
|
||||
|
||||
before do
|
||||
@node = @chef_run.node
|
||||
@node.set['openstack']['object-storage']['staticweb']['enabled'] = true
|
||||
@chef_run.converge 'openstack-object-storage::proxy-server'
|
||||
@file = @chef_run.template '/etc/swift/proxy-server.conf'
|
||||
end
|
||||
|
||||
it 'has proper pipeline in template' do
|
||||
array = [
|
||||
/^pipeline = catch_errors healthcheck cache ratelimit swauth staticweb proxy-logging proxy-server$/,
|
||||
/^cache_timeout = 300$/
|
||||
]
|
||||
array.each do |content|
|
||||
expect(@chef_run).to render_file(@file.name).with_content(content)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '/etc/swift/proxy-server.conf with tempurl enabled' do
|
||||
|
||||
before do
|
||||
@node = @chef_run.node
|
||||
@node.set['openstack']['object-storage']['tempurl']['enabled'] = true
|
||||
@chef_run.converge 'openstack-object-storage::proxy-server'
|
||||
@file = @chef_run.template '/etc/swift/proxy-server.conf'
|
||||
end
|
||||
|
||||
it 'has proper pipeline in template' do
|
||||
array = [
|
||||
/^pipeline = catch_errors healthcheck cache ratelimit tempurl swauth proxy-logging proxy-server$/,
|
||||
/^incoming_remove_headers = x-timestamp$/,
|
||||
/^incoming_allow_headers = $/,
|
||||
'outgoing_remove_headers = x-object-meta-*',
|
||||
'outgoing_allow_headers = x-object-meta-public-*'
|
||||
]
|
||||
array.each do |content|
|
||||
expect(@chef_run).to render_file(@file.name).with_content(content)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
@ -3,32 +3,31 @@ require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::ring-repo' do
|
||||
describe 'ubuntu' do
|
||||
|
||||
before do
|
||||
swift_stubs
|
||||
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
@node = @chef_run.node
|
||||
@chef_run.converge 'openstack-object-storage::ring-repo'
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
include_context 'swift-stubs'
|
||||
|
||||
it 'installs git package for ring management' do
|
||||
expect(@chef_run).to install_package 'git-daemon-sysvinit'
|
||||
expect(chef_run).to install_package('git-daemon-sysvinit')
|
||||
end
|
||||
|
||||
it 'should not start xinetd services on boot' do
|
||||
%w{xinetd}.each do |svc|
|
||||
expect(@chef_run).not_to enable_service(svc)
|
||||
expect(chef_run).not_to enable_service(svc)
|
||||
end
|
||||
end
|
||||
|
||||
# FIXME(galstrom21): This spec file should just check that the LWRP
|
||||
# is called with the appropriate paramaters. It should not be checking
|
||||
# the file contents.
|
||||
describe '/etc/swift/ring-workspace/generate-rings.sh' do
|
||||
|
||||
it 'gets installed' do
|
||||
pending 'TODO: determine some way to ensure this LWRP script gets created'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -3,40 +3,36 @@ require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::rsync' do
|
||||
describe 'ubuntu' do
|
||||
|
||||
before do
|
||||
swift_stubs
|
||||
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
@node = @chef_run.node
|
||||
@chef_run.converge 'openstack-object-storage::rsync'
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
include_context 'swift-stubs'
|
||||
|
||||
it 'installs git package for ring management' do
|
||||
expect(@chef_run).to install_package 'rsync'
|
||||
expect(chef_run).to install_package('rsync')
|
||||
end
|
||||
|
||||
it 'starts rsync service on boot' do
|
||||
%w{rsync}.each do |svc|
|
||||
expect(@chef_run).to enable_service(svc)
|
||||
expect(chef_run).to enable_service(svc)
|
||||
end
|
||||
end
|
||||
|
||||
describe '/etc/rsyncd.conf' do
|
||||
let(:file) { chef_run.template('/etc/rsyncd.conf') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.template '/etc/rsyncd.conf'
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '644'
|
||||
it 'creates /etc/rsyncd.conf' do
|
||||
expect(chef_run).to create_template(file.name).with(
|
||||
mode: 0644
|
||||
)
|
||||
end
|
||||
|
||||
it 'template contents' do
|
||||
pending 'TODO: implement'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -4,15 +4,15 @@ require 'chefspec/berkshelf'
|
||||
|
||||
ChefSpec::Coverage.start! { add_filter 'openstack-compute' }
|
||||
|
||||
::LOG_LEVEL = :fatal
|
||||
::REDHAT_OPTS = {
|
||||
LOG_LEVEL = :fatal
|
||||
REDHAT_OPTS = {
|
||||
platform: 'redhat',
|
||||
log_level: ::LOG_LEVEL
|
||||
log_level: LOG_LEVEL
|
||||
}
|
||||
::UBUNTU_OPTS = {
|
||||
UBUNTU_OPTS = {
|
||||
platform: 'ubuntu',
|
||||
version: '12.04',
|
||||
log_level: ::LOG_LEVEL
|
||||
log_level: LOG_LEVEL
|
||||
}
|
||||
|
||||
MOCK_NODE_NETWORK_DATA =
|
||||
@ -40,26 +40,27 @@ MOCK_NODE_NETWORK_DATA =
|
||||
}
|
||||
}
|
||||
|
||||
# TODO(chrislaco) Fixed in spec refactor
|
||||
def swift_stubs # rubocop:disable MethodLength
|
||||
stub_command('/usr/bin/id swift').and_return(true)
|
||||
stub_command('[ -x /etc/swift/pull-rings.sh ]').and_return(true)
|
||||
stub_command('[ -f /etc/rsyncd.conf ]').and_return(true)
|
||||
stub_command("grep -q 'RSYNC_ENABLE=false' /etc/default/rsync").and_return(true)
|
||||
stub_command('[ -e /etc/swift/account-server.conf ] && [ -e /etc/swift/account.ring.gz ]').and_return(true)
|
||||
stub_command('[ -e /etc/swift/container-server.conf ] && [ -e /etc/swift/container.ring.gz ]').and_return(true)
|
||||
stub_command('[ -e /etc/init/swift-container-sync.conf ]').and_return(false)
|
||||
stub_command('[ -e /etc/init.d/swift-container-sync ]').and_return(false)
|
||||
stub_command('[ -e /etc/swift/object-server.conf ] && [ -e /etc/swift/object.ring.gz ]').and_return(true)
|
||||
stub_command('[ -e /etc/swift/proxy-server.conf ] && [ -e /etc/swift/object.ring.gz ]').and_return(true)
|
||||
shared_context 'swift-stubs' do
|
||||
before do
|
||||
stub_command('/usr/bin/id swift').and_return(true)
|
||||
stub_command('[ -x /etc/swift/pull-rings.sh ]').and_return(true)
|
||||
stub_command('[ -f /etc/rsyncd.conf ]').and_return(true)
|
||||
stub_command("grep -q 'RSYNC_ENABLE=false' /etc/default/rsync").and_return(true)
|
||||
stub_command('[ -e /etc/swift/account-server.conf ] && [ -e /etc/swift/account.ring.gz ]').and_return(true)
|
||||
stub_command('[ -e /etc/swift/container-server.conf ] && [ -e /etc/swift/container.ring.gz ]').and_return(true)
|
||||
stub_command('[ -e /etc/init/swift-container-sync.conf ]').and_return(false)
|
||||
stub_command('[ -e /etc/init.d/swift-container-sync ]').and_return(false)
|
||||
stub_command('[ -e /etc/swift/object-server.conf ] && [ -e /etc/swift/object.ring.gz ]').and_return(true)
|
||||
stub_command('[ -e /etc/swift/proxy-server.conf ] && [ -e /etc/swift/object.ring.gz ]').and_return(true)
|
||||
|
||||
# create mock cluster
|
||||
n = Chef::Node.new
|
||||
n.name('manager')
|
||||
n.default_attrs = {
|
||||
'swift' => {
|
||||
'service_pass' => 'foobar'
|
||||
# create mock cluster
|
||||
n = Chef::Node.new
|
||||
n.name('manager')
|
||||
n.default_attrs = {
|
||||
'swift' => {
|
||||
'service_pass' => 'foobar'
|
||||
}
|
||||
}
|
||||
}
|
||||
Chef::Recipe.any_instance.stub(:search).with(:node, 'chef_environment:_default AND roles:swift-setup').and_return([n])
|
||||
Chef::Recipe.any_instance.stub(:search).with(:node, 'chef_environment:_default AND roles:swift-setup').and_return([n])
|
||||
end
|
||||
end
|
||||
|
@ -3,52 +3,40 @@ require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-object-storage::storage-common' do
|
||||
describe 'ubuntu' do
|
||||
|
||||
before do
|
||||
swift_stubs
|
||||
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
@node = @chef_run.node
|
||||
@chef_run.converge 'openstack-object-storage::storage-common'
|
||||
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) do
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
include_context 'swift-stubs'
|
||||
|
||||
describe '/var/cache/swift' do
|
||||
let(:dir) { chef_run.directory('/var/cache/swift') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.directory '/var/cache/swift'
|
||||
it 'creates /var/cache/swift' do
|
||||
expect(chef_run).to create_directory(dir.name).with(
|
||||
user: 'swift',
|
||||
group: 'swift',
|
||||
mode: 0700
|
||||
)
|
||||
end
|
||||
|
||||
it 'has proper owner' do
|
||||
expect(@file.owner).to eq('swift')
|
||||
expect(@file.group).to eq('swift')
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '700'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe '/etc/swift/drive-audit.conf' do
|
||||
let(:file) { chef_run.template('/etc/swift/drive-audit.conf') }
|
||||
|
||||
before do
|
||||
@file = @chef_run.template '/etc/swift/drive-audit.conf'
|
||||
end
|
||||
|
||||
it 'has proper owner' do
|
||||
expect(@file.owner).to eq('swift')
|
||||
expect(@file.group).to eq('swift')
|
||||
end
|
||||
|
||||
it 'has proper modes' do
|
||||
expect(sprintf('%o', @file.mode)).to eq '600'
|
||||
it 'creates drive-audit.conf' do
|
||||
expect(chef_run).to create_template(file.name).with(
|
||||
user: 'swift',
|
||||
group: 'swift',
|
||||
mode: 0600
|
||||
)
|
||||
end
|
||||
|
||||
it 'template contents' do
|
||||
pending 'TODO: implement'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user