| ... | ... |
@@ -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 |