Auto-updated UML diagram via goplantuml CI job authored by Manuel Kieweg's avatar Manuel Kieweg
...@@ -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) + GetChange(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) + GetDevice(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(sbi <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.store" *-- "nucleus.ChangeStore" "nucleus.genericStore" *-- "nucleus.ChangeStore"
"ygot.GoStruct" *-- "nucleus.CommonDevice" "ygot.GoStruct" *-- "nucleus.CommonDevice"
"nucleus.store" *-- "nucleus.DeviceStore" "nucleus.genericStore" *-- "nucleus.DeviceStore"
"nucleus.store" *-- "nucleus.PndStore" "nucleus.genericStore" *-- "nucleus.PndStore"
"nucleus.store" *-- "nucleus.SbiStore" "nucleus.genericStore" *-- "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.store" "nucleus.fontcolorbluemapfontuuidUUIDstoreStorable" #.. "nucleus.genericStore"
@enduml @enduml
``` ```