tree

package
v0.0.54 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2025 License: Apache-2.0 Imports: 26 Imported by: 2

Documentation

Index

Constants

View Source
const (
	KeysIndexSep       = "_"
	DefaultValuesPrio  = int32(math.MaxInt32 - 90)
	DefaultsIntentName = "default"
	RunningValuesPrio  = int32(math.MaxInt32 - 100)
	RunningIntentName  = "running"
	ReplaceValuesPrio  = int32(math.MaxInt32 - 110)
	ReplaceIntentName  = "replace"
)

Variables

This section is empty.

Functions

func ApplyCacheUpdateFilters

func ApplyCacheUpdateFilters(u *cache.Update, fs []CacheUpdateFilter) bool

ApplyCacheUpdateFilters takes a bunch of CacheUpdateFilters applies them in an AND fashion and returns the result.

func CacheUpdateFilterExcludeOwner

func CacheUpdateFilterExcludeOwner(owner string) func(u *cache.Update) bool

func FilterDeleted

func FilterDeleted(l *LeafEntry) bool

FilterDeleted Accepts all Entries that are marked as deleted

func FilterNew

func FilterNew(l *LeafEntry) bool

FilterNew Accepts New LeafEntries

func FilterNonDeleted

func FilterNonDeleted(l *LeafEntry) bool

FilterNonDeleted Accepts all Entries that are not marked as deleted

func FilterNonDeletedButNewOrUpdated

func FilterNonDeletedButNewOrUpdated(l *LeafEntry) bool

FilterNonDeletedButNewOrUpdated Accepts all Entries that are New or Updated and not Deleted.

func FilterUpdated

func FilterUpdated(l *LeafEntry) bool

FilterUpdated Accepts all entries that are updates

func LeafEntriesToCacheUpdates

func LeafEntriesToCacheUpdates(l []*LeafEntry) []*cache.Update

LeafEntriesToCacheUpdates

func Map

func Map[T any](u UpdateSlice, f func(*cache.Update) T) []T

func Unfiltered

func Unfiltered(l *LeafEntry) bool

Unfiltered accepts all entries without any filtering

Types

type CacheUpdateFilter

type CacheUpdateFilter func(u *cache.Update) bool

type DeleteEntriesList added in v0.0.54

type DeleteEntriesList []DeleteEntry

func (DeleteEntriesList) PathSlices added in v0.0.54

func (d DeleteEntriesList) PathSlices() PathSlices

type DeleteEntry added in v0.0.44

type DeleteEntry interface {
	SdcpbPath() (*sdcpb.Path, error)
	Path() PathSlice
}

type DeleteEntryImpl added in v0.0.44

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

DeleteEntryImpl is a crutch to flag oldbestcases if on a choice, the active case changed

func NewDeleteEntryImpl added in v0.0.44

func NewDeleteEntryImpl(sdcpbPath *sdcpb.Path, pathslice PathSlice) *DeleteEntryImpl

func (*DeleteEntryImpl) Path added in v0.0.44

func (d *DeleteEntryImpl) Path() PathSlice

func (*DeleteEntryImpl) SdcpbPath added in v0.0.44

func (d *DeleteEntryImpl) SdcpbPath() (*sdcpb.Path, error)

type Entry

type Entry interface {
	// Path returns the Path as PathSlice
	Path() PathSlice
	// PathName returns the last Path element, the name of the Entry
	PathName() string

	// AddCacheUpdateRecursive Add the given cache.Update to the tree
	AddCacheUpdateRecursive(ctx context.Context, u *cache.Update, flags *UpdateInsertFlags) (Entry, error)
	// StringIndent debug tree struct as indented string slice
	StringIndent(result []string) []string
	// GetHighesPrio return the new cache.Update entried from the tree that are the highes priority.
	// If the onlyNewOrUpdated option is set to true, only the New or Updated entries will be returned
	// It will append to the given list and provide a new pointer to the slice
	GetHighestPrecedence(result LeafVariantSlice, onlyNewOrUpdated bool) LeafVariantSlice

	// GetByOwner returns the branches Updates by owner
	GetByOwner(owner string, result []*LeafEntry) []*LeafEntry

	// GetDeletes returns the cache-updates that are not updated, have no lower priority value left and hence should be deleted completely
	GetDeletes(entries []DeleteEntry, aggregatePaths bool) ([]DeleteEntry, error)
	// Walk takes the EntryVisitor and applies it to every Entry in the tree
	Walk(f EntryVisitor) error
	// Validate kicks off validation
	Validate(ctx context.Context, resultChan chan<- *types.ValidationResultEntry, concurrent bool)

	// GetSchema returns the *sdcpb.SchemaElem of the Entry
	GetSchema() *sdcpb.SchemaElem
	// IsRoot returns true if the Entry is the root of the tree
	IsRoot() bool
	// FinishInsertionPhase indicates, that the insertion of Entries into the tree is over
	// Hence calculations for e.g. choice/case can be performed.
	FinishInsertionPhase(ctx context.Context)
	// GetParent returns the parent entry
	GetParent() Entry
	// Navigate navigates the tree according to the given path and returns the referenced entry or nil if it does not exist.
	Navigate(ctx context.Context, path []string, isRootPath bool) (Entry, error)
	NavigateSdcpbPath(ctx context.Context, path []*sdcpb.PathElem, isRootPath bool) (Entry, error)
	// NavigateLeafRef follows the leafref and returns the referenced entry
	NavigateLeafRef(ctx context.Context) ([]Entry, error)
	// GetFirstAncestorWithSchema returns the first parent node which has a schema set.
	// if the parent has no schema (is a key element in the tree) it will recurs the call to the parents parent.
	// the level of recursion is indicated via the levelUp attribute
	GetFirstAncestorWithSchema() (ancestor Entry, levelUp int)
	// SdcpbPath returns the sdcpb.Path struct for the Entry
	SdcpbPath() (*sdcpb.Path, error)
	// SdcpbPathInternal is the internal function to calculate the SdcpbPath
	SdcpbPathInternal(spath []string) (*sdcpb.Path, error)
	// GetSchemaKeys checks for the schema of the entry, and returns the defined keys
	GetSchemaKeys() []string
	// GetRootBasedEntryChain returns all the entries starting from the root down to the actual Entry.
	GetRootBasedEntryChain() []Entry
	// GetRoot returns the Trees Root Entry
	GetRoot() Entry

	FilterChilds(keys map[string]string) ([]Entry, error)
	// ToJson returns the Tree contained structure as JSON
	// use e.g. json.MarshalIndent() on the returned struct
	ToJson(onlyNewOrUpdated bool) (any, error)
	// ToJsonIETF returns the Tree contained structure as JSON_IETF
	// use e.g. json.MarshalIndent() on the returned struct
	ToJsonIETF(onlyNewOrUpdated bool) (any, error)

	// ToXML returns the tree and its current state in the XML representation used by netconf
	ToXML(onlyNewOrUpdated bool, honorNamespace bool, operationWithNamespace bool, useOperationRemove bool) (*etree.Document, error)

	// ImportConfig allows importing config data received from e.g. the device in different formats (json, xml) to be imported into the tree.
	ImportConfig(ctx context.Context, t importer.ImportConfigAdapter, intentName string, intentPrio int32) error
	// contains filtered or unexported methods
}

Entry is the primary Element of the Tree.

type EntryImpl

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

func (EntryImpl) AddCacheUpdateRecursive

func (s EntryImpl) AddCacheUpdateRecursive(ctx context.Context, c *cache.Update, flags *UpdateInsertFlags) (Entry, error)

AddCacheUpdateRecursive recursively adds the given cache.Update to the tree. Thereby creating all the entries along the path. if the entries along th path already exist, the existing entries are called to add the Update.

func (EntryImpl) FilterChilds added in v0.0.43

func (s EntryImpl) FilterChilds(keys map[string]string) ([]Entry, error)

FilterChilds returns the child entries (skipping the key entries in the tree) that match the given keys. The keys do not need to match all levels of keys, in which case the key level is considered a wildcard match (*)

func (EntryImpl) FinishInsertionPhase

func (s EntryImpl) FinishInsertionPhase(ctx context.Context)

FinishInsertionPhase certain values that are costly to calculate but used multiple times will be calculated and stored for later use. However therefore the insertion phase into the tree needs to be over. Calling this function indicated the end of the phase and thereby triggers the calculation

func (EntryImpl) GetByOwner

func (s EntryImpl) GetByOwner(owner string, result []*LeafEntry) []*LeafEntry

GetByOwner returns all the LeafEntries that belong to a certain owner.

func (EntryImpl) GetDeletes

func (s EntryImpl) GetDeletes(deletes []DeleteEntry, aggregatePaths bool) ([]DeleteEntry, error)

GetDeletes calculate the deletes that need to be send to the device.

func (EntryImpl) GetFirstAncestorWithSchema

func (s EntryImpl) GetFirstAncestorWithSchema() (Entry, int)

GetAncestorSchema returns the schema of the parent node if the schema is set. if the parent has no schema (is a key element in the tree) it will recurs the call to the parents parent. the level of recursion is indicated via the levelUp attribute

func (EntryImpl) GetHighestPrecedence

func (s EntryImpl) GetHighestPrecedence(result LeafVariantSlice, onlyNewOrUpdated bool) LeafVariantSlice

GetHighestPrecedence goes through the whole branch and returns the new and updated cache.Updates. These are the updated that will be send to the device.

func (EntryImpl) GetLevel

func (s EntryImpl) GetLevel() int

GetLevel returns the level / depth position of this element in the tree

func (EntryImpl) GetParent

func (s EntryImpl) GetParent() Entry

GetParent returns the parent entry

func (EntryImpl) GetRoot added in v0.0.42

func (s EntryImpl) GetRoot() Entry

func (EntryImpl) GetRootBasedEntryChain added in v0.0.42

func (s EntryImpl) GetRootBasedEntryChain() []Entry

func (EntryImpl) GetSchema

func (s EntryImpl) GetSchema() *sdcpb.SchemaElem

GetSchema return the schema fiels of the Entry

func (EntryImpl) GetSchemaKeys

func (s EntryImpl) GetSchemaKeys() []string

GetSchemaKeys checks for the schema of the entry, and returns the defined keys

func (EntryImpl) ImportConfig added in v0.0.44

func (s EntryImpl) ImportConfig(ctx context.Context, t importer.ImportConfigAdapter, intentName string, intentPrio int32) error

func (EntryImpl) IsRoot

func (s EntryImpl) IsRoot() bool

IsRoot returns true if the element has no parent elements, hence is the root of the tree

func (EntryImpl) Navigate

func (s EntryImpl) Navigate(ctx context.Context, path []string, isRootPath bool) (Entry, error)

Navigate move through the tree, returns the Entry that is present under the given path

func (EntryImpl) NavigateLeafRef added in v0.0.43

func (s EntryImpl) NavigateLeafRef(ctx context.Context) ([]Entry, error)

NavigateLeafRef

func (EntryImpl) NavigateSdcpbPath added in v0.0.42

func (s EntryImpl) NavigateSdcpbPath(ctx context.Context, pathElems []*sdcpb.PathElem, isRootPath bool) (Entry, error)

func (EntryImpl) Path

func (s EntryImpl) Path() PathSlice

Path returns the root based path of the Entry

func (EntryImpl) PathName

func (s EntryImpl) PathName() string

PathName returns the name of the Entry

func (EntryImpl) SdcpbPath

func (s EntryImpl) SdcpbPath() (*sdcpb.Path, error)

SdcpbPath returns the sdcpb.Path, with its elements and keys based on the local schema

func (EntryImpl) SdcpbPathInternal

func (s EntryImpl) SdcpbPathInternal(spath []string) (*sdcpb.Path, error)

sdcpbPathInternal is the internale recursive function to calculate and the sdcpb.Path, with its elements and keys based on the local schema

