Skip to content

Commit

Permalink
dummy versions and log
Browse files Browse the repository at this point in the history
Signed-off-by: Kartikay <[email protected]>
  • Loading branch information
kartikaysaxena committed Jul 5, 2024
1 parent c176aa8 commit 09b3b07
Show file tree
Hide file tree
Showing 14 changed files with 187 additions and 105 deletions.
7 changes: 2 additions & 5 deletions chaoscenter/upgrade-agents/control-plane/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ require (
github.com/kelseyhightower/envconfig v1.4.0
github.com/sirupsen/logrus v1.4.2
go.mongodb.org/mongo-driver v1.7.1
go.uber.org/zap v1.18.1
)

require (
Expand All @@ -16,17 +15,15 @@ require (
github.com/klauspost/compress v1.9.5 // indirect
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/stretchr/testify v1.7.0 // indirect
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
github.com/xdg-go/scram v1.0.2 // indirect
github.com/xdg-go/stringprep v1.0.2 // indirect
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
go.uber.org/atomic v1.9.0 // indirect
go.uber.org/multierr v1.7.0 // indirect
golang.org/x/crypto v0.17.0 // indirect
golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect
golang.org/x/sys v0.15.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
)
29 changes: 0 additions & 29 deletions chaoscenter/upgrade-agents/control-plane/go.sum
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand Down Expand Up @@ -72,7 +70,6 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
Expand All @@ -88,30 +85,14 @@ github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
go.mongodb.org/mongo-driver v1.7.1 h1:jwqTeEM3x6L9xDXrCxN0Hbg7vdGfPBOTIkr0+/LYZDA=
go.mongodb.org/mongo-driver v1.7.1/go.mod h1:Q4oFMbo1+MSNqICAdYMlC/zSTrwCogR4R8NzkI+yfU8=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/multierr v1.7.0 h1:zaiO/rmgFjbmCXdSYJWQcdvOCsthmdaHfr3Gm2Kx4Ec=
go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
go.uber.org/zap v1.18.1 h1:CSUJ2mjFszzEWt4CdKISEuChVIXGBn3lAPwkRGyVrc4=
go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
Expand All @@ -131,27 +112,17 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
38 changes: 20 additions & 18 deletions chaoscenter/upgrade-agents/control-plane/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ package main

import (
"log"
"os"
"strings"
// "os"
// "strings"

"github.com/kelseyhightower/envconfig"
"github.com/litmuschaos/litmus/chaoscenter/upgrader-agents/control-plane/pkg/database"
"github.com/litmuschaos/litmus/chaoscenter/upgrader-agents/control-plane/versions"
"go.uber.org/zap"
logger "github.com/sirupsen/logrus"
)

type Config struct {
Expand All @@ -29,34 +29,36 @@ func init() {

func main() {
// logging level, dev mode enables debug logs
dev := os.Getenv("DEV_MODE")
var logger *zap.Logger
var err error
// dev := os.Getenv("DEV_MODE")
// var logger *logger.Logger
// var err error

// set log level
if strings.ToLower(dev) == "true" {
logger, err = zap.NewDevelopment()
} else {
logger, err = zap.NewProduction()
}
if err != nil {
log.Fatal("failed to create logger")
}
// // set log level
// if strings.ToLower(dev) == "true" {
// logger, err = logger.
// } else {
// logger, err = logger.NewProduction()
// }
// if err != nil {
// log.Fatal("failed to create logger")
// }

// create database connection
var err error
logger := logger.New()
dbClient, err := database.Connect()
if err != nil {
logger.Fatal("failed to get db client", zap.Error(err))
logger.WithError(err).Fatal("failed to get db client")
}
// create new upgrade manager
mg, err := versions.NewUpgradeManager(logger, dbClient)
if err != nil {
logger.Fatal("failed to create upgrade manager", zap.Error(err))
logger.WithError(err).Fatal("failed to create upgrade manager")
}
if mg != nil {
// execute upgrade manager
if err = mg.Run(); err != nil {
logger.Fatal("failed to run upgrade manager", zap.Error(err))
logger.WithError(err).Fatal("failed to run upgrade manager")
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@ import (

v3_4_0 "github.com/litmuschaos/litmus/chaoscenter/upgrader-agents/control-plane/versions/v3.4.0"

v3_8_0 "github.com/litmuschaos/litmus/chaoscenter/upgrader-agents/control-plane/versions/v3.8.0"

v3_9_0 "github.com/litmuschaos/litmus/chaoscenter/upgrader-agents/control-plane/versions/v3.9.0"

"github.com/litmuschaos/litmus/chaoscenter/upgrader-agents/control-plane/pkg/database"
log "github.com/sirupsen/logrus"
"go.mongodb.org/mongo-driver/mongo"
"go.uber.org/zap"
)

// UpgradeExecutor holds the details regarding the version and IVersionManager for a particular version
Expand All @@ -27,7 +30,7 @@ type UpgradeExecutor struct {

// UpgradeManager provides the functionality required to upgrade from the PreviousVersion to the TargetVersion
type UpgradeManager struct {
Logger *zap.Logger
Logger *log.Logger
DBClient *mongo.Client
PreviousVersion *Version
TargetVersion *Version
Expand Down Expand Up @@ -80,7 +83,7 @@ func ParseVersion(version string) *Version {
}

// NewUpgradeManager creates an instance of a upgrade manager with the proper configurations
func NewUpgradeManager(logger *zap.Logger, dbClient *mongo.Client) (*UpgradeManager, error) {
func NewUpgradeManager(logger *log.Logger, dbClient *mongo.Client) (*UpgradeManager, error) {
database.UpdateVersion(dbClient, "3.3.0")
currentVersion := os.Getenv("VERSION")
log.WithFields(log.Fields{
Expand Down Expand Up @@ -233,7 +236,11 @@ func (m *UpgradeManager) getVersionMap() map[string]UpgradeExecutor {
},
"3.8.0": {
NextVersion: "",
VersionManager: nil,
VersionManager: v3_8_0.NewVersionManger(m.Logger, m.DBClient),
},
"3.9.0": {
NextVersion: "",
VersionManager: v3_9_0.NewVersionManger(m.Logger, m.DBClient),
},
"4.0.0-beta8": {
NextVersion: "",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package v2_4_0

import (
log "github.com/sirupsen/logrus"
"go.mongodb.org/mongo-driver/mongo"
"go.uber.org/zap"
)

// VersionManager implements IVersionManger
type VersionManager struct {
Logger *zap.Logger
Logger *log.Logger
DBClient *mongo.Client
}

// NewVersionManger provides a new instance of a new VersionManager
func NewVersionManger(logger *zap.Logger, dbClient *mongo.Client) *VersionManager {
func NewVersionManger(logger *log.Logger, dbClient *mongo.Client) *VersionManager {
return &VersionManager{Logger: logger, DBClient: dbClient}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import (
"context"
"fmt"

log "github.com/sirupsen/logrus"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.uber.org/zap"
)

// upgradeAuthDb: migrates project collection from litmus-db to auth-db, renames usercredentials collection to users"
func upgradeAuthDb(logger *zap.Logger, dbClient *mongo.Client) error {
func upgradeAuthDb(logger *log.Logger, dbClient *mongo.Client) error {

// migration of project collection to auth DB
projectLitmusCollection := dbClient.Database("litmus").Collection("project") //project collection from litmus DB
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package v2_6_0

import (
log "github.com/sirupsen/logrus"
"go.mongodb.org/mongo-driver/mongo"
"go.uber.org/zap"
)

// VersionManager implements IVersionManger
type VersionManager struct {
Logger *zap.Logger
Logger *log.Logger
DBClient *mongo.Client
}

// NewVersionManger provides a new instance of a new VersionManager
func NewVersionManger(logger *zap.Logger, dbClient *mongo.Client) *VersionManager {
func NewVersionManger(logger *log.Logger, dbClient *mongo.Client) *VersionManager {
return &VersionManager{Logger: logger, DBClient: dbClient}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import (
"context"
"fmt"

log "github.com/sirupsen/logrus"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.uber.org/zap"
)

// upgradeWorkflowCollection updated the index related changes in workflow-collection
func upgradeWorkflowCollection(logger *zap.Logger, dbClient *mongo.Client) error {
func upgradeWorkflowCollection(logger *log.Logger, dbClient *mongo.Client) error {
workflowCollection := dbClient.Database("litmus").Collection("workflow-collection")

//delete the existing workflow_name index
Expand Down
39 changes: 17 additions & 22 deletions chaoscenter/upgrade-agents/control-plane/versions/v3.4.0/manager.go
Original file line number Diff line number Diff line change
@@ -1,31 +1,26 @@
package v3_4_0

import (
"context"
"fmt"

"go.mongodb.org/mongo-driver/bson"
log "github.com/sirupsen/logrus"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.uber.org/zap"
)

// upgradeWorkflowCollection updated the index related changes in workflow-collection
func upgradeWorkflowCollection(logger *zap.Logger, dbClient *mongo.Client) error {
workflowCollection := dbClient.Database("litmus").Collection("environment")

//delete the existing workflow_name index
_, err := workflowCollection.Indexes().DropOne(context.Background(), "environment_id")
if err != nil {
fmt.Errorf("error: %w", err)
}
// VersionManager implements IVersionManger
type VersionManager struct {
Logger *log.Logger
DBClient *mongo.Client
}

//create a new workflow index with partial filter expression
_, err = workflowCollection.Indexes().CreateOne(context.Background(),
mongo.IndexModel{Keys: bson.M{"environment_id": 1},
Options: options.Index().SetUnique(true).SetPartialFilterExpression(bson.D{{
"isRemoved", false,
}})})
// NewVersionManger provides a new instance of a new VersionManager
func NewVersionManger(logger *log.Logger, dbClient *mongo.Client) *VersionManager {
return &VersionManager{Logger: logger, DBClient: dbClient}
}

return err
// Run executes all the steps required for the Version Manger
// to upgrade from the previous version to `this` version
func (vm VersionManager) Run() error {
if err := upgradeExecutor(vm.Logger, vm.DBClient); err != nil {
return nil
}
return nil
}
47 changes: 30 additions & 17 deletions chaoscenter/upgrade-agents/control-plane/versions/v3.4.0/upgrade.go
Original file line number Diff line number Diff line change
@@ -1,26 +1,39 @@
package v3_4_0

import (
"context"
"fmt"

"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.uber.org/zap"
)
"go.mongodb.org/mongo-driver/mongo/options"

// VersionManager implements IVersionManger
type VersionManager struct {
Logger *zap.Logger
DBClient *mongo.Client
}
log "github.com/sirupsen/logrus"
)

// NewVersionManger provides a new instance of a new VersionManager
func NewVersionManger(logger *zap.Logger, dbClient *mongo.Client) *VersionManager {
return &VersionManager{Logger: logger, DBClient: dbClient}
}
func upgradeExecutor(logger *log.Logger, dbClient *mongo.Client) error {
workflowCollection := dbClient.Database("litmus").Collection("environment")

// Run executes all the steps required for the Version Manger
// to upgrade from the previous version to `this` version
func (vm VersionManager) Run() error {
if err := upgradeWorkflowCollection(vm.Logger, vm.DBClient); err != nil {
return nil
//delete the existing workflow_name index
_, err := workflowCollection.Indexes().DropOne(context.Background(), "environment_id")
if err != nil {
fmt.Errorf("error: %w", err)
}
return nil

logger.WithFields(log.Fields{
"version": "3.4.0",
}).Info("Deleted an existing index environment while upgrading to intermediate v3.4.0")

//create a new workflow index with partial filter expression
_, err = workflowCollection.Indexes().CreateOne(context.Background(),
mongo.IndexModel{Keys: bson.M{"environment_id": 1},
Options: options.Index().SetUnique(true).SetPartialFilterExpression(bson.D{{
"isRemoved", false,
}})})

log.WithFields(log.Fields{
"version": "3.4.0",
}).Info("Created a new index with partial filter expresion environment_id while upgrading to intermediate v3.4.0")

return err
}
Loading

0 comments on commit 09b3b07

Please sign in to comment.