Commit Graph

93 Commits

Author SHA1 Message Date
218642c300 Update unsafe file write usages 2022-05-16 18:05:27 +09:00
ec231e0f31 Use more local realm reference
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-05-11 00:45:17 +09:00
33f024212f Fix realm refetch operations potentially being unsafe
As seen in test failure https://github.com/ppy/osu/runs/6357384721?check_suite_focus=true.
2022-05-10 21:04:30 +09:00
56427becbb Move logging and early return into UndeleteForReuse method itself 2022-04-13 14:33:28 +09:00
6dbfc26158 Add log output when a model is undeleted 2022-04-12 18:23:38 +09:00
0fcb3bdba9 Fix beatmap date added not being updated on reimporting a soft deleted beatmap
Addresses concerns raised in https://github.com/ppy/osu/discussions/17399.
2022-03-22 14:10:36 +09:00
79d1d54e33 Rename parameter to match other usages 2022-02-08 20:35:38 +09:00
b1a73996ba Fix incorrect check for beatmap availability 2022-02-08 19:36:42 +09:00
5288eedd31 Update all usages of RulesetID and Ruleset.ID to use Ruleset.OnlineID 2022-01-27 15:38:03 +09:00
cd71ec0edd Remove ILive<> interface (and use abstract Live<> instead) 2022-01-26 13:38:56 +09:00
778d2a71b4 Remove Task from the inner-most Import method in RealmArchiveModelImporter
One of my pending work items for post-realm merge.

The lowest-level import task is no longer asynchronous, as we don't want
it to span multiple threads to allow easier interaction with realm.
Removing the `Task` spec simplifies a heap of usages.

Individual usages should decide whether they want to run the import
asynchronously, by either using an alternative override or spooling up a
thread themselves.
2022-01-25 15:30:29 +09:00
bfa521bdd2 Merge pull request #16593 from peppy/realm-clean-up
Clean up realm naming
2022-01-25 14:33:53 +09:00
bbcc149e2e During import if files are found to be missing, ensure they are restored
This is one step closer to sanity in terms of physical files. As per the
comment I have left in place, we really should be checking file sizes or
hashes, but to keep things simple and fast I've opted to just cover the
"missing file" scenario for now.

Ran into this when testing against a foreign `client.realm` by:
- Noticing a beatmap doesn't load
- Deleting said beatmap
- Downloading via beatmap overlay
- Beatmap is restored but still doesn't work

Note that I've kept the logic where this will undelete an existing
import rather than create one from fresh, as I think that is beneficial
to the user (ie. it will still keep any linked scores on restore).
2022-01-25 13:44:54 +09:00
d7342880f5 Update remaining cases of clashes with realm.Write and realm.RegisterForNotifications 2022-01-25 13:09:48 +09:00
3e5c9e8436 Fix cases of Access instead of Realm 2022-01-25 12:58:15 +09:00
f30894840c Update terminology to realm "instance" rather than "context"
This matches the terminology used by realm themselves, which feels
better.
2022-01-24 20:38:38 +09:00
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
114c9e8c1f Update all usages of CreateContext to use either Run or Write 2022-01-21 17:27:08 +09:00
a5d2047f05 Fix various cases of creating realm contexts from update thread when not necessary 2022-01-21 01:44:56 +09:00
7f65f3a47f Remove all usage of BaseDifficulty (and access Difficulty instead) 2022-01-18 22:57:39 +09:00
a0e2106468 Guard against null values getting inserted into database during score/beatmap imports 2022-01-17 14:05:08 +09:00
8424d86e9a Remove unused cancellationToken parameter in synchronous BeatmapOnlineLookupQueue flow 2022-01-14 13:19:00 +09:00
c61419dfe5 Fix scores not using correct filename/display strings
I've updated all cases where we should have been using
`GetDisplayString()` anyway, but left the `ToString()` implementations
in place for safety. They should probably be removed in the future.
2022-01-13 16:56:11 +09:00
93c78253d6 Add synchronous fetch flow to BeatmapOnlineLookupQueue
The async flow doesn't work great with the realm import process. We
might be able to improve on this going forward, but for the time being
adding a synchronous path seems safest.

After all, we are already an an asynchronous (dedicated) thread pool at
this point.
2022-01-13 16:36:54 +09:00
bdb2979b2e Remove async from Populate method 2022-01-13 16:36:54 +09:00
70c107b434 Remove pointless override method in RealmArchiveModelManager 2022-01-13 16:27:12 +09:00
88145dedf1 Remove oudated comments 2022-01-13 15:27:43 +09:00
a4de0f93fa Move manager Update methods to be explicit to where they are still used by legacy code
Also fixes skin hash repopulation being completely broken.
2022-01-12 17:49:11 +09:00
7dba3c3551 Fix most remaining test issues 2022-01-12 17:49:11 +09:00
80eee6d7b0 Make RealmArchiveModelManager.Update work using automapper 2022-01-12 17:49:11 +09:00
64a47ff850 Allow RealmArchiveModelManager file operations to be performed on detached instances 2022-01-12 17:49:11 +09:00
d8e75a9de4 Reimplmeent IsAvailableLocally as an abstract method 2022-01-12 17:49:10 +09:00
b619ff1264 Reattach detached items on delete/undelete 2022-01-12 17:00:17 +09:00
e74a5022c9 Fix multiple tests via null checks and changing ToLive to Detach
flow
2022-01-12 17:00:17 +09:00
fe8a5e867d Remove updated/removed flow method mapping 2022-01-12 17:00:16 +09:00
00e9f0d41e Replace BeatmapDownloadTracker event flow with realm subscriptions 2022-01-12 17:00:16 +09:00
00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
d70e292828 Remove old EF classes 2022-01-12 16:57:27 +09:00
e711a6d355 Remove unused ScoreImporter class 2022-01-12 16:57:27 +09:00
2a4bee61dd Update many score-related classes to move closer to being able to persist to realm 2022-01-12 16:57:27 +09:00
3da762e145 Replace EF ScoreInfo with realm version
May contain errors.
2022-01-12 16:57:27 +09:00
a5df01ff47 Add score importer 2022-01-12 16:57:27 +09:00
3ecd889fef Replace EF RulesetStore with realm version
Pass full EF context factory to `RealmContextFactory` for migration purposes
2022-01-12 16:39:36 +09:00
213d89b479 Update null fallback cases involving OnlineID 2022-01-12 16:39:36 +09:00
618903c217 Rename realm to become imposter classes 2022-01-12 16:39:36 +09:00
441b7baa93 Provide a realm factory to usages of ToLive/RealmLive 2021-12-14 14:26:34 +09:00
68b482fc48 Merge branch 'master' into skin-export-instntiation-info 2021-12-06 17:12:42 +09:00
452fa93444 Merge branch 'master' into realm-integration/skins-rebase 2021-12-06 15:21:02 +09:00
675ecb603f Add IRulesetStore to allow for transitional usage in upcoming manager classes 2021-12-03 17:57:40 +09:00
fe99d4e984 Standardise parameter naming across all file IO methods 2021-12-02 17:19:53 +09:00