From b54adc6161c205e146fabb801ca53a44d94da444 Mon Sep 17 00:00:00 2001 From: Austin McKinley Date: Tue, 18 Apr 2017 08:13:34 -0700 Subject: [PATCH] Kick off indexing for File objects on creation Summary: Ensures that newly-made `File` objects get indexed into the new ngrams index. Fixes T8788. Test Plan: - uploaded a file with daemons stopped; confirmed no new rows in ngrams table - started daemons; confirmed indexing of previously-uploaded files happened - uploaded a new file with daemons running; confirmed it got added to the index Not sure how to test the changes to `PhabricatorFileUploadSource->writeChunkedFile()` and `PhabricatorChunkedFileStorageEngine->allocateChunks()`. I spent a few minutes trying to find their callers, but the first looks like it requires a Diffusion repo and the 2nd is only accessible via Conduit. I can test that stuff if necessary, but it's such a small change that I'm not worried about it. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Maniphest Tasks: T8788 Differential Revision: https://secure.phabricator.com/D17718 --- .../engine/PhabricatorChunkedFileStorageEngine.php | 2 +- src/applications/files/storage/PhabricatorFile.php | 10 ++++++++-- .../files/uploadsource/PhabricatorFileUploadSource.php | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/applications/files/engine/PhabricatorChunkedFileStorageEngine.php b/src/applications/files/engine/PhabricatorChunkedFileStorageEngine.php index 1bb86cf67e..30de63b904 100644 --- a/src/applications/files/engine/PhabricatorChunkedFileStorageEngine.php +++ b/src/applications/files/engine/PhabricatorChunkedFileStorageEngine.php @@ -129,7 +129,7 @@ final class PhabricatorChunkedFileStorageEngine foreach ($chunks as $chunk) { $chunk->save(); } - $file->save(); + $file->saveAndIndex(); $file->saveTransaction(); return $file; diff --git a/src/applications/files/storage/PhabricatorFile.php b/src/applications/files/storage/PhabricatorFile.php index f697be0dc2..1c9b96069d 100644 --- a/src/applications/files/storage/PhabricatorFile.php +++ b/src/applications/files/storage/PhabricatorFile.php @@ -148,6 +148,12 @@ final class PhabricatorFile extends PhabricatorFileDAO return parent::save(); } + public function saveAndIndex() { + $this->save(); + PhabricatorSearchWorker::queueDocumentForIndexing($this->getPHID()); + return $this; + } + public function getMonogram() { return 'F'.$this->getID(); } @@ -234,7 +240,7 @@ final class PhabricatorFile extends PhabricatorFileDAO $new_file->readPropertiesFromParameters($params); - $new_file->save(); + $new_file->saveAndIndex(); return $new_file; } @@ -390,7 +396,7 @@ final class PhabricatorFile extends PhabricatorFileDAO // Do nothing } - $file->save(); + $file->saveAndIndex(); return $file; } diff --git a/src/applications/files/uploadsource/PhabricatorFileUploadSource.php b/src/applications/files/uploadsource/PhabricatorFileUploadSource.php index 0ef33a2521..cda07d590b 100644 --- a/src/applications/files/uploadsource/PhabricatorFileUploadSource.php +++ b/src/applications/files/uploadsource/PhabricatorFileUploadSource.php @@ -145,7 +145,7 @@ abstract class PhabricatorFileUploadSource } $file = PhabricatorFile::newChunkedFile($engine, $length, $parameters); - $file->save(); + $file->saveAndIndex(); $rope = $this->getRope();