SUSE support

Change-Id: Ibd83dbe0206ac0b63e19112e8520b5ce6bf4dfd4
This commit is contained in:
Ionuț Arțăriși
2013-06-26 11:01:09 +02:00
parent d7535ae850
commit 8bfd02003e
22 changed files with 125 additions and 68 deletions

View File

@@ -4,7 +4,7 @@ source "https://rubygems.org"
gem "chef", "~> 11.4.4" gem "chef", "~> 11.4.4"
gem "json", "<= 1.7.7" # chef dependency gem "json", "<= 1.7.7" # chef dependency
gem "berkshelf", "~> 1.4.5" gem "berkshelf", "~> 1.4.5"
gem "chefspec", "~> 1.2.0" gem "chefspec", "~> 1.3.0"
gem "foodcritic" gem "foodcritic"
gem "strainer" gem "strainer"
gem "webmock", "~> 1.11.0" gem "webmock", "~> 1.11.0"

View File

@@ -42,7 +42,7 @@ GEM
ohai (>= 0.6.0) ohai (>= 0.6.0)
rest-client (>= 1.0.4, < 1.7.0) rest-client (>= 1.0.4, < 1.7.0)
yajl-ruby (~> 1.1) yajl-ruby (~> 1.1)
chefspec (1.2.0) chefspec (1.3.1)
chef (>= 10.0) chef (>= 10.0)
erubis erubis
fauxhai (>= 0.1.1, < 2.0) fauxhai (>= 0.1.1, < 2.0)
@@ -94,7 +94,7 @@ GEM
little-plugger (>= 1.1.3) little-plugger (>= 1.1.3)
mime-types (1.23) mime-types (1.23)
minitar (0.5.4) minitar (0.5.4)
minitest (4.7.4) minitest (4.7.5)
minitest-chef-handler (1.0.1) minitest-chef-handler (1.0.1)
chef chef
ci_reporter ci_reporter
@@ -196,7 +196,7 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
berkshelf (~> 1.4.5) berkshelf (~> 1.4.5)
chef (~> 11.4.4) chef (~> 11.4.4)
chefspec (~> 1.2.0) chefspec (~> 1.3.0)
foodcritic foodcritic
json (<= 1.7.7) json (<= 1.7.7)
strainer strainer

View File

@@ -18,12 +18,6 @@ Requirements
Chef 11.4.4 or higher required (for Chef environment use) Chef 11.4.4 or higher required (for Chef environment use)
Platform
--------
* Ubuntu-12.04+
* Fedora-17+
Cookbooks Cookbooks
--------- ---------
@@ -31,7 +25,7 @@ The following cookbooks are dependencies:
* database * database
* identity * identity
* mysql * mysql or postgresql
* openstack-common `>= 2.0.0` * openstack-common `>= 2.0.0`
Recipes Recipes

View File

