Improved and fixed connection to XDS Server
[src/xds/xds-agent.git] / lib / agent / apiv1-version.go
index c2387c1..c73010e 100644 (file)
@@ -1,28 +1,17 @@
 package agent
 
 import (
+       "fmt"
        "net/http"
 
        "github.com/gin-gonic/gin"
-       common "github.com/iotbzh/xds-common/golib"
+       "github.com/iotbzh/xds-agent/lib/apiv1"
 )
 
-type version struct {
-       ID            string `json:"id"`
-       Version       string `json:"version"`
-       APIVersion    string `json:"apiVersion"`
-       VersionGitTag string `json:"gitTag"`
-}
-
-type apiVersion struct {
-       Client version   `json:"client"`
-       Server []version `json:"servers"`
-}
-
 // getInfo : return various information about server
 func (s *APIService) getVersion(c *gin.Context) {
-       response := apiVersion{
-               Client: version{
+       response := apiv1.XDSVersion{
+               Client: apiv1.VersionData{
                        ID:            "",
                        Version:       s.Config.Version,
                        APIVersion:    s.Config.APIVersion,
@@ -30,12 +19,14 @@ func (s *APIService) getVersion(c *gin.Context) {
                },
        }
 
-       svrVer := []version{}
+       svrVer := []apiv1.VersionData{}
        for _, svr := range s.xdsServers {
-               res := version{}
-               if err := svr.HTTPGet("/version", &res); err != nil {
-                       common.APIError(c, "Cannot retrieve version of XDS server ID %s : %v", svr.ID, err.Error())
-                       return
+               res := apiv1.VersionData{}
+               if err := svr.GetVersion(&res); err != nil {
+                       errMsg := fmt.Sprintf("Cannot retrieve version of XDS server ID %s : %v", svr.ID, err.Error())
+                       s.Log.Warning(errMsg)
+                       res.ID = svr.ID
+                       res.Version = errMsg
                }
                svrVer = append(svrVer, res)
        }