|
|
|
@@ -0,0 +1,29 @@ |
|
|
|
package services |
|
|
|
|
|
|
|
import ( |
|
|
|
"gitlink.org.cn/cloudream/common/consts/errorcode" |
|
|
|
"gitlink.org.cn/cloudream/common/pkgs/logger" |
|
|
|
"gitlink.org.cn/cloudream/common/pkgs/mq" |
|
|
|
coormq "gitlink.org.cn/cloudream/storage-common/pkgs/mq/coordinator" |
|
|
|
) |
|
|
|
|
|
|
|
func (svc *Service) CachePackageMoved(msg *coormq.CachePackageMoved) (*coormq.CachePackageMovedResp, *mq.CodeMessage) { |
|
|
|
pkg, err := svc.db.Package().GetByID(svc.db.SQLCtx(), msg.PackageID) |
|
|
|
if err != nil { |
|
|
|
logger.WithField("PackageID", msg.PackageID). |
|
|
|
Warnf("getting package: %s", err.Error()) |
|
|
|
return nil, mq.Failed(errorcode.OperationFailed, "get package failed") |
|
|
|
} |
|
|
|
|
|
|
|
if pkg.Redundancy.IsRepInfo() { |
|
|
|
// TODO 优先级 |
|
|
|
if err := svc.db.Cache().BatchCreatePinned(svc.db.SQLCtx(), msg.FileHashes, msg.NodeID, 0); err != nil { |
|
|
|
logger.Warnf("batch creating pinned cache: %s", err.Error()) |
|
|
|
return nil, mq.Failed(errorcode.OperationFailed, "batch create pinned cache failed") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// TODO EC的逻辑 |
|
|
|
|
|
|
|
return mq.ReplyOK(coormq.NewCachePackageMovedResp()) |
|
|
|
} |