Moved all structs exposed by API into apiv1 package
[src/xds/xds-agent.git] / lib / apiv1 / config.go
index 47155ed..f5c1fb5 100644 (file)
@@ -1,45 +1,22 @@
 package apiv1
 
-import (
-       "net/http"
-       "sync"
-
-       "github.com/gin-gonic/gin"
-       "github.com/iotbzh/xds-agent/lib/xdsconfig"
-       common "github.com/iotbzh/xds-common/golib"
-)
-
-var confMut sync.Mutex
-
-// GetConfig returns the configuration
-func (s *APIService) getConfig(c *gin.Context) {
-       confMut.Lock()
-       defer confMut.Unlock()
-
-       c.JSON(http.StatusOK, s.cfg)
+// APIConfig parameters (json format) of /config command
+type APIConfig struct {
+       Servers []ServerCfg `json:"servers"`
+
+       // Not exposed outside in JSON
+       Version       string `json:"-"`
+       APIVersion    string `json:"-"`
+       VersionGitTag string `json:"-"`
 }
 
-// SetConfig sets configuration
-func (s *APIService) setConfig(c *gin.Context) {
-       // FIXME - must be tested
-       c.JSON(http.StatusNotImplemented, "Not implemented")
-
-       var cfgArg xdsconfig.Config
-
-       if c.BindJSON(&cfgArg) != nil {
-               common.APIError(c, "Invalid arguments")
-               return
-       }
-
-       confMut.Lock()
-       defer confMut.Unlock()
-
-       s.log.Debugln("SET config: ", cfgArg)
-
-       if err := s.cfg.UpdateAll(cfgArg); err != nil {
-               common.APIError(c, err.Error())
-               return
-       }
-
-       c.JSON(http.StatusOK, s.cfg)
+// ServerCfg .
+type ServerCfg struct {
+       ID         string `json:"id"`
+       URL        string `json:"url"`
+       APIURL     string `json:"apiUrl"`
+       PartialURL string `json:"partialUrl"`
+       ConnRetry  int    `json:"connRetry"`
+       Connected  bool   `json:"connected"`
+       Disabled   bool   `json:"disabled"`
 }