Documentation
¶
Index ¶
- Variables
- func GetExpandableAnnotation(annos annotations.Annotations) (*v2.GrantExpandable, error)
- func GetExternalResourceMatchAllAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatchAll, error)
- func GetExternalResourceMatchAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatch, error)
- func GetExternalResourceMatchIDAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatchID, error)
- func IsSyncPreservable(err error) bool
- type Action
- type ActionOp
- type Progress
- type ProgressCounts
- func (p *ProgressCounts) LogEntitlementsProgress(ctx context.Context, resourceType string)
- func (p *ProgressCounts) LogExpandProgress(ctx context.Context, actions []*expand.EntitlementGraphAction)
- func (p *ProgressCounts) LogGrantsProgress(ctx context.Context, resourceType string)
- func (p *ProgressCounts) LogResourceTypesProgress(ctx context.Context)
- func (p *ProgressCounts) LogResourcesProgress(ctx context.Context, resourceType string)
- type State
- type SyncOpt
- func WithC1ZPath(path string) SyncOpt
- func WithConnectorStore(store connectorstore.Writer) SyncOpt
- func WithDontExpandGrants() SyncOpt
- func WithExternalResourceC1ZPath(path string) SyncOpt
- func WithExternalResourceEntitlementIdFilter(entitlementId string) SyncOpt
- func WithOnlyExpandGrants() SyncOpt
- func WithProgressHandler(f func(s *Progress)) SyncOpt
- func WithRunDuration(d time.Duration) SyncOpt
- func WithSessionStore(sessionStore sessions.SetSessionStore) SyncOpt
- func WithSkipEntitlementsAndGrants(skip bool) SyncOpt
- func WithSkipFullSync() SyncOpt
- func WithSkipGrants(skip bool) SyncOpt
- func WithSyncID(syncID string) SyncOpt
- func WithSyncResourceTypes(resourceTypeIDs []string) SyncOpt
- func WithTargetedSyncResources(resources []*v2.Resource) SyncOpt
- func WithTmpDir(path string) SyncOpt
- func WithTransitionHandler(f func(s Action)) SyncOpt
- type Syncer
Constants ¶
This section is empty.
Variables ¶
var ErrNoSyncIDFound = fmt.Errorf("no syncID found after starting or resuming sync")
var ErrSyncNotComplete = fmt.Errorf("sync exited without finishing")
var ErrTooManyWarnings = fmt.Errorf("too many warnings, exiting sync")
Functions ¶
func GetExpandableAnnotation ¶ added in v0.2.92
func GetExpandableAnnotation(annos annotations.Annotations) (*v2.GrantExpandable, error)
func GetExternalResourceMatchAllAnnotation ¶ added in v0.2.84
func GetExternalResourceMatchAllAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatchAll, error)
func GetExternalResourceMatchAnnotation ¶ added in v0.2.84
func GetExternalResourceMatchAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatch, error)
func GetExternalResourceMatchIDAnnotation ¶ added in v0.2.90
func GetExternalResourceMatchIDAnnotation(annos annotations.Annotations) (*v2.ExternalResourceMatchID, error)
func IsSyncPreservable ¶ added in v0.6.18
IsSyncPreservable returns true if the error returned by Sync() means that the sync artifact is useful. This either means that there was no error, or that the error is recoverable (we can resume the sync and possibly succeed next time).
Types ¶
type Action ¶
type Action struct {
Op ActionOp `json:"operation,omitempty"`
PageToken string `json:"page_token,omitempty"`
ResourceTypeID string `json:"resource_type_id,omitempty"`
ResourceID string `json:"resource_id,omitempty"`
ParentResourceTypeID string `json:"parent_resource_type_id,omitempty"`
ParentResourceID string `json:"parent_resource_id,omitempty"`
}
Action stores the current operation, page token, and optional fields for which resource is being worked with.
type ActionOp ¶
type ActionOp uint8
ActionOp represents a sync operation.
const ( UnknownOp ActionOp = iota InitOp SyncResourceTypesOp SyncResourcesOp SyncEntitlementsOp ListResourcesForEntitlementsOp SyncGrantsOp SyncExternalResourcesOp SyncAssetsOp SyncGrantExpansionOp SyncTargetedResourceOp SyncStaticEntitlementsOp )
Do not change the order of these constants, and only append new ones at the end. Otherwise resuming a sync started by an older version of baton-sdk will cause very strange behavior.
func (*ActionOp) MarshalJSON ¶
MarshalJSON marshals the ActionOp into a json string.
func (ActionOp) String ¶
String() returns the string representation for an ActionOp. This is used for marshalling the op.
func (*ActionOp) UnmarshalJSON ¶
UnmarshalJSON unmarshals the input byte slice and updates this action op.
type Progress ¶ added in v0.0.25
type Progress struct {
Action string
ResourceTypeID string
ResourceID string
ParentResourceTypeID string
ParentResourceID string
Count uint32
}
func NewProgress ¶ added in v0.0.25
type ProgressCounts ¶ added in v0.2.58
type ProgressCounts struct {
ResourceTypes int
Resources map[string]int
EntitlementsProgress map[string]int
LastEntitlementLog map[string]time.Time
GrantsProgress map[string]int
LastGrantLog map[string]time.Time
LastActionLog time.Time
}
func NewProgressCounts ¶ added in v0.2.58
func NewProgressCounts() *ProgressCounts
TODO: use a mutex or a syncmap for when this code becomes parallel
func (*ProgressCounts) LogEntitlementsProgress ¶ added in v0.2.58
func (p *ProgressCounts) LogEntitlementsProgress(ctx context.Context, resourceType string)
func (*ProgressCounts) LogExpandProgress ¶ added in v0.2.58
func (p *ProgressCounts) LogExpandProgress(ctx context.Context, actions []*expand.EntitlementGraphAction)
func (*ProgressCounts) LogGrantsProgress ¶ added in v0.2.58
func (p *ProgressCounts) LogGrantsProgress(ctx context.Context, resourceType string)
func (*ProgressCounts) LogResourceTypesProgress ¶ added in v0.2.58
func (p *ProgressCounts) LogResourceTypesProgress(ctx context.Context)
func (*ProgressCounts) LogResourcesProgress ¶ added in v0.2.58
func (p *ProgressCounts) LogResourcesProgress(ctx context.Context, resourceType string)
type State ¶
type State interface {
PushAction(ctx context.Context, action Action)
FinishAction(ctx context.Context)
NextPage(ctx context.Context, pageToken string) error
ResourceTypeID(ctx context.Context) string
ResourceID(ctx context.Context) string
EntitlementGraph(ctx context.Context) *expand.EntitlementGraph
ClearEntitlementGraph(ctx context.Context)
ParentResourceID(ctx context.Context) string
ParentResourceTypeID(ctx context.Context) string
PageToken(ctx context.Context) string
Current() *Action
Marshal() (string, error)
Unmarshal(input string) error
NeedsExpansion() bool
SetNeedsExpansion()
HasExternalResourcesGrants() bool
SetHasExternalResourcesGrants()
ShouldFetchRelatedResources() bool
SetShouldFetchRelatedResources()
ShouldSkipEntitlementsAndGrants() bool
SetShouldSkipEntitlementsAndGrants()
ShouldSkipGrants() bool
SetShouldSkipGrants()
GetCompletedActionsCount() uint64
}
type SyncOpt ¶
type SyncOpt func(s *syncer)
func WithC1ZPath ¶ added in v0.1.0
func WithConnectorStore ¶ added in v0.1.0
func WithConnectorStore(store connectorstore.Writer) SyncOpt
func WithDontExpandGrants ¶ added in v0.3.48
func WithDontExpandGrants() SyncOpt
func WithExternalResourceC1ZPath ¶ added in v0.2.84
func WithExternalResourceEntitlementIdFilter ¶ added in v0.2.84
func WithOnlyExpandGrants ¶ added in v0.3.8
func WithOnlyExpandGrants() SyncOpt
func WithProgressHandler ¶ added in v0.0.25
WithProgress sets a `progressHandler` for `NewSyncer` Options.
func WithRunDuration ¶
WithRunDuration sets a `time.Duration` for `NewSyncer` Options. `d` represents a duration. The elapsed time between two instants as an int64 nanosecond count.
func WithSessionStore ¶ added in v0.5.0
func WithSessionStore(sessionStore sessions.SetSessionStore) SyncOpt
func WithSkipEntitlementsAndGrants ¶ added in v0.3.40
func WithSkipFullSync ¶ added in v0.2.15
func WithSkipFullSync() SyncOpt
func WithSkipGrants ¶ added in v0.5.1
func WithSyncID ¶ added in v0.3.8
func WithSyncResourceTypes ¶ added in v0.5.0
func WithTargetedSyncResources ¶ added in v0.6.6
func WithTmpDir ¶ added in v0.1.8
func WithTransitionHandler ¶
WithTransitionHandler sets a `transitionHandler` for `NewSyncer` Options.