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 {
...
@@ -26,7 +26,7 @@ namespace nucleus {
}
}
class ChangeStore << (S,Aquamarine) >> {
class ChangeStore << (S,Aquamarine) >> {
+ Get(id uuid.UUID) (*Change, error)
+ Get
Change
(id uuid.UUID) (*Change, error)
}
}
class ClientConfig << (S,Aquamarine) >> {
class ClientConfig << (S,Aquamarine) >> {
...
@@ -39,41 +39,28 @@ namespace nucleus {
...
@@ -39,41 +39,28 @@ namespace nucleus {
}
}
class CommonDevice << (S,Aquamarine) >> {
class CommonDevice << (S,Aquamarine) >> {
- sbi SouthboundInterface
- sbi
southbound.
SouthboundInterface
- transport Transport
- transport
transport.
Transport
- name string
- name string
+ UUID uuid.UUID
+ UUID uuid.UUID
- isDevice()
+ ID() uuid.UUID
+ ID() uuid.UUID
+ Model() ygot.GoStruct
+ Model() ygot.GoStruct
+ Transport() Transport
+ Transport()
transport.
Transport
+ Name() string
+ Name() string
+ SBI() SouthboundInterface
+ SBI()
southbound.
SouthboundInterface
+ SetTransport(t Transport)
+ SetTransport(t
transport.
Transport)
+ SetName(n string)
+ SetName(n string)
+ SetSBI(sbi SouthboundInterface)
+ SetSBI(sbi
southbound.
SouthboundInterface)
+ ProcessResponse(resp proto.Message) error
+ 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) >> {
class DeviceStore << (S,Aquamarine) >> {
- deviceNameToUUIDLookup <font color=blue>map</font>[string]uuid.UUID
- deviceNameToUUIDLookup <font color=blue>map</font>[string]uuid.UUID
+ Get(id uuid.UUID, parseErrors ...error) (Device, error)
+ Get
Device
(id uuid.UUID, parseErrors ...error) (
device.
Device, error)
+ Add(item Storable, name string) error
+ Add(item
store.
Storable, name string) error
+ Delete(id uuid.UUID) error
+ Delete(id uuid.UUID) error
}
}
...
@@ -116,31 +103,7 @@ namespace nucleus {
...
@@ -116,31 +103,7 @@ namespace nucleus {
}
}
class PndStore << (S,Aquamarine) >> {
class PndStore << (S,Aquamarine) >> {
+ Get(id uuid.UUID) (PrincipalNetworkDomain, error)
+ GetPND(id uuid.UUID) (networkdomain.NetworkDomain, 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
}
}
class Restconf << (S,Aquamarine) >> {
class Restconf << (S,Aquamarine) >> {
...
@@ -153,49 +116,27 @@ namespace nucleus {
...
@@ -153,49 +116,27 @@ namespace nucleus {
}
}
class SbiStore << (S,Aquamarine) >> {
class SbiStore << (S,Aquamarine) >> {
+ Get(id uuid.UUID) (SouthboundInterface, error)
+ GetSBI(id uuid.UUID) (southbound.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
}
}
interface Storable
{
class csbiDevice << (S,Aquamarine) >>
{
+ ID() uuid.UUID
+ 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
+ Exists(id uuid.UUID) bool
+ Add(item Storable) error
+ Add(item
store.
Storable) error
+ Get(id uuid.UUID) (Storable, error)
+ Get(id uuid.UUID) (
store.
Storable, error)
+ Delete(id uuid.UUID) error
+ Delete(id uuid.UUID) error
+ UUIDs() []uuid.UUID
+ UUIDs() []uuid.UUID
}
}
interface Transport {
class nucleus.genericStore << (T, #FF7700) >> {
+ 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 pndImplementation << (S,Aquamarine) >> {
class pndImplementation << (S,Aquamarine) >> {
- name string
- name string
...
@@ -208,14 +149,14 @@ namespace nucleus {
...
@@ -208,14 +149,14 @@ namespace nucleus {
- id uuid.UUID
- id uuid.UUID
- errChans <font color=blue>map</font>[uuid.UUID]<font color=blue>chan</font> error
- 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
- removeSbi(id uuid.UUID) error
- addDevice(device Device) error
- addDevice(device
device.
Device) error
- removeDevice(id uuid.UUID) error
- removeDevice(id uuid.UUID) error
+ PendingChanges() []uuid.UUID
+ PendingChanges() []uuid.UUID
+ CommittedChanges() []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
+ Commit(u uuid.UUID) error
+ Confirm(u uuid.UUID) error
+ Confirm(u uuid.UUID) error
+ ID() uuid.UUID
+ ID() uuid.UUID
...
@@ -223,12 +164,12 @@ namespace nucleus {
...
@@ -223,12 +164,12 @@ namespace nucleus {
+ GetName() string
+ GetName() string
+ ContainsDevice(id uuid.UUID) bool
+ ContainsDevice(id uuid.UUID) bool
+ GetDescription() string
+ GetDescription() string
+ GetSBIs()
<font color=blue>interface</font>{}
+ GetSBIs()
store.Store
+ Destroy() error
+ Destroy() error
+ AddSbi(s
bi <font color=blue>interface</font>{}
) error
+ AddSbi(s
southbound.SouthboundInterface
) error
+ RemoveSbi(id uuid.UUID) error
+ RemoveSbi(id uuid.UUID) error
+ AddDevice(name string, opt *transport.TransportOption, sid 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
+ RemoveDevice(uuid uuid.UUID) error
+ MarshalDevice(identifier string) (string, error)
+ MarshalDevice(identifier string) (string, error)
+ Request(uuid uuid.UUID, path string) error
+ Request(uuid uuid.UUID, path string) error
...
@@ -236,38 +177,18 @@ namespace nucleus {
...
@@ -236,38 +177,18 @@ namespace nucleus {
+ ChangeOND(uuid uuid.UUID, operation pnd.ApiOperation, path string, value ...string) error
+ ChangeOND(uuid uuid.UUID, operation pnd.ApiOperation, path string, value ...string) error
}
}
class store << (S,Aquamarine) >> {
class "<font color=blue>map</font>[uuid.UUID]store.Storable" as fontcolorbluemapfontuuidUUIDstoreStorable {
+ 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 {
'This class was created so that we can correctly have an alias pointing to this name. Since it contains dots that can break namespaces
'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"
"ygot.GoStruct" *-- "nucleus.CommonDevice"
"nucleus.
s
tore" *-- "nucleus.DeviceStore"
"nucleus.
genericS
tore" *-- "nucleus.DeviceStore"
"nucleus.
s
tore" *-- "nucleus.PndStore"
"nucleus.
genericS
tore" *-- "nucleus.PndStore"
"nucleus.
s
tore" *-- "nucleus.SbiStore"
"nucleus.
genericS
tore" *-- "nucleus.SbiStore"
"nucleus.CommonDevice" *-- "nucleus.csbiDevice"
"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
@enduml
```
```