From 5c261e80e98d5e76a64b1a6d58f75fe686726e91 Mon Sep 17 00:00:00 2001 From: Pablo Caderno Date: Fri, 24 Mar 2023 09:15:30 +1100 Subject: [PATCH] Fix: check if addon is enabled before doing validation Signed-off-by: Pablo Caderno --- cmd/minikube/cmd/config/disable.go | 22 ++++++++++------------ test/integration/addons_test.go | 5 +++++ translations/de.json | 1 + translations/es.json | 1 + translations/fr.json | 1 + translations/ja.json | 1 + translations/ko.json | 1 + translations/pl.json | 1 + translations/ru.json | 1 + translations/strings.txt | 1 + translations/zh-CN.json | 1 + 11 files changed, 24 insertions(+), 12 deletions(-) diff --git a/cmd/minikube/cmd/config/disable.go b/cmd/minikube/cmd/config/disable.go index d85ef92fd4..b102afdab7 100644 --- a/cmd/minikube/cmd/config/disable.go +++ b/cmd/minikube/cmd/config/disable.go @@ -42,22 +42,20 @@ var addonsDisableCmd = &cobra.Command{ } cc, err := config.Load(ClusterFlagValue()) if err != nil { - exit.Error(reason.InternalAddonDisable, "loading profile", err) + exit.Error(reason.InternalConfigView, "loading profile", err) } validAddon, ok := assets.Addons[addon] - if ok { - if validAddon.IsEnabled(cc) { - err := addons.SetAndSave(ClusterFlagValue(), addon, "false") - if err != nil { - exit.Error(reason.InternalAddonDisable, "disable failed", err) - } - } else { - out.Step(style.AddonDisable, `"The '{{.minikube_addon}}' addon is disabled`, out.V{"minikube_addon": addon}) - } - } else { - out.Step(style.AddonDisable, `"The '{{.minikube_addon}}' seems not to be a valid minikube addon`, out.V{"minikube_addon": addon}) + if !ok { + exit.Message(reason.InternalAddonDisable, `"'{{.minikube_addon}}' is not a valid minikube addon`, out.V{"minikube_addon": addon}) } + if validAddon.IsEnabled(cc) { + err := addons.SetAndSave(ClusterFlagValue(), addon, "false") + if err != nil { + exit.Error(reason.InternalAddonDisable, "disable failed", err) + } + } + out.Styled(style.AddonDisable, `"The '{{.minikube_addon}}' addon is disabled`, out.V{"minikube_addon": addon}) }, } diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go index f40a4f93cb..3028709642 100644 --- a/test/integration/addons_test.go +++ b/test/integration/addons_test.go @@ -156,6 +156,11 @@ func TestAddons(t *testing.T) { if err != nil { t.Errorf("failed to disable dashboard addon: args %q : %v", rr.Command(), err) } + // Disable a non-enabled addon + rr, err = Run(t, exec.CommandContext(ctx, Target(), "addons", "disable", "gvisor", "-p", profile)) + if err != nil { + t.Errorf("failed to disable non-enabled addon: args %q : %v", rr.Command(), err) + } }) } diff --git a/translations/de.json b/translations/de.json index 1645ba39e4..361d65f7de 100644 --- a/translations/de.json +++ b/translations/de.json @@ -1,5 +1,6 @@ { "\n\n": "", + "\"'{{.minikube_addon}}' is not a valid minikube addon": "", "\"The '{{.minikube_addon}}' addon is disabled": "Das {{.minikube_addon}} Addon ist deaktiviert", "\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "\"minikube cache\" wird in der nächsten Version veraltet (deprecated) sein, bitte wechsle zu \"minikube image load\"", "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "Der Kontext \"{{.context}}\" wurde aktualisiert, um auf {{.hostname}}:{{.port}} zu zeigen", diff --git a/translations/es.json b/translations/es.json index 4f561ea7eb..0cb001733d 100644 --- a/translations/es.json +++ b/translations/es.json @@ -1,5 +1,6 @@ { "\n\n": "", + "\"'{{.minikube_addon}}' is not a valid minikube addon": "", "\"The '{{.minikube_addon}}' addon is disabled": "El complemento \"{{.minikube_addon}}\" está desactivado", "\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "", "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "El contexto \"{{.context}}\" ha sido actualizado para apuntar a {{.hostname}}:{{.port}}", diff --git a/translations/fr.json b/translations/fr.json index 6ef240e3b0..6986856838 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -1,5 +1,6 @@ { "\n\n": "", + "\"'{{.minikube_addon}}' is not a valid minikube addon": "", "\"The '{{.minikube_addon}}' addon is disabled": "Le module \"{{.minikube_addon}}\" est désactivé", "\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "\"minikube cache\" sera obsolète dans les prochaines versions, veuillez passer à \"minikube image load\"", "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "Le contexte \"{{.context}}\" a été mis à jour pour pointer vers {{.hostname}}:{{.port}}", diff --git a/translations/ja.json b/translations/ja.json index e2e040df50..5657b3ccd7 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -1,5 +1,6 @@ { "\n\n": "", + "\"'{{.minikube_addon}}' is not a valid minikube addon": "", "\"The '{{.minikube_addon}}' addon is disabled": "'{{.minikube_addon}}' アドオンが無効です", "\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "「minikube cache」は今後のバージョンで廃止予定になりますので、「minikube image load」に切り替えてください", "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "「{{.context}}」コンテキストが更新されて、{{.hostname}}:{{.port}} を指すようになりました", diff --git a/translations/ko.json b/translations/ko.json index 0a3137e99e..e1098ebccb 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -1,5 +1,6 @@ { "\n\n": "", + "\"'{{.minikube_addon}}' is not a valid minikube addon": "", "\"The '{{.minikube_addon}}' addon is disabled": "\"The '{{.minikube_addon}}' 이 비활성화되었습니다", "\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "\"minikube cache\"는 추후 버전에서 사용 중단됩니다. \"minikube image load\"로 전환하십시오", "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "\"{{.context}}\" 컨텍스트가 {{.hostname}}:{{.port}}로 갱신되었습니다.", diff --git a/translations/pl.json b/translations/pl.json index 53701ab758..f2e5f9bcaf 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -1,5 +1,6 @@ { "\n\n": "", + "\"'{{.minikube_addon}}' is not a valid minikube addon": "", "\"The '{{.minikube_addon}}' addon is disabled": "", "\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "", "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "", diff --git a/translations/ru.json b/translations/ru.json index 514e69433a..8325fe6163 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -1,5 +1,6 @@ { "\n\n": "", + "\"'{{.minikube_addon}}' is not a valid minikube addon": "", "\"The '{{.minikube_addon}}' addon is disabled": "\"Дополнение '{{.minikube_addon}}' выключено", "\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "", "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "Контекст \"{{.context}}\" был обновлён и теперь указывает на {{.hostname}}:{{.port}}", diff --git a/translations/strings.txt b/translations/strings.txt index 60b6beb3ca..e51af9469b 100644 --- a/translations/strings.txt +++ b/translations/strings.txt @@ -1,5 +1,6 @@ { "\n\n": "", + "\"'{{.minikube_addon}}' is not a valid minikube addon": "", "\"The '{{.minikube_addon}}' addon is disabled": "", "\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "", "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "", diff --git a/translations/zh-CN.json b/translations/zh-CN.json index 68c3ee4b2f..a6e5d6a6d3 100644 --- a/translations/zh-CN.json +++ b/translations/zh-CN.json @@ -1,5 +1,6 @@ { "\n\n": "", + "\"'{{.minikube_addon}}' is not a valid minikube addon": "", "\"The '{{.minikube_addon}}' addon is disabled": "'{{.minikube_addon}}' 插件已被禁用", "\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "\"minikube cache\" 将在即将发布的版本中弃用,请切换至 \"minikube image load\"", "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "",