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)
 	}
 }