Add CAS implementation
Description
This MR adds a CAS implementation to BuildGrid that supports storing data in memory, the filesystem, an Amazon S3 bucket, or some combination of these.
By default, bgd server start
will run a server without CAS, just like it did before this MR. The following new options have been added to allow users to enable/configure CAS:
--cas [lru|s3|disk|with-cache] CAS storage type to use.
--cas-cache [lru|s3|disk] For --cas=with-cache, the CAS storage to use
as the cache.
--cas-fallback [lru|s3|disk] For --cas=with-cache, the CAS storage to use
as the fallback.
--cas-lru-size TEXT For --cas=lru, the LRU cache's memory limit.
--cas-s3-bucket TEXT For --cas=s3, the bucket name.
--cas-s3-endpoint TEXT For --cas=s3, the endpoint URI.
--cas-disk-directory DIRECTORY For --cas=disk, the folder to store CAS
blobs in.
Edited by Carter Sande