Improved and fixed connection to XDS Server
[src/xds/xds-agent.git] / lib / agent / apiv1-version.go
1 package agent
2
3 import (
4         "fmt"
5         "net/http"
6
7         "github.com/gin-gonic/gin"
8         "github.com/iotbzh/xds-agent/lib/apiv1"
9 )
10
11 // getInfo : return various information about server
12 func (s *APIService) getVersion(c *gin.Context) {
13         response := apiv1.XDSVersion{
14                 Client: apiv1.VersionData{
15                         ID:            "",
16                         Version:       s.Config.Version,
17                         APIVersion:    s.Config.APIVersion,
18                         VersionGitTag: s.Config.VersionGitTag,
19                 },
20         }
21
22         svrVer := []apiv1.VersionData{}
23         for _, svr := range s.xdsServers {
24                 res := apiv1.VersionData{}
25                 if err := svr.GetVersion(&res); err != nil {
26                         errMsg := fmt.Sprintf("Cannot retrieve version of XDS server ID %s : %v", svr.ID, err.Error())
27                         s.Log.Warning(errMsg)
28                         res.ID = svr.ID
29                         res.Version = errMsg
30                 }
31                 svrVer = append(svrVer, res)
32         }
33         response.Server = svrVer
34
35         c.JSON(http.StatusOK, response)
36 }