func (EntryImpl) String

func (s EntryImpl) String() string

String returns a string representation of the Entry

func (EntryImpl) StringIndent

func (s EntryImpl) StringIndent(result []string) []string

StringIndent returns the sharedEntryAttributes in its string representation The string is intented according to the nesting level in the yang model

func (EntryImpl) ToJson added in v0.0.44

func (s EntryImpl) ToJson(onlyNewOrUpdated bool) (any, error)

func (EntryImpl) ToJsonIETF added in v0.0.44

func (s EntryImpl) ToJsonIETF(onlyNewOrUpdated bool) (any, error)

func (EntryImpl) ToXML added in v0.0.44

func (s EntryImpl) ToXML(onlyNewOrUpdated, honorNamespace, operationWithNamespace, useOperationRemove bool) (*etree.Document, error)

ToXML yields the xml representation of the tree. Either updates only (onlyNewOrUpdated flag) or the actual view on the whole tree. If honorNamespace is set, the xml elements will carry their respective namespace attributes. If operationWithNamespace is set, the operation attributes added to the to be deleted alements will also carry the Netconf Base namespace. If useOperationRemove is set, the remove operation will be used for deletes, instead of the delete operation.

func (EntryImpl) Validate

func (s EntryImpl) Validate(ctx context.Context, resultChan chan<- *types.ValidationResultEntry, concurrent bool)

Validate is the highlevel function to perform validation. it will multiplex all the different Validations that need to happen

func (EntryImpl) Walk

func (s EntryImpl) Walk(f EntryVisitor) error

Walk takes the EntryVisitor and applies it to every Entry in the tree

type EntrySlice added in v0.0.44

type EntrySlice []Entry

type EntryVisitor

type EntryVisitor func(s *sharedEntryAttributes) error

type LeafEntry

type LeafEntry struct {
	*cache.Update

	IsNew              bool
	Delete             bool
	DeleteOnlyIntended bool
	IsUpdated          bool
	// contains filtered or unexported fields
}

LeafEntry stores the *cache.Update along with additional attributes. These Attributes indicate if the entry is to be deleted / added (new) or updated.

func NewLeafEntry

func NewLeafEntry(c *cache.Update, flags *UpdateInsertFlags, parent Entry) *LeafEntry

NewLeafEntry constructor for a new LeafEntry

func (*LeafEntry) DropDeleteFlag added in v0.0.50

func (l *LeafEntry) DropDeleteFlag()

func (*LeafEntry) GetDeleteFlag added in v0.0.50

func (l *LeafEntry) GetDeleteFlag() bool

func (*LeafEntry) GetDeleteOnlyIntendedFlag added in v0.0.54

func (l *LeafEntry) GetDeleteOnlyIntendedFlag() bool

func (*LeafEntry) GetEntry added in v0.0.42

func (l *LeafEntry) GetEntry() Entry

func (*LeafEntry) GetNewFlag added in v0.0.50

func (l *LeafEntry) GetNewFlag() bool

func (*LeafEntry) GetRootBasedEntryChain added in v0.0.42

func (l *LeafEntry) GetRootBasedEntryChain() []Entry

func (*LeafEntry) GetUpdateFlag added in v0.0.50

func (l *LeafEntry) GetUpdateFlag() bool

func (*LeafEntry) MarkDelete

func (l *LeafEntry) MarkDelete(onlyIntended bool)

MarkDelete indicate that the entry is to be deleted

func (*LeafEntry) MarkNew added in v0.0.54

func (l *LeafEntry) MarkNew()

func (*LeafEntry) MarkUpdate

func (l *LeafEntry) MarkUpdate(u *cache.Update)

MarkUpdate indicate that the entry is an Updated value

func (*LeafEntry) String

func (l *LeafEntry) String() string

String returns a string representation of the LeafEntry

type LeafEntryFilter

type LeafEntryFilter func(*LeafEntry) bool

type LeafVariantSlice added in v0.0.42

type LeafVariantSlice []*LeafEntry

