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.

check_state.go 1.1 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package event
  2. import (
  3. "gitlink.org.cn/cloudream/agent/internal/config"
  4. "gitlink.org.cn/cloudream/common/consts"
  5. "gitlink.org.cn/cloudream/common/pkg/logger"
  6. agtevt "gitlink.org.cn/cloudream/rabbitmq/message/agent/event"
  7. scmsg "gitlink.org.cn/cloudream/rabbitmq/message/scanner"
  8. scevt "gitlink.org.cn/cloudream/rabbitmq/message/scanner/event"
  9. )
  10. type CheckState struct {
  11. }
  12. func NewCheckState() *CheckState {
  13. return &CheckState{}
  14. }
  15. func (t *CheckState) TryMerge(other Event) bool {
  16. _, ok := other.(*CheckState)
  17. return ok
  18. }
  19. func (t *CheckState) Execute(execCtx ExecuteContext) {
  20. logger.Debugf("begin check state")
  21. ipfsStatus := consts.IPFS_STATUS_OK
  22. if execCtx.Args.IPFS.IsUp() {
  23. ipfsStatus = consts.IPFS_STATUS_OK
  24. }
  25. // 紧急任务
  26. evtmsg, err := scmsg.NewPostEventBody(scevt.NewUpdateAgentState(config.Cfg().ID, ipfsStatus), true, true)
  27. if err == nil {
  28. execCtx.Args.Scanner.PostEvent(evtmsg)
  29. } else {
  30. logger.Warnf("new post event body failed, err: %s", err.Error())
  31. }
  32. }
  33. func init() {
  34. Register(func(val agtevt.CheckState) Event { return NewCheckState() })
  35. }

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