/* * Copyright (C) 2018 "IoT.bzh" * Author Sebastien Douheret * * 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" "time" "gerrit.automotivelinux.org/gerrit/src/xds/xds-agent.git/lib/xaapiv1" common "gerrit.automotivelinux.org/gerrit/src/xds/xds-common.git" "github.com/gin-gonic/gin" ) // getServersList Return the list of XDS Servers func (s *APIService) getServersList(c *gin.Context) { confMut.Lock() defer confMut.Unlock() svrList := []xaapiv1.ServerCfg{} for _, svr := range s.xdsServers { svrList = append(svrList, svr.GetConfig()) } c.JSON(http.StatusOK, svrList) } // getServer Return info of a XDS Servers func (s *APIService) getServer(c *gin.Context) { id := s.ParamGetIndex(c) if id == "" { common.APIError(c, "invalid parameter, id must be set") return } confMut.Lock() defer confMut.Unlock() svr := s.GetXdsServerFromURLIndex(id) if svr == nil { common.APIError(c, "unknown id") return } c.JSON(http.StatusOK, svr.GetConfig()) } // reconnectServer Force reconnection of a XDS Server func (s *APIService) reconnectServer(c *gin.Context) { id := s.ParamGetIndex(c) if id == "" { common.APIError(c, "invalid parameter, id must be set") return } svr := s.GetXdsServerFromURLIndex(id) if svr == nil { common.APIError(c, "unknown id") return } s.Log.Debugf("Reconnect XDS Server id %v", svr.ID) if err := svr.Close(); err != nil { common.APIError(c, err.Error()) return } time.Sleep(time.Millisecond * 100) if err := svr.Connect(); err != nil { common.APIError(c, err.Error()) return } c.JSON(http.StatusOK, svr.GetConfig()) }