Changes
Page history
Auto-updated UML diagram via goplantuml CI job
authored
Jun 15, 2021
by
Manuel Kieweg
Show whitespace changes
Inline
Side-by-side
home.md
View page @
c575a9c6
...
...
@@ -26,7 +26,7 @@ namespace nucleus {
}
class ChangeStore << (S,Aquamarine) >> {
+ Get(id uuid.UUID) (*Change, error)
+ Get
Change
(id uuid.UUID) (*Change, error)
}
class ClientConfig << (S,Aquamarine) >> {
...
...
@@ -39,41 +39,28 @@ namespace nucleus {
}
class CommonDevice << (S,Aquamarine) >> {
- sbi SouthboundInterface
- transport Transport
- sbi
southbound.
SouthboundInterface
- transport
transport.
Transport
- name string
+ UUID uuid.UUID
- isDevice()
+ ID() uuid.UUID
+ Model() ygot.GoStruct
+ Transport() Transport
+ Transport()
transport.
Transport
+ Name() string
+ SBI() SouthboundInterface
+ SetTransport(t Transport)
+ SBI()
southbound.
SouthboundInterface
+ SetTransport(t
transport.
Transport)
+ SetName(n string)
+ SetSBI(sbi SouthboundInterface)
+ SetSBI(sbi
southbound.
SouthboundInterface)
+ ProcessResponse(resp proto.Message) error
}
interface Device {
- isDevice()
+ ID() uuid.UUID
+ Model() ygot.GoStruct
+ Transport() Transport
+ Name() string
+ SBI() SouthboundInterface
+ ProcessResponse( proto.Message) error
}
class DeviceStore << (S,Aquamarine) >> {
- deviceNameToUUIDLookup <font color=blue>map</font>[string]uuid.UUID
+ Get(id uuid.UUID, parseErrors ...error) (Device, error)
+ Add(item Storable, name string) error
+ Get
Device
(id uuid.UUID, parseErrors ...error) (
device.
Device, error)
+ Add(item
store.
Storable, name string) error
+ Delete(id uuid.UUID) error
}
...
...
@@ -116,31 +103,7 @@ namespace nucleus {
}
class PndStore << (S,Aquamarine) >> {
+ Get(id uuid.UUID) (PrincipalNetworkDomain, error)
}
interface PrincipalNetworkDomain {
+ Destroy() error
+ AddSbi( <font color=blue>interface</font>{}) error
+ RemoveSbi( uuid.UUID) error
+ AddDevice(name string, opts *transport.TransportOption, sid uuid.UUID) error
+ GetDevice(identifier string) (<font color=blue>interface</font>{}, error)
+ RemoveDevice( uuid.UUID) error
+ Devices() []uuid.UUID
+ ChangeOND(uuid uuid.UUID, operation pnd.ApiOperation, path string, value ...string) error
+ Request( uuid.UUID, string) error
+ RequestAll( string) error
+ GetName() string
+ GetDescription() string
+ MarshalDevice( string) (string, error)
+ ContainsDevice( uuid.UUID) bool
+ GetSBIs() <font color=blue>interface</font>{}
+ ID() uuid.UUID
+ PendingChanges() []uuid.UUID
+ CommittedChanges() []uuid.UUID
+ GetChange( uuid.UUID, ...int) (<font color=blue>interface</font>{}, error)
+ Commit( uuid.UUID) error
+ Confirm( uuid.UUID) error
+ GetPND(id uuid.UUID) (networkdomain.NetworkDomain, error)
}
class Restconf << (S,Aquamarine) >> {
...
...
@@ -153,49 +116,27 @@ namespace nucleus {
}
class SbiStore << (S,Aquamarine) >> {
+ Get(id uuid.UUID) (SouthboundInterface, error)
}
interface SouthboundInterface {
+ SbiIdentifier() string
+ SetNode() <font color=blue>func</font>(*yang.Entry, <font color=blue>interface</font>{}, *gnmi.Path, <font color=blue>interface</font>{}, ...ytypes.SetNodeOpt) error
+ Schema() *ytypes.Schema
+ ID() uuid.UUID
+ Type() southbound.Type
+ GetSBI(id uuid.UUID) (southbound.SouthboundInterface, error)
}
interface Storable
{
class csbiDevice << (S,Aquamarine) >>
{
+ ID() uuid.UUID
+ Model() ygot.GoStruct
+ Transport() transport.Transport
+ Name() string
+ SBI() southbound.SouthboundInterface
+ ProcessResponse(resp proto.Message) error
}
interface Store
{
class genericStore << (S,Aquamarine) >>
{
+ Exists(id uuid.UUID) bool
+ Add(item Storable) error
+ Get(id uuid.UUID) (Storable, error)
+ Add(item
store.
Storable) error
+ Get(id uuid.UUID) (
store.
Storable, error)
+ Delete(id uuid.UUID) error
+ UUIDs() []uuid.UUID
}
interface Transport {
+ Get(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
+ ProcessResponse(resp <font color=blue>interface</font>{}, root <font color=blue>interface</font>{}, models *ytypes.Schema) error
}
class csbiDevice << (S,Aquamarine) >> {
- isDevice()
+ ID() uuid.UUID
+ Model() ygot.GoStruct
+ Transport() Transport
+ Name() string
+ SBI() SouthboundInterface
+ ProcessResponse(resp proto.Message) error
}
class nucleus.store << (T, #FF7700) >> {
class nucleus.genericStore << (T, #FF7700) >> {
}
class pndImplementation << (S,Aquamarine) >> {
- name string
...
...
@@ -208,14 +149,14 @@ namespace nucleus {
- id uuid.UUID
- errChans <font color=blue>map</font>[uuid.UUID]<font color=blue>chan</font> error
- addSbi(sbi SouthboundInterface) error
- addSbi(sbi
southbound.
SouthboundInterface) error
- removeSbi(id uuid.UUID) error
- addDevice(device Device) error
- addDevice(device
device.
Device) error
- removeDevice(id uuid.UUID) error
+ PendingChanges() []uuid.UUID
+ CommittedChanges() []uuid.UUID
+ GetChange(cuid uuid.UUID, i ...int) (
<font color=blue>interface</font>{}
, error)
+ GetChange(cuid uuid.UUID, i ...int) (
change.Change
, error)
+ Commit(u uuid.UUID) error
+ Confirm(u uuid.UUID) error
+ ID() uuid.UUID
...
...
@@ -223,12 +164,12 @@ namespace nucleus {
+ GetName() string
+ ContainsDevice(id uuid.UUID) bool
+ GetDescription() string
+ GetSBIs()
<font color=blue>interface</font>{}
+ GetSBIs()
store.Store
+ Destroy() error
+ AddSbi(s
bi <font color=blue>interface</font>{}
) error
+ AddSbi(s
southbound.SouthboundInterface
) error
+ RemoveSbi(id uuid.UUID) error
+ AddDevice(name string, opt *transport.TransportOption, sid uuid.UUID) error
+ GetDevice(identifier string) (
<font color=blue>interface</font>{}
, error)
+ GetDevice(identifier string) (
device.Device
, error)
+ RemoveDevice(uuid uuid.UUID) error
+ MarshalDevice(identifier string) (string, error)
+ Request(uuid uuid.UUID, path string) error
...
...
@@ -236,38 +177,18 @@ namespace nucleus {
+ ChangeOND(uuid uuid.UUID, operation pnd.ApiOperation, path string, value ...string) error
}
class store << (S,Aquamarine) >> {
+ Exists(id uuid.UUID) bool
+ Add(item Storable) error
+ Get(id uuid.UUID) (Storable, error)
+ Delete(id uuid.UUID) error
+ UUIDs() []uuid.UUID
}
class "<font color=blue>map</font>[uuid.UUID]Storable" as fontcolorbluemapfontuuidUUIDStorable {
class "<font color=blue>map</font>[uuid.UUID]store.Storable" as fontcolorbluemapfontuuidUUIDstoreStorable {
'This class was created so that we can correctly have an alias pointing to this name. Since it contains dots that can break namespaces
}
}
"nucleus.
s
tore" *-- "nucleus.ChangeStore"
"nucleus.
genericS
tore" *-- "nucleus.ChangeStore"
"ygot.GoStruct" *-- "nucleus.CommonDevice"
"nucleus.
s
tore" *-- "nucleus.DeviceStore"
"nucleus.
s
tore" *-- "nucleus.PndStore"
"nucleus.
s
tore" *-- "nucleus.SbiStore"
"nucleus.
genericS
tore" *-- "nucleus.DeviceStore"
"nucleus.
genericS
tore" *-- "nucleus.PndStore"
"nucleus.
genericS
tore" *-- "nucleus.SbiStore"
"nucleus.CommonDevice" *-- "nucleus.csbiDevice"
"nucleus.Storable" <|-- "nucleus.Change"
"nucleus.Device" <|-- "nucleus.CommonDevice"
"nucleus.Storable" <|-- "nucleus.CommonDevice"
"nucleus.Transport" <|-- "nucleus.Gnmi"
"nucleus.SouthboundInterface" <|-- "nucleus.OpenConfig"
"nucleus.Storable" <|-- "nucleus.OpenConfig"
"nucleus.Transport" <|-- "nucleus.Restconf"
"nucleus.Device" <|-- "nucleus.csbiDevice"
"nucleus.Storable" <|-- "nucleus.csbiDevice"
"nucleus.PrincipalNetworkDomain" <|-- "nucleus.pndImplementation"
"nucleus.Storable" <|-- "nucleus.pndImplementation"
"nucleus.Store" <|-- "nucleus.store"
"nucleus.fontcolorbluemapfontuuidUUIDStorable" #.. "nucleus.
s
tore"
"nucleus.fontcolorbluemapfontuuidUUID
store
Storable" #.. "nucleus.
genericS
tore"
@enduml
```