| @@ -5,7 +5,7 @@ import ( | |||||
| ) | ) | ||||
| func (service *Service) TempCacheReport(msg *coormsg.TempCacheReport) { | func (service *Service) TempCacheReport(msg *coormsg.TempCacheReport) { | ||||
| service.db.BatchInsertOrUpdateCache(msg.Hashes, msg.NodeID) | |||||
| service.db.BatchInsertOrUpdateCache(msg.Body.Hashes, msg.Body.NodeID) | |||||
| } | } | ||||
| func (service *Service) AgentStatusReport(msg *coormsg.AgentStatusReport) { | func (service *Service) AgentStatusReport(msg *coormsg.AgentStatusReport) { | ||||
| @@ -15,10 +15,10 @@ func (service *Service) AgentStatusReport(msg *coormsg.AgentStatusReport) { | |||||
| // TODO | // TODO | ||||
| /* | /* | ||||
| ips := utils.GetAgentIps() | ips := utils.GetAgentIps() | ||||
| Insert_NodeDelay(msg.IP, ips, msg.AgentDelay) | |||||
| Insert_NodeDelay(msg.Body.IP, ips, msg.Body.AgentDelay) | |||||
| //从配置表里读取节点地域NodeLocation | //从配置表里读取节点地域NodeLocation | ||||
| //插入节点表的NodeStatus | //插入节点表的NodeStatus | ||||
| Insert_Node(msg.IP, msg.IP, msg.IPFSStatus, msg.LocalDirStatus) | |||||
| Insert_Node(msg.Body.IP, msg.Body.IP, msg.Body.IPFSStatus, msg.Body.LocalDirStatus) | |||||
| */ | */ | ||||
| } | } | ||||
| @@ -3,6 +3,7 @@ package services | |||||
| import ( | import ( | ||||
| log "github.com/sirupsen/logrus" | log "github.com/sirupsen/logrus" | ||||
| "gitlink.org.cn/cloudream/db/model" | "gitlink.org.cn/cloudream/db/model" | ||||
| ramsg "gitlink.org.cn/cloudream/rabbitmq/message" | |||||
| coormsg "gitlink.org.cn/cloudream/rabbitmq/message/coordinator" | coormsg "gitlink.org.cn/cloudream/rabbitmq/message/coordinator" | ||||
| "gitlink.org.cn/cloudream/utils/consts/errorcode" | "gitlink.org.cn/cloudream/utils/consts/errorcode" | ||||
| ) | ) | ||||
| @@ -13,52 +14,52 @@ func (svc *Service) GetBucket(userID int, bucketID int) (model.Bucket, error) { | |||||
| } | } | ||||
| func (svc *Service) GetUserBuckets(msg *coormsg.GetUserBuckets) *coormsg.GetUserBucketsResp { | func (svc *Service) GetUserBuckets(msg *coormsg.GetUserBuckets) *coormsg.GetUserBucketsResp { | ||||
| buckets, err := svc.db.GetUserBuckets(msg.UserID) | |||||
| buckets, err := svc.db.GetUserBuckets(msg.Body.UserID) | |||||
| if err != nil { | if err != nil { | ||||
| log.WithField("UserID", msg.UserID). | |||||
| log.WithField("UserID", msg.Body.UserID). | |||||
| Warnf("get user buckets failed, err: %s", err.Error()) | Warnf("get user buckets failed, err: %s", err.Error()) | ||||
| return coormsg.NewGetUserBucketsRespFailed(errorcode.OPERATION_FAILED, "get all buckets failed") | |||||
| return ramsg.ReplyFailed[coormsg.GetUserBucketsResp](errorcode.OPERATION_FAILED, "get all buckets failed") | |||||
| } | } | ||||
| return coormsg.NewGetUserBucketsRespOK(buckets) | |||||
| return ramsg.ReplyOK(coormsg.NewGetUserBucketsRespBody(buckets)) | |||||
| } | } | ||||
| func (svc *Service) GetBucketObjects(msg *coormsg.GetBucketObjects) *coormsg.GetBucketObjectsResp { | func (svc *Service) GetBucketObjects(msg *coormsg.GetBucketObjects) *coormsg.GetBucketObjectsResp { | ||||
| objects, err := svc.db.GetBucketObjects(msg.UserID, msg.BucketID) | |||||
| objects, err := svc.db.GetBucketObjects(msg.Body.UserID, msg.Body.BucketID) | |||||
| if err != nil { | if err != nil { | ||||
| log.WithField("UserID", msg.UserID). | |||||
| WithField("BucketID", msg.BucketID). | |||||
| log.WithField("UserID", msg.Body.UserID). | |||||
| WithField("BucketID", msg.Body.BucketID). | |||||
| Warnf("get bucket objects failed, err: %s", err.Error()) | Warnf("get bucket objects failed, err: %s", err.Error()) | ||||
| return coormsg.NewGetBucketObjectsRespFailed(errorcode.OPERATION_FAILED, "get all buckets failed") | |||||
| return ramsg.ReplyFailed[coormsg.GetBucketObjectsResp](errorcode.OPERATION_FAILED, "get bucket objects failed") | |||||
| } | } | ||||
| return coormsg.NewGetBucketObjectsRespOK(objects) | |||||
| return ramsg.ReplyOK(coormsg.NewGetBucketObjectsRespBody(objects)) | |||||
| } | } | ||||
| func (svc *Service) CreateBucket(msg *coormsg.CreateBucket) *coormsg.CreateBucketResp { | func (svc *Service) CreateBucket(msg *coormsg.CreateBucket) *coormsg.CreateBucketResp { | ||||
| bucketID, err := svc.db.CreateBucket(msg.UserID, msg.BucketName) | |||||
| bucketID, err := svc.db.CreateBucket(msg.Body.UserID, msg.Body.BucketName) | |||||
| if err != nil { | if err != nil { | ||||
| log.WithField("UserID", msg.UserID). | |||||
| WithField("BucketName", msg.BucketName). | |||||
| log.WithField("UserID", msg.Body.UserID). | |||||
| WithField("BucketName", msg.Body.BucketName). | |||||
| Warnf("create bucket failed, err: %s", err.Error()) | Warnf("create bucket failed, err: %s", err.Error()) | ||||
| return coormsg.NewCreateBucketRespFailed(errorcode.OPERATION_FAILED, "create bucket failed") | |||||
| return ramsg.ReplyFailed[coormsg.CreateBucketResp](errorcode.OPERATION_FAILED, "create bucket failed") | |||||
| } | } | ||||
| return coormsg.NewCreateBucketRespOK(bucketID) | |||||
| return ramsg.ReplyOK(coormsg.NewCreateBucketRespBody(bucketID)) | |||||
| } | } | ||||
| func (svc *Service) DeleteBucket(msg *coormsg.DeleteBucket) *coormsg.DeleteBucketResp { | func (svc *Service) DeleteBucket(msg *coormsg.DeleteBucket) *coormsg.DeleteBucketResp { | ||||
| err := svc.db.DeleteBucket(msg.UserID, msg.BucketID) | |||||
| err := svc.db.DeleteBucket(msg.Body.UserID, msg.Body.BucketID) | |||||
| if err != nil { | if err != nil { | ||||
| log.WithField("UserID", msg.UserID). | |||||
| WithField("BucketID", msg.BucketID). | |||||
| log.WithField("UserID", msg.Body.UserID). | |||||
| WithField("BucketID", msg.Body.BucketID). | |||||
| Warnf("delete bucket failed, err: %s", err.Error()) | Warnf("delete bucket failed, err: %s", err.Error()) | ||||
| return coormsg.NewDeleteBucketRespFailed(errorcode.OPERATION_FAILED, "delete bucket failed") | |||||
| return ramsg.ReplyFailed[coormsg.DeleteBucketResp](errorcode.OPERATION_FAILED, "delete bucket failed") | |||||
| } | } | ||||
| return coormsg.NewDeleteBucketRespOK() | |||||
| return ramsg.ReplyOK(coormsg.NewDeleteBucketRespBody()) | |||||
| } | } | ||||
| @@ -13,13 +13,13 @@ func (service *Service) ECWrite(msg *coormsg.ECWriteCommand) *coormsg.WriteResp | |||||
| //jh:完成对象表、对象编码块表的插入(对象编码块表的Hash字段先不插入) | //jh:完成对象表、对象编码块表的插入(对象编码块表的Hash字段先不插入) | ||||
| //返回消息 | //返回消息 | ||||
| //查询用户可用的节点IP | //查询用户可用的节点IP | ||||
| nodes, err := service.db.QueryUserNodes(msg.UserID) | |||||
| nodes, err := service.db.QueryUserNodes(msg.Body.UserID) | |||||
| if err != nil { | if err != nil { | ||||
| log.Warnf("query user nodes failed, err: %s", err.Error()) | log.Warnf("query user nodes failed, err: %s", err.Error()) | ||||
| return ramsg.NewCoorWriteRespFailed(errorcode.OPERATION_FAILED, "query user nodes failed") | return ramsg.NewCoorWriteRespFailed(errorcode.OPERATION_FAILED, "query user nodes failed") | ||||
| } | } | ||||
| ecid := msg.ECName | |||||
| ecid := msg.Body.ECName | |||||
| ecPolicies := *utils.GetEcPolicy() | ecPolicies := *utils.GetEcPolicy() | ||||
| ecPolicy := ecPolicies[ecid] | ecPolicy := ecPolicies[ecid] | ||||
| ecN := ecPolicy.GetN() | ecN := ecPolicy.GetN() | ||||
| @@ -41,13 +41,13 @@ func (service *Service) ECWrite(msg *coormsg.ECWriteCommand) *coormsg.WriteResp | |||||
| // TODO 参考RepWrite,将创建EC对象的逻辑移动到WriteECHash中,并合成成一个事务 | // TODO 参考RepWrite,将创建EC对象的逻辑移动到WriteECHash中,并合成成一个事务 | ||||
| //根据BucketName查询BucketID | //根据BucketName查询BucketID | ||||
| BucketID := Query_BucketID(msg.BucketName) | |||||
| BucketID := Query_BucketID(msg.Body.BucketName) | |||||
| if BucketID == -1 { | if BucketID == -1 { | ||||
| // TODO 日志 | // TODO 日志 | ||||
| return ramsg.NewCoorWriteRespFailed(errorcode.OPERATION_FAILED, fmt.Sprintf("bucket id not found for %s", msg.BucketName)) | |||||
| return ramsg.NewCoorWriteRespFailed(errorcode.OPERATION_FAILED, fmt.Sprintf("bucket id not found for %s", msg.Body.BucketName)) | |||||
| } | } | ||||
| //对象表插入Insert_Cache | //对象表插入Insert_Cache | ||||
| ObjectID := Insert_EcObject(msg.ObjectName, BucketID, msg.FileSizeInBytes, msg.ECName) | |||||
| ObjectID := Insert_EcObject(msg.Body.ObjectName, BucketID, msg.Body.FileSizeInBytes, msg.Body.ECName) | |||||
| //对象编码块表插入,hash暂时为空 | //对象编码块表插入,hash暂时为空 | ||||
| for i := 0; i < ecN; i++ { | for i := 0; i < ecN; i++ { | ||||
| Insert_EcObjectBlock(ObjectID, i) | Insert_EcObjectBlock(ObjectID, i) | ||||
| @@ -64,10 +64,10 @@ func (service *Service) WriteECHash(msg *coormsg.WriteECHashCommand) *coormsg.Wr | |||||
| //返回消息 | //返回消息 | ||||
| //插入对象编码块表中的Hash字段 | //插入对象编码块表中的Hash字段 | ||||
| // TODO 参考WriteRepHash的逻辑 | // TODO 参考WriteRepHash的逻辑 | ||||
| ObjectId := Query_ObjectID(msg.ObjectName) | |||||
| Insert_EcHash(ObjectId, msg.Hashes) | |||||
| ObjectId := Query_ObjectID(msg.Body.ObjectName) | |||||
| Insert_EcHash(ObjectId, msg.Body.Hashes) | |||||
| //缓存表的插入 | //缓存表的插入 | ||||
| Insert_Cache(msg.Hashes, msg.NodeIDs, false) | |||||
| Insert_Cache(msg.Body.Hashes, msg.Body.NodeIDs, false) | |||||
| return ramsg.NewCoorWriteHashRespOK() | return ramsg.NewCoorWriteHashRespOK() | ||||
| */ | */ | ||||
| @@ -2,6 +2,7 @@ package services | |||||
| import ( | import ( | ||||
| log "github.com/sirupsen/logrus" | log "github.com/sirupsen/logrus" | ||||
| ramsg "gitlink.org.cn/cloudream/rabbitmq/message" | |||||
| coormsg "gitlink.org.cn/cloudream/rabbitmq/message/coordinator" | coormsg "gitlink.org.cn/cloudream/rabbitmq/message/coordinator" | ||||
| "gitlink.org.cn/cloudream/utils" | "gitlink.org.cn/cloudream/utils" | ||||
| "gitlink.org.cn/cloudream/utils/consts" | "gitlink.org.cn/cloudream/utils/consts" | ||||
| @@ -22,20 +23,20 @@ func (service *Service) Move(msg *coormsg.MoveObjectToStorage) *coormsg.MoveObje | |||||
| // TODO 需要在StorageData中增加记录 | // TODO 需要在StorageData中增加记录 | ||||
| // 查询用户关联的存储服务 | // 查询用户关联的存储服务 | ||||
| stg, err := service.db.QueryUserStorage(msg.UserID, msg.StorageID) | |||||
| stg, err := service.db.QueryUserStorage(msg.Body.UserID, msg.Body.StorageID) | |||||
| if err != nil { | if err != nil { | ||||
| log.WithField("UserID", msg.UserID). | |||||
| WithField("StorageID", msg.StorageID). | |||||
| log.WithField("UserID", msg.Body.UserID). | |||||
| WithField("StorageID", msg.Body.StorageID). | |||||
| Warnf("query storage directory failed, err: %s", err.Error()) | Warnf("query storage directory failed, err: %s", err.Error()) | ||||
| return coormsg.NewCoorMoveRespFailed(errorcode.OPERATION_FAILED, "query storage directory failed") | |||||
| return ramsg.ReplyFailed[coormsg.MoveObjectToStorageResp](errorcode.OPERATION_FAILED, "query storage directory failed") | |||||
| } | } | ||||
| // 查询文件对象 | // 查询文件对象 | ||||
| object, err := service.db.QueryObjectByID(msg.ObjectID) | |||||
| object, err := service.db.QueryObjectByID(msg.Body.ObjectID) | |||||
| if err != nil { | if err != nil { | ||||
| log.WithField("ObjectID", msg.ObjectID). | |||||
| log.WithField("ObjectID", msg.Body.ObjectID). | |||||
| Warnf("query Object failed, err: %s", err.Error()) | Warnf("query Object failed, err: %s", err.Error()) | ||||
| return coormsg.NewCoorMoveRespFailed(errorcode.OPERATION_FAILED, "query Object failed") | |||||
| return ramsg.ReplyFailed[coormsg.MoveObjectToStorageResp](errorcode.OPERATION_FAILED, "query Object failed") | |||||
| } | } | ||||
| //-若redundancy是rep,查询对象副本表, 获得repHash | //-若redundancy是rep,查询对象副本表, 获得repHash | ||||
| @@ -45,7 +46,7 @@ func (service *Service) Move(msg *coormsg.MoveObjectToStorage) *coormsg.MoveObje | |||||
| objectRep, err := service.db.QueryObjectRep(object.ObjectID) | objectRep, err := service.db.QueryObjectRep(object.ObjectID) | ||||
| if err != nil { | if err != nil { | ||||
| log.Warnf("query ObjectRep failed, err: %s", err.Error()) | log.Warnf("query ObjectRep failed, err: %s", err.Error()) | ||||
| return coormsg.NewCoorMoveRespFailed(errorcode.OPERATION_FAILED, "query ObjectRep failed") | |||||
| return ramsg.ReplyFailed[coormsg.MoveObjectToStorageResp](errorcode.OPERATION_FAILED, "query ObjectRep failed") | |||||
| } | } | ||||
| hashs = append(hashs, objectRep.RepHash) | hashs = append(hashs, objectRep.RepHash) | ||||
| @@ -54,7 +55,7 @@ func (service *Service) Move(msg *coormsg.MoveObjectToStorage) *coormsg.MoveObje | |||||
| blockHashs, err := service.db.QueryObjectBlock(object.ObjectID) | blockHashs, err := service.db.QueryObjectBlock(object.ObjectID) | ||||
| if err != nil { | if err != nil { | ||||
| log.Warnf("query ObjectBlock failed, err: %s", err.Error()) | log.Warnf("query ObjectBlock failed, err: %s", err.Error()) | ||||
| return coormsg.NewCoorMoveRespFailed(errorcode.OPERATION_FAILED, "query ObjectBlock failed") | |||||
| return ramsg.ReplyFailed[coormsg.MoveObjectToStorageResp](errorcode.OPERATION_FAILED, "query ObjectBlock failed") | |||||
| } | } | ||||
| ecPolicies := *utils.GetEcPolicy() | ecPolicies := *utils.GetEcPolicy() | ||||
| @@ -88,7 +89,7 @@ func (service *Service) Move(msg *coormsg.MoveObjectToStorage) *coormsg.MoveObje | |||||
| }*/ | }*/ | ||||
| } | } | ||||
| return coormsg.NewCoorMoveRespOK( | |||||
| return ramsg.ReplyOK(coormsg.NewMoveObjectToStorageRespBody( | |||||
| stg.NodeID, | stg.NodeID, | ||||
| stg.Directory, | stg.Directory, | ||||
| object.Redundancy, | object.Redundancy, | ||||
| @@ -96,5 +97,5 @@ func (service *Service) Move(msg *coormsg.MoveObjectToStorage) *coormsg.MoveObje | |||||
| hashs, | hashs, | ||||
| ids, | ids, | ||||
| object.FileSizeInBytes, | object.FileSizeInBytes, | ||||
| ) | |||||
| )) | |||||
| } | } | ||||