mirror of https://github.com/portainer/portainer
				
				
				
			fix(platform): remove error log when local env is not found [BE-11353] (#364)
							parent
							
								
									2d3e5c3499
								
							
						
					
					
						commit
						e45b852c09
					
				|  | @ -3,6 +3,7 @@ package system | ||||||
| import ( | import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 
 | 
 | ||||||
|  | 	"github.com/pkg/errors" | ||||||
| 	"github.com/portainer/portainer/api/internal/endpointutils" | 	"github.com/portainer/portainer/api/internal/endpointutils" | ||||||
| 	plf "github.com/portainer/portainer/api/platform" | 	plf "github.com/portainer/portainer/api/platform" | ||||||
| 	httperror "github.com/portainer/portainer/pkg/libhttp/error" | 	httperror "github.com/portainer/portainer/pkg/libhttp/error" | ||||||
|  | @ -46,8 +47,13 @@ func (handler *Handler) systemInfo(w http.ResponseWriter, r *http.Request) *http | ||||||
| 
 | 
 | ||||||
| 	platform, err := handler.platformService.GetPlatform() | 	platform, err := handler.platformService.GetPlatform() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | 		if !errors.Is(err, plf.ErrNoLocalEnvironment) { | ||||||
| 			return httperror.InternalServerError("Failed to get platform", err) | 			return httperror.InternalServerError("Failed to get platform", err) | ||||||
| 		} | 		} | ||||||
|  | 		// If no local environment is detected, we assume the platform is Docker
 | ||||||
|  | 		// UI will stop showing the upgrade banner
 | ||||||
|  | 		platform = plf.PlatformDocker | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	return response.JSON(w, &systemInfoResponse{ | 	return response.JSON(w, &systemInfoResponse{ | ||||||
| 		EdgeAgents: edgeAgents, | 		EdgeAgents: edgeAgents, | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"regexp" | 	"regexp" | ||||||
| 
 | 
 | ||||||
|  | 	ceplf "github.com/portainer/portainer/api/platform" | ||||||
| 	httperror "github.com/portainer/portainer/pkg/libhttp/error" | 	httperror "github.com/portainer/portainer/pkg/libhttp/error" | ||||||
| 	"github.com/portainer/portainer/pkg/libhttp/request" | 	"github.com/portainer/portainer/pkg/libhttp/request" | ||||||
| 	"github.com/portainer/portainer/pkg/libhttp/response" | 	"github.com/portainer/portainer/pkg/libhttp/response" | ||||||
|  | @ -45,6 +46,9 @@ func (handler *Handler) systemUpgrade(w http.ResponseWriter, r *http.Request) *h | ||||||
| 
 | 
 | ||||||
| 	environment, err := handler.platformService.GetLocalEnvironment() | 	environment, err := handler.platformService.GetLocalEnvironment() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | 		if errors.Is(err, ceplf.ErrNoLocalEnvironment) { | ||||||
|  | 			return httperror.NotFound("The system upgrade feature is disabled because no local environment was detected.", err) | ||||||
|  | 		} | ||||||
| 		return httperror.InternalServerError("Failed to get local environment", err) | 		return httperror.InternalServerError("Failed to get local environment", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -53,8 +57,7 @@ func (handler *Handler) systemUpgrade(w http.ResponseWriter, r *http.Request) *h | ||||||
| 		return httperror.InternalServerError("Failed to get platform", err) | 		return httperror.InternalServerError("Failed to get platform", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	err = handler.upgradeService.Upgrade(platform, environment, payload.License) | 	if err := handler.upgradeService.Upgrade(platform, environment, payload.License); err != nil { | ||||||
| 	if err != nil { |  | ||||||
| 		return httperror.InternalServerError("Failed to upgrade Portainer", err) | 		return httperror.InternalServerError("Failed to upgrade Portainer", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -14,6 +14,10 @@ import ( | ||||||
| 	"github.com/rs/zerolog/log" | 	"github.com/rs/zerolog/log" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | var ( | ||||||
|  | 	ErrNoLocalEnvironment = errors.New("No local environment was detected") | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| type Service interface { | type Service interface { | ||||||
| 	GetLocalEnvironment() (*portainer.Endpoint, error) | 	GetLocalEnvironment() (*portainer.Endpoint, error) | ||||||
| 	GetPlatform() (ContainerPlatform, error) | 	GetPlatform() (ContainerPlatform, error) | ||||||
|  | @ -35,7 +39,7 @@ func (service *service) loadEnvAndPlatform() error { | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	environment, platform, err := guessLocalEnvironment(service.dataStore) | 	environment, platform, err := detectLocalEnvironment(service.dataStore) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  | @ -73,7 +77,7 @@ var platformToEndpointType = map[ContainerPlatform][]portainer.EndpointType{ | ||||||
| 	PlatformKubernetes: {portainer.KubernetesLocalEnvironment}, | 	PlatformKubernetes: {portainer.KubernetesLocalEnvironment}, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func guessLocalEnvironment(dataStore dataservices.DataStore) (*portainer.Endpoint, ContainerPlatform, error) { | func detectLocalEnvironment(dataStore dataservices.DataStore) (*portainer.Endpoint, ContainerPlatform, error) { | ||||||
| 	platform := DetermineContainerPlatform() | 	platform := DetermineContainerPlatform() | ||||||
| 
 | 
 | ||||||
| 	if !slices.Contains([]ContainerPlatform{PlatformDocker, PlatformKubernetes}, platform) { | 	if !slices.Contains([]ContainerPlatform{PlatformDocker, PlatformKubernetes}, platform) { | ||||||
|  | @ -113,7 +117,7 @@ func guessLocalEnvironment(dataStore dataservices.DataStore) (*portainer.Endpoin | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return nil, "", errors.New("failed to find local environment") | 	return nil, "", ErrNoLocalEnvironment | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func checkDockerEnvTypeForUpgrade(environment *portainer.Endpoint) ContainerPlatform { | func checkDockerEnvTypeForUpgrade(environment *portainer.Endpoint) ContainerPlatform { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Oscar Zhou
						Oscar Zhou