Page MenuHomePhabricator

D14981.diff
No OneTemporary

D14981.diff

diff --git a/src/applications/files/management/PhabricatorFilesManagementMigrateWorkflow.php b/src/applications/files/management/PhabricatorFilesManagementMigrateWorkflow.php
--- a/src/applications/files/management/PhabricatorFilesManagementMigrateWorkflow.php
+++ b/src/applications/files/management/PhabricatorFilesManagementMigrateWorkflow.php
@@ -30,10 +30,8 @@
}
public function execute(PhutilArgumentParser $args) {
- $console = PhutilConsole::getConsole();
-
- $engine_id = $args->getArg('engine');
- if (!$engine_id) {
+ $target_key = $args->getArg('engine');
+ if (!$target_key) {
throw new PhutilArgumentUsageException(
pht(
'Specify an engine to migrate to with `%s`. '.
@@ -42,7 +40,7 @@
'files engines'));
}
- $engine = PhabricatorFile::buildEngine($engine_id);
+ $target_engine = PhabricatorFile::buildEngine($target_key);
$iterator = $this->buildIterator($args);
if (!$iterator) {
@@ -56,62 +54,90 @@
$is_dry_run = $args->getArg('dry-run');
$failed = array();
-
+ $engines = PhabricatorFileStorageEngine::loadAllEngines();
foreach ($iterator as $file) {
- $fid = 'F'.$file->getID();
+ $monogram = $file->getMonogram();
+
+ $engine_key = $file->getStorageEngine();
+ $engine = idx($engines, $engine_key);
+
+ if (!$engine) {
+ echo tsprintf(
+ "%s\n",
+ pht(
+ '%s: Uses unknown storage engine "%s".',
+ $monogram,
+ $engine_key));
+ $failed[] = $file;
+ continue;
+ }
- if ($file->getStorageEngine() == $engine_id) {
- $console->writeOut(
+ if ($engine->isChunkEngine()) {
+ echo tsprintf(
"%s\n",
pht(
- "%s: Already stored on '%s'",
- $fid,
- $engine_id));
+ '%s: Stored as chunks, no data to migrate directly.',
+ $monogram));
+ continue;
+ }
+
+ if ($engine_key === $target_key) {
+ echo tsprintf(
+ "%s\n",
+ pht(
+ '%s: Already stored in engine "%s".',
+ $monogram,
+ $target_key));
continue;
}
if ($is_dry_run) {
- $console->writeOut(
+ echo tsprintf(
"%s\n",
pht(
- "%s: Would migrate from '%s' to '%s' (dry run)",
- $fid,
- $file->getStorageEngine(),
- $engine_id));
+ '%s: Would migrate from "%s" to "%s" (dry run).',
+ $monogram,
+ $engine_key,
+ $target_key));
continue;
}
- $console->writeOut(
+ echo tsprintf(
"%s\n",
pht(
- "%s: Migrating from '%s' to '%s'...",
- $fid,
- $file->getStorageEngine(),
- $engine_id));
+ '%s: Migrating from "%s" to "%s"...',
+ $monogram,
+ $engine_key,
+ $target_key));
try {
- $file->migrateToEngine($engine);
- $console->writeOut("%s\n", pht('Done.'));
+ $file->migrateToEngine($target_engine);
+
+ echo tsprintf(
+ "%s\n",
+ pht('Done.'));
+
} catch (Exception $ex) {
- $console->writeOut("%s\n", pht('Failed!'));
- $console->writeErr("%s\n", (string)$ex);
+ echo tsprintf(
+ "%s\n",
+ pht('Failed! %s', (string)$ex));
$failed[] = $file;
+
+ throw $ex;
}
}
if ($failed) {
- $console->writeOut("**%s**\n", pht('Failures!'));
- $ids = array();
- foreach ($failed as $file) {
- $ids[] = 'F'.$file->getID();
- }
- $console->writeOut("%s\n", implode(', ', $ids));
+ $monograms = mpull($failed, 'getMonogram');
+
+ echo tsprintf(
+ "%s\n",
+ pht('Failures: %s.', implode(', ', $monograms)));
return 1;
- } else {
- $console->writeOut("**%s**\n", pht('Success!'));
- return 0;
}
+
+ return 0;
}
}

File Metadata

Mime Type
text/plain
Expires
Thu, May 9, 5:02 PM (3 w, 5 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6275228
Default Alt Text
D14981.diff (3 KB)

Event Timeline