@@ -27,9 +27,6 @@ default["openstack"]["network"]["custom_template_banner"] = "
default["openstack"]["network"]["verbose"] = "False" default["openstack"]["network"]["verbose"] = "False"
default["openstack"]["network"]["debug"] = "False" default["openstack"]["network"]["debug"] = "False"
default["openstack"]["network"]["user"] = "quantum"
default["openstack"]["network"]["group"] = "quantum"
# Gets set in the Network Endpoint when registering with Keystone # Gets set in the Network Endpoint when registering with Keystone
default["openstack"]["network"]["region"] = "RegionOne" default["openstack"]["network"]["region"] = "RegionOne"
@@ -60,6 +57,8 @@ default["openstack"]["network"]["syslog"]["config_facility"] = "local2"
# the plugins to install on the server. this will be # the plugins to install on the server. this will be
# quantum-plugin-%plugin% and the first plugin in the # quantum-plugin-%plugin% and the first plugin in the
# list should match the core plugin below # list should match the core plugin below
# N.B. this will be ignored on SUSE as all plugins are installed by
# default by the main openstack-quantum package
default["openstack"]["network"]["plugins"] = ['openvswitch', 'openvswitch-agent' ] default["openstack"]["network"]["plugins"] = ['openvswitch', 'openvswitch-agent' ]
# the core plugin to use for quantum # the core plugin to use for quantum
@@ -588,7 +587,10 @@ default["openstack"]["network"]["ryu"]["polling_interval"] = 2
case platform case platform
when "fedora", "redhat", "centos" # :pragma-foodcritic: ~FC024 - won't fix this when "fedora", "redhat", "centos" # :pragma-foodcritic: ~FC024 - won't fix this
default["openstack"]["network"]["platform"] = { default["openstack"]["network"]["platform"] = {
"user" => "quantum",
"group" => "quantum",
"mysql_python_packages" => [ "MySQL-python" ], "mysql_python_packages" => [ "MySQL-python" ],
"postgresql_python_packages" => ["python-psycopg2"],
"nova_network_packages" => [ "openstack-nova-network" ], "nova_network_packages" => [ "openstack-nova-network" ],
"quantum_packages" => [ "openstack-quantum" ], "quantum_packages" => [ "openstack-quantum" ],
"quantum_dhcp_packages" => [ "openstack-quantum" ], "quantum_dhcp_packages" => [ "openstack-quantum" ],
@@ -601,9 +603,31 @@ when "fedora", "redhat", "centos" # :pragma-foodcritic: ~FC024 - won't fix this
"quantum_metadata_agent_service" => "quantum-metadata-agent", "quantum_metadata_agent_service" => "quantum-metadata-agent",
"package_overrides" => "" "package_overrides" => ""
} }
when "suse"
default["openstack"]["network"]["platform"] = {
"user" => "openstack-quantum",
"group" => "openstack-quantum",
"mysql_python_packages" => ["python-mysql"],
"postgresql_python_packages" => ["python-psycopg2"],
"nova_network_packages" => ["openstack-nova-network"],
"quantum_packages" => ["openstack-quantum"],
"quantum_dhcp_packages" => ["openstack-quantum-dhcp-agent"],
"quantum_l3_packages" => ["openstack-quantum-l3-agent"],
"quantum_plugin_package" => "openstack-quantum-%plugin%",
"quantum_openvswitch_packages" => ["openstack-quantum-openvswitch-agent"],
"quantum_metadata_agent_packages" => ["openstack-quantum-metadata-agent"],
"quantum_server_service" => "openstack-quantum",
"quantum_openvswitch_service" => "openstack-quantum-openvswitch-agent",
"quantum_dhcp_agent_service" => "openstack-quantum-dhcp-agent",
"quantum_l3_agent_service" => "openstack-quantum-l3-agent",
"quantum_metadata_agent_service" => "openstack-quantum-metadata-agent"
}
when "ubuntu" when "ubuntu"
default["openstack"]["network"]["platform"] = { default["openstack"]["network"]["platform"] = {
"user" => "quantum",
"group" => "quantum",
"mysql_python_packages" => [ "python-mysqldb" ], "mysql_python_packages" => [ "python-mysqldb" ],
"postgresql_python_packages" => [ "python-psycopg2" ],
"nova_network_packages" => [ "nova-network" ], "nova_network_packages" => [ "nova-network" ],
"quantum_packages" => [ "quantum-server", "python-quantumclient", "python-pyparsing", "python-cliff" ], "quantum_packages" => [ "quantum-server", "python-quantumclient", "python-pyparsing", "python-cliff" ],
"quantum_dhcp_packages" => [ "quantum-dhcp-agent" ], "quantum_dhcp_packages" => [ "quantum-dhcp-agent" ],

View File

@@ -8,11 +8,12 @@ recipe "openstack-network::server", "Installs packages required for a
recipe "openstack-network::db", "Creates the OpenStack Network database" recipe "openstack-network::db", "Creates the OpenStack Network database"
recipe "openstack-network::identity_registration", "Registers OpenStack Network endpoints and service user with Keystone" recipe "openstack-network::identity_registration", "Registers OpenStack Network endpoints and service user with Keystone"
%w{ ubuntu fedora redhat centos }.each do |os| %w{ ubuntu fedora redhat centos suse }.each do |os|
supports os supports os
end end
depends "database" depends "database"
depends "openstack-identity", "~> 7.0" depends "openstack-identity", "~> 7.0"
depends "mysql"
depends "openstack-common", "~> 0.3.0" depends "openstack-common", "~> 0.3.0"
depends "mysql"
depends "postgresql"

View File

@@ -19,8 +19,8 @@
template "/etc/quantum/plugins/bigswitch/restproxy.ini" do template "/etc/quantum/plugins/bigswitch/restproxy.ini" do
source "plugins/bigswitch/restproxy.ini.erb" source "plugins/bigswitch/restproxy.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:sql_connection => sql_connection :sql_connection => sql_connection

View File

@@ -19,8 +19,8 @@
template "/etc/quantum/plugins/brocade/brocade.ini" do template "/etc/quantum/plugins/brocade/brocade.ini" do
source "plugins/brocade/brocade.ini.erb" source "plugins/brocade/brocade.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:sql_connection => sql_connection :sql_connection => sql_connection

View File

@@ -19,8 +19,8 @@
template "/etc/quantum/plugins/cisco/cisco_plugins.ini" do template "/etc/quantum/plugins/cisco/cisco_plugins.ini" do
source "plugins/cisco/cisco_plugins.ini.erb" source "plugins/cisco/cisco_plugins.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:sql_connection => sql_connection :sql_connection => sql_connection

View File

@@ -20,14 +20,14 @@
# This will copy recursively all the files in # This will copy recursively all the files in
# /files/default/etc/quantum/rootwrap.d # /files/default/etc/quantum/rootwrap.d
remote_directory "/etc/quantum/rootwrap.d" do remote_directory "/etc/quantum/rootwrap.d" do
files_owner node["openstack"]["network"]["user"] files_owner node["openstack"]["network"]["platform"]["user"]
files_group node["openstack"]["network"]["group"] files_group node["openstack"]["network"]["platform"]["group"]
files_mode 00700 files_mode 00700
end end
directory "/etc/quantum/plugins" do directory "/etc/quantum/plugins" do
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00700 mode 00700
end end
@@ -60,8 +60,8 @@ end
template "/etc/quantum/dhcp_agent.ini" do template "/etc/quantum/dhcp_agent.ini" do
source "dhcp_agent.ini.erb" source "dhcp_agent.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
notifies :restart, "service[quantum-dhcp-agent]", :immediately notifies :restart, "service[quantum-dhcp-agent]", :immediately

View File

@@ -21,8 +21,8 @@
#FC033: Missing template: .cookbooks/openstack-network/recipes/hyperv.rb:20 #FC033: Missing template: .cookbooks/openstack-network/recipes/hyperv.rb:20
#template "/etc/quantum/plugins/hyperv/hyperv_quantum_plugin.ini" do #template "/etc/quantum/plugins/hyperv/hyperv_quantum_plugin.ini" do
# source "plugins/hyperv/hyperv_quantum__plugin.ini.erb" # source "plugins/hyperv/hyperv_quantum__plugin.ini.erb"
# owner node["openstack"]["network"]["user"] # owner node["openstack"]["network"]["platform"]["user"]
# group node["openstack"]["network"]["group"] # group node["openstack"]["network"]["platform"]["group"]
# mode 00644 # mode 00644
# variables( # variables(
# :sql_connection => sql_connection # :sql_connection => sql_connection

View File

@@ -24,14 +24,14 @@ main_plugin = node["openstack"]["network"]["interface_driver"].split('.').last.d
# This will copy recursively all the files in # This will copy recursively all the files in
# /files/default/etc/quantum/rootwrap.d # /files/default/etc/quantum/rootwrap.d
remote_directory "/etc/quantum/rootwrap.d" do remote_directory "/etc/quantum/rootwrap.d" do
files_owner node["openstack"]["network"]["user"] files_owner node["openstack"]["network"]["platform"]["user"]
files_group node["openstack"]["network"]["group"] files_group node["openstack"]["network"]["platform"]["group"]
files_mode 00700 files_mode 00700
end end
directory "/etc/quantum/plugins" do directory "/etc/quantum/plugins" do
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00700 mode 00700
end end
@@ -65,8 +65,8 @@ end
template "/etc/quantum/l3_agent.ini" do template "/etc/quantum/l3_agent.ini" do
source "l3_agent.ini.erb" source "l3_agent.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
notifies :restart, "service[quantum-l3-agent]", :immediately notifies :restart, "service[quantum-l3-agent]", :immediately

View File

@@ -19,8 +19,8 @@
template "/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini" do template "/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini" do
source "plugins/linuxbridge/linuxbridge_conf.ini.erb" source "plugins/linuxbridge/linuxbridge_conf.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:sql_connection => sql_connection :sql_connection => sql_connection

View File

@@ -21,8 +21,8 @@
# FC033: Missing template: .cookbooks/openstack-network/recipes/metaplugin.rb:20 # FC033: Missing template: .cookbooks/openstack-network/recipes/metaplugin.rb:20
# template "/etc/quantum/plugins/metaplugin/metaplugin_plugins.ini" do # template "/etc/quantum/plugins/metaplugin/metaplugin_plugins.ini" do
# source "plugins/metaplugin/metaplugin_plugins.ini.erb" # source "plugins/metaplugin/metaplugin_plugins.ini.erb"
# owner node["openstack"]["network"]["user"] # owner node["openstack"]["network"]["platform"]["user"]
# group node["openstack"]["network"]["group"] # group node["openstack"]["network"]["platform"]["group"]
# mode 00644 # mode 00644
# variables( # variables(
# :sql_connection => sql_connection # :sql_connection => sql_connection

View File

@@ -19,8 +19,8 @@
template "/etc/quantum/plugins/midonet/midonet.ini" do template "/etc/quantum/plugins/midonet/midonet.ini" do
source "plugins/midonet/midonet.ini.erb" source "plugins/midonet/midonet.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:sql_connection => sql_connection :sql_connection => sql_connection

View File

@@ -19,8 +19,8 @@
template "/etc/quantum/plugins/nec/nec.ini" do template "/etc/quantum/plugins/nec/nec.ini" do
source "plugins/nec/nec.ini.erb" source "plugins/nec/nec.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:sql_connection => sql_connection :sql_connection => sql_connection

View File

@@ -19,8 +19,8 @@
template "/etc/quantum/plugins/nicira/nvp.ini" do template "/etc/quantum/plugins/nicira/nvp.ini" do
source "plugins/nicira/nvp.ini.erb" source "plugins/nicira/nvp.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:sql_connection => sql_connection :sql_connection => sql_connection

View File

@@ -42,8 +42,8 @@ end
template "/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini" do template "/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini" do
source "plugins/openvswitch/ovs_quantum_plugin.ini.erb" source "plugins/openvswitch/ovs_quantum_plugin.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:sql_connection => sql_connection :sql_connection => sql_connection

View File

@@ -19,8 +19,8 @@
template "/etc/quantum/plugins/plumgrid/plumgrid.ini" do template "/etc/quantum/plugins/plumgrid/plumgrid.ini" do
source "plugins/plumgrid/plumgrid.ini.erb" source "plugins/plumgrid/plumgrid.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:sql_connection => sql_connection :sql_connection => sql_connection

View File

@@ -19,8 +19,8 @@
template "/etc/quantum/plugins/ryu/ryu.ini" do template "/etc/quantum/plugins/ryu/ryu.ini" do
source "plugins/ryu/ryu.ini.erb" source "plugins/ryu/ryu.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:sql_connection => sql_connection :sql_connection => sql_connection

View File

@@ -39,7 +39,8 @@ platform_options["nova_network_packages"].each do |pkg|
end end
end end
platform_options["mysql_python_packages"].each do |pkg| db_type = node["openstack"]["db"]["network"]["db_type"]
platform_options["#{db_type}_python_packages"].each do |pkg|
package pkg do package pkg do
action :install action :install
end end
@@ -102,20 +103,20 @@ end
# /files/default/etc/quantum/rootwrap.d # /files/default/etc/quantum/rootwrap.d
remote_directory "/etc/quantum/rootwrap.d" do remote_directory "/etc/quantum/rootwrap.d" do
source "etc/quantum/rootwrap.d" source "etc/quantum/rootwrap.d"
files_owner node["openstack"]["network"]["user"] files_owner node["openstack"]["network"]["platform"]["user"]
files_group node["openstack"]["network"]["group"] files_group node["openstack"]["network"]["platform"]["group"]
files_mode 00700 files_mode 00700
end end
directory "/etc/quantum/plugins" do directory "/etc/quantum/plugins" do
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00700 mode 00700
end end
directory ::File.dirname node["openstack"]["network"]["api"]["auth"]["cache_dir"] do directory ::File.dirname node["openstack"]["network"]["api"]["auth"]["cache_dir"] do
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00700 mode 00700
only_if { node["openstack"]["auth"]["strategy"] == "pki" } only_if { node["openstack"]["auth"]["strategy"] == "pki" }
@@ -123,8 +124,8 @@ end
template "/etc/quantum/policy.json" do template "/etc/quantum/policy.json" do
source "policy.json.erb" source "policy.json.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
notifies :restart, "service[quantum-server]", :immediately notifies :restart, "service[quantum-server]", :immediately
@@ -163,6 +164,9 @@ node["openstack"]["network"]["plugins"].each do |pkg|
pkg = plugin_fmt.gsub("%plugin%", pkg) pkg = plugin_fmt.gsub("%plugin%", pkg)
package pkg do package pkg do
action :install action :install
# on SUSE, all plugins get installed by default with the main
# openstack-quantum package
not_if { platform_family? "suse" }
end end
end end
@@ -174,8 +178,8 @@ end
template "/etc/quantum/quantum.conf" do template "/etc/quantum/quantum.conf" do
source "quantum.conf.erb" source "quantum.conf.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
:bind_address => bind_address, :bind_address => bind_address,
@@ -193,8 +197,8 @@ end
template "/etc/quantum/api-paste.ini" do template "/etc/quantum/api-paste.ini" do
source "api-paste.ini.erb" source "api-paste.ini.erb"
owner node["openstack"]["network"]["user"] owner node["openstack"]["network"]["platform"]["user"]
group node["openstack"]["network"]["group"] group node["openstack"]["network"]["platform"]["group"]
mode 00644 mode 00644
variables( variables(
"identity_endpoint" => identity_endpoint, "identity_endpoint" => identity_endpoint,
@@ -205,8 +209,7 @@ template "/etc/quantum/api-paste.ini" do
end end
directory "/var/cache/quantum" do directory "/var/cache/quantum" do
owner "quantum" owner node["openstack"]["network"]["platform"]["user"]
group "quantum" group node["openstack"]["network"]["platform"]["group"]
mode 00700 mode 00700
end end

View File

@@ -0,0 +1,29 @@
require_relative "spec_helper"
describe 'openstack-network::server' do
describe "opensuse" do
before do
quantum_stubs
@chef_run = ::ChefSpec::ChefRunner.new ::OPENSUSE_OPTS
@node = @chef_run.node
@chef_run.converge "openstack-network::server"
end
it "installs openstack-quantum packages" do
expect(@chef_run).to install_package "openstack-quantum"
end
it "enables openstack-quantum service" do
expect(@chef_run).to enable_service "openstack-quantum"
end
it "does not install openvswitch package" do
opts = ::OPENSUSE_OPTS.merge(:evaluate_guards => true)
chef_run = ::ChefSpec::ChefRunner.new opts
chef_run.converge "openstack-network::server"
expect(chef_run).not_to install_package "openstack-quantum-openvswitch"
end
end
end

View File

@@ -1,8 +1,14 @@
require "chefspec" require "chefspec"
::LOG_LEVEL = :fatal ::LOG_LEVEL = :fatal
::OPENSUSE_OPTS = {
:platform => "opensuse",
:version => "12.3",
:log_level => ::LOG_LEVEL
}
::REDHAT_OPTS = { ::REDHAT_OPTS = {
:platform => "redhat", :platform => "redhat",
:version => "6.3",
:log_level => ::LOG_LEVEL :log_level => ::LOG_LEVEL
} }
::UBUNTU_OPTS = { ::UBUNTU_OPTS = {