Browse code

Merge pull request #9917 from juanvallejo/jvallejo_fix-resource-version-flag-bug

Merged by openshift-bot

OpenShift Bot authored on 2016/07/23 10:24:48
Showing 2 changed files
... ...
@@ -106,6 +106,8 @@ os::cmd::try_until_success 'oc label pod/hello-openshift acustom=label' # can ra
106 106
 os::cmd::expect_success_and_text 'oc describe pod/hello-openshift' 'acustom=label'
107 107
 os::cmd::try_until_success 'oc annotate pod/hello-openshift foo=bar' # can race against scheduling and status updates
108 108
 os::cmd::expect_success_and_text 'oc get -o yaml pod/hello-openshift' 'foo: bar'
109
+os::cmd::expect_failure_and_not_text 'oc annotate pod hello-openshift description="test" --resource-version=123' 'may only be used with a single resource'
110
+os::cmd::expect_failure_and_text 'oc annotate pod hello-openshift hello-openshift description="test" --resource-version=123' 'may only be used with a single resource'
109 111
 os::cmd::expect_success 'oc delete pods -l acustom=label --grace-period=0'
110 112
 os::cmd::expect_failure 'oc get pod/hello-openshift'
111 113
 echo "label: ok"
... ...
@@ -190,11 +190,6 @@ func (o AnnotateOptions) Validate(args []string) error {
190 190
 		return err
191 191
 	}
192 192
 
193
-	// only apply resource version locking on a single resource
194
-	if len(o.resources) > 1 && len(o.resourceVersion) > 0 {
195
-		return fmt.Errorf("--resource-version may only be used with a single resource")
196
-	}
197
-
198 193
 	return nil
199 194
 }
200 195
 
... ...
@@ -205,6 +200,17 @@ func (o AnnotateOptions) RunAnnotate() error {
205 205
 		return err
206 206
 	}
207 207
 
208
+	var singularResource bool
209
+	r.IntoSingular(&singularResource)
210
+
211
+	// only apply resource version locking on a single resource.
212
+	// we must perform this check after o.builder.Do() as
213
+	// []o.resources can not not accurately return the proper number
214
+	// of resources when they are not passed in "resource/name" format.
215
+	if !singularResource && len(o.resourceVersion) > 0 {
216
+		return fmt.Errorf("--resource-version may only be used with a single resource")
217
+	}
218
+
208 219
 	return r.Visit(func(info *resource.Info, err error) error {
209 220
 		if err != nil {
210 221
 			return err