package mq import ( "fmt" "gitlink.org.cn/cloudream/common/consts/errorcode" "gitlink.org.cn/cloudream/common/pkgs/mq" clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types" agtmq "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/mq/hub" ) func (svc *Service) CheckCache(msg *agtmq.CheckCache) (*agtmq.CheckCacheResp, *mq.CodeMessage) { store, err := svc.stgPool.GetShardStore(&msg.UserSpace) if err != nil { return nil, mq.Failed(errorcode.OperationFailed, fmt.Sprintf("get shard store of user space %v: %v", msg.UserSpace, err)) } infos, err := store.ListAll() if err != nil { return nil, mq.Failed(errorcode.OperationFailed, fmt.Sprintf("listting file in shard store: %v", err)) } var fileHashes []clitypes.FileHash for _, info := range infos { fileHashes = append(fileHashes, info.Hash) } return mq.ReplyOK(agtmq.NewCheckCacheResp(fileHashes)) } func (svc *Service) CacheGC(msg *agtmq.CacheGC) (*agtmq.CacheGCResp, *mq.CodeMessage) { store, err := svc.stgPool.GetShardStore(&msg.UserSpace) if err != nil { return nil, mq.Failed(errorcode.OperationFailed, fmt.Sprintf("get shard store of user space %v: %v", msg.UserSpace, err)) } err = store.GC(msg.Avaiables) if err != nil { return nil, mq.Failed(errorcode.OperationFailed, fmt.Sprintf("purging cache: %v", err)) } return mq.ReplyOK(agtmq.RespCacheGC()) }