diff --git a/CHANGELOG.md b/CHANGELOG.md index cb6141c..cc710eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ This file is used to list changes made in each version of cookbook-openstack-object-storage. +## 7.0.11: +* Add missing swift-container-sync upstart service which is + not setup by default in ubuntu 12.04 packages + ## 7.0.10: * Do not role restrict super_admin_key in proxy config * Case correct swauth_version attribute in proxy recipe diff --git a/files/default/swift-container-sync.conf.upstart b/files/default/swift-container-sync.conf.upstart new file mode 100644 index 0000000..597adb6 --- /dev/null +++ b/files/default/swift-container-sync.conf.upstart @@ -0,0 +1,19 @@ +# swift-container-sync - SWIFT Container Sync +# +# The swift container sync. + +description "SWIFT Container Sync" +author "Sergio Rubio " + +start on runlevel [2345] +stop on runlevel [016] + +pre-start script + if [ -f "/etc/swift/container-server.conf" ]; then + exec /usr/bin/swift-init container-sync start + else + exit 1 + fi +end script + +post-stop exec /usr/bin/swift-init container-sync stop diff --git a/metadata.rb b/metadata.rb index bae9b85..9384b1b 100644 --- a/metadata.rb +++ b/metadata.rb @@ -3,7 +3,7 @@ maintainer "ATT, Inc." license "Apache 2.0" description "Installs and configures Openstack Swift" long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "7.0.10" +version "7.0.11" recipe "openstack-object-storage::setup", "Does initial setup of a swift cluster" recipe "openstack-object-storage::account-server", "Installs the swift account server" recipe "openstack-object-storage::object-server", "Installs the swift object server" diff --git a/recipes/container-server.rb b/recipes/container-server.rb index e0c0aee..6ff73f7 100644 --- a/recipes/container-server.rb +++ b/recipes/container-server.rb @@ -91,3 +91,31 @@ template "/etc/swift/container-server.conf" do notifies :restart, "service[swift-container-updater]", :immediately notifies :restart, "service[swift-container-auditor]", :immediately end + +# Ubuntu 12.04 packages are missing the swift-container-sync service scripts +# See https://bugs.launchpad.net/cloud-archive/+bug/1250171 +if platform?("ubuntu") + cookbook_file "/etc/init/swift-container-sync.conf" do + owner "root" + group "root" + mode "0755" + source "swift-container-sync.conf.upstart" + action :create + not_if "[ -e /etc/init/swift-container-sync.conf ]" + end + link "/etc/init.d/swift-container-sync" do + to "/lib/init/upstart-job" + not_if "[ -e /etc/init.d/swift-container-sync ]" + end +end + +service_name=platform_options["service_prefix"] + 'swift-container-sync' + platform_options["service_suffix"] +unless node["swift"]["container-server"]["allowed_sync_hosts"] == [] + service "swift-container-sync" do + service_name service_name + provider platform_options["service_provider"] + supports :status => false, :restart => true + action [:enable, :start] + only_if "[ -e /etc/swift/container-server.conf ] && [ -e /etc/swift/container.ring.gz ]" + end +end diff --git a/spec/container_spec.rb b/spec/container_spec.rb index b42bff1..8f3d129 100644 --- a/spec/container_spec.rb +++ b/spec/container_spec.rb @@ -35,7 +35,7 @@ describe 'openstack-object-storage::container-server' do end it "starts swift container services on boot" do - %w{swift-container swift-container-auditor swift-container-replicator swift-container-updater}.each do |svc| + %w{swift-container swift-container-auditor swift-container-replicator swift-container-updater swift-container-sync}.each do |svc| expect(@chef_run).to set_service_to_start_on_boot svc end end @@ -61,6 +61,14 @@ describe 'openstack-object-storage::container-server' do end + it "should create container sync upstart conf for ubuntu" do + expect(@chef_run).to create_cookbook_file "/etc/init/swift-container-sync.conf" + end + + it "should create container sync init script for ubuntu" do + expect(@chef_run).to create_link "/etc/init.d/swift-container-sync" + end + describe "/etc/swift/container-server.conf" do before do diff --git a/templates/default/proxy-server.conf.erb b/templates/default/proxy-server.conf.erb index 634b2f7..35d2d03 100644 --- a/templates/default/proxy-server.conf.erb +++ b/templates/default/proxy-server.conf.erb @@ -112,6 +112,9 @@ default_swift_cluster = local#<%= node[:swift][:swift_url] %> allow_overrides = true <% end %> <% end %> +<% if node["swift"]["container-server"]["allowed_sync_hosts"] -%> +allowed_sync_hosts = <%= node["swift"]["container-server"]["allowed_sync_hosts"].join(",") %> +<% end %> [filter:healthcheck] use = egg:swift#healthcheck