func (LeafVariantSlice) ToCacheUpdateSlice added in v0.0.42

func (lvs LeafVariantSlice) ToCacheUpdateSlice() []*cache.Update

type LeafVariants

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

func (*LeafVariants) Add added in v0.0.50

func (lv *LeafVariants) Add(le *LeafEntry)

func (*LeafVariants) GetByOwner

func (lv *LeafVariants) GetByOwner(owner string) *LeafEntry

GetByOwner returns the entry that is owned by the given owner, returns nil if no entry exists.

func (*LeafVariants) GetHighestPrecedence

func (lv *LeafVariants) GetHighestPrecedence(onlyNewOrUpdated bool, includeDefaults bool) *LeafEntry

GetHighesNewUpdated returns the LeafEntry with the highes priority nil if no leaf entry exists.

func (*LeafVariants) GetHighestPrecedenceValue

func (lv *LeafVariants) GetHighestPrecedenceValue() int32

func (*LeafVariants) Items added in v0.0.49

func (lv *LeafVariants) Items() iter.Seq[*LeafEntry]

Items iterator for the LeafVariants

func (*LeafVariants) Length added in v0.0.49

func (lv *LeafVariants) Length() int

type PathSet

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

func NewPathSet

func NewPathSet() *PathSet

func (*PathSet) AddPath

func (p *PathSet) AddPath(path []string)

func (*PathSet) GetPaths

func (p *PathSet) GetPaths() PathSlices

func (*PathSet) Join

func (p *PathSet) Join(other *PathSet)

type PathSlice

type PathSlice []string

PathSlice is a single Path represented as a string slice

func (PathSlice) String added in v0.0.40

func (p PathSlice) String() string

func (PathSlice) ToStringSlice added in v0.0.40

func (p PathSlice) ToStringSlice() []string

type PathSlices added in v0.0.40

type PathSlices []PathSlice

PathSlices is the slice collection of multiple PathSlice objects.

func (PathSlices) StringSlice added in v0.0.40

func (p PathSlices) StringSlice() []string

func (PathSlices) ToStringSlice added in v0.0.40

func (p PathSlices) ToStringSlice() [][]string

type ResultUpdate

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

func (*ResultUpdate) GetTreeEntry

func (r *ResultUpdate) GetTreeEntry() Entry

func (*ResultUpdate) GetUpdate

func (r *ResultUpdate) GetUpdate() *cache.Update

type RootEntry

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

RootEntry the root of the cache.Update tree

func NewTreeRoot

func NewTreeRoot(ctx context.Context, tc *TreeContext) (*RootEntry, error)

NewTreeRoot Instantiate a new Tree Root element.

func (RootEntry) AddCacheUpdateRecursive

func (s RootEntry) AddCacheUpdateRecursive(ctx context.Context, c *cache.Update, flags *UpdateInsertFlags) (Entry, error)

AddCacheUpdateRecursive recursively adds the given cache.Update to the tree. Thereby creating all the entries along the path. if the entries along th path already exist, the existing entries are called to add the Update.

func (*RootEntry) AddCacheUpdatesRecursive added in v0.0.54

func (r *RootEntry) AddCacheUpdatesRecursive(ctx context.Context, us UpdateSlice, flags *UpdateInsertFlags) error

func (*RootEntry) DeepCopy added in v0.0.54

func (r *RootEntry) DeepCopy(ctx context.Context) (*RootEntry, error)

func (RootEntry) FilterChilds added in v0.0.43

func (s RootEntry) FilterChilds(keys map[string]string) ([]Entry, error)

FilterChilds returns the child entries (skipping the key entries in the tree) that match the given keys. The keys do not need to match all levels of keys, in which case the key level is considered a wildcard match (*)

func (RootEntry) FinishInsertionPhase

func (s RootEntry) FinishInsertionPhase(ctx context.Context)

FinishInsertionPhase certain values that are costly to calculate but used multiple times will be calculated and stored for later use. However therefore the insertion phase into the tree needs to be over. Calling this function indicated the end of the phase and thereby triggers the calculation

