# 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