cookbook-openstack-telemetry/spec/common_spec.rb

97 lines
2.8 KiB
Ruby

require_relative "spec_helper"
describe "openstack-metering::common" do
before { metering_stubs }
describe "ubuntu" do
before do
@chef_run = ::ChefSpec::Runner.new(::UBUNTU_OPTS) do |n|
n.set["openstack"]["metering"]["syslog"]["use"] = true
end
@chef_run.converge "openstack-metering::common"
end
it "runs logging recipe" do
expect(@chef_run).to include_recipe "openstack-common::logging"
end
it "installs the common package" do
expect(@chef_run).to install_package "ceilometer-common"
end
it "creates the /etc/ceilometer directory" do
expect(@chef_run).to create_directory("/etc/ceilometer").with(
user: "ceilometer",
group: "ceilometer",
mode: 0750
)
end
describe "/etc/ceilometer" do
before do
@filename = "/etc/ceilometer/ceilometer.conf"
end
it "creates the file" do
expect(@chef_run).to create_template(@filename).with(
user: "ceilometer",
group: "ceilometer",
mode: 0640
)
end
context "with rabbitmq default" do
[/^rabbit_userid = guest$/,
/^rabbit_password = rabbit-pass$/,
/^rabbit_port = 5672$/,
/^rabbit_host = 127.0.0.1$/,
/^rabbit_virtual_host = \/$/,
/^auth_uri = http:\/\/127.0.0.1:5000\/v2.0$/,
/^auth_host = 127.0.0.1$/,
/^auth_port = 35357$/,
/^auth_protocol = http$/
].each do |content|
it "has a \#{content.source[1...-1]}\" line" do
expect(@chef_run).to render_file(@filename).with_content(content)
end
end
end
context "with qpid enabled" do
before do
@chef_run.node.set['openstack']['metering']['mq']['service_type'] = "qpid"
end
[/^qpid_hostname=127.0.0.1$/,
/^qpid_port=5672$/,
/^qpid_username=$/,
/^qpid_password=$/,
/^qpid_sasl_mechanisms=$/,
/^qpid_reconnect=true$/,
/^qpid_reconnect_timeout=0$/,
/^qpid_reconnect_limit=0$/,
/^qpid_reconnect_interval_min=0$/,
/^qpid_reconnect_interval_max=0$/,
/^qpid_reconnect_interval_max=0$/,
/^qpid_reconnect_interval=0$/,
/^qpid_heartbeat=60$/,
/^qpid_protocol=tcp$/,
/^qpid_tcp_nodelay=true$/
].each do |content|
it "has a \#{content.source[1...-1]}\" line" do
expect(@chef_run).to render_file(@filename).with_content(content)
end
end
end
end
it "installs the /etc/ceilometer/policy.json file" do
expect(@chef_run).to create_cookbook_file("/etc/ceilometer/policy.json").with(
user: "ceilometer",
group: "ceilometer",
mode: 0640
)
end
end
end