From 58b3cb335961e9de21aa6f25ea8f57b86874cb99 Mon Sep 17 00:00:00 2001 From: William Bradford Clark Date: Tue, 23 Jan 2024 10:38:02 -0500 Subject: [PATCH] Fixes #37081 - Add a setting to configure PAGE_SIZE --- manifests/init.pp | 4 ++++ spec/acceptance/settings_spec.rb | 19 +++++++++++++++++++ spec/classes/pulpcore_spec.rb | 1 + templates/settings.py.erb | 3 +++ 4 files changed, 27 insertions(+) diff --git a/manifests/init.pp b/manifests/init.pp index 92a128ba..9cedbc8c 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -73,6 +73,9 @@ # STATIC_URL setting. In reality this can also be just the path and doesn't # have to be a full URL. # +# @param page_size +# Configure the PAGE_SIZE setting for Pagination. +# # @param postgresql_db_name # Name of Pulp PostgreSQL database # @@ -220,6 +223,7 @@ String[1] $apache_vhost_priority = '10', Stdlib::Absolutepath $api_socket_path = '/run/pulpcore-api.sock', Stdlib::Absolutepath $content_socket_path = '/run/pulpcore-content.sock', + Optional[Integer[1]] $page_size = undef, String $postgresql_db_name = 'pulpcore', String $postgresql_db_user = 'pulp', String $postgresql_db_password = extlib::cache_data('pulpcore_cache_data', 'db_password', extlib::random_password(32)), diff --git a/spec/acceptance/settings_spec.rb b/spec/acceptance/settings_spec.rb index 9e2d4eee..b1433319 100644 --- a/spec/acceptance/settings_spec.rb +++ b/spec/acceptance/settings_spec.rb @@ -51,6 +51,25 @@ class { 'pulpcore': end end +describe 'PAGE_SIZE setting' do + context 'Custom PAGE_SIZE' do + it_behaves_like 'an idempotent resource' do + let(:manifest) do + <<-PUPPET + class { 'pulpcore': + page_size => 200, + } + PUPPET + end + end + + describe file('/etc/pulp/settings.py') do + it { is_expected.to be_file } + its(:content) { is_expected.to match(/^REST_FRAMEWORK__PAGE_SIZE = 200$/) } + end + end +end + describe 'HIDE_GUARDED_DISTRIBUTIONS setting' do context 'default HIDE_GUARDED_DISTRIBUTIONS' do it_behaves_like 'an idempotent resource' do diff --git a/spec/classes/pulpcore_spec.rb b/spec/classes/pulpcore_spec.rb index 9f1f76e0..0fa09e47 100644 --- a/spec/classes/pulpcore_spec.rb +++ b/spec/classes/pulpcore_spec.rb @@ -27,6 +27,7 @@ .with_content(%r{CACHE_ENABLED = False}) .without_content(%r{sslmode}) .without_content(%r{WORKER_TTL}) + .without_content(%r{REST_FRAMEWORK__PAGE_SIZE}) is_expected.to contain_concat__fragment('logging').with_content(<<~LOGGING) LOGGING = { "dynaconf_merge": True, diff --git a/templates/settings.py.erb b/templates/settings.py.erb index b3b92f68..e050de61 100644 --- a/templates/settings.py.erb +++ b/templates/settings.py.erb @@ -52,6 +52,9 @@ WORKING_DIRECTORY = "<%= scope['pulpcore::cache_dir'] %>" REMOTE_USER_ENVIRON_NAME = '<%= scope['pulpcore::remote_user_environ_name'] %>' AUTHENTICATION_BACKENDS = ['pulpcore.app.authentication.PulpNoCreateRemoteUserBackend'] +<% unless scope['pulpcore::page_size'].nil? -%> +REST_FRAMEWORK__PAGE_SIZE = <%= scope['pulpcore::page_size'] %> +<% end -%> REST_FRAMEWORK__DEFAULT_AUTHENTICATION_CLASSES = ( 'rest_framework.authentication.SessionAuthentication', 'pulpcore.app.authentication.PulpRemoteUserAuthentication'