Auto-updated UML diagram via goplantuml CI job authored by Manuel Kieweg's avatar Manuel Kieweg
...@@ -69,6 +69,12 @@ namespace nucleus { ...@@ -69,6 +69,12 @@ namespace nucleus {
class ErrNotYetImplemented << (S,Aquamarine) >> { class ErrNotYetImplemented << (S,Aquamarine) >> {
+ Error() string + Error() string
}
class ErrOperationNotSupported << (S,Aquamarine) >> {
- o <font color=blue>interface</font>{}
+ Error() string
} }
class ErrUnsupportedPath << (S,Aquamarine) >> { class ErrUnsupportedPath << (S,Aquamarine) >> {
- p <font color=blue>interface</font>{} - p <font color=blue>interface</font>{}
...@@ -84,6 +90,7 @@ namespace nucleus { ...@@ -84,6 +90,7 @@ namespace nucleus {
+ Unmarshal <font color=blue>func</font>([]byte, []string, <font color=blue>interface</font>{}, ...ytypes.UnmarshalOpt) error + Unmarshal <font color=blue>func</font>([]byte, []string, <font color=blue>interface</font>{}, ...ytypes.UnmarshalOpt) error
+ Options *GnmiTransportOptions + Options *GnmiTransportOptions
- applyDiff(ctx context.Context, payload ...<font color=blue>interface</font>{}) error
- get(ctx context.Context, paths [][]string, origin string) (<font color=blue>interface</font>{}, error) - get(ctx context.Context, paths [][]string, origin string) (<font color=blue>interface</font>{}, error)
- getWithRequest(ctx context.Context, req *gnmi.GetRequest) (<font color=blue>interface</font>{}, error) - getWithRequest(ctx context.Context, req *gnmi.GetRequest) (<font color=blue>interface</font>{}, error)
- set(ctx context.Context, setOps []*gnmi.Operation, exts ...*gnmi_ext.Extension) (*gnmi.SetResponse, error) - set(ctx context.Context, setOps []*gnmi.Operation, exts ...*gnmi_ext.Extension) (*gnmi.SetResponse, error)
...@@ -92,7 +99,7 @@ namespace nucleus { ...@@ -92,7 +99,7 @@ namespace nucleus {
+ SetOptions(to TransportOptions) + SetOptions(to TransportOptions)
+ GetOptions() <font color=blue>interface</font>{} + GetOptions() <font color=blue>interface</font>{}
+ Get(ctx context.Context, params ...string) (<font color=blue>interface</font>{}, error) + Get(ctx context.Context, params ...string) (<font color=blue>interface</font>{}, error)
+ Set(ctx context.Context, args ...<font color=blue>interface</font>{}) (<font color=blue>interface</font>{}, error) + Set(ctx context.Context, args ...<font color=blue>interface</font>{}) error
+ Subscribe(ctx context.Context, params ...string) error + Subscribe(ctx context.Context, params ...string) error
+ Type() string + Type() string
+ ProcessResponse(resp <font color=blue>interface</font>{}, root <font color=blue>interface</font>{}, s *ytypes.Schema) error + ProcessResponse(resp <font color=blue>interface</font>{}, root <font color=blue>interface</font>{}, s *ytypes.Schema) error
...@@ -127,7 +134,10 @@ namespace nucleus { ...@@ -127,7 +134,10 @@ namespace nucleus {
+ AddSbi( <font color=blue>interface</font>{}) error + AddSbi( <font color=blue>interface</font>{}) error
+ RemoveSbi( uuid.UUID) error + RemoveSbi( uuid.UUID) error
+ AddDevice( <font color=blue>interface</font>{}) error + AddDevice( <font color=blue>interface</font>{}) error
+ GetDevice(uuid uuid.UUID) (ygot.GoStruct, error)
+ RemoveDevice( uuid.UUID) error + RemoveDevice( uuid.UUID) error
+ Devices() []uuid.UUID
+ ChangeOND(uuid uuid.UUID, operation <font color=blue>interface</font>{}, path string, value ...string) error
+ Request( uuid.UUID, string) error + Request( uuid.UUID, string) error
+ RequestAll( string) error + RequestAll( string) error
+ GetName() string + GetName() string
...@@ -136,13 +146,18 @@ namespace nucleus { ...@@ -136,13 +146,18 @@ namespace nucleus {
+ ContainsDevice( uuid.UUID) bool + ContainsDevice( uuid.UUID) bool
+ GetSBIs() <font color=blue>interface</font>{} + GetSBIs() <font color=blue>interface</font>{}
+ ID() uuid.UUID + ID() uuid.UUID
+ Pending() []uuid.UUID
+ Committed() []uuid.UUID
+ Commit( uuid.UUID) error
+ Confirm( uuid.UUID) error
} }
class Restconf << (S,Aquamarine) >> { class Restconf << (S,Aquamarine) >> {
+ Get(ctx context.Context, params ...string) (<font color=blue>interface</font>{}, error) + Get(ctx context.Context, params ...string) (<font color=blue>interface</font>{}, error)
+ Set(ctx context.Context, params ...string) (<font color=blue>interface</font>{}, error) + Set(ctx context.Context, params ...<font color=blue>interface</font>{}) error
+ Subscribe(ctx context.Context, params ...string) error + Subscribe(ctx context.Context, params ...string) error
+ Type() string + Type() string
+ GetOptions() <font color=blue>interface</font>{}
+ ProcessResponse(resp <font color=blue>interface</font>{}, root <font color=blue>interface</font>{}, models *ytypes.Schema) error + ProcessResponse(resp <font color=blue>interface</font>{}, root <font color=blue>interface</font>{}, models *ytypes.Schema) error
} }
...@@ -161,7 +176,7 @@ namespace nucleus { ...@@ -161,7 +176,7 @@ namespace nucleus {
} }
interface Transport { interface Transport {
+ Get(ctx context.Context, params ...string) (<font color=blue>interface</font>{}, error) + Get(ctx context.Context, params ...string) (<font color=blue>interface</font>{}, error)
+ Set(ctx context.Context, params ...<font color=blue>interface</font>{}) (<font color=blue>interface</font>{}, error) + Set(ctx context.Context, params ...<font color=blue>interface</font>{}) error
+ Subscribe(ctx context.Context, params ...string) error + Subscribe(ctx context.Context, params ...string) error
+ Type() string + Type() string
+ GetOptions() <font color=blue>interface</font>{} + GetOptions() <font color=blue>interface</font>{}
...@@ -180,6 +195,10 @@ namespace nucleus { ...@@ -180,6 +195,10 @@ namespace nucleus {
+ Consume(reader io.Reader, _ <font color=blue>interface</font>{}) error + Consume(reader io.Reader, _ <font color=blue>interface</font>{}) error
}
class changeStore << (S,Aquamarine) >> {
- get(id uuid.UUID) (*pnd.Change, error)
} }
class deviceStore << (S,Aquamarine) >> { class deviceStore << (S,Aquamarine) >> {
- get(id uuid.UUID) (*Device, error) - get(id uuid.UUID) (*Device, error)
...@@ -187,6 +206,8 @@ namespace nucleus { ...@@ -187,6 +206,8 @@ namespace nucleus {
} }
class nucleus.CtxKeyType << (T, #FF7700) >> { class nucleus.CtxKeyType << (T, #FF7700) >> {
} }
class nucleus.Operation << (T, #FF7700) >> {
}
class nucleus.store << (T, #FF7700) >> { class nucleus.store << (T, #FF7700) >> {
} }
class pndImplementation << (S,Aquamarine) >> { class pndImplementation << (S,Aquamarine) >> {
...@@ -194,7 +215,11 @@ namespace nucleus { ...@@ -194,7 +215,11 @@ namespace nucleus {
- description string - description string
- sbic sbiStore - sbic sbiStore
- devices deviceStore - devices deviceStore
- pendingChanges changeStore
- committedChanges changeStore
- confirmedChanges changeStore
- id uuid.UUID - id uuid.UUID
- errChans <font color=blue>map</font>[uuid.UUID]<font color=blue>chan</font> error
- addSbi(sbi SouthboundInterface) error - addSbi(sbi SouthboundInterface) error
- removeSbi(id uuid.UUID) error - removeSbi(id uuid.UUID) error
...@@ -202,7 +227,12 @@ namespace nucleus { ...@@ -202,7 +227,12 @@ namespace nucleus {
- getDevice(id uuid.UUID) (*Device, error) - getDevice(id uuid.UUID) (*Device, error)
- removeDevice(id uuid.UUID) error - removeDevice(id uuid.UUID) error
+ Pending() []uuid.UUID
+ Committed() []uuid.UUID
+ Commit(u uuid.UUID) error
+ Confirm(u uuid.UUID) error
+ ID() uuid.UUID + ID() uuid.UUID
+ Devices() []uuid.UUID
+ GetName() string + GetName() string
+ ContainsDevice(id uuid.UUID) bool + ContainsDevice(id uuid.UUID) bool
+ GetDescription() string + GetDescription() string
...@@ -211,11 +241,12 @@ namespace nucleus { ...@@ -211,11 +241,12 @@ namespace nucleus {
+ AddSbi(sbi <font color=blue>interface</font>{}) error + AddSbi(sbi <font color=blue>interface</font>{}) error
+ RemoveSbi(id uuid.UUID) error + RemoveSbi(id uuid.UUID) error
+ AddDevice(device <font color=blue>interface</font>{}) error + AddDevice(device <font color=blue>interface</font>{}) error
+ GetDevice(uuid uuid.UUID) (ygot.GoStruct, error)
+ RemoveDevice(uuid uuid.UUID) error + RemoveDevice(uuid uuid.UUID) error
+ MarshalDevice(uuid uuid.UUID) (string, error) + MarshalDevice(uuid uuid.UUID) (string, error)
+ Request(uuid uuid.UUID, path string) error + Request(uuid uuid.UUID, path string) error
+ RequestAll(path string) error + RequestAll(path string) error
+ Set(uuid uuid.UUID, path string, value string) (<font color=blue>interface</font>{}, error) + ChangeOND(uuid uuid.UUID, operation <font color=blue>interface</font>{}, path string, value ...string) error
} }
class pndStore << (S,Aquamarine) >> { class pndStore << (S,Aquamarine) >> {
...@@ -241,6 +272,7 @@ namespace nucleus { ...@@ -241,6 +272,7 @@ namespace nucleus {
} }
"ygot.GoStruct" *-- "nucleus.Device" "ygot.GoStruct" *-- "nucleus.Device"
"gnmi.Config" *-- "nucleus.GnmiTransportOptions" "gnmi.Config" *-- "nucleus.GnmiTransportOptions"
"nucleus.store" *-- "nucleus.changeStore"
"nucleus.store" *-- "nucleus.deviceStore" "nucleus.store" *-- "nucleus.deviceStore"
"nucleus.store" *-- "nucleus.pndStore" "nucleus.store" *-- "nucleus.pndStore"
"nucleus.store" *-- "nucleus.sbiStore" "nucleus.store" *-- "nucleus.sbiStore"
...@@ -250,12 +282,12 @@ namespace nucleus { ...@@ -250,12 +282,12 @@ namespace nucleus {
"nucleus.TransportOptions" <|-- "nucleus.GnmiTransportOptions" "nucleus.TransportOptions" <|-- "nucleus.GnmiTransportOptions"
"nucleus.SouthboundInterface" <|-- "nucleus.OpenConfig" "nucleus.SouthboundInterface" <|-- "nucleus.OpenConfig"
"nucleus.Storable" <|-- "nucleus.OpenConfig" "nucleus.Storable" <|-- "nucleus.OpenConfig"
"nucleus.Transport" <|-- "nucleus.Restconf"
"nucleus.PrincipalNetworkDomain" <|-- "nucleus.pndImplementation" "nucleus.PrincipalNetworkDomain" <|-- "nucleus.pndImplementation"
"nucleus.Storable" <|-- "nucleus.pndImplementation" "nucleus.Storable" <|-- "nucleus.pndImplementation"
"__builtin__.int" #.. "nucleus.Operation"
"__builtin__.string" #.. "nucleus.CtxKeyType" "__builtin__.string" #.. "nucleus.CtxKeyType"
"nucleus.fontcolorbluemapfontuuidUUIDStorable" #.. "nucleus.store" "nucleus.fontcolorbluemapfontuuidUUIDStorable" #.. "nucleus.store"
@enduml @enduml
``` ```
This needs to be filled with proper texts. Right now it's only a link to the pages index: https://code.fbi.h-da.de/cocsn/gosdn/-/wikis/pages