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.

resource_queue.go 3.2 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package resource
  2. import (
  3. "code.gitea.io/gitea/models"
  4. "code.gitea.io/gitea/modules/grampus"
  5. "code.gitea.io/gitea/modules/log"
  6. "fmt"
  7. "strings"
  8. )
  9. func AddResourceQueue(req models.ResourceQueueReq) error {
  10. if _, err := models.InsertResourceQueue(req.ToDTO()); err != nil {
  11. return err
  12. }
  13. return nil
  14. }
  15. func UpdateResourceQueue(queueId int64, req models.ResourceQueueReq) error {
  16. if _, err := models.UpdateResourceQueueById(queueId, models.ResourceQueue{
  17. CardsTotalNum: req.CardsTotalNum,
  18. Remark: req.Remark,
  19. }); err != nil {
  20. return err
  21. }
  22. return nil
  23. }
  24. func GetResourceQueueList(opts models.SearchResourceQueueOptions) (*models.ResourceQueueListRes, error) {
  25. n, r, err := models.SearchResourceQueue(opts)
  26. if err != nil {
  27. return nil, err
  28. }
  29. return models.NewResourceQueueListRes(n, r), nil
  30. }
  31. func GetResourceQueueCodes(opts models.GetQueueCodesOptions) ([]*models.ResourceQueueCodesRes, error) {
  32. r, err := models.GetResourceQueueCodes(opts)
  33. if err != nil {
  34. return nil, err
  35. }
  36. return r, nil
  37. }
  38. func GetResourceAiCenters() ([]models.ResourceAiCenterRes, error) {
  39. r, err := models.GetResourceAiCenters()
  40. if err != nil {
  41. return nil, err
  42. }
  43. return r, nil
  44. }
  45. func SyncGrampusQueue(doerId int64) error {
  46. r, err := grampus.GetAiCenters(1, 100)
  47. if err != nil {
  48. return err
  49. }
  50. log.Info("SyncGrampusQueue result = %+v", r)
  51. queueUpdateList := make([]models.ResourceQueue, 0)
  52. queueInsertList := make([]models.ResourceQueue, 0)
  53. existIds := make([]int64, 0)
  54. for _, center := range r.Infos {
  55. for _, device := range center.AccDevices {
  56. computeResource := models.ParseComputeResourceFormGrampus(device.Kind)
  57. accCardType := strings.ToUpper(device.Model)
  58. if computeResource == "" {
  59. continue
  60. }
  61. //Determine if this quque already exists.if exist,update params
  62. //if not exist,insert a new record
  63. oldQueue, err := models.GetResourceQueue(&models.ResourceQueue{
  64. Cluster: models.C2NetCluster,
  65. AiCenterCode: center.Id,
  66. ComputeResource: computeResource,
  67. AccCardType: accCardType,
  68. })
  69. if err != nil {
  70. return err
  71. }
  72. if oldQueue == nil {
  73. queueInsertList = append(queueInsertList, models.ResourceQueue{
  74. Cluster: models.C2NetCluster,
  75. AiCenterCode: center.Id,
  76. AiCenterName: center.Name,
  77. ComputeResource: computeResource,
  78. AccCardType: accCardType,
  79. IsAutomaticSync: true,
  80. CreatedBy: doerId,
  81. UpdatedBy: doerId,
  82. })
  83. } else {
  84. existIds = append(existIds, oldQueue.ID)
  85. queueUpdateList = append(queueUpdateList, models.ResourceQueue{
  86. ID: oldQueue.ID,
  87. ComputeResource: computeResource,
  88. AiCenterName: center.Name,
  89. AccCardType: accCardType,
  90. UpdatedBy: doerId,
  91. })
  92. }
  93. }
  94. }
  95. return models.SyncGrampusQueues(queueUpdateList, queueInsertList, existIds)
  96. }
  97. func SyncGrampusQueueAndSpecs() {
  98. defer func() {
  99. if err := recover(); err != nil {
  100. combinedErr := fmt.Errorf("%s\n%s", err, log.Stack(2))
  101. log.Error("PANIC:", combinedErr)
  102. }
  103. }()
  104. log.Info("start to sync grampus queue and specs")
  105. SyncGrampusQueue(0)
  106. SyncGrampusSpecs(0)
  107. log.Info("sync grampus queue and specs finished")
  108. }