diff --git a/nucleus/principalNetworkDomain.go b/nucleus/principalNetworkDomain.go index fd54a00abdd9a60e65859978582eb502dc06854d..85bdff01b87db80b0fe4b636ece5cdb0d5decea5 100644 --- a/nucleus/principalNetworkDomain.go +++ b/nucleus/principalNetworkDomain.go @@ -7,42 +7,49 @@ import ( // PrincipalNetworkDomain provides an // interface for PND implementations type PrincipalNetworkDomain interface { + GetName() string Destroy() error - AddSbi() error - RemoveSbi() error + AddSbi(SouthboundInterface) error + RemoveSbi(string) error AddDevice(Device) error RemoveDevice(uuid uuid.UUID) error } type pndImplementation struct { - name string - sbi map[string]SouthboundInterface - devices map[uuid.UUID]Device + Name string + Description string + Sbi map[string]SouthboundInterface + Devices map[uuid.UUID]Device } //NewPND creates a Principle Network Domain -func NewPND(name string, sbi SouthboundInterface) PrincipalNetworkDomain { +func NewPND(name, description string, sbi SouthboundInterface) PrincipalNetworkDomain { sbic := make(map[string]SouthboundInterface) sbic["default"] = sbi devices := make(map[uuid.UUID]Device) return &pndImplementation{ - name: name, - sbi: sbic, - devices: devices, + Name: name, + Description: description, + Sbi: sbic, + Devices: devices, } } +func (pnd *pndImplementation) GetName() string { + return pnd.Name +} + // Interface satisfaction func (pnd *pndImplementation) Destroy() error { return destroy() } -func (pnd *pndImplementation) AddSbi() error { - return addSbi() +func (pnd *pndImplementation) AddSbi(sbi SouthboundInterface) error { + return pnd.addSbi(sbi) } -func (pnd *pndImplementation) RemoveSbi() error { - return removeSbi() +func (pnd *pndImplementation) RemoveSbi(sbiIdentifier string) error { + return pnd.removeSbi(sbiIdentifier) } func (pnd *pndImplementation) AddDevice(device Device) error { @@ -59,20 +66,22 @@ func destroy() error { return nil } -func addSbi() error { +func (pnd *pndImplementation) addSbi(sbi SouthboundInterface) error { + pnd.Sbi[sbi.SbiIdentifier()] = sbi return nil } -func removeSbi() error { +func (pnd *pndImplementation) removeSbi(sbiIdentifier string) error { + delete(pnd.Sbi, sbiIdentifier) return nil } func (pnd *pndImplementation) addDevice(device Device) error { - pnd.devices[device.Config.Uuid] = device + pnd.Devices[device.Config.Uuid] = device return nil } func (pnd *pndImplementation) removeDevice(uuid uuid.UUID) error { - delete(pnd.devices, uuid) + delete(pnd.Devices, uuid) return nil } diff --git a/nucleus/principalNetworkDomain_test.go b/nucleus/principalNetworkDomain_test.go index 133195a8d7e0cf2a3203c2c1bfc6aa4d74602a52..fab425652d76b69eaa95f8a4833c4ce6f1a40067 100644 --- a/nucleus/principalNetworkDomain_test.go +++ b/nucleus/principalNetworkDomain_test.go @@ -79,9 +79,9 @@ func Test_pndImplementation_AddDevice(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { pnd := &pndImplementation{ - name: tt.fields.name, - sbi: tt.fields.sbi, - devices: tt.fields.devices, + Name: tt.fields.name, + Sbi: tt.fields.sbi, + Devices: tt.fields.devices, } if err := pnd.AddDevice(tt.args.device); (err != nil) != tt.wantErr { t.Errorf("AddDevice() error = %v, wantErr %v", err, tt.wantErr) @@ -106,9 +106,9 @@ func Test_pndImplementation_AddSbi(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { pnd := &pndImplementation{ - name: tt.fields.name, - sbi: tt.fields.sbi, - devices: tt.fields.devices, + Name: tt.fields.name, + Sbi: tt.fields.sbi, + Devices: tt.fields.devices, } if err := pnd.AddSbi(); (err != nil) != tt.wantErr { t.Errorf("AddSbi() error = %v, wantErr %v", err, tt.wantErr) @@ -133,9 +133,9 @@ func Test_pndImplementation_Destroy(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { pnd := &pndImplementation{ - name: tt.fields.name, - sbi: tt.fields.sbi, - devices: tt.fields.devices, + Name: tt.fields.name, + Sbi: tt.fields.sbi, + Devices: tt.fields.devices, } if err := pnd.Destroy(); (err != nil) != tt.wantErr { t.Errorf("Destroy() error = %v, wantErr %v", err, tt.wantErr) @@ -164,9 +164,9 @@ func Test_pndImplementation_RemoveDevice(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { pnd := &pndImplementation{ - name: tt.fields.name, - sbi: tt.fields.sbi, - devices: tt.fields.devices, + Name: tt.fields.name, + Sbi: tt.fields.sbi, + Devices: tt.fields.devices, } if err := pnd.RemoveDevice(tt.args.uuid); (err != nil) != tt.wantErr { t.Errorf("RemoveDevice() error = %v, wantErr %v", err, tt.wantErr) @@ -191,9 +191,9 @@ func Test_pndImplementation_RemoveSbi(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { pnd := &pndImplementation{ - name: tt.fields.name, - sbi: tt.fields.sbi, - devices: tt.fields.devices, + Name: tt.fields.name, + Sbi: tt.fields.sbi, + Devices: tt.fields.devices, } if err := pnd.RemoveSbi(); (err != nil) != tt.wantErr { t.Errorf("RemoveSbi() error = %v, wantErr %v", err, tt.wantErr) @@ -222,9 +222,9 @@ func Test_pndImplementation_addDevice(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { pnd := &pndImplementation{ - name: tt.fields.name, - sbi: tt.fields.sbi, - devices: tt.fields.devices, + Name: tt.fields.name, + Sbi: tt.fields.sbi, + Devices: tt.fields.devices, } if err := pnd.addDevice(tt.args.device); (err != nil) != tt.wantErr { t.Errorf("addDevice() error = %v, wantErr %v", err, tt.wantErr) @@ -253,9 +253,9 @@ func Test_pndImplementation_removeDevice(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { pnd := &pndImplementation{ - name: tt.fields.name, - sbi: tt.fields.sbi, - devices: tt.fields.devices, + Name: tt.fields.name, + Sbi: tt.fields.sbi, + Devices: tt.fields.devices, } if err := pnd.removeDevice(tt.args.uuid); (err != nil) != tt.wantErr { t.Errorf("removeDevice() error = %v, wantErr %v", err, tt.wantErr)