Ver Fonte

update migration and more repository changes

Ivan Galakhov há 4 anos atrás
pai
commit
b5f3337b79

+ 5 - 0
cmd/migrate/main.go

@@ -34,6 +34,11 @@ func main() {
 		return
 	}
 
+	if err := db.Raw("ALTER TABLE clusters DROP CONSTRAINT IF EXISTS fk_cluster_token_caches").Error; err != nil {
+		logger.Fatal().Err(err).Msg("")
+		return
+	}
+
 	if shouldRotate, oldKeyStr, newKeyStr := shouldKeyRotate(); shouldRotate {
 		oldKey := [32]byte{}
 		newKey := [32]byte{}

+ 2 - 2
internal/models/cluster.go

@@ -62,8 +62,8 @@ type Cluster struct {
 	DOIntegrationID   uint
 
 	// A token cache that can be used by an auth mechanism, if desired
-	TokenCache   *integrations.ClusterTokenCache `json:"token_cache" gorm:"-" sql:"-"`
-	TokenCacheID uint                            `gorm:"token_cache_id"`
+	TokenCache   integrations.ClusterTokenCache `json:"token_cache" gorm:"-" sql:"-"`
+	TokenCacheID uint                           `gorm:"token_cache_id"`
 
 	// CertificateAuthorityData for the cluster, encrypted at rest
 	CertificateAuthorityData []byte `json:"certificate-authority-data,omitempty"`

+ 10 - 7
internal/repository/gorm/cluster.go

@@ -144,13 +144,9 @@ func (repo *ClusterRepository) CreateCluster(
 	}
 
 	// create a token cache by default
-	if cluster.TokenCache == nil {
-		cluster.TokenCache = &ints.ClusterTokenCache{}
-	}
-
 	cluster.TokenCache.ClusterID = cluster.ID
 
-	if err := ctxDB.Save(cluster.TokenCache).Error; err != nil {
+	if err := ctxDB.Create(&cluster.TokenCache).Error; err != nil {
 		return nil, err
 	}
 
@@ -182,10 +178,17 @@ func (repo *ClusterRepository) ReadCluster(
 		return nil, err
 	}
 
-	fmt.Println("AaaaAAJASJKSAJKJKSJKSAJKAJK")
-	fmt.Println(cluster.TokenCacheID)
+	fmt.Println(cluster.TokenCache)
 	fmt.Println(cluster.TokenCacheID)
 
+	cache := &ints.ClusterTokenCache{}
+
+	if err := ctxDB.Where("id = ?", cluster.TokenCacheID).First(&cache).Error; err != nil {
+		return nil, err
+	}
+
+	cluster.TokenCache = *cache
+
 	err := repo.DecryptClusterData(cluster, repo.key)
 
 	if err != nil {

+ 1 - 1
server/api/integration_handler.go

@@ -280,7 +280,7 @@ func (app *App) HandleOverwriteAWSIntegration(w http.ResponseWriter, r *http.Req
 		// clear the token
 		cluster.TokenCache.Token = []byte("")
 
-		cluster, err = app.Repo.Cluster.UpdateClusterTokenCache(cluster.TokenCache)
+		cluster, err = app.Repo.Cluster.UpdateClusterTokenCache(&cluster.TokenCache)
 
 		if err != nil {
 			app.handleErrorDataWrite(err, w)