diff options
author | Clément Bénier <clement.benier@iot.bzh> | 2018-10-01 11:51:47 +0200 |
---|---|---|
committer | Clément Bénier <clement.benier@iot.bzh> | 2018-10-16 14:57:58 +0200 |
commit | 5e979f0ba451e64fc44ffaa8b79d714d9ad75a57 (patch) | |
tree | 6fb6ba51e034ba361fd833b482fb061d4f918da7 /lib/xdsserver/webserver.go | |
parent | 4982769bd48b5c67c5eff4d9c6f297fa2a7531a4 (diff) |
update xds-server package in docker
scripts/package-update: bash scripts to update xds-server package in docker
monitor updates: default time is 24h, a update is tried at startup
api/v1: 2 new requests:
- get(updates): return various information about xds-server packages
- post(updates): update xds-server packages
Change-Id: I1673f7860e57cfe1d4abe5a24609ee46a90b67d8
Signed-off-by: Clément Bénier <clement.benier@iot.bzh>
Diffstat (limited to 'lib/xdsserver/webserver.go')
-rw-r--r-- | lib/xdsserver/webserver.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/xdsserver/webserver.go b/lib/xdsserver/webserver.go index 24456b9..a50b41e 100644 --- a/lib/xdsserver/webserver.go +++ b/lib/xdsserver/webserver.go @@ -84,6 +84,7 @@ func (s *WebServer) Serve() error { s.router.Use(gin.Recovery()) s.router.Use(s.middlewareXDSDetails()) s.router.Use(s.middlewareCORS()) + s.router.Use(s.lockRequest()) // Create REST API s.api = NewAPIV1(s.Context) @@ -172,6 +173,16 @@ func (s *WebServer) middlewareCORS() gin.HandlerFunc { } } +//lockRequest handles to increment/decrement xds package update +//to avoid updating xds-server when request is done +func (s *WebServer) lockRequest() gin.HandlerFunc { + return func(c *gin.Context) { + LockXdsUpdateCounter(s.Context, true) + c.Next() + LockXdsUpdateCounter(s.Context, false) + } +} + // socketHandler is the handler for the "main" websocket connection func (s *WebServer) socketHandler(c *gin.Context) { |