func (*RootEntry) GetAncestorSchema

func (r *RootEntry) GetAncestorSchema() (*sdcpb.SchemaElem, int)

func (RootEntry) GetByOwner

func (s RootEntry) GetByOwner(owner string, result []*LeafEntry) []*LeafEntry

GetByOwner returns all the LeafEntries that belong to a certain owner.

func (*RootEntry) GetDeletes

func (r *RootEntry) GetDeletes(aggregatePaths bool) (DeleteEntriesList, error)

GetDeletes returns the paths that due to the Tree content are to be deleted from the southbound device.

func (*RootEntry) GetDeletesForOwner

func (r *RootEntry) GetDeletesForOwner(owner string) PathSlices

GetDeletesForOwner returns the deletes that have been calculated for the given intent / owner

func (RootEntry) GetFirstAncestorWithSchema

func (s RootEntry) GetFirstAncestorWithSchema() (Entry, int)

GetAncestorSchema returns the schema of the parent node if the schema is set. if the parent has no schema (is a key element in the tree) it will recurs the call to the parents parent. the level of recursion is indicated via the levelUp attribute

func (*RootEntry) GetHighestPrecedence

func (r *RootEntry) GetHighestPrecedence(onlyNewOrUpdated bool) LeafVariantSlice

GetHighesPrecedence return the new cache.Update entried from the tree that are the highes priority. If the onlyNewOrUpdated option is set to true, only the New or Updated entries will be returned It will append to the given list and provide a new pointer to the slice

func (RootEntry) GetLevel

func (s RootEntry) GetLevel() int

GetLevel returns the level / depth position of this element in the tree

func (RootEntry) GetParent

func (s RootEntry) GetParent() Entry

GetParent returns the parent entry

func (RootEntry) GetRoot added in v0.0.42

func (s RootEntry) GetRoot() Entry

func (RootEntry) GetRootBasedEntryChain added in v0.0.42

func (s RootEntry) GetRootBasedEntryChain() []Entry

func (RootEntry) GetSchema

func (s RootEntry) GetSchema() *sdcpb.SchemaElem

GetSchema return the schema fiels of the Entry

func (RootEntry) GetSchemaKeys

func (s RootEntry) GetSchemaKeys() []string

GetSchemaKeys checks for the schema of the entry, and returns the defined keys

func (*RootEntry) GetUpdatesForOwner

func (r *RootEntry) GetUpdatesForOwner(owner string) UpdateSlice

GetUpdatesForOwner returns the updates that have been calculated for the given intent / owner

func (RootEntry) ImportConfig added in v0.0.44

func (s RootEntry) ImportConfig(ctx context.Context, t importer.ImportConfigAdapter, intentName string, intentPrio int32) error

func (RootEntry) IsRoot

func (s RootEntry) IsRoot() bool

IsRoot returns true if the element has no parent elements, hence is the root of the tree

func (*RootEntry) LoadIntendedStoreOwnerData

func (r *RootEntry) LoadIntendedStoreOwnerData(ctx context.Context, owner string, deleteOnlyIntended bool) (UpdateSlice, error)

func (RootEntry) Navigate

func (s RootEntry) Navigate(ctx context.Context, path []string, isRootPath bool) (Entry, error)

Navigate move through the tree, returns the Entry that is present under the given path

func (RootEntry) NavigateLeafRef added in v0.0.43

func (s RootEntry) NavigateLeafRef(ctx context.Context) ([]Entry, error)

NavigateLeafRef

func (RootEntry) NavigateSdcpbPath added in v0.0.42

func (s RootEntry) NavigateSdcpbPath(ctx context.Context, pathElems []*sdcpb.PathElem, isRootPath bool) (Entry, error)

func (RootEntry) Path

func (s RootEntry) Path() PathSlice

Path returns the root based path of the Entry

func (RootEntry) PathName

func (s RootEntry) PathName() string

PathName returns the name of the Entry

func (RootEntry) SdcpbPath

func (s RootEntry) SdcpbPath() (*sdcpb.Path, error)

