+
+// UpdateXdsServer Update XDS Server configuration settings
+func (s *APIService) UpdateXdsServer(cfg xaapiv1.ServerCfg) error {
+ if _, exist := s.xdsServers[cfg.ID]; !exist {
+ return fmt.Errorf("Unknown Server ID %s", cfg.ID)
+ }
+
+ svr := s.xdsServers[cfg.ID]
+
+ // Update only some configurable fields
+ svr.ConnRetry = cfg.ConnRetry
+
+ return nil
+}
+
+// GetXdsServerFromURLIndex Retrieve XdsServer from URLIndex value
+func (s *APIService) GetXdsServerFromURLIndex(urlIdx string) *XdsServer {
+ for _, svr := range s.xdsServers {
+ if svr.URLIndex == urlIdx {
+ return svr
+ }
+ }
+ return nil
+}
+
+// ParamGetIndex Retrieve numerical parameter in request url
+func (s *APIService) ParamGetIndex(c *gin.Context) string {
+ uri := c.Request.RequestURI
+ for idx := strings.LastIndex(uri, "/"); idx > 0; {
+ id := uri[idx+1:]
+ if _, err := strconv.Atoi(id); err == nil {
+ return id
+ }
+ uri = uri[:idx]
+ idx = strings.LastIndex(uri, "/")
+ }
+ return ""
+}