diff --git a/manifests/params.pp b/manifests/params.pp index 527c00b0..f9a83e81 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -16,6 +16,7 @@ class swift::params { $object_package_name = 'swift-object' $object_server_service_name = 'swift-object' $object_auditor_service_name = 'swift-object-auditor' + $object_reconstructor_service_name = 'swift-object-reconstructor' $object_replicator_service_name = 'swift-object-replicator' $object_updater_service_name = 'swift-object-updater' $object_expirer_package_name = 'swift-object-expirer' @@ -41,6 +42,7 @@ class swift::params { $object_package_name = 'openstack-swift-object' $object_server_service_name = 'openstack-swift-object' $object_auditor_service_name = 'openstack-swift-object-auditor' + $object_reconstructor_service_name = 'openstack-swift-object-reconstructor' $object_replicator_service_name = 'openstack-swift-object-replicator' $object_updater_service_name = 'openstack-swift-object-updater' $object_expirer_package_name = 'openstack-swift-proxy' @@ -67,6 +69,7 @@ class swift::params { 'swift-proxy-server', 'swift-object-auditor', 'swift-object-expirer', + 'swift-object-reconstructor', 'swift-object-replicator', 'swift-object-server', 'swift-object-updater', diff --git a/manifests/storage/object.pp b/manifests/storage/object.pp index 34346b1e..2bb7302b 100644 --- a/manifests/storage/object.pp +++ b/manifests/storage/object.pp @@ -36,6 +36,7 @@ class swift::storage::object( include ::swift::deps Swift_config<| |> ~> Service['swift-object-updater'] + Swift_config<| |> ~> Service['swift-object-reconstructor'] swift::storage::generic { 'object': manage_service => $manage_service, @@ -62,4 +63,15 @@ class swift::storage::object( require => Package['swift-object'], service_subscribe => Concat["/etc/swift/${config_file_name}"], } + + swift::service { 'swift-object-reconstructor': + os_family_service_name => $::swift::params::object_reconstructor_service_name, + service_ensure => $service_ensure, + enabled => $enabled, + config_file_name => $config_file_name, + service_provider => $service_provider, + require => Package['swift-object'], + service_subscribe => Concat["/etc/swift/${config_file_name}"], + } + } diff --git a/releasenotes/notes/swift-add-reconstructor-service-25dd7df5a7d25612.yaml b/releasenotes/notes/swift-add-reconstructor-service-25dd7df5a7d25612.yaml new file mode 100644 index 00000000..99ff55b7 --- /dev/null +++ b/releasenotes/notes/swift-add-reconstructor-service-25dd7df5a7d25612.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - Added the object-reconstructor service and enabled it by default. + This is required for erasure coding. diff --git a/spec/classes/swift_storage_object_spec.rb b/spec/classes/swift_storage_object_spec.rb index 506a76e9..b513ce6d 100644 --- a/spec/classes/swift_storage_object_spec.rb +++ b/spec/classes/swift_storage_object_spec.rb @@ -78,10 +78,11 @@ describe 'swift::storage::object' do let :platform_params do { :service_names => { - 'swift-object-server' => 'swift-object', - 'swift-object-replicator' => 'swift-object-replicator', - 'swift-object-updater' => 'swift-object-updater', - 'swift-object-auditor' => 'swift-object-auditor' + 'swift-object-server' => 'swift-object', + 'swift-object-reconstructor' => 'swift-object-reconstructor', + 'swift-object-replicator' => 'swift-object-replicator', + 'swift-object-updater' => 'swift-object-updater', + 'swift-object-auditor' => 'swift-object-auditor' }, :service_provider => nil } @@ -96,10 +97,11 @@ describe 'swift::storage::object' do let :platform_params do { :service_names => { - 'swift-object-server' => 'swift-object-server', - 'swift-object-replicator' => 'swift-object-replicator', - 'swift-object-updater' => 'swift-object-updater', - 'swift-object-auditor' => 'swift-object-auditor', + 'swift-object-server' => 'swift-object-server', + 'swift-object-reconstructor' => 'swift-object-reconstructor', + 'swift-object-replicator' => 'swift-object-replicator', + 'swift-object-updater' => 'swift-object-updater', + 'swift-object-auditor' => 'swift-object-auditor', }, :service_provider => 'swiftinit' } @@ -121,10 +123,11 @@ describe 'swift::storage::object' do let :platform_params do { :service_names => { - 'swift-object-server' => 'openstack-swift-object', - 'swift-object-replicator' => 'openstack-swift-object-replicator', - 'swift-object-updater' => 'openstack-swift-object-updater', - 'swift-object-auditor' => 'openstack-swift-object-auditor' + 'swift-object-server' => 'openstack-swift-object', + 'swift-object-reconstructor' => 'openstack-swift-object-reconstructor', + 'swift-object-replicator' => 'openstack-swift-object-replicator', + 'swift-object-updater' => 'openstack-swift-object-updater', + 'swift-object-auditor' => 'openstack-swift-object-auditor' } } end @@ -138,10 +141,11 @@ describe 'swift::storage::object' do let :platform_params do { :service_names => { - 'swift-object-server' => 'swift-object-server', - 'swift-object-replicator' => 'swift-object-replicator', - 'swift-object-updater' => 'swift-object-updater', - 'swift-object-auditor' => 'swift-object-auditor', + 'swift-object-server' => 'swift-object-server', + 'swift-object-reconstructor' => 'swift-object-reconstructor', + 'swift-object-replicator' => 'swift-object-replicator', + 'swift-object-updater' => 'swift-object-updater', + 'swift-object-auditor' => 'swift-object-auditor', }, :service_provider => 'swiftinit' } diff --git a/templates/object-server.conf.erb b/templates/object-server.conf.erb index 5013aa5a..99a8f7e9 100644 --- a/templates/object-server.conf.erb +++ b/templates/object-server.conf.erb @@ -42,3 +42,5 @@ concurrency = <%= @replicator_concurrency %> concurrency = <%= @updater_concurrency %> [object-auditor] + +[object-reconstructor]