implement SUSE platform support
Change-Id: Ief3e20dd27f262d742db04549b5ac2213dc725fe
This commit is contained in:
parent
4949b57572
commit
10765fd76e
|
@ -51,11 +51,6 @@ default["openstack"]["block-storage"]["keystone_service_chef_role"] = "keystone"
|
|||
# of the api-paste.ini when node["openstack"]["auth"]["strategy"] == "pki"
|
||||
default["openstack"]["block-storage"]["api"]["auth"]["cache_dir"] = "/var/cache/cinder/api"
|
||||
|
||||
# operating system group name
|
||||
default["openstack"]["block-storage"]["group"] = "cinder"
|
||||
# operating system user that services will run under
|
||||
default["openstack"]["block-storage"]["user"] = "cinder"
|
||||
|
||||
# Maximum allocatable gigabytes
|
||||
# Should equal total backend storage, default is 10TB
|
||||
default["openstack"]["block-storage"]["max_gigabytes"] = "10000"
|
||||
|
@ -129,6 +124,10 @@ default["openstack"]["block-storage"]["policy"]["admin_api"] = '["is_admin:True"
|
|||
|
||||
case platform
|
||||
when "fedora", "redhat", "centos" # :pragma-foodcritic: ~FC024 - won't fix this
|
||||
# operating system user and group names
|
||||
default["openstack"]["block-storage"]["user"] = "cinder"
|
||||
default["openstack"]["block-storage"]["group"] = "cinder"
|
||||
|
||||
default["openstack"]["block-storage"]["platform"] = {
|
||||
"mysql_python_packages" => ["MySQL-python"],
|
||||
"postgresql_python_packages" => ["python-psycopg2"],
|
||||
|
@ -143,7 +142,27 @@ when "fedora", "redhat", "centos" # :pragma-foodcritic: ~FC024 - won't fix this
|
|||
"cinder_nfs_packages" => ["nfs-utils", "nfs-utils-lib"],
|
||||
"package_overrides" => ""
|
||||
}
|
||||
when "suse"
|
||||
# operating system user and group names
|
||||
default["openstack"]["block-storage"]["user"] = "openstack-cinder"
|
||||
default["openstack"]["block-storage"]["group"] = "openstack-cinder"
|
||||
default["openstack"]["block-storage"]["platform"] = {
|
||||
"mysql_python_packages" => ["python-mysql"],
|
||||
"postgresql_python_packages" => ["python-psycopg2"],
|
||||
"cinder_api_packages" => ["openstack-cinder-api"],
|
||||
"cinder_api_service" => "openstack-cinder-api",
|
||||
"cinder_scheduler_packages" => ["openstack-cinder-scheduler"],
|
||||
"cinder_scheduler_service" => "openstack-cinder-scheduler",
|
||||
"cinder_volume_packages" => ["openstack-cinder"],
|
||||
"cinder_volume_service" => "openstack-cinder-volume",
|
||||
"cinder_iscsitarget_packages" => ["tgt"],
|
||||
"cinder_iscsitarget_service" => "tgtd",
|
||||
"cinder_nfs_packages" => ["nfs-utils"]
|
||||
}
|
||||
when "ubuntu"
|
||||
# operating system user and group names
|
||||
default["openstack"]["block-storage"]["user"] = "cinder"
|
||||
default["openstack"]["block-storage"]["group"] = "cinder"
|
||||
default["openstack"]["block-storage"]["platform"] = {
|
||||
"mysql_python_packages" => ["python-mysqldb"],
|
||||
"postgresql_python_packages" => ["python-psycopg2"],
|
||||
|
|
|
@ -12,7 +12,7 @@ recipe "openstack-block-storage::keystone_registration", "Registers ci
|
|||
recipe "openstack-block-storage::scheduler", "Installs the cinder-scheduler service"
|
||||
recipe "openstack-block-storage::volume", "Installs the cinder-volume service and sets up the iscsi helper"
|
||||
|
||||
%w{ ubuntu fedora redhat centos }.each do |os|
|
||||
%w{ ubuntu fedora redhat centos suse }.each do |os|
|
||||
supports os
|
||||
end
|
||||
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
require_relative "spec_helper"
|
||||
|
||||
describe "openstack-block-storage::api" do
|
||||
before { block_storage_stubs }
|
||||
describe "opensuse" do
|
||||
before do
|
||||
@chef_run = ::ChefSpec::ChefRunner.new ::OPENSUSE_OPTS
|
||||
@chef_run.converge "openstack-block-storage::api"
|
||||
end
|
||||
|
||||
it "installs cinder api packages" do
|
||||
expect(@chef_run).to upgrade_package "openstack-cinder-api"
|
||||
end
|
||||
|
||||
it "installs mysql python packages by default" do
|
||||
expect(@chef_run).to upgrade_package "python-mysql"
|
||||
end
|
||||
|
||||
it "installs postgresql python packages if explicitly told" do
|
||||
chef_run = ::ChefSpec::ChefRunner.new ::OPENSUSE_OPTS
|
||||
node = chef_run.node
|
||||
node.set["openstack"]["db"]["volume"]["db_type"] = "postgresql"
|
||||
chef_run.converge "openstack-block-storage::api"
|
||||
|
||||
expect(chef_run).to upgrade_package "python-psycopg2"
|
||||
expect(chef_run).not_to upgrade_package "python-mysql"
|
||||
end
|
||||
|
||||
it "starts cinder api on boot" do
|
||||
expect(@chef_run).to set_service_to_start_on_boot "openstack-cinder-api"
|
||||
end
|
||||
|
||||
expect_creates_policy_json(
|
||||
"service[cinder-api]", "openstack-cinder", "openstack-cinder")
|
||||
expect_creates_cinder_conf(
|
||||
"service[cinder-api]", "openstack-cinder", "openstack-cinder")
|
||||
end
|
||||
end
|
|
@ -57,7 +57,7 @@ describe "openstack-block-storage::api" do
|
|||
expect(@chef_run).to set_service_to_start_on_boot "cinder-api"
|
||||
end
|
||||
|
||||
expect_creates_cinder_conf "service[cinder-api]"
|
||||
expect_creates_cinder_conf "service[cinder-api]", "cinder", "cinder"
|
||||
|
||||
describe "cinder.conf" do
|
||||
before do
|
||||
|
@ -112,7 +112,7 @@ describe "openstack-block-storage::api" do
|
|||
expect(@chef_run).to execute_command cmd
|
||||
end
|
||||
|
||||
expect_creates_policy_json "service[cinder-api]"
|
||||
expect_creates_policy_json "service[cinder-api]", "cinder", "cinder"
|
||||
|
||||
describe "api-paste.ini" do
|
||||
before do
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
require_relative "spec_helper"
|
||||
|
||||
describe "openstack-block-storage::scheduler" do
|
||||
before { block_storage_stubs }
|
||||
describe "opensuse" do
|
||||
before do
|
||||
@chef_run = ::ChefSpec::ChefRunner.new ::OPENSUSE_OPTS
|
||||
@chef_run.converge "openstack-block-storage::scheduler"
|
||||
end
|
||||
|
||||
it "installs cinder api packages" do
|
||||
expect(@chef_run).to upgrade_package "openstack-cinder-scheduler"
|
||||
end
|
||||
|
||||
it "installs mysql python packages by default" do
|
||||
expect(@chef_run).to upgrade_package "python-mysql"
|
||||
end
|
||||
|
||||
it "installs postgresql python packages if explicitly told" do
|
||||
chef_run = ::ChefSpec::ChefRunner.new ::OPENSUSE_OPTS
|
||||
node = chef_run.node
|
||||
node.set["openstack"]["db"]["volume"]["db_type"] = "postgresql"
|
||||
chef_run.converge "openstack-block-storage::scheduler"
|
||||
|
||||
expect(chef_run).to upgrade_package "python-psycopg2"
|
||||
expect(chef_run).not_to upgrade_package "python-mysql"
|
||||
end
|
||||
|
||||
it "starts cinder scheduler" do
|
||||
expect(@chef_run).to start_service "openstack-cinder-scheduler"
|
||||
end
|
||||
|
||||
it "starts cinder scheduler on boot" do
|
||||
expect(@chef_run).to set_service_to_start_on_boot "openstack-cinder-scheduler"
|
||||
end
|
||||
end
|
||||
end
|
|
@ -45,6 +45,6 @@ describe "openstack-block-storage::scheduler" do
|
|||
expect(@chef_run).to set_service_to_start_on_boot "cinder-scheduler"
|
||||
end
|
||||
|
||||
expect_creates_cinder_conf "service[cinder-scheduler]"
|
||||
expect_creates_cinder_conf "service[cinder-scheduler]", "cinder", "cinder"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
require "chefspec"
|
||||
|
||||
::LOG_LEVEL = :fatal
|
||||
::OPENSUSE_OPTS = {
|
||||
:platform => "opensuse",
|
||||
:version => "12.3",
|
||||
:log_level => ::LOG_LEVEL
|
||||
}
|
||||
::REDHAT_OPTS = {
|
||||
:platform => "redhat",
|
||||
:version => "6.3",
|
||||
|
@ -34,14 +39,14 @@ def expect_runs_openstack_common_logging_recipe
|
|||
end
|
||||
end
|
||||
|
||||
def expect_creates_cinder_conf service, action=:restart
|
||||
def expect_creates_cinder_conf service, user, group, action=:restart
|
||||
describe "cinder.conf" do
|
||||
before do
|
||||
@file = @chef_run.template "/etc/cinder/cinder.conf"
|
||||
end
|
||||
|
||||
it "has proper owner" do
|
||||
expect(@file).to be_owned_by "cinder", "cinder"
|
||||
expect(@file).to be_owned_by user, group
|
||||
end
|
||||
|
||||
it "has proper modes" do
|
||||
|
@ -54,14 +59,14 @@ def expect_creates_cinder_conf service, action=:restart
|
|||
end
|
||||
end
|
||||
|
||||
def expect_creates_policy_json service, action=:restart
|
||||
def expect_creates_policy_json service, user, group, action=:restart
|
||||
describe "policy.json" do
|
||||
before do
|
||||
@file = @chef_run.template "/etc/cinder/policy.json"
|
||||
end
|
||||
|
||||
it "has proper owner" do
|
||||
expect(@file).to be_owned_by "cinder", "cinder"
|
||||
expect(@file).to be_owned_by user, group
|
||||
end
|
||||
|
||||
it "has proper modes" do
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
require_relative "spec_helper"
|
||||
|
||||
describe "openstack-block-storage::volume" do
|
||||
before { block_storage_stubs }
|
||||
describe "opensuse" do
|
||||
before do
|
||||
@chef_run = ::ChefSpec::ChefRunner.new ::OPENSUSE_OPTS
|
||||
@chef_run.converge "openstack-block-storage::volume"
|
||||
end
|
||||
|
||||
it "installs cinder volume packages" do
|
||||
expect(@chef_run).to upgrade_package "openstack-cinder"
|
||||
end
|
||||
|
||||
it "installs mysql python packages by default" do
|
||||
expect(@chef_run).to upgrade_package "python-mysql"
|
||||
end
|
||||
|
||||
it "installs postgresql python packages if explicitly told" do
|
||||
chef_run = ::ChefSpec::ChefRunner.new ::OPENSUSE_OPTS
|
||||
node = chef_run.node
|
||||
node.set["openstack"]["db"]["volume"]["db_type"] = "postgresql"
|
||||
chef_run.converge "openstack-block-storage::volume"
|
||||
|
||||
expect(chef_run).to upgrade_package "python-psycopg2"
|
||||
expect(chef_run).not_to upgrade_package "python-mysql"
|
||||
end
|
||||
|
||||
it "installs cinder iscsi packages" do
|
||||
expect(@chef_run).to upgrade_package "tgt"
|
||||
end
|
||||
|
||||
it "starts cinder volume" do
|
||||
expect(@chef_run).to start_service "openstack-cinder-volume"
|
||||
end
|
||||
|
||||
it "starts cinder volume on boot" do
|
||||
expected = "openstack-cinder-volume"
|
||||
expect(@chef_run).to set_service_to_start_on_boot expected
|
||||
end
|
||||
|
||||
it "starts iscsi target on boot" do
|
||||
expect(@chef_run).to set_service_to_start_on_boot "tgtd"
|
||||
end
|
||||
|
||||
it "installs nfs packages" do
|
||||
chef_run = ::ChefSpec::ChefRunner.new ::OPENSUSE_OPTS do |n|
|
||||
n.set["openstack"]["block-storage"]["volume"]["driver"] = "cinder.volume.drivers.netapp.nfs.NetAppDirect7modeNfsDriver"
|
||||
end
|
||||
chef_run.converge "openstack-block-storage::volume"
|
||||
|
||||
expect(chef_run).to upgrade_package "nfs-utils"
|
||||
expect(chef_run).not_to upgrade_package "nfs-utils-lib"
|
||||
end
|
||||
|
||||
it "has opensuse include" do
|
||||
file = "/etc/tgt/targets.conf"
|
||||
|
||||
expect(@chef_run).to create_file_with_content file,
|
||||
"include /var/lib/cinder/volumes/*"
|
||||
expect(@chef_run).not_to create_file_with_content file,
|
||||
"include /etc/tgt/conf.d/*.conf"
|
||||
end
|
||||
end
|
||||
end
|
|
@ -91,7 +91,7 @@ describe "openstack-block-storage::volume" do
|
|||
expect(@chef_run).to set_service_to_start_on_boot "cinder-volume"
|
||||
end
|
||||
|
||||
expect_creates_cinder_conf "service[cinder-volume]"
|
||||
expect_creates_cinder_conf "service[cinder-volume]", "cinder", "cinder"
|
||||
|
||||
it "starts iscsi target on boot" do
|
||||
expect(@chef_run).to set_service_to_start_on_boot "tgt"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<%= node["openstack"]["block-storage"]["custom_template_banner"] %>
|
||||
|
||||
<% if %w{redhat centos fedora}.include?(node["platform"]) %>
|
||||
<% if %w{redhat centos fedora suse}.include?(node["platform"]) %>
|
||||
include /var/lib/cinder/volumes/*
|
||||
<% end %>
|
||||
<% if %w{debian ubuntu}.include?(node["platform"]) %>
|
||||
|
|
Loading…
Reference in New Issue