mirror of
https://github.com/portainer/portainer.git
synced 2025-08-04 13:25:26 +02:00
fix(api/endpoint): filter status for async devices [EE-6958] (#11508)
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
This commit is contained in:
parent
fe41d23244
commit
1a801d86f0
1 changed files with 32 additions and 1 deletions
|
@ -334,11 +334,16 @@ func filterEndpointsByStatuses(endpoints []portainer.Endpoint, statuses []portai
|
||||||
status := endpoint.Status
|
status := endpoint.Status
|
||||||
if endpointutils.IsEdgeEndpoint(&endpoint) {
|
if endpointutils.IsEdgeEndpoint(&endpoint) {
|
||||||
isCheckValid := false
|
isCheckValid := false
|
||||||
|
|
||||||
edgeCheckinInterval := endpoint.EdgeCheckinInterval
|
edgeCheckinInterval := endpoint.EdgeCheckinInterval
|
||||||
if endpoint.EdgeCheckinInterval == 0 {
|
if edgeCheckinInterval == 0 {
|
||||||
edgeCheckinInterval = settings.EdgeAgentCheckinInterval
|
edgeCheckinInterval = settings.EdgeAgentCheckinInterval
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if endpoint.Edge.AsyncMode {
|
||||||
|
edgeCheckinInterval = getShortestAsyncInterval(&endpoint, settings)
|
||||||
|
}
|
||||||
|
|
||||||
if edgeCheckinInterval != 0 && endpoint.LastCheckInDate != 0 {
|
if edgeCheckinInterval != 0 && endpoint.LastCheckInDate != 0 {
|
||||||
isCheckValid = time.Now().Unix()-endpoint.LastCheckInDate <= int64(edgeCheckinInterval*EdgeDeviceIntervalMultiplier+EdgeDeviceIntervalAdd)
|
isCheckValid = time.Now().Unix()-endpoint.LastCheckInDate <= int64(edgeCheckinInterval*EdgeDeviceIntervalMultiplier+EdgeDeviceIntervalAdd)
|
||||||
}
|
}
|
||||||
|
@ -628,3 +633,29 @@ func getEdgeStackStatusParam(r *http.Request) (*portainer.EdgeStackStatusType, e
|
||||||
|
|
||||||
return &edgeStackStatus, nil
|
return &edgeStackStatus, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getShortestAsyncInterval(endpoint *portainer.Endpoint, settings *portainer.Settings) int {
|
||||||
|
var edgeIntervalUseDefault int = -1
|
||||||
|
pingInterval := endpoint.Edge.PingInterval
|
||||||
|
if pingInterval == edgeIntervalUseDefault {
|
||||||
|
pingInterval = settings.Edge.PingInterval
|
||||||
|
}
|
||||||
|
shortestAsyncInterval := pingInterval
|
||||||
|
|
||||||
|
snapshotInterval := endpoint.Edge.SnapshotInterval
|
||||||
|
if snapshotInterval == edgeIntervalUseDefault {
|
||||||
|
snapshotInterval = settings.Edge.SnapshotInterval
|
||||||
|
}
|
||||||
|
if shortestAsyncInterval > snapshotInterval {
|
||||||
|
shortestAsyncInterval = snapshotInterval
|
||||||
|
}
|
||||||
|
|
||||||
|
commandInterval := endpoint.Edge.CommandInterval
|
||||||
|
if commandInterval == edgeIntervalUseDefault {
|
||||||
|
commandInterval = settings.Edge.CommandInterval
|
||||||
|
}
|
||||||
|
if shortestAsyncInterval > commandInterval {
|
||||||
|
shortestAsyncInterval = commandInterval
|
||||||
|
}
|
||||||
|
return shortestAsyncInterval
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue