From 7851ea89f55a9c8d8e5ba9e59ec9fb7dc1492932 Mon Sep 17 00:00:00 2001 From: Bin Tang Date: Mon, 31 Oct 2022 21:01:03 +0800 Subject: [PATCH 1/2] add mirror health checking Currently, the mirror is set to unavailable if the failed times reach failure_limit. We added mirror health checking, which will recover unavailable mirror. The failure_limit indicates the failed time at which the mirror is set to unavailable. The health_check_interval indicates the time interval to recover the unavailable mirror. The ping_url is the endpoint to check mirror server health. Signed-off-by: Bin Tang --- config/daemonconfig.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/config/daemonconfig.go b/config/daemonconfig.go index 96beb6cd55..9b71c20d75 100644 --- a/config/daemonconfig.go +++ b/config/daemonconfig.go @@ -61,8 +61,12 @@ type DaemonConfig struct { } type MirrorConfig struct { - Host string `json:"host,omitempty"` - Headers map[string]string `json:"headers,omitempty"` + Host string `json:"host,omitempty"` + Headers map[string]string `json:"headers,omitempty"` + AuthThrough bool `json:"auth_through,omitempty"` + HealthCheckInterval int `json:"health_check_interval,omitempty"` + FailureLimit uint8 `json:"failure_limit,omitempty"` + PingURL string `json:"ping_url,omitempty"` } type BackendConfig struct { // Localfs backend configs From 75adbe36f89ccc4413c810fd941f64ed9877fc7f Mon Sep 17 00:00:00 2001 From: Bin Tang Date: Sat, 5 Nov 2022 00:00:29 +0800 Subject: [PATCH 2/2] fix type of BackendConfig item to adapt nydus Signed-off-by: Bin Tang --- config/daemonconfig.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/daemonconfig.go b/config/daemonconfig.go index 9b71c20d75..b9ed591278 100644 --- a/config/daemonconfig.go +++ b/config/daemonconfig.go @@ -64,7 +64,7 @@ type MirrorConfig struct { Host string `json:"host,omitempty"` Headers map[string]string `json:"headers,omitempty"` AuthThrough bool `json:"auth_through,omitempty"` - HealthCheckInterval int `json:"health_check_interval,omitempty"` + HealthCheckInterval uint64 `json:"health_check_interval,omitempty"` FailureLimit uint8 `json:"failure_limit,omitempty"` PingURL string `json:"ping_url,omitempty"` } @@ -100,12 +100,12 @@ type BackendConfig struct { URL string `json:"url,omitempty"` Fallback bool `json:"fallback"` PingURL string `json:"ping_url,omitempty"` - CheckInterval int `json:"check_interval,omitempty"` + CheckInterval uint64 `json:"check_interval,omitempty"` UseHTTP bool `json:"use_http,omitempty"` } `json:"proxy,omitempty"` - Timeout int `json:"timeout,omitempty"` - ConnectTimeout int `json:"connect_timeout,omitempty"` - RetryLimit int `json:"retry_limit,omitempty"` + Timeout uint32 `json:"timeout,omitempty"` + ConnectTimeout uint32 `json:"connect_timeout,omitempty"` + RetryLimit uint8 `json:"retry_limit,omitempty"` } type DeviceConfig struct {