... | ... | @@ -69,6 +69,12 @@ namespace nucleus { |
|
|
class ErrNotYetImplemented << (S,Aquamarine) >> {
|
|
|
+ Error() string
|
|
|
|
|
|
}
|
|
|
class ErrOperationNotSupported << (S,Aquamarine) >> {
|
|
|
- o <font color=blue>interface</font>{}
|
|
|
|
|
|
+ Error() string
|
|
|
|
|
|
}
|
|
|
class ErrUnsupportedPath << (S,Aquamarine) >> {
|
|
|
- p <font color=blue>interface</font>{}
|
... | ... | @@ -84,6 +90,7 @@ namespace nucleus { |
|
|
+ Unmarshal <font color=blue>func</font>([]byte, []string, <font color=blue>interface</font>{}, ...ytypes.UnmarshalOpt) error
|
|
|
+ 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)
|
|
|
- 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)
|
... | ... | @@ -92,7 +99,7 @@ namespace nucleus { |
|
|
+ SetOptions(to TransportOptions)
|
|
|
+ GetOptions() <font color=blue>interface</font>{}
|
|
|
+ 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
|
|
|
+ Type() string
|
|
|
+ ProcessResponse(resp <font color=blue>interface</font>{}, root <font color=blue>interface</font>{}, s *ytypes.Schema) error
|
... | ... | @@ -127,7 +134,10 @@ namespace nucleus { |
|
|
+ AddSbi( <font color=blue>interface</font>{}) error
|
|
|
+ RemoveSbi( uuid.UUID) error
|
|
|
+ AddDevice( <font color=blue>interface</font>{}) error
|
|
|
+ GetDevice(uuid uuid.UUID) (ygot.GoStruct, 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
|
|
|
+ RequestAll( string) error
|
|
|
+ GetName() string
|
... | ... | @@ -136,13 +146,18 @@ namespace nucleus { |
|
|
+ ContainsDevice( uuid.UUID) bool
|
|
|
+ GetSBIs() <font color=blue>interface</font>{}
|
|
|
+ ID() uuid.UUID
|
|
|
+ Pending() []uuid.UUID
|
|
|
+ Committed() []uuid.UUID
|
|
|
+ Commit( uuid.UUID) error
|
|
|
+ Confirm( uuid.UUID) error
|
|
|
|
|
|
}
|
|
|
class Restconf << (S,Aquamarine) >> {
|
|
|
+ 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
|
|
|
+ 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
|
|
|
|
|
|
}
|
... | ... | @@ -161,7 +176,7 @@ namespace nucleus { |
|
|
}
|
|
|
interface Transport {
|
|
|
+ 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
|
|
|
+ Type() string
|
|
|
+ GetOptions() <font color=blue>interface</font>{}
|
... | ... | @@ -180,6 +195,10 @@ namespace nucleus { |
|
|
|
|
|
+ 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) >> {
|
|
|
- get(id uuid.UUID) (*Device, error)
|
... | ... | @@ -187,6 +206,8 @@ namespace nucleus { |
|
|
}
|
|
|
class nucleus.CtxKeyType << (T, #FF7700) >> {
|
|
|
}
|
|
|
class nucleus.Operation << (T, #FF7700) >> {
|
|
|
}
|
|
|
class nucleus.store << (T, #FF7700) >> {
|
|
|
}
|
|
|
class pndImplementation << (S,Aquamarine) >> {
|
... | ... | @@ -194,7 +215,11 @@ namespace nucleus { |
|
|
- description string
|
|
|
- sbic sbiStore
|
|
|
- devices deviceStore
|
|
|
- pendingChanges changeStore
|
|
|
- committedChanges changeStore
|
|
|
- confirmedChanges changeStore
|
|
|
- id uuid.UUID
|
|
|
- errChans <font color=blue>map</font>[uuid.UUID]<font color=blue>chan</font> error
|
|
|
|
|
|
- addSbi(sbi SouthboundInterface) error
|
|
|
- removeSbi(id uuid.UUID) error
|
... | ... | @@ -202,7 +227,12 @@ namespace nucleus { |
|
|
- getDevice(id uuid.UUID) (*Device, 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
|
|
|
+ Devices() []uuid.UUID
|
|
|
+ GetName() string
|
|
|
+ ContainsDevice(id uuid.UUID) bool
|
|
|
+ GetDescription() string
|
... | ... | @@ -211,11 +241,12 @@ namespace nucleus { |
|
|
+ AddSbi(sbi <font color=blue>interface</font>{}) error
|
|
|
+ RemoveSbi(id uuid.UUID) error
|
|
|
+ AddDevice(device <font color=blue>interface</font>{}) error
|
|
|
+ GetDevice(uuid uuid.UUID) (ygot.GoStruct, error)
|
|
|
+ RemoveDevice(uuid uuid.UUID) error
|
|
|
+ MarshalDevice(uuid uuid.UUID) (string, error)
|
|
|
+ Request(uuid uuid.UUID, 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) >> {
|
... | ... | @@ -241,6 +272,7 @@ namespace nucleus { |
|
|
}
|
|
|
"ygot.GoStruct" *-- "nucleus.Device"
|
|
|
"gnmi.Config" *-- "nucleus.GnmiTransportOptions"
|
|
|
"nucleus.store" *-- "nucleus.changeStore"
|
|
|
"nucleus.store" *-- "nucleus.deviceStore"
|
|
|
"nucleus.store" *-- "nucleus.pndStore"
|
|
|
"nucleus.store" *-- "nucleus.sbiStore"
|
... | ... | @@ -250,12 +282,12 @@ namespace nucleus { |
|
|
"nucleus.TransportOptions" <|-- "nucleus.GnmiTransportOptions"
|
|
|
"nucleus.SouthboundInterface" <|-- "nucleus.OpenConfig"
|
|
|
"nucleus.Storable" <|-- "nucleus.OpenConfig"
|
|
|
"nucleus.Transport" <|-- "nucleus.Restconf"
|
|
|
"nucleus.PrincipalNetworkDomain" <|-- "nucleus.pndImplementation"
|
|
|
"nucleus.Storable" <|-- "nucleus.pndImplementation"
|
|
|
|
|
|
"__builtin__.int" #.. "nucleus.Operation"
|
|
|
"__builtin__.string" #.. "nucleus.CtxKeyType"
|
|
|
"nucleus.fontcolorbluemapfontuuidUUIDStorable" #.. "nucleus.store"
|
|
|
@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 |