44 lines
1.3 KiB
Go

package singlesharder
import (
"context"
"github.com/SigNoz/signoz/pkg/errors"
"github.com/SigNoz/signoz/pkg/factory"
"github.com/SigNoz/signoz/pkg/sharder"
"github.com/SigNoz/signoz/pkg/types"
"github.com/SigNoz/signoz/pkg/valuer"
)
type provider struct {
settings factory.ScopedProviderSettings
orgID valuer.UUID
orgIDKey uint32
}
func NewFactory() factory.ProviderFactory[sharder.Sharder, sharder.Config] {
return factory.NewProviderFactory(factory.MustNewName("single"), New)
}
func New(ctx context.Context, providerSettings factory.ProviderSettings, config sharder.Config) (sharder.Sharder, error) {
settings := factory.NewScopedProviderSettings(providerSettings, "github.com/SigNoz/signoz/pkg/sharder/singlesharder")
return &provider{
settings: settings,
orgID: config.Single.OrgID,
orgIDKey: types.NewOrganizationKey(config.Single.OrgID),
}, nil
}
func (provider *provider) GetMyOwnedKeyRange(ctx context.Context) (uint32, uint32, error) {
return provider.orgIDKey, provider.orgIDKey, nil
}
func (provider *provider) IsMyOwnedKey(ctx context.Context, key uint32) error {
if key == provider.orgIDKey {
return nil
}
return errors.Newf(errors.TypeForbidden, errors.CodeForbidden, "key %d for org %s is not owned by my current instance", key, provider.orgID)
}