aboutsummaryrefslogtreecommitdiffstats
path: root/lib/active_storage/service/mirror_service.rb
Commit message (Collapse)AuthorAgeFilesLines
* Document the rest of libDavid Heinemeier Hansson2017-07-241-0/+6
|
* Everything under app/ is eager loaded, don't want that for serviceDavid Heinemeier Hansson2017-07-241-0/+40
| | | | Since it references all the specific cloud services that are intended only to be loaded on demand.
* Move models and jobs to the app setupDavid Heinemeier Hansson2017-07-221-40/+0
| | | | Follow engine conventions more closely
* Clarify how a service can build other composed servicesJeremy Daer2017-07-091-9/+5
| | | | | | | | | * Service.build takes the literal YAML config hash for the service and a reference to the Configurator that's doing the building. * Services that compose additional services can use the Configurator to look them up and build them by name. See MirrorService for an example. References #23
* Service: clarify Service.build argumentsJeremy Daer2017-07-091-3/+3
| | | | | | | First arg is config for the service we're instantiating. Second arg is service configurations so we can look up and configure other services by name.
* Configure services that reference other servicesJeremy Daer2017-07-081-0/+11
| | | | | | | | * Move service configuration from the Engine to Service * Delegate configuration mechanics to internal Service::Configurator * Delegate service building to the concrete Service classes, allowing them to configure composed services. * Implement for the Mirror service.
* Mirror: explicit primary service and list of mirrorsJeremy Daer2017-07-081-10/+9
| | | | | | | | | | | | Pass separate primary service and list of mirrors rather than treating the first of the services list as the primary. Nice fit for keyword args, and something we've long wanted in the equivalent Basecamp file repository. Upload returns the results of the underlying service uploads rather than the io.rewind result. Rewind before uploading rather than afterward, and demonstrate that behavior with a test. Test that more than one mirror works.
* Remove unnecessary method delegationsGeorge Claghorn2017-07-061-1/+1
|
* Check integrity after uploadsDavid Heinemeier Hansson2017-07-061-2/+2
|
* Mirror: only hit all sites for upload and deleteGeorge Claghorn2017-07-061-21/+4
| | | | The mirror service exists for the purpose of migration, where all blobs exist in the primary subservice and a subset of blobs exist in the secondary subservice. Since the primary subservice is the source of truth until a migration is completed, operations like existence checks need not be performed against the secondary subservices.
* Rename from Site to Service now that we're called Active StorageDavid Heinemeier Hansson2017-07-061-0/+51