sync.go 837 B

1234567891011121314151617181920212223242526272829303132333435
  1. package site
  2. import (
  3. "github.com/0xJacky/Nginx-UI/internal/nginx"
  4. "github.com/0xJacky/Nginx-UI/model"
  5. "github.com/0xJacky/Nginx-UI/query"
  6. "github.com/samber/lo"
  7. "github.com/uozi-tech/cosy/logger"
  8. )
  9. func getSyncNodes(name string) (nodes []*model.Environment) {
  10. configFilePath := nginx.GetConfPath("sites-available", name)
  11. s := query.Site
  12. site, err := s.Where(s.Path.Eq(configFilePath)).
  13. Preload(s.SiteCategory).First()
  14. if err != nil {
  15. logger.Error(err)
  16. return
  17. }
  18. syncNodeIds := site.SyncNodeIDs
  19. // inherit sync node ids from site category
  20. if site.SiteCategory != nil {
  21. syncNodeIds = append(syncNodeIds, site.SiteCategory.SyncNodeIds...)
  22. }
  23. syncNodeIds = lo.Uniq(syncNodeIds)
  24. e := query.Environment
  25. nodes, err = e.Where(e.ID.In(syncNodeIds...)).Find()
  26. if err != nil {
  27. logger.Error(err)
  28. return
  29. }
  30. return
  31. }