%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/varak.net/nextcloud.varak.net/apps/app_api/lib/Migration/
Upload File :
Create Path :
Current File : //www/varak.net/nextcloud.varak.net/apps/app_api/lib/Migration/DaemonUpdateV2RepairStep.php

<?php

declare(strict_types=1);

namespace OCA\AppAPI\Migration;

use OCA\AppAPI\Db\DaemonConfig;
use OCA\AppAPI\Db\DaemonConfigMapper;
use OCP\DB\Exception;
use OCP\Migration\IOutput;
use OCP\Migration\IRepairStep;
use Psr\Log\LoggerInterface;

class DaemonUpdateV2RepairStep implements IRepairStep {
	public function __construct(
		private readonly DaemonConfigMapper $daemonConfigMapper,
		private readonly LoggerInterface $logger,
	) {
	}

	public function getName(): string {
		return 'AppAPI 2.5.0 Daemons configuration update';
	}

	public function run(IOutput $output): void {
		$daemons = $this->daemonConfigMapper->findAll();
		$daemonsUpdated = 0;
		// Update manual-install daemons
		/** @var DaemonConfig $daemon */
		foreach ($daemons as $daemon) {
			$daemonsUpdated += $this->updateDaemonConfiguration($daemon);
		}
		$output->info(sprintf('Daemons configurations updated to V2.5.0: %s', $daemonsUpdated));
	}

	private function updateDaemonConfiguration(DaemonConfig $daemonConfig): int {
		$updated = false;
		if ($daemonConfig->getAcceptsDeployId() === 'manual-install') {
			if ($daemonConfig->getProtocol() == 0) {
				$daemonConfig->setProtocol('http');
				$updated = true;
			}
			if ($daemonConfig->getHost() == 0) {
				$daemonConfig->setHost('host.docker.internal');
				$updated = true;
			}
		}

		if ($daemonConfig->getAcceptsDeployId() === 'docker-install') {
			if ($daemonConfig->getProtocol() === 'unix-socket') {
				$daemonConfig->setProtocol('http');
				$updated = true;
			}
		}

		if ($updated) {
			try {
				$this->daemonConfigMapper->update($daemonConfig);
				return 1;
			} catch (Exception $e) {
				$this->logger->error(
					sprintf('Failed to update Daemon config (%s: %s)',
						$daemonConfig->getAcceptsDeployId(), $daemonConfig->getName()),
					['exception' => $e]
				);
				return 0;
			}
		}
		return 0;
	}
}

Zerion Mini Shell 1.0