diff --git a/nucleus/southbound.go b/nucleus/southbound.go index 1e27e79103a4c24ca9b9a9bbc203134618501770..2a31d78f270f01e0cb153cdca907ee9422cfbc25 100644 --- a/nucleus/southbound.go +++ b/nucleus/southbound.go @@ -12,9 +12,12 @@ import ( // SouthboundInterface provides an // interface for SBI implementations type SouthboundInterface interface { - // Deprecated + // deprecated SbiIdentifier() string + // SetNode injects SBI specific model + // representation to the transport. + // Needed for type assertion. SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error Schema() *ytypes.Schema } @@ -22,11 +25,19 @@ type SouthboundInterface interface { type Tapi struct { } +// OpenConfig is the implementation of an OpenConfig SBI. +// The struct holds the YANG schema and a function that +// returns an SBI specific SetNode function. type OpenConfig struct { + // deprecated transport Transport - schema *ytypes.Schema + + schema *ytypes.Schema } +// SbiIdentifier returns the string representation of +// the SBI +// deprecated func (oc *OpenConfig) SbiIdentifier() string { return "openconfig" } @@ -39,7 +50,10 @@ func (oc *OpenConfig) Schema() *ytypes.Schema { return schema } -func (oc *OpenConfig)SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error { +// SetNode injects OpenConfig specific model +// representation to the transport. +// Needed for type assertion. +func (oc *OpenConfig) SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error { return func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error { if err := ytypes.SetNode(schema, root.(*openconfig.Device), path, val, opts...); err != nil { return err @@ -48,9 +62,14 @@ func (oc *OpenConfig)SetNode() func(schema *yang.Entry, root interface{}, path * } } +// deprecated +// Use for prototyping only. +// Use OpenConfig instead type AristaOC struct { + // deprecated transport Transport - schema *ytypes.Schema + + schema *ytypes.Schema } func (oc *AristaOC) SbiIdentifier() string { @@ -65,7 +84,10 @@ func (oc *AristaOC) Schema() *ytypes.Schema { return schema } -func (oc *AristaOC)SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error { +// SetNode injects AristaOC specific model +// representation to the transport. +// Needed for type assertion. +func (oc *AristaOC) SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error { return func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error { if err := ytypes.SetNode(schema, root.(*arista.Device), path, val, opts...); err != nil { return err