cookbook-openstack-block-st.../spec/cinder_common_spec.rb

219 lines
6.5 KiB
Ruby

# encoding: UTF-8
#
# Cookbook Name:: openstack-block-storage
require_relative "spec_helper"
describe "openstack-block-storage::cinder-common" do
before { block_storage_stubs }
before do
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n|
n.set["openstack"]["mq"] = {
"host" => "127.0.0.1"
}
end
@chef_run.converge "openstack-block-storage::cinder-common"
end
it "installs the cinder-common package" do
expect(@chef_run).to upgrade_package "cinder-common"
end
describe "/etc/cinder" do
before do
@dir = @chef_run.directory "/etc/cinder"
end
it "has proper owner" do
expect(@dir.owner).to eq("cinder")
expect(@dir.group).to eq("cinder")
end
it "has proper modes" do
expect(sprintf("%o", @dir.mode)).to eq "750"
end
end
describe "cinder.conf" do
before do
@file = @chef_run.template "/etc/cinder/cinder.conf"
end
it "has proper owner" do
expect(@file.owner).to eq("cinder")
expect(@file.group).to eq("cinder")
end
it "has proper modes" do
expect(sprintf("%o", @file.mode)).to eq "644"
end
it "has name templates" do
expect(@chef_run).to render_file(@file.name).with_content("volume_name_template=volume-%s")
expect(@chef_run).to render_file(@file.name).with_content("snapshot_name_template=snapshot-%s")
end
it "has rpc_backend set" do
expect(@chef_run).to render_file(@file.name).with_content("rpc_backend=cinder.openstack.common.rpc.impl_kombu")
end
it "has rpc_thread_pool_size" do
expect(@chef_run).to render_file(@file.name).with_content("rpc_thread_pool_size=64")
end
it "has rpc_conn_pool_size" do
expect(@chef_run).to render_file(@file.name).with_content("rpc_conn_pool_size=30")
end
it "has rpc_response_timeout" do
expect(@chef_run).to render_file(@file.name).with_content("rpc_response_timeout=60")
end
it "has rabbit_host" do
expect(@chef_run).to render_file(@file.name).with_content("rabbit_host=127.0.0.1")
end
it "does not have rabbit_hosts" do
expect(@chef_run).not_to render_file(@file.name).with_content("rabbit_hosts=")
end
it "does not have rabbit_ha_queues" do
expect(@chef_run).not_to render_file(@file.name).with_content("rabbit_ha_queues=")
end
it "has log_file" do
expect(@chef_run).to render_file(@file.name).with_content("log_file = /var/log/cinder/cinder.log")
end
it "has log_config when syslog is true" do
chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n|
n.set["openstack"]["block-storage"]["syslog"]["use"] = true
end
chef_run.converge "openstack-block-storage::cinder-common"
expect(chef_run).to render_file(@file.name).with_content("log_config = /etc/openstack/logging.conf")
end
it "has rabbit_port" do
expect(@chef_run).to render_file(@file.name).with_content("rabbit_port=5672")
end
it "has rabbit_userid" do
expect(@chef_run).to render_file(@file.name).with_content("rabbit_userid=guest")
end
it "has rabbit_password" do
expect(@chef_run).to render_file(@file.name).with_content("rabbit_password=rabbit-pass")
end
it "has rabbit_virtual_host" do
expect(@chef_run).to render_file(@file.name).with_content("rabbit_virtual_host=/")
end
describe "rabbit ha" do
before do
@chef_run = ::ChefSpec::Runner.new(::UBUNTU_OPTS) do |n|
n.set["openstack"]["block-storage"]["rabbit"]["ha"] = true
end
@chef_run.converge "openstack-block-storage::cinder-common"
end
it "has rabbit_hosts" do
expect(@chef_run).to render_file(@file.name).with_content("rabbit_hosts=1.1.1.1:5672,2.2.2.2:5672")
end
it "has rabbit_ha_queues" do
expect(@chef_run).to render_file(@file.name).with_content("rabbit_ha_queues=True")
end
it "does not have rabbit_host" do
expect(@chef_run).not_to render_file(@file.name).with_content("rabbit_host=127.0.0.1")
end
it "does not have rabbit_port" do
expect(@chef_run).not_to render_file(@file.name).with_content("rabbit_port=5672")
end
end
describe "qpid" do
before do
@file = @chef_run.template "/etc/cinder/cinder.conf"
@chef_run.node.set['openstack']['block-storage']['mq']['service_type'] = "qpid"
end
it "has qpid_hostname" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_hostname=127.0.0.1")
end
it "has qpid_port" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_port=5672")
end
it "has qpid_username" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_username=")
end
it "has qpid_password" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_password=")
end
it "has qpid_sasl_mechanisms" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_sasl_mechanisms=")
end
it "has qpid_reconnect_timeout" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_reconnect_timeout=0")
end
it "has qpid_reconnect_limit" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_reconnect_limit=0")
end
it "has qpid_reconnect_interval_min" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_reconnect_interval_min=0")
end
it "has qpid_reconnect_interval_max" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_reconnect_interval_max=0")
end
it "has qpid_reconnect_interval" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_reconnect_interval=0")
end
it "has qpid_reconnect" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_reconnect=true")
end
it "has qpid_heartbeat" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_heartbeat=60")
end
it "has qpid_protocol" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_protocol=tcp")
end
it "has qpid_tcp_nodelay" do
expect(@chef_run).to render_file(@file.name).with_content("qpid_tcp_nodelay=true")
end
end
end
describe "/var/lock/cinder" do
before do
@dir = @chef_run.directory "/var/lock/cinder"
end
it "has proper owner" do
expect(@dir.owner).to eq("cinder")
expect(@dir.group).to eq("cinder")
end
it "has proper modes" do
expect(sprintf("%o", @dir.mode)).to eq "700"
end
end
end