fix(dump): correct DI wiring, config types, and runtime version query
This commit is contained in:
1 parent
59e48c8f21
commit
05e1d0eeb9
4 files changed
+39
-31
No files matched your search
@@ -6,7 +6,8 @@ use AeonDumpManager\MessageQueue\Message\CreateDumpMessage;
|
||||
use AeonDumpManager\Service\DumpJobStatusService;
|
||||
use AeonDumpManager\Service\DumpLister;
|
||||
use AeonDumpManager\Service\DumpService;
|
||||
use Shopware\Core\Framework\Api\Route\ApiRouteScope;
|
||||
use AeonDumpManager\Service\Exception\DumpNotFoundException;
|
||||
use Shopware\Core\Framework\Routing\ApiRouteScope;
|
||||
use Shopware\Core\PlatformRequest;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
@@ -67,7 +68,11 @@ class DumpController
|
||||
)]
|
||||
public function delete(string $filename): JsonResponse
|
||||
{
|
||||
try {
|
||||
$this->dumpService->delete($filename);
|
||||
} catch (DumpNotFoundException $exception) {
|
||||
return new JsonResponse(['message' => $exception->getMessage()], Response::HTTP_NOT_FOUND);
|
||||
}
|
||||
|
||||
return new JsonResponse(null, Response::HTTP_NO_CONTENT);
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
<card>
|
||||
<title>Minimal configuration</title>
|
||||
|
||||
<input-field type="number">
|
||||
<input-field type="int">
|
||||
<name>maxDumps</name>
|
||||
<label>Maximum allowed dumps to exist</label>
|
||||
<defaultValue>6</defaultValue>
|
||||
</input-field>
|
||||
<input-field type="number">
|
||||
<input-field type="int">
|
||||
<name>retantionDays</name>
|
||||
<label>How many Days the dumps kept in the Storage. 0 Means unlimited</label>
|
||||
<defaultValue>0</defaultValue>
|
||||
@@ -19,7 +19,6 @@
|
||||
<input-field type="text">
|
||||
<name>dumpBinaryName</name>
|
||||
<label>Name of the mysqldump/mariadb-dump binary to look up on PATH (e.g. if your distro renamed it). Leave empty to auto-detect.</label>
|
||||
<defaultValue>""</defaultValue>
|
||||
</input-field>
|
||||
</card>
|
||||
|
||||
|
||||
@@ -5,81 +5,82 @@
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<services>
|
||||
|
||||
<!-- Services -->
|
||||
|
||||
<service id="Symfony\Component\Process\ExecutableFinder"/>
|
||||
|
||||
<service id="AeonDumpManager\Service\DumpFilenameParser"/>
|
||||
<service id="aeon_dump_manager.dump_filename_parser" class="AeonDumpManager\Service\DumpFilenameParser"/>
|
||||
|
||||
<service id="AeonDumpManager\Service\DumpBinaryLocator">
|
||||
<service id="aeon_dump_manager.dump_binary_locator" class="AeonDumpManager\Service\DumpBinaryLocator">
|
||||
<argument type="service" id="Doctrine\DBAL\Connection"/>
|
||||
<argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
|
||||
<argument type="service" id="Symfony\Component\Process\ExecutableFinder"/>
|
||||
</service>
|
||||
|
||||
<service id="AeonDumpManager\Service\DumpJobStatusService">
|
||||
<service id="aeon_dump_manager.dump_job_status_service" class="AeonDumpManager\Service\DumpJobStatusService">
|
||||
<argument type="service" id="Doctrine\DBAL\Connection"/>
|
||||
</service>
|
||||
|
||||
<service id="AeonDumpManager\Service\DumpLister">
|
||||
<service id="aeon_dump_manager.dump_lister" class="AeonDumpManager\Service\DumpLister">
|
||||
<argument type="service" id="aeon_dump_manager.filesystem.private"/>
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpFilenameParser"/>
|
||||
<argument type="service" id="aeon_dump_manager.dump_filename_parser"/>
|
||||
</service>
|
||||
|
||||
<service id="AeonDumpManager\Service\DumpService">
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpLister"/>
|
||||
<service id="aeon_dump_manager.dump_service" class="AeonDumpManager\Service\DumpService">
|
||||
<argument type="service" id="aeon_dump_manager.dump_lister"/>
|
||||
<argument type="service" id="aeon_dump_manager.filesystem.private"/>
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpBinaryLocator"/>
|
||||
<argument type="service" id="aeon_dump_manager.dump_binary_locator"/>
|
||||
<argument type="service" id="Doctrine\DBAL\Connection"/>
|
||||
<argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpFilenameParser"/>
|
||||
<argument type="service" id="aeon_dump_manager.dump_filename_parser"/>
|
||||
</service>
|
||||
|
||||
<!-- Async create job -->
|
||||
|
||||
<service id="AeonDumpManager\MessageQueue\Handler\CreateDumpHandler">
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpService"/>
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpJobStatusService"/>
|
||||
<service id="aeon_dump_manager.message_queue.create_dump_handler" class="AeonDumpManager\MessageQueue\Handler\CreateDumpHandler">
|
||||
<argument type="service" id="aeon_dump_manager.dump_service"/>
|
||||
<argument type="service" id="aeon_dump_manager.dump_job_status_service"/>
|
||||
<tag name="messenger.message_handler"/>
|
||||
</service>
|
||||
|
||||
<!-- Retention -->
|
||||
|
||||
<service id="AeonDumpManager\ScheduledTask\PurgeDumpsTask">
|
||||
<service id="aeon_dump_manager.scheduled_task.purge_dumps_task" class="AeonDumpManager\ScheduledTask\PurgeDumpsTask">
|
||||
<tag name="shopware.scheduled.task"/>
|
||||
</service>
|
||||
|
||||
<service id="AeonDumpManager\ScheduledTask\PurgeDumpsTaskHandler">
|
||||
<service id="aeon_dump_manager.scheduled_task.purge_dumps_task_handler" class="AeonDumpManager\ScheduledTask\PurgeDumpsTaskHandler">
|
||||
<argument type="service" id="scheduled_task.repository"/>
|
||||
<argument type="service" id="logger"/>
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpService"/>
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpJobStatusService"/>
|
||||
<argument type="service" id="aeon_dump_manager.dump_service"/>
|
||||
<argument type="service" id="aeon_dump_manager.dump_job_status_service"/>
|
||||
<argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
|
||||
<tag name="messenger.message_handler" handles="AeonDumpManager\ScheduledTask\PurgeDumpsTask"/>
|
||||
</service>
|
||||
|
||||
<!-- Console commands -->
|
||||
|
||||
<service id="AeonDumpManager\Command\DumpListCommand">
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpLister"/>
|
||||
<service id="aeon_dump_manager.command.dump_list" class="AeonDumpManager\Command\DumpListCommand">
|
||||
<argument type="service" id="aeon_dump_manager.dump_lister"/>
|
||||
<tag name="console.command"/>
|
||||
</service>
|
||||
|
||||
<service id="AeonDumpManager\Command\DumpCreateCommand">
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpService"/>
|
||||
<service id="aeon_dump_manager.command.dump_create" class="AeonDumpManager\Command\DumpCreateCommand">
|
||||
<argument type="service" id="aeon_dump_manager.dump_service"/>
|
||||
<tag name="console.command"/>
|
||||
</service>
|
||||
|
||||
<service id="AeonDumpManager\Command\DumpRemoveCommand">
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpService"/>
|
||||
<service id="aeon_dump_manager.command.dump_remove" class="AeonDumpManager\Command\DumpRemoveCommand">
|
||||
<argument type="service" id="aeon_dump_manager.dump_service"/>
|
||||
<tag name="console.command"/>
|
||||
</service>
|
||||
|
||||
<!-- Admin API controller -->
|
||||
|
||||
<service id="AeonDumpManager\Controller\DumpController" public="true">
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpLister"/>
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpService"/>
|
||||
<argument type="service" id="AeonDumpManager\Service\DumpJobStatusService"/>
|
||||
<argument type="service" id="aeon_dump_manager.dump_lister"/>
|
||||
<argument type="service" id="aeon_dump_manager.dump_service"/>
|
||||
<argument type="service" id="aeon_dump_manager.dump_job_status_service"/>
|
||||
<argument type="service" id="messenger.default_bus"/>
|
||||
</service>
|
||||
|
||||
|
||||
@@ -40,6 +40,9 @@ class DumpBinaryLocator
|
||||
|
||||
private function isMariaDb(): bool
|
||||
{
|
||||
return MySqlVariant::isMariaDb($this->connection->getServerVersion());
|
||||
// Connection::getServerVersion() is private in the DBAL version this
|
||||
// repo pins against — SELECT VERSION() is the stable public way to get
|
||||
// the same string.
|
||||
return MySqlVariant::isMariaDb((string) $this->connection->fetchOne('SELECT VERSION()'));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user