diff --git a/manifests/internal_client.pp b/manifests/internal_client.pp index d2e3b624..be64319c 100644 --- a/manifests/internal_client.pp +++ b/manifests/internal_client.pp @@ -30,7 +30,7 @@ # # [*write_affinity*] # (optional) Configures the write affinity of internal client. -# Defaults to $facts['os_service_default']. +# Defaults to undef. # # [*write_affinity_node_count*] # (optional) Configures write_affinity_node_count for internal client. @@ -61,7 +61,7 @@ class swift::internal_client ( $client_chunk_size = $facts['os_service_default'], Optional[Swift::SortingMethod] $sorting_method = undef, $read_affinity = undef, - $write_affinity = $facts['os_service_default'], + $write_affinity = undef, $write_affinity_node_count = $facts['os_service_default'], $client_timeout = $facts['os_service_default'], $node_timeout = $facts['os_service_default'], @@ -97,18 +97,30 @@ class swift::internal_client ( 'app:proxy-server/account_autocreate': value => true; 'app:proxy-server/object_chunk_size': value => $object_chunk_size; 'app:proxy-server/client_chunk_size': value => $client_chunk_size; - 'app:proxy-server/write_affinity': value => $write_affinity; - 'app:proxy-server/write_affinity_node_count': value => $write_affinity_node_count; 'app:proxy-server/client_timeout': value => $client_timeout; 'app:proxy-server/node_timeout': value => $node_timeout; 'app:proxy-server/recoverable_node_timeout': value => $recoverable_node_timeout; } + if $write_affinity { + swift_internal_client_config { + 'app:proxy-server/write_affinity': value => $write_affinity; + 'app:proxy-server/write_affinity_node_count': value => $write_affinity_node_count; + } + } else { + if !is_service_default($write_affinity_node_count) { + fail('Usage of write_affinity_node_count requires write_affinity to be set') + } + swift_internal_client_config { + 'app:proxy-server/write_affinity': value => $facts['os_service_default']; + 'app:proxy-server/write_affinity_node_count': value => $facts['os_service_default']; + } + } + if $read_affinity { if $sorting_method and $sorting_method != 'affinity' { fail('sorting_method should be \'affinity\' to use read affinity') } - swift_internal_client_config { 'app:proxy-server/sorting_method': value => 'affinity'; 'app:proxy-server/read_affinity': value => $read_affinity; diff --git a/manifests/proxy.pp b/manifests/proxy.pp index cc328ec0..5a95d8fe 100644 --- a/manifests/proxy.pp +++ b/manifests/proxy.pp @@ -210,10 +210,6 @@ class swift::proxy( include swift::deps - if (!is_service_default($write_affinity_node_count) and !$write_affinity) { - fail('Usage of write_affinity_node_count requires write_affinity to be set') - } - if(member($pipeline, 'tempauth')) { $auth_type = 'tempauth' } elsif(member($pipeline, 'swauth')) { @@ -296,6 +292,9 @@ class swift::proxy( 'app:proxy-server/write_affinity_node_count': value => $write_affinity_node_count; } } else { + if !is_service_default($write_affinity_node_count) { + fail('Usage of write_affinity_node_count requires write_affinity to be set') + } swift_proxy_config { 'app:proxy-server/write_affinity': value => $facts['os_service_default']; 'app:proxy-server/write_affinity_node_count': value => $facts['os_service_default']; @@ -306,7 +305,6 @@ class swift::proxy( if $sorting_method and $sorting_method != 'affinity' { fail('sorting_method should be \'affinity\' to use read affinity') } - swift_proxy_config { 'app:proxy-server/sorting_method': value => 'affinity'; 'app:proxy-server/read_affinity': value => $read_affinity;