Skip to content
Snippets Groups Projects
Commit 865ec9a3 authored by Manuel Kieweg's avatar Manuel Kieweg
Browse files

Code resembles a vague idea of information flow now. Too much hand crafting...

Code resembles a vague idea of information flow now. Too much hand crafting rn. Needs to be automatically done.
parent f1cacec0
Branches
Tags
4 merge requests!90Develop,!88Use SPF Viper for configuration,!85Draft: Resolve "Overhaul Architecture",!53V.0.1.0 Codename Threadbare
Pipeline #57249 passed with warnings
This commit is part of merge request !85. Comments created here will be created in the context of that merge request.
...@@ -33,8 +33,9 @@ func main() { ...@@ -33,8 +33,9 @@ func main() {
ctx := gnmi.NewContext(context.Background(), cfg) ctx := gnmi.NewContext(context.Background(), cfg)
ctx = context.WithValue(ctx, "config", cfg) ctx = context.WithValue(ctx, "config", cfg)
g := nucleus.Gnmi{} paths := []string{"interfaces/interface"}
resp, err := g.Capabilities(ctx) req, err := gnmi.NewGetRequest(gnmi.SplitPaths(paths), "")
resp, err := nucleus.GetWithRequest(ctx, req)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
......
goarista @ 09b37ed2
Subproject commit 4e6fdcf7f22110ef30e57869c1f0ddac8713b54f Subproject commit 09b37ed24462f5dfc3c5e47abecd790c5540f327
...@@ -2,13 +2,10 @@ module code.fbi.h-da.de/cocsn/gosdn ...@@ -2,13 +2,10 @@ module code.fbi.h-da.de/cocsn/gosdn
go 1.14 go 1.14
replace github.com/aristanetworks/goarista/netns => /Users/mk/go/src/github.com/aristanetworks/goarista/netns
require ( require (
code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88 code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88
code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752 code.fbi.h-da.de/cocsn/yang-models v0.0.3
github.com/BurntSushi/toml v0.3.1 github.com/BurntSushi/toml v0.3.1
github.com/aristanetworks/fsnotify v1.4.2
github.com/aristanetworks/goarista v0.0.0-20201120222254-94a892eb0c6a github.com/aristanetworks/goarista v0.0.0-20201120222254-94a892eb0c6a
github.com/gdamore/tcell/v2 v2.0.1-0.20201017141208-acf90d56d591 github.com/gdamore/tcell/v2 v2.0.1-0.20201017141208-acf90d56d591
github.com/go-openapi/runtime v0.19.22 github.com/go-openapi/runtime v0.19.22
...@@ -20,13 +17,11 @@ require ( ...@@ -20,13 +17,11 @@ require (
github.com/onsi/ginkgo v1.13.0 // indirect github.com/onsi/ginkgo v1.13.0 // indirect
github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802 github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802
github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696 github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696
github.com/openconfig/ygot v0.8.7 github.com/openconfig/ygot v0.8.11
github.com/rivo/tview v0.0.0-20201018122409-d551c850a743 github.com/rivo/tview v0.0.0-20201018122409-d551c850a743
github.com/sirupsen/logrus v1.4.2 github.com/sirupsen/logrus v1.4.2
github.com/tidwall/gjson v1.6.3 github.com/tidwall/gjson v1.6.3
golang.org/x/net v0.0.0-20200904194848-62affa334b73 golang.org/x/net v0.0.0-20200904194848-62affa334b73
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect
golang.org/x/sys v0.0.0-20201017003518-b09fb700fbb7
google.golang.org/grpc v1.29.1 google.golang.org/grpc v1.29.1
google.golang.org/protobuf v1.25.0 google.golang.org/protobuf v1.25.0
) )
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= 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 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/swagger/apis v0.0.0-20200924152423-61030cab7b88/go.mod h1:3jDZAOmepPl3kiukNGvPFkJEzgGczgrC3zJ2jcqVFSs=
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-models v0.0.3 h1:VTVHDTyJiC2TeTAZyxJ1ZFqRwo6H7UeY7PXfp9GXYEY=
code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752/go.mod h1:EhCu5gVeMKHpjwoV5g5eycc7WcfU98jkPswLDRHQX5w= code.fbi.h-da.de/cocsn/yang-models v0.0.3/go.mod h1:X40pn/xQ1lTNbFFN9QFK99oSNaeN/Rg3MSpdhWc3IS8=
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
...@@ -287,14 +287,13 @@ github.com/openconfig/gnmi v0.0.0-20200508230933-d19cebf5e7be/go.mod h1:M/EcuapN ...@@ -287,14 +287,13 @@ github.com/openconfig/gnmi v0.0.0-20200508230933-d19cebf5e7be/go.mod h1:M/EcuapN
github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802 h1:WXFwJlWOJINlwlyAZuNo4GdYZS6qPX36+rRUncLmN8Q= github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802 h1:WXFwJlWOJINlwlyAZuNo4GdYZS6qPX36+rRUncLmN8Q=
github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802/go.mod h1:M/EcuapNQgvzxo1DDXHK4tx3QpYM/uG4l591v33jG2A= github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802/go.mod h1:M/EcuapNQgvzxo1DDXHK4tx3QpYM/uG4l591v33jG2A=
github.com/openconfig/goyang v0.0.0-20200115183954-d0a48929f0ea/go.mod h1:dhXaV0JgHJzdrHi2l+w0fZrwArtXL7jEFoiqLEdmkvU= github.com/openconfig/goyang v0.0.0-20200115183954-d0a48929f0ea/go.mod h1:dhXaV0JgHJzdrHi2l+w0fZrwArtXL7jEFoiqLEdmkvU=
github.com/openconfig/goyang v0.0.0-20200616001533-c0659aea65dd/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8= github.com/openconfig/goyang v0.2.1 h1:TaADsLGzULGQL8xTmvLjmXqZ/J1F73dMzURDqrv9cLs=
github.com/openconfig/goyang v0.0.0-20200917201611-633eccb6fa97 h1:TaCuNSX/fiTuky8ouzC+JaCJN+OSOpjtYlLrn/uXxxE= github.com/openconfig/goyang v0.2.1/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8=
github.com/openconfig/goyang v0.0.0-20200917201611-633eccb6fa97/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8=
github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696 h1:yHCGAHg2zMaW8olLrqEt3SAHGcEx2aJPEQWMRCyravY= github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696 h1:yHCGAHg2zMaW8olLrqEt3SAHGcEx2aJPEQWMRCyravY=
github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696/go.mod h1:ym2A+zigScwkSEb/cVQB0/ZMpU3rqiH6X7WRRsxgOGw= github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696/go.mod h1:ym2A+zigScwkSEb/cVQB0/ZMpU3rqiH6X7WRRsxgOGw=
github.com/openconfig/ygot v0.6.0/go.mod h1:o30svNf7O0xK+R35tlx95odkDmZWS9JyWWQSmIhqwAs= 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.11 h1:s9BtpSeqChokRQHhTatv2xmwkTLHPz0ghPnVpgmz8WU=
github.com/openconfig/ygot v0.8.7/go.mod h1:AqXe0HNEITTcmcYkr+yzDMY8ofitImUdfZV4IgRsJWU= 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/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/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
......
package nucleus package nucleus
import ( import (
opb "code.fbi.h-da.de/cocsn/gosdn/api/proto/openconfig/openconfig_interfaces"
"code.fbi.h-da.de/cocsn/yang-models/generated/openconfig"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/openconfig/gnmi/proto/gnmi"
"github.com/openconfig/ygot/ygot" "github.com/openconfig/ygot/ygot"
) )
type Device struct { type Device struct {
device ygot.GoStruct Device ygot.GoStruct
SBI SouthboundInterface SBI SouthboundInterface
Config DeviceConfig Config DeviceConfig
Transport Transport Transport Transport
} }
// Add adds a property to a device. Please
// use better naming in further develop
// Also all that Interface Call specific logic belongs to SBI!
func (d Device) Add(resp interface{}) {
r := resp.(*gnmi.GetResponse)
device := d.Device.(*openconfig.Device)
// It's possible that the gnmi response already is too Arista-fied to be used w/YGOT
ifs := opb.Interfaces{
Interface: []*opb.Interfaces_InterfaceKey{
{
Interface: &opb.Interfaces_Interface{
Config: &opb.Interfaces_Interface_Config{
Description: nil,
Enabled: nil,
LoopbackMode: nil,
Mtu: nil,
Name: nil,
Type: 0,
},
HoldTime: nil,
State: nil,
Subinterfaces: nil,
},
},
},
}
device.Interfaces = ifs
d.Device = device
}
type DeviceConfig struct { type DeviceConfig struct {
Uuid uuid.UUID Uuid uuid.UUID
Address string Address string
......
...@@ -9,29 +9,18 @@ type SouthboundInterface interface { ...@@ -9,29 +9,18 @@ type SouthboundInterface interface {
type Tapi struct { type Tapi struct {
} }
func (t *Tapi) Get(interface{}) (interface{}, error) {
return nil, nil
}
func (t *Tapi) Set(interface{}) error {
return nil
}
func (t *Tapi) Subscribe(interface{}) (interface{}, error) {
return nil, nil
}
type OpenConfig struct { type OpenConfig struct {
transport Transport
} }
func (oc *OpenConfig) GetSBIString() string { func (oc *OpenConfig) GetSBIString() string {
return "openconfig" return "openconfig"
} }
func (oc *OpenConfig) Get(interface{}) (interface{}, error) { func (oc *OpenConfig) OpenconfigInterfaces(device Device) {
return nil, nil resp, err := oc.transport.Get(nil, nil...)
} if err != nil {
func (oc *OpenConfig) Set(interface{}) error {
return nil }
} device.Add(resp)
func (oc *OpenConfig) Subscribe(interface{}) (interface{}, error) {
return nil, nil
} }
...@@ -5,7 +5,7 @@ import ( ...@@ -5,7 +5,7 @@ import (
"code.fbi.h-da.de/cocsn/gosdn/database" "code.fbi.h-da.de/cocsn/gosdn/database"
"code.fbi.h-da.de/cocsn/gosdn/nucleus" "code.fbi.h-da.de/cocsn/gosdn/nucleus"
apiclient "code.fbi.h-da.de/cocsn/swagger/apis/mcp/client" apiclient "code.fbi.h-da.de/cocsn/swagger/apis/mcp/client"
"code.fbi.h-da.de/cocsn/yang-modules/generated/tapi" "code.fbi.h-da.de/cocsn/yang-models/generated/tapi"
"crypto/tls" "crypto/tls"
"encoding/json" "encoding/json"
"github.com/go-openapi/runtime" "github.com/go-openapi/runtime"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment