diff --git a/api/cmd/portainer/main.go b/api/cmd/portainer/main.go index 1876eda01..bc96f662b 100644 --- a/api/cmd/portainer/main.go +++ b/api/cmd/portainer/main.go @@ -3,7 +3,6 @@ package main import ( "context" "crypto/sha256" - "fmt" "math/rand" "os" "path" @@ -106,8 +105,6 @@ func initDataStore(flags *portainer.CLIFlags, secretKey []byte, fileService port log.Fatal().Err(err).Msg("failed initializing data store") } - fmt.Println("IsNew:", isNew) - if isNew { instanceId, err := uuid.NewV4() if err != nil { @@ -134,6 +131,11 @@ func initDataStore(flags *portainer.CLIFlags, secretKey []byte, fileService port // if err != nil { // log.Fatal().Err(err).Msg("failed migration") // } + + err := store.PostInit() + if err != nil { + log.Fatal().Err(err).Msg("postinit failed") + } } err = updateSettingsFromFlags(store, flags) diff --git a/api/dataservices/endpoint/endpoint.go b/api/dataservices/endpoint/endpoint.go index 62ad8623a..06c81a6f1 100644 --- a/api/dataservices/endpoint/endpoint.go +++ b/api/dataservices/endpoint/endpoint.go @@ -38,6 +38,23 @@ func NewService(connection portainer.Connection) (*Service, error) { return s, nil } +func (service *Service) Init() error { + es, err := service.endpoints() + if err != nil { + return err + } + + for _, e := range es { + if len(e.EdgeID) > 0 { + service.idxEdgeID[e.EdgeID] = e.ID + } + + service.heartbeats.Store(e.ID, e.LastCheckInDate) + } + + return nil +} + func (service *Service) Tx(tx portainer.Transaction) ServiceTx { return ServiceTx{ service: service, diff --git a/api/datastore/datastore.go b/api/datastore/datastore.go index 654f72f29..f5dcef6c2 100644 --- a/api/datastore/datastore.go +++ b/api/datastore/datastore.go @@ -31,8 +31,6 @@ func (store *Store) Open() (newStore bool, err error) { return false, err } - fmt.Println("encryptionReq:", encryptionReq) - if encryptionReq { err = store.encryptDB() if err != nil { @@ -49,8 +47,6 @@ func (store *Store) Open() (newStore bool, err error) { return false, err } - fmt.Println("connection openned") - err = store.initServices() if err != nil { return false, err diff --git a/api/datastore/init.go b/api/datastore/init.go index af5f693cd..506727df5 100644 --- a/api/datastore/init.go +++ b/api/datastore/init.go @@ -27,6 +27,11 @@ func (store *Store) Init() error { return store.checkOrCreateDefaultData() } +func (store *Store) PostInit() error { + store.EndpointService.Init() + return nil +} + func (store *Store) checkOrCreateDefaultSettings() error { isDDExtention := false diff --git a/api/internal/testhelpers/datastore.go b/api/internal/testhelpers/datastore.go index 9180e83f5..fe6d7275d 100644 --- a/api/internal/testhelpers/datastore.go +++ b/api/internal/testhelpers/datastore.go @@ -36,9 +36,11 @@ type testDatastore struct { webhook dataservices.WebhookService } -func (d *testDatastore) BackupTo(io.Writer) error { return nil } -func (d *testDatastore) Open() (bool, error) { return false, nil } -func (d *testDatastore) Init() error { return nil } +func (d *testDatastore) BackupTo(io.Writer) error { return nil } +func (d *testDatastore) Open() (bool, error) { return false, nil } + +// func (d *testDatastore) Init() error { return nil } +func (d *testDatastore) PostInit() error { return nil } func (d *testDatastore) Close() error { return nil } func (d *testDatastore) UpdateTx(func(dataservices.DataStoreTx) error) error { return nil } func (d *testDatastore) ViewTx(func(dataservices.DataStoreTx) error) error { return nil } diff --git a/golangci-lint.sh b/golangci-lint.sh index 412146787..45bbff54d 100755 --- a/golangci-lint.sh +++ b/golangci-lint.sh @@ -1,8 +1,10 @@ #!/bin/bash +GOLANGCI_LINT="go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.53.0" + cd api -if golangci-lint run --timeout=10m -c .golangci.yaml +if ${GOLANGCI_LINT} run --timeout=10m -c .golangci.yaml then echo "golangci-lint run successfully" else