Moved all structs exposed by API into apiv1 package
[src/xds/xds-agent.git] / lib / agent / apiv1-version.go
1 package agent
2
3 import (
4         "net/http"
5
6         "github.com/gin-gonic/gin"
7         "github.com/iotbzh/xds-agent/lib/apiv1"
8         common "github.com/iotbzh/xds-common/golib"
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                         common.APIError(c, "Cannot retrieve version of XDS server ID %s : %v", svr.ID, err.Error())
27                         return
28                 }
29                 svrVer = append(svrVer, res)
30         }
31         response.Server = svrVer
32
33         c.JSON(http.StatusOK, response)
34 }