Skip to content

Commit

Permalink
Convert SetSessionRecordingConfig usages to new Create/Update/Upsert …
Browse files Browse the repository at this point in the history
…API (#39249)

Migrates callers off the deprecated API and onto the new API so
that SessionRecordingConfig can be protected via optimistic locking
when appropriate.
  • Loading branch information
rosstimothy committed Mar 25, 2024
1 parent 268d9d9 commit 6fb0795
Show file tree
Hide file tree
Showing 35 changed files with 1,109 additions and 935 deletions.
33 changes: 27 additions & 6 deletions api/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -2786,15 +2786,32 @@ func (c *Client) GetSessionRecordingConfig(ctx context.Context) (types.SessionRe
}

// SetSessionRecordingConfig sets session recording configuration.
// Deprecated: Use UpdateSessionRecordingConfig or UpsertSessionRecordingConfig instead.
func (c *Client) SetSessionRecordingConfig(ctx context.Context, recConfig types.SessionRecordingConfig) error {
recConfigV2, ok := recConfig.(*types.SessionRecordingConfigV2)
if !ok {
return trace.BadParameter("invalid type %T", recConfig)
}

_, err := c.grpc.SetSessionRecordingConfig(ctx, recConfigV2)
return trace.Wrap(err)
}

// setSessionRecordingConfig sets session recording configuration.
func (c *Client) setSessionRecordingConfig(ctx context.Context, recConfig types.SessionRecordingConfig) (types.SessionRecordingConfig, error) {
recConfigV2, ok := recConfig.(*types.SessionRecordingConfigV2)
if !ok {
return nil, trace.BadParameter("invalid type %T", recConfig)
}

if _, err := c.grpc.SetSessionRecordingConfig(ctx, recConfigV2); err != nil {
return nil, trace.Wrap(err)
}

cfg, err := c.grpc.GetSessionRecordingConfig(ctx, &emptypb.Empty{})
return cfg, trace.Wrap(err)
}

// ResetSessionRecordingConfig resets session recording configuration to defaults.
func (c *Client) ResetSessionRecordingConfig(ctx context.Context) error {
_, err := c.ClusterConfigClient().ResetSessionRecordingConfig(ctx, &clusterconfigpb.ResetSessionRecordingConfigRequest{})
Expand All @@ -2814,6 +2831,11 @@ func (c *Client) UpdateSessionRecordingConfig(ctx context.Context, cfg types.Ses
}

updated, err := c.ClusterConfigClient().UpdateSessionRecordingConfig(ctx, &clusterconfigpb.UpdateSessionRecordingConfigRequest{SessionRecordingConfig: v2})
// TODO(tross) DELETE IN v18.0.0
if trace.IsNotImplemented(err) {
cfg, err = c.setSessionRecordingConfig(ctx, v2)
return cfg, trace.Wrap(err)
}
return updated, trace.Wrap(err)
}

Expand All @@ -2825,6 +2847,11 @@ func (c *Client) UpsertSessionRecordingConfig(ctx context.Context, cfg types.Ses
}

updated, err := c.ClusterConfigClient().UpsertSessionRecordingConfig(ctx, &clusterconfigpb.UpsertSessionRecordingConfigRequest{SessionRecordingConfig: v2})
// TODO(tross) DELETE IN v18.0.0
if trace.IsNotImplemented(err) {
cfg, err = c.setSessionRecordingConfig(ctx, v2)
return cfg, trace.Wrap(err)
}
return updated, trace.Wrap(err)
}

Expand Down Expand Up @@ -2940,12 +2967,6 @@ func (c *Client) GetClusterAccessGraphConfig(ctx context.Context) (*clusterconfi
return rsp.AccessGraph, nil
}

// ClusterConfigClient returns an unadorned Cluster Configuration client, using the underlying
// Auth gRPC connection.
func (c *Client) ClusterConfigClient() clusterconfigpb.ClusterConfigServiceClient {
return clusterconfigpb.NewClusterConfigServiceClient(c.conn)
}

// GetInstaller gets all installer script resources
func (c *Client) GetInstallers(ctx context.Context) ([]types.Installer, error) {
resp, err := c.grpc.GetInstallers(ctx, &emptypb.Empty{})
Expand Down
1,739 changes: 874 additions & 865 deletions api/client/proto/authservice.pb.go

Large diffs are not rendered by default.

15 changes: 12 additions & 3 deletions api/proto/teleport/legacy/client/proto/authservice.proto
Original file line number Diff line number Diff line change
Expand Up @@ -3078,11 +3078,20 @@ service AuthService {
}

// GetSessionRecordingConfig gets session recording configuration.
rpc GetSessionRecordingConfig(google.protobuf.Empty) returns (types.SessionRecordingConfigV2);
// Deprecated: Use clusterconfigv1.Service.GetSessionRecordingConfig instead.
rpc GetSessionRecordingConfig(google.protobuf.Empty) returns (types.SessionRecordingConfigV2) {
option deprecated = true;
}
// SetSessionRecordingConfig sets session recording configuration.
rpc SetSessionRecordingConfig(types.SessionRecordingConfigV2) returns (google.protobuf.Empty);
// Deprecated: Use clusterconfigv1.Service.Upsert/UpdateSessionRecordingConfig instead.
rpc SetSessionRecordingConfig(types.SessionRecordingConfigV2) returns (google.protobuf.Empty) {
option deprecated = true;
}
// ResetSessionRecordingConfig resets session recording configuration to defaults.
rpc ResetSessionRecordingConfig(google.protobuf.Empty) returns (google.protobuf.Empty);
// Deprecated: Use clusterconfigv1.Service.ResetSessionRecordingConfig instead.
rpc ResetSessionRecordingConfig(google.protobuf.Empty) returns (google.protobuf.Empty) {
option deprecated = true;
}

// GetAuthPreference gets cluster auth preference.
// Deprecated: Use clusterconfigv1.Service.GetAuthPreference instead.
Expand Down
4 changes: 2 additions & 2 deletions integration/appaccess/appaccess_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,9 @@ func testForwardModes(p *Pack, t *testing.T) {
Mode: types.RecordAtProxy,
})
require.NoError(t, err)
err = p.rootCluster.Process.GetAuthServer().SetSessionRecordingConfig(ctx, recConfig)
_, err = p.rootCluster.Process.GetAuthServer().UpsertSessionRecordingConfig(ctx, recConfig)
require.NoError(t, err)
err = p.leafCluster.Process.GetAuthServer().SetSessionRecordingConfig(ctx, recConfig)
_, err = p.leafCluster.Process.GetAuthServer().UpsertSessionRecordingConfig(ctx, recConfig)
require.NoError(t, err)

// Requests to root and leaf cluster are successful.
Expand Down
3 changes: 2 additions & 1 deletion lib/auth/assist/assistv1/test/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,8 @@ func initSvc(t *testing.T) (map[string]context.Context, *assistv1.Service) {
require.NoError(t, clusterConfigSvc.SetClusterAuditConfig(ctx, types.DefaultClusterAuditConfig()))
_, err = clusterConfigSvc.UpsertClusterNetworkingConfig(ctx, types.DefaultClusterNetworkingConfig())
require.NoError(t, err)
require.NoError(t, clusterConfigSvc.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig()))
_, err = clusterConfigSvc.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
require.NoError(t, err)

accessPoint := &testClient{
ClusterConfiguration: clusterConfigSvc,
Expand Down
2 changes: 1 addition & 1 deletion lib/auth/auth_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ func newTestPack(
if _, err := p.a.UpsertClusterNetworkingConfig(ctx, types.DefaultClusterNetworkingConfig()); err != nil {
return p, trace.Wrap(err)
}
if err := p.a.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig()); err != nil {
if _, err := p.a.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig()); err != nil {
return p, trace.Wrap(err)
}

Expand Down
4 changes: 2 additions & 2 deletions lib/auth/auth_with_roles.go
Original file line number Diff line number Diff line change
Expand Up @@ -4600,7 +4600,7 @@ func (a *ServerWithRoles) SetSessionRecordingConfig(ctx context.Context, newRecC
return trace.Wrap(err)
}

err = a.authServer.SetSessionRecordingConfig(ctx, newRecConfig)
_, err = a.authServer.UpsertSessionRecordingConfig(ctx, newRecConfig)

var msg string
if err != nil {
Expand Down Expand Up @@ -4645,7 +4645,7 @@ func (a *ServerWithRoles) ResetSessionRecordingConfig(ctx context.Context) error
return trace.Wrap(err)
}

err = a.authServer.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
_, err = a.authServer.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())

var msg string
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions lib/auth/auth_with_roles_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1293,12 +1293,12 @@ func TestSessionRecordingConfigRBAC(t *testing.T) {
testDynamicallyConfigurableRBAC(t, testDynamicallyConfigurableRBACParams{
kind: types.KindSessionRecordingConfig,
storeDefault: func(s *Server) {
s.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
s.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
},
storeConfigFile: func(s *Server) {
recConfig := types.DefaultSessionRecordingConfig()
recConfig.SetOrigin(types.OriginConfigFile)
s.SetSessionRecordingConfig(ctx, recConfig)
s.UpsertSessionRecordingConfig(ctx, recConfig)
},
get: func(s *ServerWithRoles) error {
_, err := s.GetSessionRecordingConfig(ctx)
Expand Down
3 changes: 2 additions & 1 deletion lib/auth/discoveryconfig/discoveryconfigv1/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,8 @@ func initSvc(t *testing.T, clusterName string) (context.Context, localClient, *S
require.NoError(t, clusterConfigSvc.SetClusterAuditConfig(ctx, types.DefaultClusterAuditConfig()))
_, err = clusterConfigSvc.UpsertClusterNetworkingConfig(ctx, types.DefaultClusterNetworkingConfig())
require.NoError(t, err)
require.NoError(t, clusterConfigSvc.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig()))
_, err = clusterConfigSvc.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
require.NoError(t, err)

accessPoint := &testClient{
ClusterConfiguration: clusterConfigSvc,
Expand Down
3 changes: 2 additions & 1 deletion lib/auth/grpcserver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2257,7 +2257,8 @@ func TestSessionRecordingConfigOriginDynamic(t *testing.T) {
setWithOrigin := func(cl *Client, origin string) error {
recConfig := types.DefaultSessionRecordingConfig()
recConfig.SetOrigin(origin)
return cl.SetSessionRecordingConfig(ctx, recConfig)
_, err := cl.UpsertSessionRecordingConfig(ctx, recConfig)
return err
}

getStored := func(asrv *Server) (types.ResourceWithOrigin, error) {
Expand Down
2 changes: 1 addition & 1 deletion lib/auth/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ func NewTestAuthServer(cfg TestAuthServerConfig) (*TestAuthServer, error) {
return nil, trace.Wrap(err)
}

err = srv.AuthServer.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
_, err = srv.AuthServer.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
if err != nil {
return nil, trace.Wrap(err)
}
Expand Down
52 changes: 37 additions & 15 deletions lib/auth/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -416,9 +416,9 @@ func initCluster(ctx context.Context, cfg InitConfig, asrv *Server) error {
})

g.Go(func() error {
ctx, span := cfg.Tracer.Start(gctx, "auth/SetSessionRecordingConfig")
ctx, span := cfg.Tracer.Start(gctx, "auth/InitializeSessionRecordingConfig")
defer span.End()
return trace.Wrap(initSetSessionRecordingConfig(ctx, asrv, cfg.SessionRecordingConfig))
return trace.Wrap(initializeSessionRecordingConfig(ctx, asrv, cfg.SessionRecordingConfig))
})

g.Go(func() error {
Expand Down Expand Up @@ -781,22 +781,44 @@ func initializeClusterNetworkingConfig(ctx context.Context, asrv *Server, newNet
return trace.LimitExceeded("failed to initialize cluster networking config in %v iterations", iterationLimit)
}

func initSetSessionRecordingConfig(ctx context.Context, asrv *Server, newRecConfig types.SessionRecordingConfig) error {
storedRecConfig, err := asrv.Services.GetSessionRecordingConfig(ctx)
if err != nil && !trace.IsNotFound(err) {
return trace.Wrap(err)
}
shouldReplace, err := shouldInitReplaceResourceWithOrigin(storedRecConfig, newRecConfig)
if err != nil {
return trace.Wrap(err)
}
if shouldReplace {
if err := asrv.SetSessionRecordingConfig(ctx, newRecConfig); err != nil {
func initializeSessionRecordingConfig(ctx context.Context, asrv *Server, newRecConfig types.SessionRecordingConfig) error {
const iterationLimit = 3
for i := 0; i < iterationLimit; i++ {
storedRecConfig, err := asrv.Services.GetSessionRecordingConfig(ctx)
if err != nil && !trace.IsNotFound(err) {
return trace.Wrap(err)
}
log.Infof("Updating session recording configuration: %v.", newRecConfig)

shouldReplace, err := shouldInitReplaceResourceWithOrigin(storedRecConfig, newRecConfig)
if err != nil {
return trace.Wrap(err)
}

if !shouldReplace {
return nil
}

if storedRecConfig == nil {
log.Infof("Creating session recording config: %v.", newRecConfig)
_, err := asrv.CreateSessionRecordingConfig(ctx, newRecConfig)
if trace.IsAlreadyExists(err) {
continue
}

return trace.Wrap(err)
}

log.Infof("Updating session recording config: %v.", newRecConfig)
newRecConfig.SetRevision(storedRecConfig.GetRevision())
_, err = asrv.UpdateSessionRecordingConfig(ctx, newRecConfig)
if trace.IsCompareFailed(err) {
continue
}

return trace.Wrap(err)
}
return nil

return trace.LimitExceeded("failed to initialize session recording config in %v iterations", iterationLimit)
}

// shouldInitReplaceResourceWithOrigin determines whether the candidate
Expand Down
2 changes: 1 addition & 1 deletion lib/auth/init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ func TestSessionRecordingConfig(t *testing.T) {
})
require.NoError(t, err)
dynamically.SetOrigin(types.OriginDynamic)
err = authServer.SetSessionRecordingConfig(ctx, dynamically)
_, err = authServer.UpsertSessionRecordingConfig(ctx, dynamically)
require.NoError(t, err)
},
getStored: func(t *testing.T, authServer *Server) types.ResourceWithOrigin {
Expand Down
3 changes: 2 additions & 1 deletion lib/auth/integration/integrationv1/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,8 @@ func initSvc(t *testing.T, ca types.CertAuthority, clusterName string, proxyPubl
require.NoError(t, clusterConfigSvc.SetClusterAuditConfig(ctx, types.DefaultClusterAuditConfig()))
_, err = clusterConfigSvc.UpsertClusterNetworkingConfig(ctx, types.DefaultClusterNetworkingConfig())
require.NoError(t, err)
require.NoError(t, clusterConfigSvc.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig()))
_, err = clusterConfigSvc.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
require.NoError(t, err)

accessPoint := &testClient{
ClusterConfiguration: clusterConfigSvc,
Expand Down
3 changes: 2 additions & 1 deletion lib/auth/okta/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,8 @@ func initSvc(t *testing.T, kind string) (context.Context, *Service) {
require.NoError(t, clusterConfigSvc.SetClusterAuditConfig(ctx, types.DefaultClusterAuditConfig()))
_, err = clusterConfigSvc.UpsertClusterNetworkingConfig(ctx, types.DefaultClusterNetworkingConfig())
require.NoError(t, err)
require.NoError(t, clusterConfigSvc.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig()))
_, err = clusterConfigSvc.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
require.NoError(t, err)

accessPoint := &testClient{
ClusterConfiguration: clusterConfigSvc,
Expand Down
2 changes: 1 addition & 1 deletion lib/auth/tls_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2788,7 +2788,7 @@ func TestClusterConfigContext(t *testing.T) {
Mode: types.RecordAtProxy,
})
require.NoError(t, err)
err = testSrv.Auth().SetSessionRecordingConfig(ctx, recConfig)
_, err = testSrv.Auth().UpsertSessionRecordingConfig(ctx, recConfig)
require.NoError(t, err)

// try and generate a host cert
Expand Down
4 changes: 2 additions & 2 deletions lib/auth/trustedcluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -442,8 +442,8 @@ func newTestAuthServer(ctx context.Context, t *testing.T, name ...string) *Serve
require.NoError(t, a.SetClusterAuditConfig(ctx, types.DefaultClusterAuditConfig()))
_, err = a.UpsertClusterNetworkingConfig(ctx, types.DefaultClusterNetworkingConfig())
require.NoError(t, err)
require.NoError(t, a.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig()))

_, err = a.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
require.NoError(t, err)
_, err = a.UpsertAuthPreference(ctx, types.DefaultAuthPreference())
require.NoError(t, err)
return a
Expand Down
3 changes: 2 additions & 1 deletion lib/auth/userloginstate/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,8 @@ func initSvc(t *testing.T) (userContext context.Context, noAccessContext context
require.NoError(t, clusterConfigSvc.SetClusterAuditConfig(ctx, types.DefaultClusterAuditConfig()))
_, err = clusterConfigSvc.UpsertClusterNetworkingConfig(ctx, types.DefaultClusterNetworkingConfig())
require.NoError(t, err)
require.NoError(t, clusterConfigSvc.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig()))
_, err = clusterConfigSvc.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
require.NoError(t, err)

accessPoint := &testClient{
ClusterConfiguration: clusterConfigSvc,
Expand Down
3 changes: 2 additions & 1 deletion lib/auth/userpreferences/userpreferencesv1/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,8 @@ func initSvc(t *testing.T) (map[string]context.Context, *Service) {
require.NoError(t, clusterConfigSvc.SetClusterAuditConfig(ctx, types.DefaultClusterAuditConfig()))
_, err = clusterConfigSvc.UpsertClusterNetworkingConfig(ctx, types.DefaultClusterNetworkingConfig())
require.NoError(t, err)
require.NoError(t, clusterConfigSvc.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig()))
_, err = clusterConfigSvc.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
require.NoError(t, err)

accessPoint := &testClient{
ClusterConfiguration: clusterConfigSvc,
Expand Down
2 changes: 1 addition & 1 deletion lib/authz/permissions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1074,7 +1074,7 @@ func newTestResources(t *testing.T) (*testClient, *services.LockWatcher, Authori
require.NoError(t, err)
_, err = client.UpsertClusterNetworkingConfig(ctx, types.DefaultClusterNetworkingConfig())
require.NoError(t, err)
err = client.SetSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
_, err = client.UpsertSessionRecordingConfig(ctx, types.DefaultSessionRecordingConfig())
require.NoError(t, err)

lockSvc := local.NewAccessService(backend)
Expand Down
2 changes: 1 addition & 1 deletion lib/cache/cache_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1308,7 +1308,7 @@ func TestSessionRecordingConfig(t *testing.T) {
ProxyChecksHostKeys: types.NewBoolOption(true),
})
require.NoError(t, err)
err = p.clusterConfigS.SetSessionRecordingConfig(ctx, recConfig)
_, err = p.clusterConfigS.UpsertSessionRecordingConfig(ctx, recConfig)
require.NoError(t, err)

select {
Expand Down
3 changes: 2 additions & 1 deletion lib/cache/collections.go
Original file line number Diff line number Diff line change
Expand Up @@ -1840,7 +1840,8 @@ func (sessionRecordingConfigExecutor) getAll(ctx context.Context, cache *Cache,
}

func (sessionRecordingConfigExecutor) upsert(ctx context.Context, cache *Cache, resource types.SessionRecordingConfig) error {
return cache.clusterConfigCache.SetSessionRecordingConfig(ctx, resource)
_, err := cache.clusterConfigCache.UpsertSessionRecordingConfig(ctx, resource)
return trace.Wrap(err)
}

func (sessionRecordingConfigExecutor) deleteAll(ctx context.Context, cache *Cache) error {
Expand Down
2 changes: 1 addition & 1 deletion lib/kube/proxy/utils_testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ func SetupTestContext(ctx context.Context, t *testing.T, cfg TestConfig) *TestCo
// Always use *-sync to prevent fileStreamer from running against os.RemoveAll
// once the test ends.
recConfig.SetMode(types.RecordAtNodeSync)
err = authServer.AuthServer.SetSessionRecordingConfig(ctx, recConfig)
_, err = authServer.AuthServer.UpsertSessionRecordingConfig(ctx, recConfig)
require.NoError(t, err)

// Auth client for Kube service.
Expand Down
4 changes: 2 additions & 2 deletions lib/modules/modules_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,10 @@ func TestValidateSessionRecordingConfigOnCloud(t *testing.T) {
})

recConfig := types.DefaultSessionRecordingConfig()
err = testServer.AuthServer.SetSessionRecordingConfig(ctx, recConfig)
_, err = testServer.AuthServer.UpsertSessionRecordingConfig(ctx, recConfig)
require.NoError(t, err)

recConfig.SetMode(types.RecordAtProxy)
err = testServer.AuthServer.SetSessionRecordingConfig(ctx, recConfig)
_, err = testServer.AuthServer.UpsertSessionRecordingConfig(ctx, recConfig)
require.EqualError(t, err, "cannot set proxy recording mode on Cloud")
}
3 changes: 0 additions & 3 deletions lib/services/configuration.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,6 @@ type ClusterConfiguration interface {
UpdateSessionRecordingConfig(ctx context.Context, cfg types.SessionRecordingConfig) (types.SessionRecordingConfig, error)
// UpsertSessionRecordingConfig creates a new session recording config or overwrites the existing session recording.
UpsertSessionRecordingConfig(ctx context.Context, cfg types.SessionRecordingConfig) (types.SessionRecordingConfig, error)
// SetSessionRecordingConfig sets SessionRecordingConfig from the backend.
// TODO(tross): Deprecate/Remove this once everything is converted to use the new methods.
SetSessionRecordingConfig(context.Context, types.SessionRecordingConfig) error
// DeleteSessionRecordingConfig deletes SessionRecordingConfig from the backend.
DeleteSessionRecordingConfig(ctx context.Context) error

Expand Down
6 changes: 0 additions & 6 deletions lib/services/local/configuration.go
Original file line number Diff line number Diff line change
Expand Up @@ -579,12 +579,6 @@ func (s *ClusterConfigurationService) UpsertSessionRecordingConfig(ctx context.C
return cfg, nil
}

// SetSessionRecordingConfig sets session recording config on the backend.
func (s *ClusterConfigurationService) SetSessionRecordingConfig(ctx context.Context, recConfig types.SessionRecordingConfig) error {
_, err := s.UpsertSessionRecordingConfig(ctx, recConfig)
return trace.Wrap(err)
}

// DeleteSessionRecordingConfig deletes SessionRecordingConfig from the backend.
func (s *ClusterConfigurationService) DeleteSessionRecordingConfig(ctx context.Context) error {
err := s.Delete(ctx, backend.Key(clusterConfigPrefix, sessionRecordingPrefix))
Expand Down

0 comments on commit 6fb0795

Please sign in to comment.