Skip to content

Commit 927dc09

Browse files
adding fix for leafref resolving in to typed values; adding fix for deleting prefixes from key names as well
1 parent f804b64 commit 927dc09

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

pkg/utils/converter.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -480,11 +480,8 @@ func convertStringToTv(schemaType *sdcpb.SchemaLeafType, v string, ts uint64) (*
480480
Timestamp: ts,
481481
Value: &sdcpb.TypedValue_IdentityrefVal{IdentityrefVal: &sdcpb.IdentityRef{Value: name, Prefix: prefix, Module: module}},
482482
}, nil
483-
case "leafref": // TODO: query leafref type
484-
return &sdcpb.TypedValue{
485-
Timestamp: ts,
486-
Value: &sdcpb.TypedValue_StringVal{StringVal: v},
487-
}, nil
483+
case "leafref":
484+
return convertStringToTv(schemaType.LeafrefTargetType, v, ts)
488485
case "union":
489486
for _, ut := range schemaType.GetUnionTypes() {
490487
tv, err := convertStringToTv(ut, v, ts)

pkg/utils/path.go

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -358,12 +358,29 @@ func ToXPath(p *sdcpb.Path, noKeys bool) string {
358358
}
359359

360360
func StripPathElemPrefixPath(p *sdcpb.Path) {
361-
for _, pe := range p.Elem {
362-
before, name, found := strings.Cut(pe.Name, ":")
363-
if !found {
364-
name = before
361+
for _, pe := range p.GetElem() {
362+
if i := strings.Index(pe.Name, ":"); i > 0 {
363+
pe.Name = pe.Name[i+1:]
364+
}
365+
// process keys
366+
for k, v := range pe.Key {
367+
// delete prefix from key name
368+
if i := strings.Index(k, ":"); i > 0 {
369+
delete(pe.Key, k)
370+
k = k[i+1:]
371+
}
372+
// delete prefix from key value
373+
if strings.Contains(v, ":") {
374+
kelems := strings.Split(v, "/")
375+
for idx, kelem := range kelems {
376+
if i := strings.Index(kelem, ":"); i > 0 {
377+
kelems[idx] = kelem[i+1:]
378+
}
379+
}
380+
v = strings.Join(kelems, "/")
381+
}
382+
pe.Key[k] = v
365383
}
366-
pe.Name = name
367384
}
368385
}
369386

0 commit comments

Comments
 (0)