diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py b/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py index de2240a7c6..620f367e25 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py @@ -56,6 +56,8 @@ _EXTRUDER_TO_POSITION = { ## Upgrades configurations from the state they were in at version 3.2 to the # state they should be in at version 3.3. class VersionUpgrade32to33(VersionUpgrade): + + temporary_group_name_counter = 1 ## Gets the version number from a CFG file in Uranium's 3.2 format. # # Since the format may change, this is implemented for the 3.2 format only @@ -74,6 +76,28 @@ class VersionUpgrade32to33(VersionUpgrade): setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) return format_version * 1000000 + setting_version + ## Upgrades a container stack from version 3.2 to 3.3. + # + # \param serialised The serialised form of a container stack. + # \param filename The name of the file to upgrade. + def upgradeStack(self, serialized, filename): + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialized) + + if "metadata" in parser and "um_network_key" in parser["metadata"]: + if "hidden" not in parser["metadata"]: + parser["metadata"]["hidden"] = "False" + if "connect_group_name" not in parser["metadata"]: + parser["metadata"]["connect_group_name"] = "Temporary group name #" + str(self.temporary_group_name_counter) + self.temporary_group_name_counter += 1 + + #Update version number. + parser["general"]["version"] = "4" + + result = io.StringIO() + parser.write(result) + return [filename], [result.getvalue()] + ## Upgrades non-quality-changes instance containers to have the new version # number. def upgradeInstanceContainer(self, serialized, filename): diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py b/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py index c411b4190e..72ff6e1de9 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py @@ -9,11 +9,22 @@ def getMetaData(): return { "version_upgrade": { # From To Upgrade function + ("machine_stack", 3000004): ("machine_stack", 4000004, upgrade.upgradeStack), + ("extruder_train", 3000004): ("extruder_train", 4000004, upgrade.upgradeStack), + ("definition_changes", 2000004): ("definition_changes", 3000004, upgrade.upgradeInstanceContainer), ("quality_changes", 2000004): ("quality_changes", 3000004, upgrade.upgradeQualityChanges), ("user", 2000004): ("user", 3000004, upgrade.upgradeInstanceContainer) }, "sources": { + "machine_stack": { + "get_version": upgrade.getCfgVersion, + "location": {"./machine_instances"} + }, + "extruder_train": { + "get_version": upgrade.getCfgVersion, + "location": {"./extruders"} + }, "definition_changes": { "get_version": upgrade.getCfgVersion, "location": {"./definition_changes"}