SdcpbPath returns the sdcpb.Path, with its elements and keys based on the local schema

func (RootEntry) SdcpbPathInternal

func (s RootEntry) SdcpbPathInternal(spath []string) (*sdcpb.Path, error)

sdcpbPathInternal is the internale recursive function to calculate and the sdcpb.Path, with its elements and keys based on the local schema

func (*RootEntry) String

func (r *RootEntry) String() string

String returns the string representation of the Tree.

func (RootEntry) StringIndent

func (s RootEntry) StringIndent(result []string) []string

StringIndent returns the sharedEntryAttributes in its string representation The string is intented according to the nesting level in the yang model

func (RootEntry) ToJson added in v0.0.44

func (s RootEntry) ToJson(onlyNewOrUpdated bool) (any, error)

func (RootEntry) ToJsonIETF added in v0.0.44

func (s RootEntry) ToJsonIETF(onlyNewOrUpdated bool) (any, error)

func (*RootEntry) ToProtoDeletes added in v0.0.44

func (r *RootEntry) ToProtoDeletes(ctx context.Context) ([]*sdcpb.Path, error)

func (*RootEntry) ToProtoUpdates added in v0.0.44

func (r *RootEntry) ToProtoUpdates(ctx context.Context, onlyNewOrUpdated bool) ([]*sdcpb.Update, error)

func (RootEntry) ToXML added in v0.0.44

func (s RootEntry) ToXML(onlyNewOrUpdated, honorNamespace, operationWithNamespace, useOperationRemove bool) (*etree.Document, error)

ToXML yields the xml representation of the tree. Either updates only (onlyNewOrUpdated flag) or the actual view on the whole tree. If honorNamespace is set, the xml elements will carry their respective namespace attributes. If operationWithNamespace is set, the operation attributes added to the to be deleted alements will also carry the Netconf Base namespace. If useOperationRemove is set, the remove operation will be used for deletes, instead of the delete operation.

func (*RootEntry) Validate

func (r *RootEntry) Validate(ctx context.Context, concurrent bool) types.ValidationResults

func (RootEntry) Walk

func (s RootEntry) Walk(f EntryVisitor) error

Walk takes the EntryVisitor and applies it to every Entry in the tree

type TreeCacheClient added in v0.0.54

type TreeCacheClient interface {
	// RefreshCaches refresh the running and intended Index cache
	RefreshCaches(ctx context.Context) error

	// CACHE based Functions
	// ReadIntended retrieves the highes priority value from the intended store
	Read(ctx context.Context, opts *cache.Opts, paths [][]string) []*cache.Update

	ReadRunningPath(ctx context.Context, path PathSlice) (*cache.Update, error)
	ReadRunningFull(ctx context.Context) ([]*cache.Update, error)
	GetBranchesHighesPrecedence(ctx context.Context, path []string, filters ...CacheUpdateFilter) int32
	ReadCurrentUpdatesHighestPriorities(ctx context.Context, ccp PathSlices, count uint64) UpdateSlice
	IntendedPathExists(ctx context.Context, path []string) (bool, error)
	ReadUpdatesOwner(ctx context.Context, owner string) UpdateSlice
}

type TreeCacheClientImpl added in v0.0.54

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

func NewTreeCacheClient added in v0.0.54

func NewTreeCacheClient(datastore string, cc cache.Client) *TreeCacheClientImpl

func (*TreeCacheClientImpl) GetBranchesHighesPrecedence added in v0.0.54

func (c *TreeCacheClientImpl) GetBranchesHighesPrecedence(ctx context.Context, path []string, filters ...CacheUpdateFilter) int32

func (*TreeCacheClientImpl) IntendedPathExists added in v0.0.54

func (t *TreeCacheClientImpl) IntendedPathExists(ctx context.Context, path []string) (bool, error)

func (*TreeCacheClientImpl) Read added in v0.0.54

func (c *TreeCacheClientImpl) Read(ctx context.Context, opts *cache.Opts, paths [][]string) []*cache.Update

