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.0 kB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. scevt "gitlink.org.cn/cloudream/rabbitmq/message/scanner/event"
  8. )
  9. type CheckState struct {
  10. }
  11. func NewCheckState() *CheckState {
  12. return &CheckState{}
  13. }
  14. func (t *CheckState) TryMerge(other Event) bool {
  15. _, ok := other.(*CheckState)
  16. return ok
  17. }
  18. func (t *CheckState) Execute(execCtx ExecuteContext) {
  19. log := logger.WithType[CheckState]("Event")
  20. log.Debugf("begin")
  21. ipfsStatus := consts.IPFS_STATUS_OK
  22. if execCtx.Args.IPFS.IsUp() {
  23. ipfsStatus = consts.IPFS_STATUS_OK
  24. }
  25. // 紧急任务
  26. err := execCtx.Args.Scanner.PostEvent(scevt.NewUpdateAgentState(config.Cfg().ID, ipfsStatus), true, true)
  27. if err != nil {
  28. log.Warnf("post event to scanner failed, err: %s", err.Error())
  29. }
  30. }
  31. func init() {
  32. Register(func(val agtevt.CheckState) Event { return NewCheckState() })
  33. }

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