aio-interface: also reset the borg backup cache when resetting the backup path

Signed-off-by: Simon L. <szaimen@e.mail.de>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-25 12:50:27 +00:00
committed by Simon L.
parent 39f30a6609
commit 172c72f735
5 changed files with 29 additions and 9 deletions

View File

@@ -3,16 +3,14 @@ declare(strict_types=1);
namespace AIO\Controller;
use AIO\ContainerDefinitionFetcher;
use AIO\Data\ConfigurationManager;
use AIO\Data\InvalidSettingConfigurationException;
use AIO\Docker\DockerActionManager;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
readonly class ConfigurationController {
public function __construct(
private ConfigurationManager $configurationManager
private ConfigurationManager $configurationManager,
) {
}
@@ -132,10 +130,6 @@ readonly class ConfigurationController {
$this->configurationManager->collaboraAdditionalOptions = $additionalCollaboraOptions;
}
if (isset($request->getParsedBody()['delete_borg_backup_location_vars'])) {
$this->configurationManager->deleteBorgBackupLocationItems();
}
return $response->withStatus(201)->withHeader('Location', '.');
} catch (InvalidSettingConfigurationException $ex) {
$response->getBody()->write($ex->getMessage());

View File

@@ -328,6 +328,11 @@ readonly class DockerController {
return $nonbufResp;
}
public function DeleteBorgBackupConfig(Request $request, Response $response, array $args) : Response {
$this->dockerActionManager->deleteBorgBackupConfig();
return $response->withStatus(201)->withHeader('Location', '.');
}
public function SystemPrune(Request $request, Response $response, array $args) : Response {
// Get streaming response start and closure
$nonbufResp = $this->startStreamingResponse($response);

View File

@@ -145,6 +145,27 @@ readonly class DockerActionManager {
}
}
public function deleteBorgBackupConfig(): void {
// Delete the borgbackup container
$id = 'nextcloud-aio-borgbackup';
$borgbackupContainer = $this->containerDefinitionFetcher->GetContainerById($id);
$this->DeleteContainer($borgbackupContainer);
// Delete the borg cache volume
$url = $this->BuildApiUrl('volumes/nextcloud_aio_backup_cache');
try {
$this->guzzleClient->delete($url);
error_log('nextcloud_aio_backup_cache volume deleted successfully.');
} catch (RequestException $e) {
if ($e->getCode() !== 404) {
error_log('Could not delete nextcloud_aio_backup_cache volume: ' . $e->getMessage());
}
}
// Clear the configuration variables and files
$this->configurationManager->deleteBorgBackupLocationItems();
}
public function GetLogs(string $id, string $since = ''): string {
$url = $this->BuildApiUrl(
sprintf(