@@ -229,7 +229,6 @@ def create_k8s_extension(
229229 extension_instance .auto_upgrade_mode ,
230230 )
231231 __validate_auto_upgrade_mode (
232- extension_instance .version ,
233232 extension_instance .auto_upgrade_minor_version ,
234233 extension_instance .auto_upgrade_mode ,
235234 )
@@ -352,7 +351,6 @@ def update_k8s_extension(
352351 )
353352
354353 __validate_auto_upgrade_mode (
355- upd_extension .version ,
356354 upd_extension .auto_upgrade_minor_version ,
357355 upd_extension .auto_upgrade_mode ,
358356 )
@@ -949,18 +947,29 @@ def __validate_version_and_auto_upgrade(version, auto_upgrade_minor_version, aut
949947 message = "To pin to specific version, auto-upgrade-minor-version must be set to 'false'."
950948 raise MutuallyExclusiveArgumentError (message )
951949
952- auto_upgrade_minor_version = False
953-
954- if auto_upgrade_minor_version is not None and auto_upgrade_mode is not None :
955- message = "auto-upgrade-mode cannot be specified together with auto-upgrade-minor-version."
956- raise MutuallyExclusiveArgumentError (message )
957-
950+ if auto_upgrade_mode is None :
951+ # Allow explicit '--auto-upgrade false' with a pinned version even when
952+ # '--auto-upgrade-mode' is omitted.
953+ if auto_upgrade_minor_version is False :
954+ return
955+ message = "To pin to specific version, auto-upgrade-mode must be set to 'none'."
956+ raise RequiredArgumentMissingError (message )
957+
958+ normalized_auto_upgrade_mode = auto_upgrade_mode
959+ if hasattr (normalized_auto_upgrade_mode , "value" ):
960+ normalized_auto_upgrade_mode = normalized_auto_upgrade_mode .value
961+ normalized_auto_upgrade_mode = str (normalized_auto_upgrade_mode ).strip ().lower ()
962+ if "." in normalized_auto_upgrade_mode :
963+ normalized_auto_upgrade_mode = normalized_auto_upgrade_mode .split ("." )[- 1 ]
964+
965+ if normalized_auto_upgrade_mode != "none" :
966+ message = "To pin to specific version, auto-upgrade-mode must be set to 'none'."
967+ raise MutuallyExclusiveArgumentError (message )
958968
959- def __validate_auto_upgrade_mode (version , auto_upgrade_minor_version , auto_upgrade_mode ):
960- if version is not None and auto_upgrade_mode is not None :
961- message = "To pin to specific version, auto-upgrade-mode must not be provided."
962- raise MutuallyExclusiveArgumentError (message )
969+ auto_upgrade_minor_version = False
970+ auto_upgrade_mode = "none"
963971
972+ def __validate_auto_upgrade_mode (auto_upgrade_minor_version , auto_upgrade_mode ):
964973 if auto_upgrade_minor_version is not None and auto_upgrade_mode is not None :
965974 message = "auto-upgrade-mode cannot be specified together with auto-upgrade-minor-version."
966975 raise MutuallyExclusiveArgumentError (message )
0 commit comments