From 709aa460747d74cbfb3b1c640017d4be6dc586f0 Mon Sep 17 00:00:00 2001 From: grossmj Date: Wed, 6 Sep 2023 16:48:24 +0700 Subject: [PATCH] Fix issue with controller config saved before checking current version with previous one --- gns3server/controller/__init__.py | 46 +++++++++++++++---------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/gns3server/controller/__init__.py b/gns3server/controller/__init__.py index 19d7976e..101854c9 100644 --- a/gns3server/controller/__init__.py +++ b/gns3server/controller/__init__.py @@ -191,29 +191,28 @@ class Controller: Save the controller configuration on disk """ - if self._config_loaded is False: - return - - controller_settings = {"computes": [], - "templates": [], - "gns3vm": self.gns3vm.__json__(), - "iou_license": self._iou_license_settings, - "appliances_etag": self._appliance_manager.appliances_etag, - "version": __version__} - - for template in self._template_manager.templates.values(): - if not template.builtin: - controller_settings["templates"].append(template.__json__()) + controller_settings = dict() + if self._config_loaded: + controller_settings = {"computes": [], + "templates": [], + "gns3vm": self.gns3vm.__json__(), + "iou_license": self._iou_license_settings, + "appliances_etag": self._appliance_manager.appliances_etag, + "version": __version__} + + for template in self._template_manager.templates.values(): + if not template.builtin: + controller_settings["templates"].append(template.__json__()) - for compute in self._computes.values(): - if compute.id != "local" and compute.id != "vm": - controller_settings["computes"].append({"host": compute.host, - "name": compute.name, - "port": compute.port, - "protocol": compute.protocol, - "user": compute.user, - "password": compute.password, - "compute_id": compute.id}) + for compute in self._computes.values(): + if compute.id != "local" and compute.id != "vm": + controller_settings["computes"].append({"host": compute.host, + "name": compute.name, + "port": compute.port, + "protocol": compute.protocol, + "user": compute.user, + "password": compute.password, + "compute_id": compute.id}) try: os.makedirs(os.path.dirname(self._config_file), exist_ok=True) @@ -229,8 +228,7 @@ class Controller: try: if not os.path.exists(self._config_file): - self._config_loaded = True - self.save() + self.save() # this will create the config file with open(self._config_file) as f: controller_settings = json.load(f) except (OSError, ValueError) as e: