mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-15 08:35:54 +08:00
44 lines
1.3 KiB
Go
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)
|
|
}
|