Documentation
¶
Index ¶
- Constants
- Variables
- func DefaultValueExists(schema *sdcpb.SchemaElem) bool
- func DefaultValueRetrieve(schema *sdcpb.SchemaElem, path *sdcpb.Path) (*types.Update, error)
- func FilterDeleted(l *LeafEntry) bool
- func FilterDeletedNotExplicitDelete(l *LeafEntry) bool
- func FilterNew(l *LeafEntry) bool
- func FilterNonDeleted(l *LeafEntry) bool
- func FilterNonDeletedButNewOrUpdated(l *LeafEntry) bool
- func FilterUpdated(l *LeafEntry) bool
- func HighestPrecedenceFilterAll(le *LeafEntry) bool
- func HighestPrecedenceFilterWithoutDeleted(le *LeafEntry) bool
- func HighestPrecedenceFilterWithoutNew(le *LeafEntry) bool
- func LeafEntriesToUpdates(l []*LeafEntry) []*types.Update
- func Unfiltered(l *LeafEntry) bool
- type BaseVisitor
- type BlameConfigVisitor
- type DeletePathPrio
- type DeletePathSet
- func (dp *DeletePathSet) Add(intentName string, prio int32, pathset *sdcpb.PathSet)
- func (dp *DeletePathSet) DeepCopy() *DeletePathSet
- func (dp *DeletePathSet) GetByIntentName(intentName string) *sdcpb.PathSet
- func (dp *DeletePathSet) Items() iter.Seq[*DeletePathPrio]
- func (dp *DeletePathSet) RemoveIntentDeletes(intentName string) *sdcpb.PathSet
- type DescendMethod
- type Entry
- type EntryMap
- type EntrySlice
- type EntryVisitor
- type ExplicitDeleteVisitor
- type ExplicitDeleteVisitors
- type HighestPrecedenceFilter
- type LeafEntry
- func (l *LeafEntry) Compare(other *LeafEntry) int
- func (l *LeafEntry) DeepCopy(parentEntry Entry) *LeafEntry
- func (l *LeafEntry) DropDeleteFlag() *LeafEntry
- func (l *LeafEntry) Equal(other *LeafEntry) bool
- func (l *LeafEntry) GetDeleteFlag() bool
- func (l *LeafEntry) GetDeleteOnlyIntendedFlag() bool
- func (l *LeafEntry) GetEntry() Entry
- func (l *LeafEntry) GetExplicitDeleteFlag() bool
- func (l *LeafEntry) GetNewFlag() bool
- func (l *LeafEntry) GetUpdate() *types.Update
- func (l *LeafEntry) GetUpdateFlag() bool
- func (l *LeafEntry) MarkDelete(onlyIntended bool)
- func (l *LeafEntry) MarkExpliciteDelete()
- func (l *LeafEntry) MarkNew()
- func (l *LeafEntry) MarkUpdate(u *types.Update)
- func (l *LeafEntry) RemoveDeleteFlag() *LeafEntry
- func (l *LeafEntry) String() string
- type LeafEntryFilter
- type LeafVariantEntries
- type LeafVariantEntry
- type LeafVariantSlice
- type LeafVariants
- func (lv *LeafVariants) Add(le *LeafEntry)
- func (lv *LeafVariants) AddExplicitDeleteEntry(intentName string, priority int32) *LeafEntry
- func (lv *LeafVariants) DeepCopy(tc *TreeContext, parent Entry) *LeafVariants
- func (lv *LeafVariants) DeleteByOwner(owner string) *LeafEntry
- func (lv *LeafVariants) GetByOwner(owner string) *LeafEntry
- func (lv *LeafVariants) GetDeviations(ch chan<- *types.DeviationEntry, isActiveCase bool)
- func (lv *LeafVariants) GetHighestPrecedence(onlyNewOrUpdated bool, includeDefaults bool, includeExplicitDelete bool) *LeafEntry
- func (lv *LeafVariants) GetHighestPrecedenceValue(filter HighestPrecedenceFilter) int32
- func (lv *LeafVariants) GetRunning() *LeafEntry
- func (lv *LeafVariants) Items() iter.Seq[*LeafEntry]
- func (lv *LeafVariants) Length() int
- func (lv *LeafVariants) MarkOwnerForDeletion(owner string, onlyIntended bool) *LeafEntry
- type MarkOwnerDeleteVisitor
- type RootEntry
- func (r *RootEntry) AddExplicitDeletes(intentName string, priority int32, pathset *sdcpb.PathSet)
- func (s RootEntry) AddUpdateRecursive(ctx context.Context, path *sdcpb.Path, u *types.Update, ...) (Entry, error)
- func (r *RootEntry) AddUpdatesRecursive(ctx context.Context, us types.UpdateSlice, flags *types.UpdateInsertFlags) error
- func (s RootEntry) BreadthSearch(ctx context.Context, sdcpbPath *sdcpb.Path) ([]Entry, error)
- func (r *RootEntry) DeepCopy(ctx context.Context) (*RootEntry, error)
- func (s RootEntry) DeleteBranch(ctx context.Context, path *sdcpb.Path, owner string) error
- func (r *RootEntry) DeleteBranchPaths(ctx context.Context, deletes types.DeleteEntriesList, intentName string) error
- func (s RootEntry) FilterChilds(keys map[string]string) ([]Entry, error)
- func (r *RootEntry) FinishInsertionPhase(ctx context.Context) error
- func (r *RootEntry) GetAncestorSchema() (*sdcpb.SchemaElem, int)
- func (s RootEntry) GetByOwner(owner string, result []*LeafEntry) LeafVariantSlice
- func (s RootEntry) GetChilds(d DescendMethod) EntryMap
- func (r *RootEntry) GetDeletes(aggregatePaths bool) (types.DeleteEntriesList, error)
- func (r *RootEntry) GetDeletesForOwner(owner string) sdcpb.Paths
- func (r *RootEntry) GetDeviations(ch chan<- *types.DeviationEntry)
- func (s RootEntry) GetFirstAncestorWithSchema() (Entry, int)
- func (r *RootEntry) GetHighestPrecedence(onlyNewOrUpdated bool) LeafVariantSlice
- func (s RootEntry) GetLeafVariantEntries() LeafVariantEntries
- func (s RootEntry) GetLevel() int
- func (s RootEntry) GetListChilds() ([]Entry, error)
- func (s RootEntry) GetParent() Entry
- func (s RootEntry) GetRoot() Entry
- func (s RootEntry) GetRootBasedEntryChain() []Entry
- func (s RootEntry) GetSchema() *sdcpb.SchemaElem
- func (s RootEntry) GetSchemaKeys() []string
- func (r *RootEntry) GetUpdatesForOwner(owner string) types.UpdateSlice
- func (s RootEntry) HoldsLeafvariants() bool
- func (r *RootEntry) ImportConfig(ctx context.Context, basePath *sdcpb.Path, ...) error
- func (s RootEntry) IsRoot() bool
- func (s RootEntry) NavigateLeafRef(ctx context.Context) ([]Entry, error)
- func (s RootEntry) NavigateSdcpbPath(ctx context.Context, path *sdcpb.Path) (Entry, error)
- func (s RootEntry) PathName() string
- func (r *RootEntry) RemoveExplicitDeletes(intentName string) *sdcpb.PathSet
- func (s RootEntry) SdcpbPath() *sdcpb.Path
- func (r *RootEntry) String() string
- func (s RootEntry) StringIndent(result []string) []string
- func (s RootEntry) ToJson(onlyNewOrUpdated bool) (any, error)
- func (s RootEntry) ToJsonIETF(onlyNewOrUpdated bool) (any, error)
- func (r *RootEntry) ToProtoDeletes(ctx context.Context) ([]*sdcpb.Path, error)
- func (r *RootEntry) ToProtoUpdates(ctx context.Context, onlyNewOrUpdated bool) ([]*sdcpb.Update, error)
- func (s RootEntry) ToXML(...) (*etree.Document, error)
- func (r *RootEntry) TreeExport(owner string, priority int32, deviation bool) (*tree_persist.Intent, error)
- func (r *RootEntry) Validate(ctx context.Context, vCfg *config.Validation) (types.ValidationResults, *types.ValidationStats)
- func (s RootEntry) Walk(ctx context.Context, v EntryVisitor) error
- type TreeContext
Constants ¶
Variables ¶
var (
ErrorIntentNotPresent = fmt.Errorf("intent not present")
)
Functions ¶
func DefaultValueExists ¶ added in v0.0.56
func DefaultValueExists(schema *sdcpb.SchemaElem) bool
func DefaultValueRetrieve ¶ added in v0.0.56
func FilterDeleted ¶
FilterDeleted Accepts all Entries that are marked as deleted
func FilterDeletedNotExplicitDelete ¶ added in v0.0.63
func FilterNonDeleted ¶
FilterNonDeleted Accepts all Entries that are not marked as deleted
func FilterNonDeletedButNewOrUpdated ¶
FilterNonDeletedButNewOrUpdated Accepts all Entries that are New or Updated and not Deleted.
func FilterUpdated ¶
FilterUpdated Accepts all entries that are updates
func HighestPrecedenceFilterAll ¶ added in v0.0.56
func HighestPrecedenceFilterWithoutDeleted ¶ added in v0.0.56
func HighestPrecedenceFilterWithoutNew ¶ added in v0.0.56
func LeafEntriesToUpdates ¶ added in v0.0.56
LeafEntriesToCacheUpdates
func Unfiltered ¶
Unfiltered accepts all entries without any filtering
Types ¶
type BaseVisitor ¶ added in v0.0.63
type BaseVisitor struct{}
BaseVisitor abstract base visitor implementation that all the concrete visitory are ment to embed.
func (*BaseVisitor) DescendMethod ¶ added in v0.0.63
func (b *BaseVisitor) DescendMethod() DescendMethod
func (*BaseVisitor) Up ¶ added in v0.0.63
func (b *BaseVisitor) Up()
type BlameConfigVisitor ¶ added in v0.0.63
type BlameConfigVisitor struct { BaseVisitor // contains filtered or unexported fields }
func NewBlameConfigVisitor ¶ added in v0.0.63
func NewBlameConfigVisitor(includeDefaults bool) *BlameConfigVisitor
func (*BlameConfigVisitor) DescendMethod ¶ added in v0.0.63
func (o *BlameConfigVisitor) DescendMethod() DescendMethod
func (*BlameConfigVisitor) GetResult ¶ added in v0.0.63
func (b *BlameConfigVisitor) GetResult() *sdcpb.BlameTreeElement
func (*BlameConfigVisitor) Up ¶ added in v0.0.63
func (b *BlameConfigVisitor) Up()
type DeletePathPrio ¶ added in v0.0.63
type DeletePathPrio struct {
// contains filtered or unexported fields
}
func NewDeletePathPrio ¶ added in v0.0.63
func NewDeletePathPrio(owner string, prio int32) *DeletePathPrio
func (*DeletePathPrio) DeepCopy ¶ added in v0.0.63
func (ddp *DeletePathPrio) DeepCopy() *DeletePathPrio
func (*DeletePathPrio) GetOwner ¶ added in v0.0.63
func (dpp *DeletePathPrio) GetOwner() string
func (*DeletePathPrio) GetPathSet ¶ added in v0.0.63
func (dpp *DeletePathPrio) GetPathSet() *sdcpb.PathSet
func (*DeletePathPrio) GetPrio ¶ added in v0.0.63
func (dpp *DeletePathPrio) GetPrio() int32
type DeletePathSet ¶ added in v0.0.63
type DeletePathSet struct {
// contains filtered or unexported fields
}
func NewDeletePaths ¶ added in v0.0.63
func NewDeletePaths() *DeletePathSet
func (*DeletePathSet) Add ¶ added in v0.0.63
func (dp *DeletePathSet) Add(intentName string, prio int32, pathset *sdcpb.PathSet)
func (*DeletePathSet) DeepCopy ¶ added in v0.0.63
func (dp *DeletePathSet) DeepCopy() *DeletePathSet
func (*DeletePathSet) GetByIntentName ¶ added in v0.0.63
func (dp *DeletePathSet) GetByIntentName(intentName string) *sdcpb.PathSet
func (*DeletePathSet) Items ¶ added in v0.0.63
func (dp *DeletePathSet) Items() iter.Seq[*DeletePathPrio]
func (*DeletePathSet) RemoveIntentDeletes ¶ added in v0.0.63
func (dp *DeletePathSet) RemoveIntentDeletes(intentName string) *sdcpb.PathSet
type DescendMethod ¶ added in v0.0.63
type DescendMethod int
const ( DescendMethodAll DescendMethod = iota DescendMethodActiveChilds )
type Entry ¶
type Entry interface { // PathName returns the last Path element, the name of the Entry PathName() string // GetLevel returns the depth of the Entry in the tree GetLevel() int // AddUpdateRecursive Add the given cache.Update to the tree AddUpdateRecursive(ctx context.Context, relativePath *sdcpb.Path, u *types.Update, flags *types.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, includeDefaults bool, includeExplicitDelete bool) LeafVariantSlice // GetByOwner returns the branches Updates by owner GetByOwner(owner string, result []*LeafEntry) LeafVariantSlice // // markOwnerDelete Sets the delete flag on all the LeafEntries belonging to the given owner. // MarkOwnerDelete(o string, onlyIntended bool) // GetDeletes returns the cache-updates that are not updated, have no lower priority value left and hence should be deleted completely GetDeletes(entries []types.DeleteEntry, aggregatePaths bool) ([]types.DeleteEntry, error) // Walk takes the EntryVisitor and applies it to every Entry in the tree Walk(ctx context.Context, v EntryVisitor) error // Validate kicks off validation Validate(ctx context.Context, resultChan chan<- *types.ValidationResultEntry, stats *types.ValidationStats, vCfg *config.Validation) // 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) error // GetParent returns the parent entry GetParent() 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 // 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 GetChilds(DescendMethod) EntryMap 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, importer importer.ImportConfigAdapterElement, intentName string, intentPrio int32, flags *types.UpdateInsertFlags) error TreeExport(owner string) ([]*tree_persist.TreeElement, error) // DeleteBranch Deletes from the tree, all elements of the PathSlice defined branch of the given owner DeleteBranch(ctx context.Context, path *sdcpb.Path, owner string) (err error) GetDeviations(ch chan<- *types.DeviationEntry, activeCase bool) // GetListChilds collects all the childs of the list. In the tree we store them seperated into their key branches. // this is collecting all the last level key entries. GetListChilds() ([]Entry, error) BreadthSearch(ctx context.Context, path *sdcpb.Path) ([]Entry, error) DeepCopy(tc *TreeContext, parent Entry) (Entry, error) GetLeafVariantEntries() LeafVariantEntries // returns true if the Entry contains leafvariants (presence container, field or leaflist) HoldsLeafvariants() bool // contains filtered or unexported methods }
Entry is the primary Element of the Tree.
type EntrySlice ¶ added in v0.0.44
type EntrySlice []Entry
type EntryVisitor ¶
type EntryVisitor interface { DescendMethod() DescendMethod Visit(ctx context.Context, e Entry) error Up() }
type ExplicitDeleteVisitor ¶ added in v0.0.63
type ExplicitDeleteVisitor struct { BaseVisitor // contains filtered or unexported fields }
func NewExplicitDeleteVisitor ¶ added in v0.0.63
func NewExplicitDeleteVisitor(owner string, priority int32) *ExplicitDeleteVisitor
func (*ExplicitDeleteVisitor) GetCreatedExplicitDeleteLeafEntries ¶ added in v0.0.63
func (edv *ExplicitDeleteVisitor) GetCreatedExplicitDeleteLeafEntries() LeafVariantSlice
GetCreatedExplicitDeleteLeafEntries returns all the explicitDelete LeafVariants that where created.
func (*ExplicitDeleteVisitor) GetExplicitDeleteCreationCount ¶ added in v0.0.63
func (edv *ExplicitDeleteVisitor) GetExplicitDeleteCreationCount() int
GetExplicitDeleteCreationCount returns the amount of all the explicitDelete LeafVariants that where created.
type ExplicitDeleteVisitors ¶ added in v0.0.63
type ExplicitDeleteVisitors map[string]*ExplicitDeleteVisitor
ExplicitDeleteVisitors map of *ExplicitDeleteVisitor indexed by the intent name
func (ExplicitDeleteVisitors) Stats ¶ added in v0.0.63
func (e ExplicitDeleteVisitors) Stats() map[string]int
type HighestPrecedenceFilter ¶ added in v0.0.56
type LeafEntry ¶
type LeafEntry struct { *types.Update IsNew bool Delete bool DeleteOnlyIntended bool IsUpdated bool IsExplicitDelete 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 ¶
NewLeafEntry constructor for a new LeafEntry
func (*LeafEntry) Compare ¶ added in v0.0.63
Compare used for slices.SortFunc. Sorts by path and if equal paths then by owner as the second criteria
func (*LeafEntry) DropDeleteFlag ¶ added in v0.0.50
func (*LeafEntry) GetDeleteFlag ¶ added in v0.0.50
func (*LeafEntry) GetDeleteOnlyIntendedFlag ¶ added in v0.0.54
func (*LeafEntry) GetExplicitDeleteFlag ¶ added in v0.0.63
func (*LeafEntry) GetNewFlag ¶ added in v0.0.50
func (*LeafEntry) GetUpdateFlag ¶ added in v0.0.50
func (*LeafEntry) MarkDelete ¶
MarkDelete indicate that the entry is to be deleted
func (*LeafEntry) MarkExpliciteDelete ¶ added in v0.0.63
func (l *LeafEntry) MarkExpliciteDelete()
MarkExpliciteDelete indicate that the entry is to be explicitely deleted
func (*LeafEntry) MarkUpdate ¶
MarkUpdate indicate that the entry is an Updated value
func (*LeafEntry) RemoveDeleteFlag ¶ added in v0.0.61
type LeafEntryFilter ¶
type LeafVariantEntries ¶ added in v0.0.63
type LeafVariantEntries interface { MarkOwnerForDeletion(owner string, onlyIntended bool) *LeafEntry GetHighestPrecedence(onlyNewOrUpdated bool, includeDefaults bool, includeExplicitDeletes bool) *LeafEntry GetRunning() *LeafEntry DeleteByOwner(owner string) *LeafEntry AddExplicitDeleteEntry(owner string, priority int32) *LeafEntry GetByOwner(owner string) *LeafEntry }
type LeafVariantEntry ¶ added in v0.0.63
type LeafVariantSlice ¶ added in v0.0.42
type LeafVariantSlice []*LeafEntry
func (LeafVariantSlice) Equal ¶ added in v0.0.63
func (lvs LeafVariantSlice) Equal(otherLvs LeafVariantSlice) (bool, error)
Equal checks equality of the LeafVariantSlice with the other LeafVariantSlice
func (LeafVariantSlice) String ¶ added in v0.0.63
func (lvs LeafVariantSlice) String() string
func (LeafVariantSlice) ToSdcpbUpdateSlice ¶ added in v0.0.64
func (lvs LeafVariantSlice) ToSdcpbUpdateSlice() []*sdcpb.Update
func (LeafVariantSlice) ToUpdateSlice ¶ added in v0.0.56
func (lvs LeafVariantSlice) ToUpdateSlice() types.UpdateSlice
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) AddExplicitDeleteEntry ¶ added in v0.0.63
func (lv *LeafVariants) AddExplicitDeleteEntry(intentName string, priority int32) *LeafEntry
func (*LeafVariants) DeepCopy ¶ added in v0.0.56
func (lv *LeafVariants) DeepCopy(tc *TreeContext, parent Entry) *LeafVariants
func (*LeafVariants) DeleteByOwner ¶ added in v0.0.56
func (lv *LeafVariants) DeleteByOwner(owner string) *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) GetDeviations ¶ added in v0.0.56
func (lv *LeafVariants) GetDeviations(ch chan<- *types.DeviationEntry, isActiveCase bool)
func (*LeafVariants) GetHighestPrecedence ¶
func (lv *LeafVariants) GetHighestPrecedence(onlyNewOrUpdated bool, includeDefaults bool, includeExplicitDelete bool) *LeafEntry
GetHighesNewUpdated returns the LeafEntry with the highes priority nil if no leaf entry exists.
func (*LeafVariants) GetHighestPrecedenceValue ¶
func (lv *LeafVariants) GetHighestPrecedenceValue(filter HighestPrecedenceFilter) int32
func (*LeafVariants) GetRunning ¶ added in v0.0.60
func (lv *LeafVariants) GetRunning() *LeafEntry
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
func (*LeafVariants) MarkOwnerForDeletion ¶ added in v0.0.56
func (lv *LeafVariants) MarkOwnerForDeletion(owner string, onlyIntended bool) *LeafEntry
MarkOwnerForDeletion searches for a LefVariant of given owner, if it exists the entry is marked for deletion. returning the leafentry if an owner entry was found, nil if not.
type MarkOwnerDeleteVisitor ¶ added in v0.0.63
type MarkOwnerDeleteVisitor struct { BaseVisitor // contains filtered or unexported fields }
func NewMarkOwnerDeleteVisitor ¶ added in v0.0.63
func NewMarkOwnerDeleteVisitor(owner string, onlyIntended bool) *MarkOwnerDeleteVisitor
func (*MarkOwnerDeleteVisitor) GetHitCount ¶ added in v0.0.63
func (o *MarkOwnerDeleteVisitor) GetHitCount() int
GetHitCount returns the number of entries marked for deletion
func (*MarkOwnerDeleteVisitor) GetMatches ¶ added in v0.0.63
func (o *MarkOwnerDeleteVisitor) GetMatches() LeafVariantSlice
GetMatches return all the altered LeafVariants
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) AddExplicitDeletes ¶ added in v0.0.63
func (RootEntry) AddUpdateRecursive ¶ added in v0.0.56
func (s RootEntry) AddUpdateRecursive(ctx context.Context, path *sdcpb.Path, u *types.Update, flags *types.UpdateInsertFlags) (Entry, error)
AddUpdateRecursive 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) AddUpdatesRecursive ¶ added in v0.0.56
func (r *RootEntry) AddUpdatesRecursive(ctx context.Context, us types.UpdateSlice, flags *types.UpdateInsertFlags) error
func (RootEntry) BreadthSearch ¶ added in v0.0.56
func (RootEntry) DeleteBranch ¶ added in v0.0.63
func (*RootEntry) DeleteBranchPaths ¶ added in v0.0.63
func (r *RootEntry) DeleteBranchPaths(ctx context.Context, deletes types.DeleteEntriesList, intentName string) error
DeleteSubtree Deletes from the tree, all elements of the PathSlice defined branch of the given owner. Return values are remainsToExist and error if an error occured.
func (RootEntry) FilterChilds ¶ added in v0.0.43
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 (*RootEntry) GetAncestorSchema ¶
func (r *RootEntry) GetAncestorSchema() (*sdcpb.SchemaElem, int)
func (RootEntry) GetByOwner ¶
func (s RootEntry) GetByOwner(owner string, result []*LeafEntry) LeafVariantSlice
GetByOwner returns all the LeafEntries that belong to a certain owner.
func (RootEntry) GetChilds ¶ added in v0.0.63
func (s RootEntry) GetChilds(d DescendMethod) EntryMap
func (*RootEntry) GetDeletes ¶
func (r *RootEntry) GetDeletes(aggregatePaths bool) (types.DeleteEntriesList, error)
GetDeletes returns the paths that due to the Tree content are to be deleted from the southbound device.
func (*RootEntry) GetDeletesForOwner ¶
GetDeletesForOwner returns the deletes that have been calculated for the given intent / owner
func (*RootEntry) GetDeviations ¶ added in v0.0.56
func (r *RootEntry) GetDeviations(ch chan<- *types.DeviationEntry)
func (RootEntry) GetFirstAncestorWithSchema ¶
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) GetLeafVariantEntries ¶ added in v0.0.63
func (s RootEntry) GetLeafVariantEntries() LeafVariantEntries
func (RootEntry) GetLevel ¶
func (s RootEntry) GetLevel() int
GetLevel returns the level / depth position of this element in the tree
func (RootEntry) GetListChilds ¶ added in v0.0.56
getListChilds collects all the childs of the list. In the tree we store them seperated into their key branches. this is collecting all the last level key entries.
func (RootEntry) GetParent ¶
func (s RootEntry) GetParent() Entry
GetParent returns the parent 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) types.UpdateSlice
GetUpdatesForOwner returns the updates that have been calculated for the given intent / owner
func (RootEntry) HoldsLeafvariants ¶ added in v0.0.63
func (s RootEntry) HoldsLeafvariants() bool
func (*RootEntry) ImportConfig ¶ added in v0.0.44
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) NavigateLeafRef ¶ added in v0.0.43
NavigateLeafRef
func (RootEntry) NavigateSdcpbPath ¶ added in v0.0.42
func (RootEntry) PathName ¶
func (s RootEntry) PathName() string
PathName returns the name of the Entry
func (*RootEntry) RemoveExplicitDeletes ¶ added in v0.0.63
func (RootEntry) SdcpbPath ¶
SdcpbPath returns the sdcpb.Path, with its elements and keys based on the local schema
func (RootEntry) StringIndent ¶
StringIndent returns the sharedEntryAttributes in its string representation The string is intented according to the nesting level in the yang model
func (RootEntry) ToJsonIETF ¶ added in v0.0.44
func (*RootEntry) ToProtoDeletes ¶ added in v0.0.44
func (*RootEntry) ToProtoUpdates ¶ added in v0.0.44
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) TreeExport ¶ added in v0.0.56
func (*RootEntry) Validate ¶
func (r *RootEntry) Validate(ctx context.Context, vCfg *config.Validation) (types.ValidationResults, *types.ValidationStats)
type TreeContext ¶
type TreeContext struct {
// contains filtered or unexported fields
}
func NewTreeContext ¶
func NewTreeContext(sc schemaClient.SchemaClientBound, actualOwner string) *TreeContext
func (*TreeContext) GetActualOwner ¶
func (t *TreeContext) GetActualOwner() string
func (*TreeContext) SetActualOwner ¶ added in v0.0.54
func (t *TreeContext) SetActualOwner(owner string)
func (*TreeContext) SetRoot ¶
func (t *TreeContext) SetRoot(e Entry) error
Source Files
¶
- childMap.go
- choice_case_resolver.go
- default_value.go
- entry.go
- entry_list.go
- entry_map.go
- intent_path_mapping.go
- json.go
- leaf_entry.go
- leaf_entry_filter.go
- leaf_variant_slice.go
- leaf_variants.go
- proto.go
- root_entry.go
- sharedEntryAttributes.go
- sorter.go
- tree_context.go
- validation_entry_leafref.go
- validation_entry_must.go
- visitor_base.go
- visitor_blame_config.go
- visitor_explicit_delete.go
- visitor_mark_owner_delete.go
- xml.go
- yang-parser-adapter.go