diffgraph

package
v0.62.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ChangeRuleActionUpsert ChangeRuleAction = "upsert"
	ChangeRuleActionDelete ChangeRuleAction = "delete"

	ChangeRuleOrderBefore ChangeRuleOrder = "before"
	ChangeRuleOrderAfter  ChangeRuleOrder = "after"

	ChangeRuleTargetActionUpserting ChangeRuleTargetAction = "upserting"
	ChangeRuleTargetActionDeleting  ChangeRuleTargetAction = "deleting"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ActualChange

type ActualChange interface {
	Resource() ctlres.Resource
	Op() ActualChangeOp
}

type ActualChangeOp

type ActualChangeOp string
const (
	ActualChangeOpUpsert ActualChangeOp = "upsert"
	ActualChangeOpDelete ActualChangeOp = "delete"
	ActualChangeOpNoop   ActualChangeOp = "noop"
)

type BlockedChanges

type BlockedChanges struct {
	// contains filtered or unexported fields
}

func NewBlockedChanges

func NewBlockedChanges(graph *ChangeGraph) *BlockedChanges

func (*BlockedChanges) Blocked

func (c *BlockedChanges) Blocked() []*Change

func (*BlockedChanges) Unblock

func (c *BlockedChanges) Unblock(change *Change)

func (*BlockedChanges) Unblocked

func (c *BlockedChanges) Unblocked() []*Change

func (*BlockedChanges) WhyBlocked

func (c *BlockedChanges) WhyBlocked(changes []*Change) string

type Change

type Change struct {
	Change     ActualChange
	WaitingFor []*Change
	// contains filtered or unexported fields
}

func (*Change) AllRules

func (c *Change) AllRules() ([]ChangeRule, error)

func (*Change) ApplicableRules

func (c *Change) ApplicableRules() ([]ChangeRule, error)

func (*Change) Description added in v0.62.0

func (c *Change) Description() string

func (*Change) Groups

func (c *Change) Groups() ([]ChangeGroup, error)

func (*Change) IsDirectlyWaitingFor added in v0.62.0

func (c *Change) IsDirectlyWaitingFor(changeToFind *Change) bool

func (*Change) IsTransitivelyWaitingFor added in v0.62.0

func (c *Change) IsTransitivelyWaitingFor(changeToFind *Change) bool

type ChangeGraph

type ChangeGraph struct {
	// contains filtered or unexported fields
}

func NewChangeGraph

func NewChangeGraph(changes []ActualChange,
	changeGroupBindings []ctlconf.ChangeGroupBinding,
	changeRuleBindings []ctlconf.ChangeRuleBinding,
	logger logger.Logger) (*ChangeGraph, error)

func (*ChangeGraph) All

func (g *ChangeGraph) All() []*Change

func (*ChangeGraph) AllMatching

func (g *ChangeGraph) AllMatching(matchFunc func(*Change) bool) []*Change

func (*ChangeGraph) Linearized added in v0.62.0

func (g *ChangeGraph) Linearized() ([][]*Change, []*Change)

func (*ChangeGraph) Print

func (g *ChangeGraph) Print()

func (*ChangeGraph) PrintLinearizedStr added in v0.62.0

func (g *ChangeGraph) PrintLinearizedStr() string

func (*ChangeGraph) PrintStr

func (g *ChangeGraph) PrintStr() string

func (*ChangeGraph) RemoveMatching

func (g *ChangeGraph) RemoveMatching(matchFunc func(*Change) bool)

type ChangeGroup

type ChangeGroup struct {
	Name string
}

func MustNewChangeGroupFromAnnString

func MustNewChangeGroupFromAnnString(ann string) ChangeGroup

func NewChangeGroupFromAnnString

func NewChangeGroupFromAnnString(ann string) (ChangeGroup, error)

func (ChangeGroup) IsEqual

func (r ChangeGroup) IsEqual(other ChangeGroup) bool

func (ChangeGroup) Validate

func (r ChangeGroup) Validate() error

type ChangeGroupName added in v0.62.0

type ChangeGroupName struct {
	// contains filtered or unexported fields
}

func NewChangeGroupNameForResource added in v0.62.0

func NewChangeGroupNameForResource(name string, resource ctlres.Resource) ChangeGroupName

func (ChangeGroupName) AsString added in v0.62.0

func (c ChangeGroupName) AsString() (string, error)

Placeholders have the format {placeholder-name} Other patterns like ${placeholder-name} are commonly used by other operators/tools

type ChangeRule

type ChangeRule struct {
	Action           ChangeRuleAction
	Order            ChangeRuleOrder
	TargetAction     ChangeRuleTargetAction
	TargetGroup      ChangeGroup
	IgnoreIfCyclical bool
	// contains filtered or unexported fields
}

Example: upsert before deleting apps.big.co/etcd

func NewChangeRuleFromAnnString

func NewChangeRuleFromAnnString(ann string) (ChangeRule, error)

func (ChangeRule) Validate

func (r ChangeRule) Validate() error

type ChangeRuleAction

type ChangeRuleAction string

type ChangeRuleOrder

type ChangeRuleOrder string

type ChangeRuleTargetAction

type ChangeRuleTargetAction string

type Changes

type Changes []*Change

func (Changes) MatchesRule

func (cs Changes) MatchesRule(rule ChangeRule, _ *Change) ([]*Change, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL