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.

update_agent_state.go 1.3 kB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package event
  2. import (
  3. "gitlink.org.cn/cloudream/common/consts"
  4. "gitlink.org.cn/cloudream/common/utils/logger"
  5. mysql "gitlink.org.cn/cloudream/db/sql"
  6. scevt "gitlink.org.cn/cloudream/rabbitmq/message/scanner/event"
  7. )
  8. type UpdateAgentState struct {
  9. scevt.UpdateAgentState
  10. }
  11. func NewUpdateAgentState(nodeID int, ipfsState string) *UpdateAgentState {
  12. return &UpdateAgentState{
  13. UpdateAgentState: scevt.NewUpdateAgentState(nodeID, ipfsState),
  14. }
  15. }
  16. func (t *UpdateAgentState) TryMerge(other Event) bool {
  17. return false
  18. }
  19. func (t *UpdateAgentState) Execute(execCtx ExecuteContext) {
  20. if t.IPFSState != consts.IPFS_STATUS_OK {
  21. logger.WithField("NodeID", t.NodeID).Warnf("IPFS status is %s, set node state unavailable", t.IPFSState)
  22. err := mysql.Node.ChangeState(execCtx.Args.DB.SQLCtx(), t.NodeID, consts.NODE_STATE_UNAVAILABLE)
  23. if err != nil {
  24. logger.WithField("NodeID", t.NodeID).Warnf("change node state failed, err: %s", err.Error())
  25. }
  26. return
  27. }
  28. // TODO 如果以后还有其他的状态,要判断哪些状态下能设置Normal
  29. err := mysql.Node.ChangeState(execCtx.Args.DB.SQLCtx(), t.NodeID, consts.NODE_STATE_NORMAL)
  30. if err != nil {
  31. logger.WithField("NodeID", t.NodeID).Warnf("change node state failed, err: %s", err.Error())
  32. }
  33. }

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