1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-08-03 04:45:21 +02:00

feat(edge): EE-4621 support high latency for tunnel (#8302)

This commit is contained in:
cmeng 2023-03-04 09:13:37 +13:00 committed by GitHub
parent 07df4b1591
commit 60275dd31c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 111 additions and 23 deletions

View file

@ -1,5 +1,7 @@
import angular from 'angular';
import { PortainerEndpointTypes } from 'Portainer/models/endpoint/models';
import { EnvironmentStatus } from '@/react/portainer/environments/types';
import { reactModule } from './react';
@ -16,14 +18,17 @@ angular.module('portainer.docker', ['portainer.app', reactModule]).config([
abstract: true,
onEnter: /* @ngInject */ function onEnter(endpoint, $async, $state, EndpointService, Notifications, StateManager, SystemService) {
return $async(async () => {
if (![1, 2, 4].includes(endpoint.Type)) {
const dockerTypes = [PortainerEndpointTypes.DockerEnvironment, PortainerEndpointTypes.AgentOnDockerEnvironment, PortainerEndpointTypes.EdgeAgentOnDockerEnvironment];
if (!dockerTypes.includes(endpoint.Type)) {
$state.go('portainer.home');
return;
}
try {
const status = await checkEndpointStatus(endpoint);
if (endpoint.Type !== 4) {
if (endpoint.Type !== PortainerEndpointTypes.EdgeAgentOnDockerEnvironment) {
await updateEndpointStatus(endpoint, status);
}
endpoint.Status = status;
@ -34,16 +39,22 @@ angular.module('portainer.docker', ['portainer.app', reactModule]).config([
await StateManager.updateEndpointState(endpoint);
} catch (e) {
Notifications.error('Failed loading environment', e);
$state.go('portainer.home', {}, { reload: true });
let params = {};
if (endpoint.Type == PortainerEndpointTypes.EdgeAgentOnDockerEnvironment) {
params = { redirect: true, environmentId: endpoint.Id, environmentName: endpoint.Name, route: 'docker.dashboard' };
} else {
Notifications.error('Failed loading environment', e);
}
$state.go('portainer.home', params, { reload: true, inherit: false });
}
async function checkEndpointStatus(endpoint) {
try {
await SystemService.ping(endpoint.Id);
return 1;
return EnvironmentStatus.Up;
} catch (e) {
return 2;
return EnvironmentStatus.Down;
}
}