func (*TreeCacheClientImpl) ReadCurrentUpdatesHighestPriorities added in v0.0.54

func (c *TreeCacheClientImpl) ReadCurrentUpdatesHighestPriorities(ctx context.Context, ccp PathSlices, count uint64) UpdateSlice

func (*TreeCacheClientImpl) ReadRunningFull added in v0.0.54

func (c *TreeCacheClientImpl) ReadRunningFull(ctx context.Context) ([]*cache.Update, error)

ReadRunning reads the value from running if the value does not exist, nil is returned

func (*TreeCacheClientImpl) ReadRunningPath added in v0.0.54

func (c *TreeCacheClientImpl) ReadRunningPath(ctx context.Context, path PathSlice) (*cache.Update, error)

ReadRunning reads the value from running if the value does not exist, nil is returned

func (*TreeCacheClientImpl) ReadUpdatesOwner added in v0.0.54

func (c *TreeCacheClientImpl) ReadUpdatesOwner(ctx context.Context, owner string) UpdateSlice

func (*TreeCacheClientImpl) RefreshCaches added in v0.0.54

func (c *TreeCacheClientImpl) RefreshCaches(ctx context.Context) error

type TreeContext

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

func NewTreeContext

func NewTreeContext(cc TreeCacheClient, sc schemaClient.SchemaClientBound, actualOwner string) *TreeContext

func (*TreeContext) GetActualOwner

func (t *TreeContext) GetActualOwner() string

func (*TreeContext) GetTreeSchemaCacheClient added in v0.0.54

func (t *TreeContext) GetTreeSchemaCacheClient() TreeCacheClient

func (*TreeContext) SetActualOwner added in v0.0.54

func (t *TreeContext) SetActualOwner(owner string)

func (*TreeContext) SetRoot

func (t *TreeContext) SetRoot(e Entry) error

type UpdateInsertFlags added in v0.0.54

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

func NewUpdateInsertFlags added in v0.0.54

func NewUpdateInsertFlags() *UpdateInsertFlags

NewUpdateInsertFlags returns a new *UpdateInsertFlags instance with all values set to false, so not new, and not marked for deletion

func (*UpdateInsertFlags) Apply added in v0.0.54

func (f *UpdateInsertFlags) Apply(le *LeafEntry)

func (*UpdateInsertFlags) GetDeleteFlag added in v0.0.54

func (f *UpdateInsertFlags) GetDeleteFlag() bool

func (*UpdateInsertFlags) GetDeleteOnlyIntendedFlag added in v0.0.54

func (f *UpdateInsertFlags) GetDeleteOnlyIntendedFlag() bool

func (*UpdateInsertFlags) GetNewFlag added in v0.0.54

func (f *UpdateInsertFlags) GetNewFlag() bool

func (*UpdateInsertFlags) SetDeleteFlag added in v0.0.54

func (f *UpdateInsertFlags) SetDeleteFlag()

func (*UpdateInsertFlags) SetDeleteOnlyUpdatedFlag added in v0.0.54

func (f *UpdateInsertFlags) SetDeleteOnlyUpdatedFlag()

func (*UpdateInsertFlags) SetNewFlag added in v0.0.54

func (f *UpdateInsertFlags) SetNewFlag()

type UpdateSlice

type UpdateSlice []*cache.Update

UpdateSlice A slice of *cache.Update, that defines additional helper functions.

func (UpdateSlice) GetFirstPriorityValue added in v0.0.54

func (u UpdateSlice) GetFirstPriorityValue() int32

GetFirstPriorityValue returns the priority of the first element or math.MaxInt32 if len() is zero

func (UpdateSlice) GetLowestPriorityValue

func (u UpdateSlice) GetLowestPriorityValue(filters []CacheUpdateFilter) int32

GetHighesPriorityValue returns the highes priority value of all the containing Updates

func (UpdateSlice) ToPathSet added in v0.0.54

func (u UpdateSlice) ToPathSet() *PathSet

Directories

Path Synopsis
xml

Jump to

Keyboard shortcuts

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