You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

node.go 1.6 kB

2 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package coordinator
  2. import (
  3. "gitlink.org.cn/cloudream/common/pkgs/mq"
  4. cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
  5. "gitlink.org.cn/cloudream/storage/common/pkgs/db/model"
  6. )
  7. type NodeService interface {
  8. GetUserNodes(msg *GetUserNodes) (*GetUserNodesResp, *mq.CodeMessage)
  9. GetNodes(msg *GetNodes) (*GetNodesResp, *mq.CodeMessage)
  10. }
  11. // 查询用户可用的节点
  12. var _ = Register(Service.GetUserNodes)
  13. type GetUserNodes struct {
  14. mq.MessageBodyBase
  15. UserID cdssdk.UserID `json:"userID"`
  16. }
  17. type GetUserNodesResp struct {
  18. mq.MessageBodyBase
  19. Nodes []model.Node `json:"nodes"`
  20. }
  21. func NewGetUserNodes(userID cdssdk.UserID) *GetUserNodes {
  22. return &GetUserNodes{
  23. UserID: userID,
  24. }
  25. }
  26. func NewGetUserNodesResp(nodes []model.Node) *GetUserNodesResp {
  27. return &GetUserNodesResp{
  28. Nodes: nodes,
  29. }
  30. }
  31. func (client *Client) GetUserNodes(msg *GetUserNodes) (*GetUserNodesResp, error) {
  32. return mq.Request(Service.GetUserNodes, client.rabbitCli, msg)
  33. }
  34. // 获取指定节点的信息。如果NodeIDs为nil,则返回所有Node
  35. var _ = Register(Service.GetNodes)
  36. type GetNodes struct {
  37. mq.MessageBodyBase
  38. NodeIDs []cdssdk.NodeID `json:"nodeIDs"`
  39. }
  40. type GetNodesResp struct {
  41. mq.MessageBodyBase
  42. Nodes []model.Node `json:"nodes"`
  43. }
  44. func NewGetNodes(nodeIDs []cdssdk.NodeID) *GetNodes {
  45. return &GetNodes{
  46. NodeIDs: nodeIDs,
  47. }
  48. }
  49. func NewGetNodesResp(nodes []model.Node) *GetNodesResp {
  50. return &GetNodesResp{
  51. Nodes: nodes,
  52. }
  53. }
  54. func (client *Client) GetNodes(msg *GetNodes) (*GetNodesResp, error) {
  55. return mq.Request(Service.GetNodes, client.rabbitCli, msg)
  56. }

本项目旨在将云际存储公共基础设施化,使个人及企业可低门槛使用高效的云际存储服务(安装开箱即用云际存储客户端即可,无需关注其他组件的部署),同时支持用户灵活便捷定制云际存储的功能细节。