OIntroduced POST and GET rest apis for adding and fetching OLT Information
Change-Id: I997093581c22cdfe8211caced804d327e29834c8
diff --git a/internal/pkg/application/application.go b/internal/pkg/application/application.go
index 1f31149..730be6c 100644
--- a/internal/pkg/application/application.go
+++ b/internal/pkg/application/application.go
@@ -454,7 +454,7 @@
type DeviceConfig struct {
SerialNumber string `json:"id"`
HardwareIdentifier string `json:"hardwareIdentifier"`
- IPAddress net.IP `json:"ipAddress"`
+ IPAddress string `json:"ipAddress"`
UplinkPort int `json:"uplinkPort"`
NasID string `json:"nasId"`
NniDhcpTrapVid int `json:"nniDhcpTrapVid"`
@@ -573,29 +573,31 @@
return nil
}
-func (va *VoltApplication) AddDeviceConfig(cntx context.Context, serialNum, hardwareIdentifier, nasID string, ipAddress net.IP, uplinkPort, nniDhcpTrapId int) error {
+func (va *VoltApplication) AddDeviceConfig(cntx context.Context, serialNum, hardwareIdentifier, nasID, ipAddress string, uplinkPort, nniDhcpTrapId int) error {
var dc *DeviceConfig
- d := va.GetDeviceConfig(serialNum)
- if d == nil {
- deviceConfig := &DeviceConfig{
- SerialNumber: serialNum,
- HardwareIdentifier: hardwareIdentifier,
- NasID: nasID,
- UplinkPort: uplinkPort,
- IPAddress: ipAddress,
- NniDhcpTrapVid: nniDhcpTrapId,
- }
- va.DevicesConfig.Store(serialNum, deviceConfig)
- err := dc.WriteDeviceConfigToDb(cntx, serialNum, deviceConfig)
- if err != nil {
- logger.Errorw(ctx, "DB update for device config failed", log.Fields{"err": err})
- return err
- }
- } else {
- logger.Errorw(ctx, "Device config already exist", log.Fields{"DeviceID": serialNum})
- return errors.New("Device config already exist")
+ deviceConfig := &DeviceConfig{
+ SerialNumber: serialNum,
+ HardwareIdentifier: hardwareIdentifier,
+ NasID: nasID,
+ UplinkPort: uplinkPort,
+ IPAddress: ipAddress,
+ NniDhcpTrapVid: nniDhcpTrapId,
}
+ va.DevicesConfig.Store(serialNum, deviceConfig)
+ err := dc.WriteDeviceConfigToDb(cntx, serialNum, deviceConfig)
+ if err != nil {
+ logger.Errorw(ctx, "DB update for device config failed", log.Fields{"err": err})
+ return err
+ }
+
+ // If device is already discovered update the VoltDevice structure
+ device, id := va.GetDeviceBySerialNo(serialNum)
+ if device != nil {
+ device.NniDhcpTrapVid = of.VlanType(nniDhcpTrapId)
+ va.DevicesDisc.Store(id, device)
+ }
+
return nil
}
@@ -2145,24 +2147,18 @@
logger.Infow(ctx, "updated OltFlowServiceConfig from DB", log.Fields{"OltFlowServiceConfig": va.OltFlowServiceConfig})
}
-func (va *VoltApplication) UpdateDeviceConfig(cntx context.Context, sn, mac, nasID string, port, dhcpVid int, ip net.IP) {
- if d, ok := va.DevicesConfig.Load(sn); ok {
- logger.Infow(ctx, "Device configuration already exists", log.Fields{"DeviceInfo": d})
+func (va *VoltApplication) UpdateDeviceConfig(cntx context.Context, deviceConfig *DeviceConfig) {
+ var dc *DeviceConfig
+ va.DevicesConfig.Store(deviceConfig.SerialNumber, deviceConfig)
+ err := dc.WriteDeviceConfigToDb(cntx, deviceConfig.SerialNumber, deviceConfig)
+ if err != nil {
+ logger.Errorw(ctx, "DB update for device config failed", log.Fields{"err": err})
}
- d := DeviceConfig{
- SerialNumber: sn,
- UplinkPort: port,
- HardwareIdentifier: mac,
- IPAddress: ip,
- NasID: nasID,
- NniDhcpTrapVid: dhcpVid,
- }
- logger.Infow(ctx, "Added OLT configurations", log.Fields{"DeviceInfo": d})
- va.DevicesConfig.Store(sn, d)
+ logger.Infow(ctx, "Added OLT configurations", log.Fields{"DeviceInfo": deviceConfig})
// If device is already discovered update the VoltDevice structure
- device, id := va.GetDeviceBySerialNo(sn)
+ device, id := va.GetDeviceBySerialNo(deviceConfig.SerialNumber)
if device != nil {
- device.NniDhcpTrapVid = of.VlanType(dhcpVid)
+ device.NniDhcpTrapVid = of.VlanType(deviceConfig.NniDhcpTrapVid)
va.DevicesDisc.Store(id, device)
}
}