From 9a7b3bed258277d5f5babfd9be9aa6dd1ac7cf51 Mon Sep 17 00:00:00 2001 From: grossmj Date: Mon, 26 Dec 2022 11:28:51 +0800 Subject: [PATCH] Allow raw images by default. Fixes https://github.com/GNS3/gns3-server/issues/2097 --- conf/gns3_server.conf | 3 +++ gns3server/api/routes/controller/images.py | 2 +- gns3server/schemas/config.py | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/conf/gns3_server.conf b/conf/gns3_server.conf index 249e255a..366ac89e 100644 --- a/conf/gns3_server.conf +++ b/conf/gns3_server.conf @@ -54,6 +54,9 @@ configs_path = /home/gns3/GNS3/configs ; "Affinity-square-gray", "Affinity-circle-blue", "Affinity-circle-red" and "Affinity-circle-gray" default_symbol_theme = Affinity-square-blue +; Option to enable or disable raw images to be uploaded to the server +allow_raw_images = True + ; Option to automatically send crash reports to the GNS3 team report_errors = True diff --git a/gns3server/api/routes/controller/images.py b/gns3server/api/routes/controller/images.py index e61444ce..a37566fa 100644 --- a/gns3server/api/routes/controller/images.py +++ b/gns3server/api/routes/controller/images.py @@ -70,7 +70,6 @@ async def upload_image( current_user: schemas.User = Depends(get_current_active_user), rbac_repo: RbacRepository = Depends(get_repository(RbacRepository)), install_appliances: Optional[bool] = False, - allow_raw_image: Optional[bool] = False ) -> schemas.Image: """ Upload an image. @@ -91,6 +90,7 @@ async def upload_image( raise ControllerBadRequestError(f"Image '{image_path}' already exists") try: + allow_raw_image = Config.instance().settings.Server.allow_raw_images image = await write_image(image_path, full_path, request.stream(), images_repo, allow_raw_image=allow_raw_image) except (OSError, InvalidImageError, ClientDisconnect) as e: raise ControllerError(f"Could not save image '{image_path}': {e}") diff --git a/gns3server/schemas/config.py b/gns3server/schemas/config.py index d2efdcc0..6e99140a 100644 --- a/gns3server/schemas/config.py +++ b/gns3server/schemas/config.py @@ -136,6 +136,7 @@ class ServerSettings(BaseModel): symbols_path: str = "~/GNS3/symbols" configs_path: str = "~/GNS3/configs" default_symbol_theme: BuiltinSymbolTheme = BuiltinSymbolTheme.affinity_square_blue + allow_raw_images: bool = True report_errors: bool = True additional_images_paths: List[str] = Field(default_factory=list) console_start_port_range: int = Field(5000, gt=0, le=65535)