+/*
+ * Copyright (C) 2017-2018 "IoT.bzh"
+ * Author Sebastien Douheret <sebastien@iot.bzh>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package agent
import (
"net/http"
"sync"
+ "gerrit.automotivelinux.org/gerrit/src/xds/xds-agent.git/lib/xaapiv1"
+ "gerrit.automotivelinux.org/gerrit/src/xds/xds-agent.git/lib/xdsconfig"
+ common "gerrit.automotivelinux.org/gerrit/src/xds/xds-common.git"
"github.com/gin-gonic/gin"
- "github.com/iotbzh/xds-agent/lib/apiv1"
- "github.com/iotbzh/xds-agent/lib/xdsconfig"
- common "github.com/iotbzh/xds-common/golib"
)
var confMut sync.Mutex
// SetConfig sets configuration
func (s *APIService) setConfig(c *gin.Context) {
- var cfgArg apiv1.APIConfig
+ var cfgArg xaapiv1.APIConfig
if c.BindJSON(&cfgArg) != nil {
common.APIError(c, "Invalid arguments")
return
}
}
- // Add new XDS Server
+ // Add new / unconnected XDS Server
for _, svr := range cfgArg.Servers {
+ if svr.Connected && svr.ID != "" {
+ continue
+ }
cfg := xdsconfig.XDSServerConf{
ID: svr.ID,
URL: svr.URL,
}
}
+ // Update XdsServer config
+ for _, svrCfg := range cfgArg.Servers {
+ if err := s.UpdateXdsServer(svrCfg); err != nil {
+ // willingly ignore error
+ // s.Log.Debugf("Error while updating XDS Server config: %v", err)
+ }
+ }
+
c.JSON(http.StatusOK, s._getConfig())
}
-func (s *APIService) _getConfig() apiv1.APIConfig {
- cfg := apiv1.APIConfig{
+func (s *APIService) _getConfig() xaapiv1.APIConfig {
+ cfg := xaapiv1.APIConfig{
Version: s.Config.Version,
APIVersion: s.Config.APIVersion,
VersionGitTag: s.Config.VersionGitTag,
- Servers: []apiv1.ServerCfg{},
+ Servers: []xaapiv1.ServerCfg{},
}
for _, svr := range s.xdsServers {
- cfg.Servers = append(cfg.Servers, apiv1.ServerCfg{
+ cfg.Servers = append(cfg.Servers, xaapiv1.ServerCfg{
ID: svr.ID,
URL: svr.BaseURL,
APIURL: svr.APIURL,