Spaces:
No application file
No application file
File size: 2,367 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<?php
namespace Mautic\CoreBundle\Command;
use Mautic\CoreBundle\Helper\CoreParametersHelper;
use Mautic\CoreBundle\Helper\PathsHelper;
use Mautic\LeadBundle\Model\IpAddressModel;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
/**
* CLI Command to delete unused IP addresses.
*/
class UnusedIpDeleteCommand extends ModeratedCommand
{
private const DEFAULT_LIMIT = 10000;
public function __construct(
private IpAddressModel $ipAddressModel,
PathsHelper $pathsHelper,
CoreParametersHelper $coreParametersHelper
) {
parent::__construct($pathsHelper, $coreParametersHelper);
}
protected function configure(): void
{
$this->setName('mautic:unusedip:delete')
->addOption(
'--limit',
'-l',
InputOption::VALUE_OPTIONAL,
'LIMIT for deleted rows',
self::DEFAULT_LIMIT
)
->setHelp(
<<<'EOT'
The <info>%command.name%</info> command is used to delete IP addresses that are not used in any other database table.
<info>php %command.full_name%</info>
EOT
);
parent::configure();
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
if (!$this->checkRunStatus($input, $output)) {
return \Symfony\Component\Console\Command\Command::SUCCESS;
}
try {
$limit = $input->getOption('limit') ?? self::DEFAULT_LIMIT;
$deletedRows = $this->ipAddressModel->deleteUnusedIpAddresses((int) $limit);
$output->writeln(sprintf('<info>%s unused IP addresses have been deleted</info>', $deletedRows));
} catch (\Doctrine\DBAL\Exception $e) {
$output->writeln(sprintf('<error>Deletion of unused IP addresses failed because of database error: %s</error>', $e->getMessage()));
$this->completeRun();
return \Symfony\Component\Console\Command\Command::FAILURE;
}
$this->completeRun();
return \Symfony\Component\Console\Command\Command::SUCCESS;
}
protected static $defaultDescription = 'Deletes IP addresses that are not used in any other database table';
}
|