From ff93a007e3dbb891831515cc5894581b0033fa60 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:07:50 +0200 Subject: [PATCH 01/25] wip: first draft of cleanup task --- .../DependencyInjection/Configuration.php | 16 +++-- .../Resources/config/maintenance.yaml | 8 ++- .../Tasks/CleanupDirectoryTask.php | 66 +++++++++++++++++++ lib/Maintenance/Tasks/HousekeepingTask.php | 4 +- 4 files changed, 86 insertions(+), 8 deletions(-) create mode 100644 lib/Maintenance/Tasks/CleanupDirectoryTask.php diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index bdef82b81a4..20b633a4643 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -215,14 +215,22 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->arrayNode('housekeeping') ->addDefaultsIfNotSet() ->children() - ->integerNode('cleanup_tmp_files_atime_older_than') - ->info('Integer value in seconds.') - ->defaultValue(7_776_000) // 90 days - ->end() ->integerNode('cleanup_profiler_files_atime_older_than') ->info('Integer value in seconds.') ->defaultValue(1800) ->end() + ->arrayNode('cleanup_directory') + ->addDefaultsIfNotSet() + ->children() + ->integerNode('cleanup_tmp_files_atime_older_than') + ->info('Integer value in seconds.') + ->defaultValue(7_776_000) // 90 days + ->end() + ->arrayNode('cleanup_directories') + ->defaultValue([]) + ->info('Directories to cleanup.') + ->defaultValue(1800) + ->end() ; } diff --git a/bundles/CoreBundle/Resources/config/maintenance.yaml b/bundles/CoreBundle/Resources/config/maintenance.yaml index c5049d342da..d4cd13a736e 100644 --- a/bundles/CoreBundle/Resources/config/maintenance.yaml +++ b/bundles/CoreBundle/Resources/config/maintenance.yaml @@ -90,11 +90,17 @@ services: Pimcore\Maintenance\Tasks\HousekeepingTask: arguments: - - '%pimcore.maintenance.housekeeping.cleanup_tmp_files_atime_older_than%' - '%pimcore.maintenance.housekeeping.cleanup_profiler_files_atime_older_than%' tags: - { name: pimcore.maintenance.task, type: housekeeping } + Pimcore\Maintenance\Tasks\CleanupDirectoryTask: + arguments: + - '%pimcore.maintenance.cleanup_directory.cleanup_files_atime_older_than%' + - '%pimcore.maintenance.cleanup_directory.cleanup_directories%' + tags: + - { name: pimcore.maintenance.task, type: cleanupTmpDirectory } + Pimcore\Maintenance\Tasks\LowQualityImagePreviewTask: arguments: - '@logger' diff --git a/lib/Maintenance/Tasks/CleanupDirectoryTask.php b/lib/Maintenance/Tasks/CleanupDirectoryTask.php new file mode 100644 index 00000000000..fb3ca8eed03 --- /dev/null +++ b/lib/Maintenance/Tasks/CleanupDirectoryTask.php @@ -0,0 +1,66 @@ +cleanupDirectories as $directory) { + $this->deleteFilesInFolderOlderThanSeconds($directory, $this->tmpFileTime); + } + } + + /** + * @param string $folder + * @param int $seconds + */ + private function deleteFilesInFolderOlderThanSeconds(string $folder, int $seconds): void + { + if (!is_dir($folder)) { + return; + } + + $directory = new \RecursiveDirectoryIterator($folder); + $filter = new \RecursiveCallbackFilterIterator($directory, function (\SplFileInfo $current, $key, $iterator) use ($seconds) { + if (strpos($current->getFilename(), '-low-quality-preview.svg')) { + // do not delete low quality image previews + return false; + } + + if ($current->isFile()) { + if ($current->getATime() && $current->getATime() < (time() - $seconds)) { + return true; + } + } else { + return true; + } + + return false; + }); + + $iterator = new \RecursiveIteratorIterator($filter); + + foreach ($iterator as $file) { + /** + * @var \SplFileInfo $file + */ + if ($file->isFile()) { + @unlink($file->getPathname()); + } + + if (is_dir_empty($file->getPath())) { + @rmdir($file->getPath()); + } + } + } +} diff --git a/lib/Maintenance/Tasks/HousekeepingTask.php b/lib/Maintenance/Tasks/HousekeepingTask.php index 5122871ae06..3331d0745b6 100644 --- a/lib/Maintenance/Tasks/HousekeepingTask.php +++ b/lib/Maintenance/Tasks/HousekeepingTask.php @@ -33,12 +33,10 @@ class HousekeepingTask implements TaskInterface protected $profilerTime; /** - * @param int $tmpFileTime * @param int $profilerTime */ - public function __construct(int $tmpFileTime, int $profilerTime) + public function __construct(int $profilerTime) { - $this->tmpFileTime = $tmpFileTime; $this->profilerTime = $profilerTime; } From 38e3da0a29d3a25e33dc8390846c68b3ed250294 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:17:32 +0200 Subject: [PATCH 02/25] chore: fix config --- bundles/CoreBundle/DependencyInjection/Configuration.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 20b633a4643..17f80dac49f 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -227,9 +227,10 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->defaultValue(7_776_000) // 90 days ->end() ->arrayNode('cleanup_directories') - ->defaultValue([]) ->info('Directories to cleanup.') - ->defaultValue(1800) + ->defaultValue([]) + ->variablePrototype() + ->end() ->end() ; } From 7f343d335c59f3e06a19b69bb91090de6775ebb3 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:21:56 +0200 Subject: [PATCH 03/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 17f80dac49f..167ec6c4acc 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -219,6 +219,7 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->info('Integer value in seconds.') ->defaultValue(1800) ->end() + ->end() ->arrayNode('cleanup_directory') ->addDefaultsIfNotSet() ->children() @@ -231,6 +232,7 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->defaultValue([]) ->variablePrototype() ->end() + ->end() ->end() ; } From f555f1db053615ba19f53363fc17d427f7de2069 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:24:30 +0200 Subject: [PATCH 04/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 167ec6c4acc..31b5508fdab 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -228,9 +228,9 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->defaultValue(7_776_000) // 90 days ->end() ->arrayNode('cleanup_directories') + ->defaultValue(['directory' => null]) ->info('Directories to cleanup.') - ->defaultValue([]) - ->variablePrototype() + ->variablePrototype()->end() ->end() ->end() ->end() From a1e01fb3b13c8e5494df0a655a529b02aca75fb4 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:26:57 +0200 Subject: [PATCH 05/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 31b5508fdab..30e449d1e91 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -228,9 +228,9 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->defaultValue(7_776_000) // 90 days ->end() ->arrayNode('cleanup_directories') - ->defaultValue(['directory' => null]) ->info('Directories to cleanup.') ->variablePrototype()->end() + ->defaultValue([]) ->end() ->end() ->end() From 3a746ce57d05623b54832670a4705aba10091bf1 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:29:53 +0200 Subject: [PATCH 06/25] chore: another config fix --- .../DependencyInjection/Configuration.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 30e449d1e91..0bcd79baf1f 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -227,11 +227,16 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->info('Integer value in seconds.') ->defaultValue(7_776_000) // 90 days ->end() - ->arrayNode('cleanup_directories') - ->info('Directories to cleanup.') - ->variablePrototype()->end() - ->defaultValue([]) + ->arrayNode('types') + ->info('List all notes/event types.') + ->prototype('scalar')->end() + ->defaultValue(['', 'content', 'seo', 'warning', 'notice']) ->end() +// ->arrayNode('cleanup_directories') +// ->info('Directories to cleanup.') +// ->variablePrototype()->end() +// ->defaultValue([]) +// ->end() ->end() ->end() ; From 17c613c7f191f6579fb6b2a8fc8f0397237f77ff Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:30:05 +0200 Subject: [PATCH 07/25] chore: another config fix --- bundles/CoreBundle/Resources/config/maintenance.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/CoreBundle/Resources/config/maintenance.yaml b/bundles/CoreBundle/Resources/config/maintenance.yaml index d4cd13a736e..8be5f625f19 100644 --- a/bundles/CoreBundle/Resources/config/maintenance.yaml +++ b/bundles/CoreBundle/Resources/config/maintenance.yaml @@ -97,7 +97,7 @@ services: Pimcore\Maintenance\Tasks\CleanupDirectoryTask: arguments: - '%pimcore.maintenance.cleanup_directory.cleanup_files_atime_older_than%' - - '%pimcore.maintenance.cleanup_directory.cleanup_directories%' +# - '%pimcore.maintenance.cleanup_directory.cleanup_directories%' tags: - { name: pimcore.maintenance.task, type: cleanupTmpDirectory } From 434882835db1ac0866db82746253c2781a2c53ae Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:43:00 +0200 Subject: [PATCH 08/25] chore: another config fix --- .../CoreBundle/DependencyInjection/Configuration.php | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 0bcd79baf1f..2e2900ba914 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -227,16 +227,10 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->info('Integer value in seconds.') ->defaultValue(7_776_000) // 90 days ->end() - ->arrayNode('types') - ->info('List all notes/event types.') - ->prototype('scalar')->end() - ->defaultValue(['', 'content', 'seo', 'warning', 'notice']) + ->scalarNode('cleanup_directories') + ->info('Directories to cleanup.') + ->defaultValue(['hans', 'test']) ->end() -// ->arrayNode('cleanup_directories') -// ->info('Directories to cleanup.') -// ->variablePrototype()->end() -// ->defaultValue([]) -// ->end() ->end() ->end() ; From 65280f716222c7beaee0a06ca12b8f5d42526d98 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:45:04 +0200 Subject: [PATCH 09/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 2e2900ba914..d0c9aff6bfb 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -229,7 +229,7 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->end() ->scalarNode('cleanup_directories') ->info('Directories to cleanup.') - ->defaultValue(['hans', 'test']) +// ->defaultValue(['hans', 'test']) ->end() ->end() ->end() From a898738f5f20ad9c9c63e55a0cb977f2c8275a17 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:52:52 +0200 Subject: [PATCH 10/25] chore: another config fix --- .../DependencyInjection/Configuration.php | 47 +++++++++++-------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index d0c9aff6bfb..07428da7fc6 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -209,27 +209,34 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) { $rootNode ->children() - ->arrayNode('maintenance') - ->addDefaultsIfNotSet() - ->children() - ->arrayNode('housekeeping') - ->addDefaultsIfNotSet() - ->children() - ->integerNode('cleanup_profiler_files_atime_older_than') - ->info('Integer value in seconds.') - ->defaultValue(1800) - ->end() - ->end() - ->arrayNode('cleanup_directory') + ->arrayNode('maintenance') ->addDefaultsIfNotSet() - ->children() - ->integerNode('cleanup_tmp_files_atime_older_than') - ->info('Integer value in seconds.') - ->defaultValue(7_776_000) // 90 days - ->end() - ->scalarNode('cleanup_directories') - ->info('Directories to cleanup.') -// ->defaultValue(['hans', 'test']) + ->children() + ->arrayNode('housekeeping') + ->addDefaultsIfNotSet() + ->children() + ->integerNode('cleanup_tmp_files_atime_older_than') + ->info('Integer value in seconds.') + ->defaultValue(7_776_000) // 90 days + ->end() + ->integerNode('cleanup_profiler_files_atime_older_than') + ->info('Integer value in seconds.') + ->defaultValue(1800) + ->end() + ->end() + ->end() + ->arrayNode('cleanup_directory') + ->addDefaultsIfNotSet() + ->children() + ->integerNode('cleanup_tmp_files_atime_older_than') + ->info('Integer value in seconds.') + ->defaultValue(7_776_000) // 90 days + ->end() + ->scalarNode('cleanup_directories') + ->info('Directories to cleanup.') + ->defaultValue(['hans', 'test']) + ->end() + ->end() ->end() ->end() ->end() From 41074bab60dd25f13b9b73d0e39bd4446ca3bc6b Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 15:54:57 +0200 Subject: [PATCH 11/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 07428da7fc6..14da3a65a4f 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -234,7 +234,7 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->end() ->scalarNode('cleanup_directories') ->info('Directories to cleanup.') - ->defaultValue(['hans', 'test']) +// ->defaultValue(['hans', 'test']) ->end() ->end() ->end() From 1dabaf74207a461d730c63b20cd53b5f3799dca4 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 16:01:00 +0200 Subject: [PATCH 12/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 14da3a65a4f..ded7302c034 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -215,10 +215,6 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->arrayNode('housekeeping') ->addDefaultsIfNotSet() ->children() - ->integerNode('cleanup_tmp_files_atime_older_than') - ->info('Integer value in seconds.') - ->defaultValue(7_776_000) // 90 days - ->end() ->integerNode('cleanup_profiler_files_atime_older_than') ->info('Integer value in seconds.') ->defaultValue(1800) From 991a5d2f885a78b062d660e6974bc54385cad47c Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 16:05:17 +0200 Subject: [PATCH 13/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index ded7302c034..6d8a437d5cd 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -221,6 +221,7 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->end() ->end() ->end() + ->end() ->arrayNode('cleanup_directory') ->addDefaultsIfNotSet() ->children() @@ -230,7 +231,7 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->end() ->scalarNode('cleanup_directories') ->info('Directories to cleanup.') -// ->defaultValue(['hans', 'test']) + ->defaultValue(['hans', 'test']) ->end() ->end() ->end() From 2f0fae8065131ce2c9a7a05983241fd82d9e23a4 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 16:07:58 +0200 Subject: [PATCH 14/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 6d8a437d5cd..ab0cfae3c9a 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -221,7 +221,6 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->end() ->end() ->end() - ->end() ->arrayNode('cleanup_directory') ->addDefaultsIfNotSet() ->children() @@ -232,6 +231,7 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->scalarNode('cleanup_directories') ->info('Directories to cleanup.') ->defaultValue(['hans', 'test']) + ->end() ->end() ->end() ->end() From bb75cbe02a88cfa33c37f8308622c0a310e5b950 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 16:13:01 +0200 Subject: [PATCH 15/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index ab0cfae3c9a..b9d75685e51 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -221,6 +221,7 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->end() ->end() ->end() + ->end() ->arrayNode('cleanup_directory') ->addDefaultsIfNotSet() ->children() @@ -230,7 +231,6 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->end() ->scalarNode('cleanup_directories') ->info('Directories to cleanup.') - ->defaultValue(['hans', 'test']) ->end() ->end() ->end() From b2014dd16bbdf2b7034096f5672ee068792da760 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 16:18:05 +0200 Subject: [PATCH 16/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index b9d75685e51..83bc9094648 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -221,7 +221,6 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->end() ->end() ->end() - ->end() ->arrayNode('cleanup_directory') ->addDefaultsIfNotSet() ->children() @@ -229,8 +228,9 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->info('Integer value in seconds.') ->defaultValue(7_776_000) // 90 days ->end() - ->scalarNode('cleanup_directories') + ->arrayNode('cleanup_directories') ->info('Directories to cleanup.') + ->prototype('scalar')->end() ->end() ->end() ->end() From d415937d6c9e8dc64c9b8e57a8b0259fd57bfe27 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 16:22:48 +0200 Subject: [PATCH 17/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 83bc9094648..17a11d02910 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -228,10 +228,6 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->info('Integer value in seconds.') ->defaultValue(7_776_000) // 90 days ->end() - ->arrayNode('cleanup_directories') - ->info('Directories to cleanup.') - ->prototype('scalar')->end() - ->end() ->end() ->end() ->end() From 2b7f3eb91ff46e19c57ebcccf31b927fcf726147 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 16:50:23 +0200 Subject: [PATCH 18/25] chore: another config fix --- bundles/CoreBundle/DependencyInjection/Configuration.php | 6 ++++++ .../CoreBundle/DependencyInjection/PimcoreCoreExtension.php | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 17a11d02910..5e3d56b0973 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -228,6 +228,12 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->info('Integer value in seconds.') ->defaultValue(7_776_000) // 90 days ->end() + ->arrayNode('directories') + ->info('Directories to cleanup.') + ->scalarPrototype()->end() + ->defaultValue([]) + ->end() + ->end() ->end() ->end() ->end() diff --git a/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php b/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php index 606e62bc747..3201ca9abe8 100644 --- a/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php +++ b/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php @@ -88,7 +88,7 @@ public function loadInternal(array $config, ContainerBuilder $container) // @deprecated since Pimcore 10.1, parameter will be removed in Pimcore 11 $container->setParameter('pimcore.response_exception_listener.render_error_document', $config['error_handling']['render_error_document']); - $container->setParameter('pimcore.maintenance.housekeeping.cleanup_tmp_files_atime_older_than', $config['maintenance']['housekeeping']['cleanup_tmp_files_atime_older_than']); +// $container->setParameter('pimcore.maintenance.housekeeping.cleanup_tmp_files_atime_older_than', $config['maintenance']['housekeeping']['cleanup_tmp_files_atime_older_than']); $container->setParameter('pimcore.maintenance.housekeeping.cleanup_profiler_files_atime_older_than', $config['maintenance']['housekeeping']['cleanup_profiler_files_atime_older_than']); $container->setParameter('pimcore.documents.default_controller', $config['documents']['default_controller']); From 6b0517efa564b5b89e93c76c6a8b3fdba2f9ac61 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 16:53:28 +0200 Subject: [PATCH 19/25] chore: fix config parameter --- .../CoreBundle/DependencyInjection/PimcoreCoreExtension.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php b/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php index 3201ca9abe8..17fadf96798 100644 --- a/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php +++ b/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php @@ -88,9 +88,10 @@ public function loadInternal(array $config, ContainerBuilder $container) // @deprecated since Pimcore 10.1, parameter will be removed in Pimcore 11 $container->setParameter('pimcore.response_exception_listener.render_error_document', $config['error_handling']['render_error_document']); -// $container->setParameter('pimcore.maintenance.housekeeping.cleanup_tmp_files_atime_older_than', $config['maintenance']['housekeeping']['cleanup_tmp_files_atime_older_than']); $container->setParameter('pimcore.maintenance.housekeeping.cleanup_profiler_files_atime_older_than', $config['maintenance']['housekeeping']['cleanup_profiler_files_atime_older_than']); + $container->setParameter('pimcore.maintenance.cleanup_directory.cleanup_tmp_files_atime_older_than', $config['maintenance']['cleanup_directory']['cleanup_tmp_files_atime_older_than']); + $container->setParameter('pimcore.documents.default_controller', $config['documents']['default_controller']); $container->setParameter('pimcore.documents.web_to_print.default_controller_print_page', $config['documents']['web_to_print']['default_controller_print_page']); $container->setParameter('pimcore.documents.web_to_print.default_controller_print_container', $config['documents']['web_to_print']['default_controller_print_container']); From fda8718cf93b1c0adf813531448d09b1cd3ca2f0 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 16:59:01 +0200 Subject: [PATCH 20/25] chore: fix config parameter --- bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php b/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php index 17fadf96798..9d3ef7e1440 100644 --- a/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php +++ b/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php @@ -90,7 +90,7 @@ public function loadInternal(array $config, ContainerBuilder $container) $container->setParameter('pimcore.maintenance.housekeeping.cleanup_profiler_files_atime_older_than', $config['maintenance']['housekeeping']['cleanup_profiler_files_atime_older_than']); - $container->setParameter('pimcore.maintenance.cleanup_directory.cleanup_tmp_files_atime_older_than', $config['maintenance']['cleanup_directory']['cleanup_tmp_files_atime_older_than']); + $container->setParameter('pimcore.maintenance.cleanup_directory.cleanup_files_atime_older_than', $config['maintenance']['cleanup_directory']['cleanup_files_atime_older_than']); $container->setParameter('pimcore.documents.default_controller', $config['documents']['default_controller']); $container->setParameter('pimcore.documents.web_to_print.default_controller_print_page', $config['documents']['web_to_print']['default_controller_print_page']); From da6044afd1dd1e471b172f6888401d252f2ad188 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 17:04:38 +0200 Subject: [PATCH 21/25] chore: fix config parameter --- bundles/CoreBundle/DependencyInjection/Configuration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 5e3d56b0973..35b0b8e6b7e 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -224,7 +224,7 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->arrayNode('cleanup_directory') ->addDefaultsIfNotSet() ->children() - ->integerNode('cleanup_tmp_files_atime_older_than') + ->integerNode('cleanup_files_atime_older_than') ->info('Integer value in seconds.') ->defaultValue(7_776_000) // 90 days ->end() From 7b424a679b77ce6c395d30af0679ca22dd48cd8a Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Wed, 5 Jul 2023 17:10:30 +0200 Subject: [PATCH 22/25] chore: fix config parameter --- bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php | 1 + bundles/CoreBundle/Resources/config/maintenance.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php b/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php index 9d3ef7e1440..95de39a6c90 100644 --- a/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php +++ b/bundles/CoreBundle/DependencyInjection/PimcoreCoreExtension.php @@ -91,6 +91,7 @@ public function loadInternal(array $config, ContainerBuilder $container) $container->setParameter('pimcore.maintenance.housekeeping.cleanup_profiler_files_atime_older_than', $config['maintenance']['housekeeping']['cleanup_profiler_files_atime_older_than']); $container->setParameter('pimcore.maintenance.cleanup_directory.cleanup_files_atime_older_than', $config['maintenance']['cleanup_directory']['cleanup_files_atime_older_than']); + $container->setParameter('pimcore.maintenance.cleanup_directory.directories', $config['maintenance']['cleanup_directory']['directories']); $container->setParameter('pimcore.documents.default_controller', $config['documents']['default_controller']); $container->setParameter('pimcore.documents.web_to_print.default_controller_print_page', $config['documents']['web_to_print']['default_controller_print_page']); diff --git a/bundles/CoreBundle/Resources/config/maintenance.yaml b/bundles/CoreBundle/Resources/config/maintenance.yaml index 8be5f625f19..6fd60255b8c 100644 --- a/bundles/CoreBundle/Resources/config/maintenance.yaml +++ b/bundles/CoreBundle/Resources/config/maintenance.yaml @@ -97,7 +97,7 @@ services: Pimcore\Maintenance\Tasks\CleanupDirectoryTask: arguments: - '%pimcore.maintenance.cleanup_directory.cleanup_files_atime_older_than%' -# - '%pimcore.maintenance.cleanup_directory.cleanup_directories%' + - '%pimcore.maintenance.cleanup_directory.directories%' tags: - { name: pimcore.maintenance.task, type: cleanupTmpDirectory } From a6d5cd6cfcd5214552afea4d58c709193dbf5120 Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Thu, 6 Jul 2023 08:16:35 +0200 Subject: [PATCH 23/25] chore: fixed naming --- bundles/CoreBundle/Resources/config/maintenance.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/CoreBundle/Resources/config/maintenance.yaml b/bundles/CoreBundle/Resources/config/maintenance.yaml index 6fd60255b8c..d7f7b23f054 100644 --- a/bundles/CoreBundle/Resources/config/maintenance.yaml +++ b/bundles/CoreBundle/Resources/config/maintenance.yaml @@ -99,7 +99,7 @@ services: - '%pimcore.maintenance.cleanup_directory.cleanup_files_atime_older_than%' - '%pimcore.maintenance.cleanup_directory.directories%' tags: - - { name: pimcore.maintenance.task, type: cleanupTmpDirectory } + - { name: pimcore.maintenance.task, type: cleanupDirectory } Pimcore\Maintenance\Tasks\LowQualityImagePreviewTask: arguments: From ab7edeb777ffe5ec1c78fa3e65b28ab9364260af Mon Sep 17 00:00:00 2001 From: Stefan Scheu Date: Thu, 6 Jul 2023 08:29:00 +0200 Subject: [PATCH 24/25] chore: added tmp directories as default cleanup dirs --- bundles/CoreBundle/DependencyInjection/Configuration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/CoreBundle/DependencyInjection/Configuration.php b/bundles/CoreBundle/DependencyInjection/Configuration.php index 35b0b8e6b7e..9b94e51c435 100644 --- a/bundles/CoreBundle/DependencyInjection/Configuration.php +++ b/bundles/CoreBundle/DependencyInjection/Configuration.php @@ -231,7 +231,7 @@ private function addMaintenanceNode(ArrayNodeDefinition $rootNode) ->arrayNode('directories') ->info('Directories to cleanup.') ->scalarPrototype()->end() - ->defaultValue([]) + ->defaultValue([PIMCORE_PRIVATE_VAR. '/tmp', PIMCORE_WEB_ROOT . '/var/tmp']) ->end() ->end() ->end() From a85cae425bf6db16f25952006b64afbfc0274b34 Mon Sep 17 00:00:00 2001 From: Peter Philipp Date: Mon, 8 Jul 2024 09:19:12 +0200 Subject: [PATCH 25/25] fix: Do not remove empty root directory. --- lib/Maintenance/Tasks/CleanupDirectoryTask.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/Maintenance/Tasks/CleanupDirectoryTask.php b/lib/Maintenance/Tasks/CleanupDirectoryTask.php index fb3ca8eed03..9fc907b807d 100644 --- a/lib/Maintenance/Tasks/CleanupDirectoryTask.php +++ b/lib/Maintenance/Tasks/CleanupDirectoryTask.php @@ -57,8 +57,7 @@ private function deleteFilesInFolderOlderThanSeconds(string $folder, int $second if ($file->isFile()) { @unlink($file->getPathname()); } - - if (is_dir_empty($file->getPath())) { + if (is_dir_empty($file->getPath()) && $file->getPath() !== $directory->getPath()) { @rmdir($file->getPath()); } }