Merge pull request #47719 from xilabao/fix-set-selector-1

Automatic merge from submit-queue (batch tested with PRs 48196, 42783, 48507, 47719, 46138)

fix parse resource in setting selector

**What this PR does / why we need it**:

**Which issue this PR fixes**: fixes #47718

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
This commit is contained in:
Kubernetes Submit Queue 2017-07-11 23:09:13 -07:00 committed by GitHub
commit b07581e60f
2 changed files with 11 additions and 2 deletions

View File

@ -2280,6 +2280,9 @@ run_service_tests() {
# prove role=master # prove role=master
kube::test::get_object_assert 'services redis-master' "{{range$service_selector_field}}{{.}}:{{end}}" "redis:master:backend:" kube::test::get_object_assert 'services redis-master' "{{range$service_selector_field}}{{.}}:{{end}}" "redis:master:backend:"
# Set selector of a local file without talking to the server
kubectl set selector -f examples/guestbook/redis-master-service.yaml role=padawan --local -o yaml "${kube_flags[@]}"
! kubectl set selector -f examples/guestbook/redis-master-service.yaml role=padawan --dry-run -o yaml "${kube_flags[@]}"
# Set command to change the selector. # Set command to change the selector.
kubectl set selector -f examples/guestbook/redis-master-service.yaml role=padawan kubectl set selector -f examples/guestbook/redis-master-service.yaml role=padawan
# prove role=padawan # prove role=padawan
@ -2288,6 +2291,10 @@ run_service_tests() {
kubectl set selector -f examples/guestbook/redis-master-service.yaml app=redis,role=master,tier=backend kubectl set selector -f examples/guestbook/redis-master-service.yaml app=redis,role=master,tier=backend
# prove role=master # prove role=master
kube::test::get_object_assert 'services redis-master' "{{range$service_selector_field}}{{.}}:{{end}}" "redis:master:backend:" kube::test::get_object_assert 'services redis-master' "{{range$service_selector_field}}{{.}}:{{end}}" "redis:master:backend:"
# Show dry-run works on running selector
kubectl set selector services redis-master role=padawan --dry-run -o yaml "${kube_flags[@]}"
! kubectl set selector services redis-master role=padawan --local -o yaml "${kube_flags[@]}"
kube::test::get_object_assert 'services redis-master' "{{range$service_selector_field}}{{.}}:{{end}}" "redis:master:backend:"
### Dump current redis-master service ### Dump current redis-master service
output_service=$(kubectl get service redis-master -o json --output-version=v1 "${kube_flags[@]}") output_service=$(kubectl get service redis-master -o json --output-version=v1 "${kube_flags[@]}")

View File

@ -116,6 +116,10 @@ func (o *SelectorOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [
mapper, _ := f.Object() mapper, _ := f.Object()
o.mapper = mapper o.mapper = mapper
o.encoder = f.JSONEncoder() o.encoder = f.JSONEncoder()
o.resources, o.selector, err = getResourcesAndSelector(args)
if err != nil {
return err
}
o.builder = f.NewBuilder(!o.local). o.builder = f.NewBuilder(!o.local).
ContinueOnError(). ContinueOnError().
@ -135,8 +139,6 @@ func (o *SelectorOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [
o.ClientForMapping = func(mapping *meta.RESTMapping) (resource.RESTClient, error) { o.ClientForMapping = func(mapping *meta.RESTMapping) (resource.RESTClient, error) {
return f.ClientForMapping(mapping) return f.ClientForMapping(mapping)
} }
o.resources, o.selector, err = getResourcesAndSelector(args)
return err return err
} }