enable.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package enable_cluster_preview_envs
  2. import (
  3. "github.com/porter-dev/porter/internal/models"
  4. lr "github.com/porter-dev/porter/pkg/logger"
  5. _gorm "gorm.io/gorm"
  6. )
  7. func EnableClusterPreviewEnvs(db *_gorm.DB, logger *lr.Logger) error {
  8. logger.Info().Msg("starting to enable preview envs for existing clusters whose parent projects have preview envs enabled")
  9. var clusters []*models.Cluster
  10. if err := db.Find(&clusters).Error; err != nil {
  11. logger.Error().Msgf("failed to get clusters: %v", err)
  12. return err
  13. }
  14. for _, c := range clusters {
  15. project := &models.Project{}
  16. if err := db.Model(project).Where("id = ?", c.ProjectID).First(project).Error; err != nil {
  17. logger.Error().Msgf("failed to get project ID %d for cluster ID %d: %v", c.ProjectID, c.ID, err)
  18. continue
  19. }
  20. if project.PreviewEnvsEnabled {
  21. c.PreviewEnvsEnabled = true
  22. if err := db.Save(c).Error; err != nil {
  23. logger.Error().Msgf("failed to update cluster ID %d: %v", c.ID, err)
  24. return err
  25. }
  26. logger.Info().Msgf("enabled preview envs for cluster ID %d", c.ID)
  27. }
  28. }
  29. logger.Info().Msg("cluster preview envs migration completed")
  30. return nil
  31. }