diff --git a/cmd/path-traversal/path_traversal.go b/cmd/path-traversal/path_traversal.go new file mode 100644 index 0000000000000000000000000000000000000000..8404a9dbf754a4d5c98033c048ebf9adb518c5b3 --- /dev/null +++ b/cmd/path-traversal/path_traversal.go @@ -0,0 +1,42 @@ +package main + +import ( + "code.fbi.h-da.de/cocsn/yang-models/generated/openconfig" + "fmt" + "github.com/openconfig/goyang/pkg/yang" +) + +type PathElement struct { + Children []*PathElement + Name string +} + +func main() { + tree := openconfig.SchemaTree + paths := make(map[string]*PathElement) + + for k,v := range tree { + if v.Parent.Name == "device" { + paths[k] = processEntry(v) + } + } + fmt.Println("stop") +} + +func processEntry(e *yang.Entry) *PathElement { + if e.Dir != nil { + elem := &PathElement{ + Children: make([]*PathElement, len(e.Dir)), + Name: e.Name, + } + for _,v := range e.Dir { + child := processEntry(v) + elem.Children = append(elem.Children, child) + } + + } + leaf := &PathElement{ + Name: e.Name, + } + return leaf +} \ No newline at end of file diff --git a/go.mod b/go.mod index dd79e0b9f60580331c8fb96e184c765d554ff432..e627cfa052d3428ed568938ff68d71af251509c4 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.14 require ( code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88 + code.fbi.h-da.de/cocsn/yang-models v0.0.3 code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752 github.com/BurntSushi/toml v0.3.1 github.com/gdamore/tcell/v2 v2.0.1-0.20201017141208-acf90d56d591 @@ -12,10 +13,11 @@ require ( github.com/golang/protobuf v1.4.2 github.com/neo4j/neo4j-go-driver v1.8.3 github.com/onsi/ginkgo v1.13.0 // indirect - github.com/openconfig/ygot v0.8.7 + github.com/openconfig/goyang v0.2.1 + github.com/openconfig/ygot v0.8.11 github.com/rivo/tview v0.0.0-20201018122409-d551c850a743 - github.com/tidwall/gjson v1.6.3 github.com/sirupsen/logrus v1.4.2 + github.com/tidwall/gjson v1.6.3 golang.org/x/net v0.0.0-20200904194848-62affa334b73 // indirect google.golang.org/grpc v1.29.1 google.golang.org/protobuf v1.23.0 diff --git a/go.sum b/go.sum index 6b90cf7a5ba559555977fa50e1c30c224c7bb174..aa53b9c3c608f8aedcc11728464c0357d1c57dd7 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88 h1:cNqY3WEh+CX8+esxIwWU/uD7hRC5mPvuJmXzB07OeuA= code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88/go.mod h1:3jDZAOmepPl3kiukNGvPFkJEzgGczgrC3zJ2jcqVFSs= +code.fbi.h-da.de/cocsn/yang-models v0.0.3 h1:VTVHDTyJiC2TeTAZyxJ1ZFqRwo6H7UeY7PXfp9GXYEY= +code.fbi.h-da.de/cocsn/yang-models v0.0.3/go.mod h1:X40pn/xQ1lTNbFFN9QFK99oSNaeN/Rg3MSpdhWc3IS8= code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752 h1:hCeie9cCBt0gyETD0EAINuWqpEokf0ulP1Rv9F+rXB0= code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752/go.mod h1:EhCu5gVeMKHpjwoV5g5eycc7WcfU98jkPswLDRHQX5w= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= @@ -172,6 +174,7 @@ github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0Lh github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -222,9 +225,13 @@ github.com/openconfig/goyang v0.0.0-20200115183954-d0a48929f0ea/go.mod h1:dhXaV0 github.com/openconfig/goyang v0.0.0-20200616001533-c0659aea65dd/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8= github.com/openconfig/goyang v0.0.0-20200917201611-633eccb6fa97 h1:TaCuNSX/fiTuky8ouzC+JaCJN+OSOpjtYlLrn/uXxxE= github.com/openconfig/goyang v0.0.0-20200917201611-633eccb6fa97/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8= +github.com/openconfig/goyang v0.2.1 h1:TaADsLGzULGQL8xTmvLjmXqZ/J1F73dMzURDqrv9cLs= +github.com/openconfig/goyang v0.2.1/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8= github.com/openconfig/ygot v0.6.0/go.mod h1:o30svNf7O0xK+R35tlx95odkDmZWS9JyWWQSmIhqwAs= github.com/openconfig/ygot v0.8.7 h1:BKErV6vM15YGM1+XHDuLAQ938dYahzSgwlt9BIGFrdY= github.com/openconfig/ygot v0.8.7/go.mod h1:AqXe0HNEITTcmcYkr+yzDMY8ofitImUdfZV4IgRsJWU= +github.com/openconfig/ygot v0.8.11 h1:s9BtpSeqChokRQHhTatv2xmwkTLHPz0ghPnVpgmz8WU= +github.com/openconfig/ygot v0.8.11/go.mod h1:Qh/F0ycMLXJlZn4cR+5iuefEMthLggO8KBq8wjXYPTY= github.com/pborman/getopt v0.0.0-20190409184431-ee0cd42419d3/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=