Skip to content
Snippets Groups Projects
Unverified Commit d521051e authored by Nicholas Wiersma's avatar Nicholas Wiersma Committed by GitHub
Browse files

feat: set resource revision for connectors (#3868)

parent 61101499
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,7 @@ import ( ...@@ -6,6 +6,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"log/slog" "log/slog"
"strconv"
"golang.org/x/crypto/bcrypt" "golang.org/x/crypto/bcrypt"
...@@ -430,10 +431,11 @@ func (d dexAPI) CreateConnector(ctx context.Context, req *api.CreateConnectorReq ...@@ -430,10 +431,11 @@ func (d dexAPI) CreateConnector(ctx context.Context, req *api.CreateConnectorReq
} }
c := storage.Connector{ c := storage.Connector{
ID: req.Connector.Id, ID: req.Connector.Id,
Name: req.Connector.Name, Name: req.Connector.Name,
Type: req.Connector.Type, Type: req.Connector.Type,
Config: req.Connector.Config, ResourceVersion: "1",
Config: req.Connector.Config,
} }
if err := d.s.CreateConnector(ctx, c); err != nil { if err := d.s.CreateConnector(ctx, c); err != nil {
if err == storage.ErrAlreadyExists { if err == storage.ErrAlreadyExists {
...@@ -446,7 +448,7 @@ func (d dexAPI) CreateConnector(ctx context.Context, req *api.CreateConnectorReq ...@@ -446,7 +448,7 @@ func (d dexAPI) CreateConnector(ctx context.Context, req *api.CreateConnectorReq
return &api.CreateConnectorResp{}, nil return &api.CreateConnectorResp{}, nil
} }
func (d dexAPI) UpdateConnector(ctx context.Context, req *api.UpdateConnectorReq) (*api.UpdateConnectorResp, error) { func (d dexAPI) UpdateConnector(_ context.Context, req *api.UpdateConnectorReq) (*api.UpdateConnectorResp, error) {
if !featureflags.APIConnectorsCRUD.Enabled() { if !featureflags.APIConnectorsCRUD.Enabled() {
return nil, fmt.Errorf("%s feature flag is not enabled", featureflags.APIConnectorsCRUD.Name) return nil, fmt.Errorf("%s feature flag is not enabled", featureflags.APIConnectorsCRUD.Name)
} }
...@@ -476,6 +478,10 @@ func (d dexAPI) UpdateConnector(ctx context.Context, req *api.UpdateConnectorReq ...@@ -476,6 +478,10 @@ func (d dexAPI) UpdateConnector(ctx context.Context, req *api.UpdateConnectorReq
old.Config = req.NewConfig old.Config = req.NewConfig
} }
if rev, err := strconv.Atoi(defaultTo(old.ResourceVersion, "0")); err == nil {
old.ResourceVersion = strconv.Itoa(rev + 1)
}
return old, nil return old, nil
} }
...@@ -536,3 +542,11 @@ func (d dexAPI) ListConnectors(ctx context.Context, req *api.ListConnectorReq) ( ...@@ -536,3 +542,11 @@ func (d dexAPI) ListConnectors(ctx context.Context, req *api.ListConnectorReq) (
Connectors: connectors, Connectors: connectors,
}, nil }, nil
} }
func defaultTo[T comparable](v, def T) T {
var zeroT T
if v == zeroT {
return def
}
return v
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment