|
- 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())
- }
|