Documentation
¶
Overview ¶
Redaction of the fields that the sdc protos mark as sensitive, see options.proto. A message reaches the log either through ProtoJSON or through RedactAttr.
Index ¶
- Constants
- func AddXMLOperation(elem *etree.Element, operation XMLOperation, operationWithNamespace bool, ...)
- func BoolPtr(b bool) *bool
- func FromGNMIPath(pre, p *gnmi.Path) *sdcpb.Path
- func FromGNMITypedValue(ctx context.Context, v *gnmi.TypedValue) *sdcpb.TypedValue
- func GetJsonValue(tv *sdcpb.TypedValue, ietf bool) (any, error)
- func GetNamespaceFromGetSchema(s *sdcpb.SchemaElem) string
- func GetSchemaElemModuleName(s *sdcpb.SchemaElem) (moduleName string)
- func GetSchemaValue(updValue *sdcpb.TypedValue) (interface{}, error)
- func MapApplyFuncToMap[K comparable, V any, X any](m map[K]V, f func(K, V) X) map[K]X
- func MapToSlice[K comparable, V any, X any](m map[K]V, f func(K, V) X) []X
- func MapToString[K comparable, V any](m map[K]V, sep string, format func(K, V) string) string
- func MapToStringEmptyMessage[K comparable, V any](m map[K]V, sep string, format func(K, V) string, emptyMessage string) string
- func NotificationsEqual(n1, n2 *sdcpb.Notification) bool
- func ParseDecimal64(v string) (*sdcpb.Decimal64, error)
- func ProtoJSON(m proto.Message) any
- func RedactAttr(_ []string, a slog.Attr) slog.Attr
- func RedactProto(m proto.Message) proto.Message
- func ToGNMIPath(p *sdcpb.Path) *gnmi.Path
- func ToGNMITypedValue(v *sdcpb.TypedValue) *gnmi.TypedValue
- func ToSchemaNotification(ctx context.Context, n *gnmi.Notification) *sdcpb.Notification
- func TypedValueToXML(parent *etree.Element, tv *sdcpb.TypedValue, name string, namespace string, ...)
- func XmlRecursiveSortElementsByTagName(element *etree.Element)
- type Converter
- func (c *Converter) ExpandContainerValue(ctx context.Context, p *sdcpb.Path, jv any, cs *sdcpb.SchemaElem_Container) ([]*sdcpb.Update, error)
- func (c *Converter) ExpandUpdate(ctx context.Context, upd *sdcpb.Update) ([]*sdcpb.Update, error)
- func (c *Converter) ExpandUpdateKeysAsLeaf(ctx context.Context, upd *sdcpb.Update) ([]*sdcpb.Update, error)
- func (c *Converter) ExpandUpdates(ctx context.Context, updates []*sdcpb.Update) ([]*sdcpb.Update, error)
- type SchemaClientBound
- type XMLOperation
Constants ¶
const (
NcBase1_0 = "urn:ietf:params:xml:ns:netconf:base:1.0"
)
const Redacted = "[REDACTED]"
Redacted is what a secret value looks like in the log.
Variables ¶
This section is empty.
Functions ¶
func AddXMLOperation ¶ added in v0.0.44
func AddXMLOperation(elem *etree.Element, operation XMLOperation, operationWithNamespace bool, useOperationRemove bool)
AddXMLOperation adds the operation Attribute to the given etree.Element if the operation is XMLOperationDelete or XMLOperationRemove, the useOperationRemove parameter defines which operation of these is finally used. if XMLOperationReplace is providede, the replace operation is addded.
func FromGNMITypedValue ¶
func FromGNMITypedValue(ctx context.Context, v *gnmi.TypedValue) *sdcpb.TypedValue
func GetJsonValue ¶ added in v0.0.44
func GetJsonValue(tv *sdcpb.TypedValue, ietf bool) (any, error)
func GetNamespaceFromGetSchema ¶ added in v0.0.44
func GetNamespaceFromGetSchema(s *sdcpb.SchemaElem) string
func GetSchemaElemModuleName ¶ added in v0.0.44
func GetSchemaElemModuleName(s *sdcpb.SchemaElem) (moduleName string)
func GetSchemaValue ¶
func GetSchemaValue(updValue *sdcpb.TypedValue) (interface{}, error)
func MapApplyFuncToMap ¶ added in v0.0.64
func MapApplyFuncToMap[K comparable, V any, X any](m map[K]V, f func(K, V) X) map[K]X
func MapToSlice ¶ added in v0.0.64
func MapToSlice[K comparable, V any, X any](m map[K]V, f func(K, V) X) []X
MapToSlice executes a function on all the elements of a map, taking in key and value and returns the collected results in a slice
func MapToString ¶ added in v0.0.63
func MapToString[K comparable, V any](m map[K]V, sep string, format func(K, V) string) string
MapToString converts a map into a string using a formatter function.
func MapToStringEmptyMessage ¶ added in v0.0.63
func MapToStringEmptyMessage[K comparable, V any](m map[K]V, sep string, format func(K, V) string, emptyMessage string) string
MapToStringEmptyMessage converts a map into a string using a formatter function, returning the emptyMessage if the map does not contain entries.
func NotificationsEqual ¶
func NotificationsEqual(n1, n2 *sdcpb.Notification) bool
func ProtoJSON ¶ added in v0.0.72
ProtoJSON wraps m for logging as a nested JSON object with the secret values replaced. Prefer it over passing m to the logger, which redacts only if the handler has RedactAttr installed.
func RedactAttr ¶ added in v0.0.72
RedactAttr is a ReplaceAttr hook for slog.HandlerOptions that runs every message reaching the logger through ProtoJSON, on its own or in a slice.
func RedactProto ¶ added in v0.0.72
RedactProto returns a copy of m with every secret field redacted.
func ToGNMITypedValue ¶
func ToGNMITypedValue(v *sdcpb.TypedValue) *gnmi.TypedValue
func ToSchemaNotification ¶
func ToSchemaNotification(ctx context.Context, n *gnmi.Notification) *sdcpb.Notification
func TypedValueToXML ¶ added in v0.0.44
func XmlRecursiveSortElementsByTagName ¶ added in v0.0.44
XmlRecursiveSortElementsByTagName - is a function used in testing to recursively sort XML elements by their tag name
Types ¶
type Converter ¶ added in v0.0.44
type Converter struct {
// contains filtered or unexported fields
}
func NewConverter ¶ added in v0.0.44
func NewConverter(scb SchemaClientBound) *Converter
func (*Converter) ExpandContainerValue ¶ added in v0.0.44
func (*Converter) ExpandUpdate ¶ added in v0.0.44
expandUpdate Expands the value, in case of json to single typed value updates
func (*Converter) ExpandUpdateKeysAsLeaf ¶ added in v0.0.44
type SchemaClientBound ¶ added in v0.0.44
type SchemaClientBound interface {
// GetSchema retrieves the schema for the given path
GetSchemaSdcpbPath(ctx context.Context, path *sdcpb.Path) (*sdcpb.GetSchemaResponse, error)
// GetSchemaElements retrieves the Schema Elements for all levels of the given path
GetSchemaElements(ctx context.Context, p *sdcpb.Path, done chan struct{}) (chan *sdcpb.GetSchemaResponse, error)
}
SchemaClientBound provides access to a certain vendor + model + version based schema
type XMLOperation ¶ added in v0.0.44
type XMLOperation string
const ( XMLOperationDelete XMLOperation = "delete" XMLOperationRemove XMLOperation = "remove" XMLOperationReplace XMLOperation = "replace" )