mirror of
https://github.com/nextcloud/server.git
synced 2026-04-26 16:48:59 -04:00
Merge pull request #44829 from nextcloud/feat/add-storage-tree-to-info-file
feat(occ): Add --storage-tree option to info:file to help debug storages
This commit is contained in:
commit
f02ca82825
1 changed files with 14 additions and 3 deletions
|
|
@ -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 <info>--children</info> 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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue