Skip to content

Commit 70011da

Browse files
authored
Cleanup sync interfaces (#204)
* Get rid of delete method, it's not used here, and it doesn't belong to the sync logic. * Use a simpler interface for persistence. We do not need all the methods of the storage manager.
1 parent 249439a commit 70011da

File tree

3 files changed

+19
-26
lines changed

3 files changed

+19
-26
lines changed

internal/sync/manager.go

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/stacklok/toolhive-registry-server/internal/filtering"
1515
"github.com/stacklok/toolhive-registry-server/internal/sources"
1616
"github.com/stacklok/toolhive-registry-server/internal/status"
17+
"github.com/stacklok/toolhive-registry-server/internal/sync/writer"
1718
)
1819

1920
// Result contains the result of a successful sync operation
@@ -138,9 +139,6 @@ type Manager interface {
138139

139140
// PerformSync executes the complete sync operation for a specific registry
140141
PerformSync(ctx context.Context, regCfg *config.RegistryConfig) (*Result, *Error)
141-
142-
// Delete cleans up storage resources for a specific registry
143-
Delete(ctx context.Context, registryName string) error
144142
}
145143

146144
// DataChangeDetector detects changes in source data
@@ -159,18 +157,18 @@ type AutomaticSyncChecker interface {
159157
// defaultSyncManager is the default implementation of Manager
160158
type defaultSyncManager struct {
161159
registryHandlerFactory sources.RegistryHandlerFactory
162-
storageManager sources.StorageManager
160+
writer writer.SyncWriter
163161
filterService filtering.FilterService
164162
dataChangeDetector DataChangeDetector
165163
automaticSyncChecker AutomaticSyncChecker
166164
}
167165

168166
// NewDefaultSyncManager creates a new defaultSyncManager
169167
func NewDefaultSyncManager(
170-
registryHandlerFactory sources.RegistryHandlerFactory, storageManager sources.StorageManager) Manager {
168+
registryHandlerFactory sources.RegistryHandlerFactory, syncWriter writer.SyncWriter) Manager {
171169
return &defaultSyncManager{
172170
registryHandlerFactory: registryHandlerFactory,
173-
storageManager: storageManager,
171+
writer: syncWriter,
174172
filterService: filtering.NewDefaultFilterService(),
175173
dataChangeDetector: &defaultDataChangeDetector{registryHandlerFactory: registryHandlerFactory},
176174
automaticSyncChecker: &defaultAutomaticSyncChecker{},
@@ -313,11 +311,6 @@ func (s *defaultSyncManager) PerformSync(
313311
return syncResult, nil
314312
}
315313

316-
// Delete cleans up storage resources for a specific registry
317-
func (s *defaultSyncManager) Delete(ctx context.Context, registryName string) error {
318-
return s.storageManager.Delete(ctx, registryName)
319-
}
320-
321314
// fetchAndProcessRegistryData handles registry handler creation, validation, fetch, and filtering
322315
func (s *defaultSyncManager) fetchAndProcessRegistryData(
323316
ctx context.Context,
@@ -420,7 +413,7 @@ func (s *defaultSyncManager) storeRegistryData(
420413
fetchResult *sources.FetchResult) *Error {
421414
ctxLogger := log.FromContext(ctx)
422415

423-
if err := s.storageManager.Store(ctx, regCfg.Name, fetchResult.Registry); err != nil {
416+
if err := s.writer.Store(ctx, regCfg.Name, fetchResult.Registry); err != nil {
424417
ctxLogger.Error(err, "Failed to store registry data")
425418
return &Error{
426419
Err: err,

internal/sync/mocks/mock_manager.go

Lines changed: 0 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/sync/writer/writer.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Package writer contains the SyncWriter interface and implementations
2+
package writer
3+
4+
import (
5+
"context"
6+
7+
toolhivetypes "github.com/stacklok/toolhive/pkg/registry/registry"
8+
)
9+
10+
// SyncWriter defines the interface needed to persist the list of MCP servers.
11+
type SyncWriter interface {
12+
// Store saves a UpstreamRegistry instance to persistent storage for a specific registry
13+
Store(ctx context.Context, registryName string, reg *toolhivetypes.UpstreamRegistry) error
14+
}

0 commit comments

Comments
 (0)