From 9f9153256d844586a69911ad465cc683493095eb Mon Sep 17 00:00:00 2001 From: Mike Danese Date: Sat, 14 Feb 2015 22:36:32 -0800 Subject: [PATCH] fix error where we can't use patch and add cmd-test for patch and file update --- hack/test-cmd.sh | 7 ++++++- pkg/kubectl/cmd/update.go | 18 +++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index 2fd73970294..334c89ecb02 100755 --- a/hack/test-cmd.sh +++ b/hack/test-cmd.sh @@ -159,9 +159,14 @@ for version in "${kube_api_versions[@]}"; do "apiVersion": "v1beta1", "id": "service-${version}-test", "port": 80, - "protocol": "TCP" + "protocol": "TCP", + "selector": { + "version": "old" + } } __EOF__ + kubectl update service service-${version}-test --patch="{\"selector\":{\"version\":\"${version}\"},\"apiVersion\":\"${version}\"}" + kubectl get service service-${version}-test -o json | kubectl update -f - kubectl get services "${kube_flags[@]}" kubectl get services "service-${version}-test" "${kube_flags[@]}" kubectl delete service frontend "${kube_flags[@]}" diff --git a/pkg/kubectl/cmd/update.go b/pkg/kubectl/cmd/update.go index 86a19b051df..c1b42b093fe 100644 --- a/pkg/kubectl/cmd/update.go +++ b/pkg/kubectl/cmd/update.go @@ -54,15 +54,6 @@ Examples: cmdNamespace, err := f.DefaultNamespace(cmd) checkErr(err) - mapper, typer := f.Object(cmd) - r := resource.NewBuilder(mapper, typer, f.ClientMapperForCommand(cmd)). - ContinueOnError(). - NamespaceParam(cmdNamespace).RequireNamespace(). - FilenameParam(flags.Filenames...). - Flatten(). - Do() - checkErr(r.Err()) - patch := cmdutil.GetFlagString(cmd, "patch") if len(flags.Filenames) == 0 && len(patch) == 0 { usageError(cmd, "Must specify --filename or --patch to update") @@ -78,6 +69,15 @@ Examples: return } + mapper, typer := f.Object(cmd) + r := resource.NewBuilder(mapper, typer, f.ClientMapperForCommand(cmd)). + ContinueOnError(). + NamespaceParam(cmdNamespace).RequireNamespace(). + FilenameParam(flags.Filenames...). + Flatten(). + Do() + checkErr(r.Err()) + err = r.Visit(func(info *resource.Info) error { data, err := info.Mapping.Codec.Encode(info.Object) if err != nil {