From 38e809e635969b17bccd12118e2e8c09f7421bd9 Mon Sep 17 00:00:00 2001 From: Côme Chilliet Date: Mon, 15 Apr 2024 11:35:51 +0200 Subject: feat(occ): Add --storage-tree option to info:file to help debug storages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wrapping can get kind of crazy and this helps understanding the situation Signed-off-by: Côme Chilliet --- core/Command/Info/File.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'core/Command/Info') diff --git a/core/Command/Info/File.php b/core/Command/Info/File.php index 4afda280370..576ca1e4fd8 100644 --- a/core/Command/Info/File.php +++ b/core/Command/Info/File.php @@ -41,7 +41,8 @@ class File extends Command { ->setName('info:file') ->setDescription('get information for a file') ->addArgument('file', InputArgument::REQUIRED, "File id or path") - ->addOption('children', 'c', InputOption::VALUE_NONE, "List children of folders"); + ->addOption('children', 'c', InputOption::VALUE_NONE, "List children of folders") + ->addOption('storage-tree', null, InputOption::VALUE_NONE, "Show storage and cache wrapping tree"); } public function execute(InputInterface $input, OutputInterface $output): int { @@ -86,7 +87,7 @@ class File extends Command { $output->writeln(" children: " . count($children) . " (use --children option to list)"); } } - $this->outputStorageDetails($node->getMountPoint(), $node, $output); + $this->outputStorageDetails($node->getMountPoint(), $node, $input, $output); $filesPerUser = $this->fileUtils->getFilesByUser($node); $output->writeln(""); @@ -108,7 +109,7 @@ class File extends Command { * @psalm-suppress UndefinedClass * @psalm-suppress UndefinedInterfaceMethod */ - private function outputStorageDetails(IMountPoint $mountPoint, Node $node, OutputInterface $output): void { + private function outputStorageDetails(IMountPoint $mountPoint, Node $node, InputInterface $input, OutputInterface $output): void { $storage = $mountPoint->getStorage(); if (!$storage) { return; @@ -151,5 +152,15 @@ class File extends Command { } elseif ($mountPoint instanceof GroupMountPoint) { $output->writeln(" groupfolder id: " . $mountPoint->getFolderId()); } + if ($input->getOption('storage-tree')) { + $storageTmp = $storage; + $storageClass = get_class($storageTmp).' (cache:'.get_class($storageTmp->getCache()).')'; + while ($storageTmp instanceof \OC\Files\Storage\Wrapper\Wrapper) { + $storageTmp = $storageTmp->getWrapperStorage(); + $storageClass .= "\n\t".'> '.get_class($storageTmp).' (cache:'.get_class($storageTmp->getCache()).')'; + } + $output->writeln(" storage wrapping: " . $storageClass); + } + } } -- cgit v1.2.3