SUSE support
Change-Id: Ibd83dbe0206ac0b63e19112e8520b5ce6bf4dfd4
This commit is contained in:
2
Gemfile
2
Gemfile
@@ -4,7 +4,7 @@ source "https://rubygems.org"
|
||||
gem "chef", "~> 11.4.4"
|
||||
gem "json", "<= 1.7.7" # chef dependency
|
||||
gem "berkshelf", "~> 1.4.5"
|
||||
gem "chefspec", "~> 1.2.0"
|
||||
gem "chefspec", "~> 1.3.0"
|
||||
gem "foodcritic"
|
||||
gem "strainer"
|
||||
gem "webmock", "~> 1.11.0"
|
||||
|
||||
@@ -42,7 +42,7 @@ GEM
|
||||
ohai (>= 0.6.0)
|
||||
rest-client (>= 1.0.4, < 1.7.0)
|
||||
yajl-ruby (~> 1.1)
|
||||
chefspec (1.2.0)
|
||||
chefspec (1.3.1)
|
||||
chef (>= 10.0)
|
||||
erubis
|
||||
fauxhai (>= 0.1.1, < 2.0)
|
||||
@@ -94,7 +94,7 @@ GEM
|
||||
little-plugger (>= 1.1.3)
|
||||
mime-types (1.23)
|
||||
minitar (0.5.4)
|
||||
minitest (4.7.4)
|
||||
minitest (4.7.5)
|
||||
minitest-chef-handler (1.0.1)
|
||||
chef
|
||||
ci_reporter
|
||||
@@ -196,7 +196,7 @@ PLATFORMS
|
||||
DEPENDENCIES
|
||||
berkshelf (~> 1.4.5)
|
||||
chef (~> 11.4.4)
|
||||
chefspec (~> 1.2.0)
|
||||
chefspec (~> 1.3.0)
|
||||
foodcritic
|
||||
json (<= 1.7.7)
|
||||
strainer
|
||||
|
||||
@@ -18,12 +18,6 @@ Requirements
|
||||
|
||||
Chef 11.4.4 or higher required (for Chef environment use)
|
||||
|
||||
Platform
|
||||
--------
|
||||
|
||||
* Ubuntu-12.04+
|
||||
* Fedora-17+
|
||||
|
||||
Cookbooks
|
||||
---------
|
||||
|
||||
@@ -31,7 +25,7 @@ The following cookbooks are dependencies:
|
||||
|
||||
* database
|
||||
* identity
|
||||
* mysql
|
||||
* mysql or postgresql
|
||||
* openstack-common `>= 2.0.0`
|
||||
|
||||
Recipes
|
||||
|
||||
@@ -27,9 +27,6 @@ default["openstack"]["network"]["custom_template_banner"] = "
|
||||
default["openstack"]["network"]["verbose"] = "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
|
||||
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
|
||||
# quantum-plugin-%plugin% and the first plugin in the
|
||||
# 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' ]
|
||||
|
||||
# the core plugin to use for quantum
|
||||
@@ -588,7 +587,10 @@ default["openstack"]["network"]["ryu"]["polling_interval"] = 2
|
||||
case platform
|
||||
when "fedora", "redhat", "centos" # :pragma-foodcritic: ~FC024 - won't fix this
|
||||
default["openstack"]["network"]["platform"] = {
|
||||
"user" => "quantum",
|
||||
"group" => "quantum",
|
||||
"mysql_python_packages" => [ "MySQL-python" ],
|
||||
"postgresql_python_packages" => ["python-psycopg2"],
|
||||
"nova_network_packages" => [ "openstack-nova-network" ],
|
||||
"quantum_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",
|
||||
"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"
|
||||
default["openstack"]["network"]["platform"] = {
|
||||
"user" => "quantum",
|
||||
"group" => "quantum",
|
||||
"mysql_python_packages" => [ "python-mysqldb" ],
|
||||
"postgresql_python_packages" => [ "python-psycopg2" ],
|
||||
"nova_network_packages" => [ "nova-network" ],
|
||||
"quantum_packages" => [ "quantum-server", "python-quantumclient", "python-pyparsing", "python-cliff" ],
|
||||
"quantum_dhcp_packages" => [ "quantum-dhcp-agent" ],
|
||||
|
||||
@@ -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::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
|
||||
end
|
||||
|
||||
depends "database"
|
||||
depends "openstack-identity", "~> 7.0"
|
||||
depends "mysql"
|
||||
depends "openstack-common", "~> 0.3.0"
|
||||
depends "mysql"
|
||||
depends "postgresql"
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
template "/etc/quantum/plugins/bigswitch/restproxy.ini" do
|
||||
source "plugins/bigswitch/restproxy.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:sql_connection => sql_connection
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
template "/etc/quantum/plugins/brocade/brocade.ini" do
|
||||
source "plugins/brocade/brocade.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:sql_connection => sql_connection
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
template "/etc/quantum/plugins/cisco/cisco_plugins.ini" do
|
||||
source "plugins/cisco/cisco_plugins.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:sql_connection => sql_connection
|
||||
|
||||
@@ -20,14 +20,14 @@
|
||||
# This will copy recursively all the files in
|
||||
# /files/default/etc/quantum/rootwrap.d
|
||||
remote_directory "/etc/quantum/rootwrap.d" do
|
||||
files_owner node["openstack"]["network"]["user"]
|
||||
files_group node["openstack"]["network"]["group"]
|
||||
files_owner node["openstack"]["network"]["platform"]["user"]
|
||||
files_group node["openstack"]["network"]["platform"]["group"]
|
||||
files_mode 00700
|
||||
end
|
||||
|
||||
directory "/etc/quantum/plugins" do
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00700
|
||||
end
|
||||
|
||||
@@ -60,8 +60,8 @@ end
|
||||
|
||||
template "/etc/quantum/dhcp_agent.ini" do
|
||||
source "dhcp_agent.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
|
||||
notifies :restart, "service[quantum-dhcp-agent]", :immediately
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
#FC033: Missing template: .cookbooks/openstack-network/recipes/hyperv.rb:20
|
||||
#template "/etc/quantum/plugins/hyperv/hyperv_quantum_plugin.ini" do
|
||||
# source "plugins/hyperv/hyperv_quantum__plugin.ini.erb"
|
||||
# owner node["openstack"]["network"]["user"]
|
||||
# group node["openstack"]["network"]["group"]
|
||||
# owner node["openstack"]["network"]["platform"]["user"]
|
||||
# group node["openstack"]["network"]["platform"]["group"]
|
||||
# mode 00644
|
||||
# variables(
|
||||
# :sql_connection => sql_connection
|
||||
|
||||
@@ -24,14 +24,14 @@ main_plugin = node["openstack"]["network"]["interface_driver"].split('.').last.d
|
||||
# This will copy recursively all the files in
|
||||
# /files/default/etc/quantum/rootwrap.d
|
||||
remote_directory "/etc/quantum/rootwrap.d" do
|
||||
files_owner node["openstack"]["network"]["user"]
|
||||
files_group node["openstack"]["network"]["group"]
|
||||
files_owner node["openstack"]["network"]["platform"]["user"]
|
||||
files_group node["openstack"]["network"]["platform"]["group"]
|
||||
files_mode 00700
|
||||
end
|
||||
|
||||
directory "/etc/quantum/plugins" do
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00700
|
||||
end
|
||||
|
||||
@@ -65,8 +65,8 @@ end
|
||||
|
||||
template "/etc/quantum/l3_agent.ini" do
|
||||
source "l3_agent.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
|
||||
notifies :restart, "service[quantum-l3-agent]", :immediately
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
template "/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini" do
|
||||
source "plugins/linuxbridge/linuxbridge_conf.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:sql_connection => sql_connection
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
# FC033: Missing template: .cookbooks/openstack-network/recipes/metaplugin.rb:20
|
||||
# template "/etc/quantum/plugins/metaplugin/metaplugin_plugins.ini" do
|
||||
# source "plugins/metaplugin/metaplugin_plugins.ini.erb"
|
||||
# owner node["openstack"]["network"]["user"]
|
||||
# group node["openstack"]["network"]["group"]
|
||||
# owner node["openstack"]["network"]["platform"]["user"]
|
||||
# group node["openstack"]["network"]["platform"]["group"]
|
||||
# mode 00644
|
||||
# variables(
|
||||
# :sql_connection => sql_connection
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
template "/etc/quantum/plugins/midonet/midonet.ini" do
|
||||
source "plugins/midonet/midonet.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:sql_connection => sql_connection
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
template "/etc/quantum/plugins/nec/nec.ini" do
|
||||
source "plugins/nec/nec.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:sql_connection => sql_connection
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
template "/etc/quantum/plugins/nicira/nvp.ini" do
|
||||
source "plugins/nicira/nvp.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:sql_connection => sql_connection
|
||||
|
||||
@@ -42,8 +42,8 @@ end
|
||||
|
||||
template "/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini" do
|
||||
source "plugins/openvswitch/ovs_quantum_plugin.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:sql_connection => sql_connection
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
template "/etc/quantum/plugins/plumgrid/plumgrid.ini" do
|
||||
source "plugins/plumgrid/plumgrid.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:sql_connection => sql_connection
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
template "/etc/quantum/plugins/ryu/ryu.ini" do
|
||||
source "plugins/ryu/ryu.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:sql_connection => sql_connection
|
||||
|
||||
@@ -39,7 +39,8 @@ platform_options["nova_network_packages"].each do |pkg|
|
||||
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
|
||||
action :install
|
||||
end
|
||||
@@ -102,20 +103,20 @@ end
|
||||
# /files/default/etc/quantum/rootwrap.d
|
||||
remote_directory "/etc/quantum/rootwrap.d" do
|
||||
source "etc/quantum/rootwrap.d"
|
||||
files_owner node["openstack"]["network"]["user"]
|
||||
files_group node["openstack"]["network"]["group"]
|
||||
files_owner node["openstack"]["network"]["platform"]["user"]
|
||||
files_group node["openstack"]["network"]["platform"]["group"]
|
||||
files_mode 00700
|
||||
end
|
||||
|
||||
directory "/etc/quantum/plugins" do
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00700
|
||||
end
|
||||
|
||||
directory ::File.dirname node["openstack"]["network"]["api"]["auth"]["cache_dir"] do
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00700
|
||||
|
||||
only_if { node["openstack"]["auth"]["strategy"] == "pki" }
|
||||
@@ -123,8 +124,8 @@ end
|
||||
|
||||
template "/etc/quantum/policy.json" do
|
||||
source "policy.json.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
|
||||
notifies :restart, "service[quantum-server]", :immediately
|
||||
@@ -163,6 +164,9 @@ node["openstack"]["network"]["plugins"].each do |pkg|
|
||||
pkg = plugin_fmt.gsub("%plugin%", pkg)
|
||||
package pkg do
|
||||
action :install
|
||||
# on SUSE, all plugins get installed by default with the main
|
||||
# openstack-quantum package
|
||||
not_if { platform_family? "suse" }
|
||||
end
|
||||
end
|
||||
|
||||
@@ -174,8 +178,8 @@ end
|
||||
|
||||
template "/etc/quantum/quantum.conf" do
|
||||
source "quantum.conf.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
:bind_address => bind_address,
|
||||
@@ -193,8 +197,8 @@ end
|
||||
|
||||
template "/etc/quantum/api-paste.ini" do
|
||||
source "api-paste.ini.erb"
|
||||
owner node["openstack"]["network"]["user"]
|
||||
group node["openstack"]["network"]["group"]
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00644
|
||||
variables(
|
||||
"identity_endpoint" => identity_endpoint,
|
||||
@@ -205,8 +209,7 @@ template "/etc/quantum/api-paste.ini" do
|
||||
end
|
||||
|
||||
directory "/var/cache/quantum" do
|
||||
owner "quantum"
|
||||
group "quantum"
|
||||
owner node["openstack"]["network"]["platform"]["user"]
|
||||
group node["openstack"]["network"]["platform"]["group"]
|
||||
mode 00700
|
||||
end
|
||||
|
||||
|
||||
29
spec/server-opensuse_spec.rb
Normal file
29
spec/server-opensuse_spec.rb
Normal 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
|
||||
@@ -1,8 +1,14 @@
|
||||
require "chefspec"
|
||||
|
||||
::LOG_LEVEL = :fatal
|
||||
::OPENSUSE_OPTS = {
|
||||
:platform => "opensuse",
|
||||
:version => "12.3",
|
||||
:log_level => ::LOG_LEVEL
|
||||
}
|
||||
::REDHAT_OPTS = {
|
||||
:platform => "redhat",
|
||||
:version => "6.3",
|
||||
:log_level => ::LOG_LEVEL
|
||||
}
|
||||
::UBUNTU_OPTS = {
|
||||
|
||||
Reference in New Issue
Block a user