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,7 +47,12 @@ 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 {
|
||||||
return httperror.InternalServerError("Failed to get platform", err)
|
if !errors.Is(err, plf.ErrNoLocalEnvironment) {
|
||||||
|
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{
|
||||||
|
|
|
@ -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