1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-24 06:20:56 +01:00

Use PhutilConsoleTable in ./bin/storage probe

Summary: Fixes T8477. Use `PhutilConsoleTable` to render the output from `./bin/storage probe`.

Test Plan: Ran `./bin/storage probe` and saw tabulated output.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Maniphest Tasks: T8477

Differential Revision: https://secure.phabricator.com/D13339
This commit is contained in:
Joshua Spence 2015-06-19 13:09:21 +10:00
parent 1851ca2d71
commit 68bb60e52f

View file

@ -45,34 +45,57 @@ final class PhabricatorStorageManagementProbeWorkflow
}
}
$console->writeOut("%s\n", pht('APPROXIMATE TABLE SIZES'));
asort($totals);
foreach ($totals as $db => $size) {
$database_size = $this->formatSize($totals[$db], $overall);
$console->writeOut(
"**%s**\n",
sprintf('%-32.32s %18s', $db, $database_size));
$data[$db] = isort($data[$db], '_totalSize');
foreach ($data[$db] as $table => $info) {
$table_size = $this->formatSize($info['_totalSize'], $overall);
$console->writeOut(
"%s\n",
sprintf(' %-28.28s %18s', $table, $table_size));
}
}
$overall_size = $this->formatSize($overall, $overall);
$console->writeOut(
"**%s**\n",
sprintf('%-32.32s %18s', pht('TOTAL'), $overall_size));
$table = id(new PhutilConsoleTable())
->setShowHeader(false)
->setPadding(2)
->addColumn('name', array('title' => pht('Database / Table')))
->addColumn('size', array('title' => pht('Size')))
->addColumn('percentage', array('title' => pht('Percentage')));
foreach ($totals as $db => $size) {
list($database_size, $database_percentage) = $this->formatSize(
$totals[$db],
$overall);
$table->addRow(array(
'name' => phutil_console_format('**%s**', $db),
'size' => phutil_console_format('**%s**', $database_size),
'percentage' => phutil_console_format('**%s**', $database_percentage),
));
$data[$db] = isort($data[$db], '_totalSize');
foreach ($data[$db] as $table_name => $info) {
list($table_size, $table_percentage) = $this->formatSize(
$info['_totalSize'],
$overall);
$table->addRow(array(
'name' => ' '.$table_name,
'size' => $table_size,
'percentage' => $table_percentage,
));
}
}
list($overall_size, $overall_percentage) = $this->formatSize(
$overall,
$overall);
$table->addRow(array(
'name' => phutil_console_format('**%s**', pht('TOTAL')),
'size' => phutil_console_format('**%s**', $overall_size),
'percentage' => phutil_console_format('**%s**', $overall_percentage),
));
$table->draw();
return 0;
}
private function formatSize($n, $o) {
return sprintf(
'%8.8s MB %5.5s%%',
number_format($n / (1024 * 1024), 1),
sprintf('%3.1f', 100 * ($n / $o)));
return array(
sprintf('%8.8s MB', number_format($n / (1024 * 1024), 1)),
sprintf('%3.1f%%', 100 * ($n / $o)),
);
}
}