diff --git a/pkg/api/conversion.go b/pkg/api/conversion.go index 4b952de9eec..339a3454ba0 100644 --- a/pkg/api/conversion.go +++ b/pkg/api/conversion.go @@ -76,82 +76,6 @@ func init() { *out = (*in).String() return nil }, - func(in *string, out *unversioned.LabelSelector, s conversion.Scope) error { - selector, err := labels.Parse(*in) - if err != nil { - return err - } - *out = unversioned.LabelSelector{selector} - return nil - }, - func(in *string, out *unversioned.FieldSelector, s conversion.Scope) error { - selector, err := fields.ParseSelector(*in) - if err != nil { - return err - } - *out = unversioned.FieldSelector{selector} - return nil - }, - func(in *[]string, out *unversioned.LabelSelector, s conversion.Scope) error { - selectorString := "" - if len(*in) > 0 { - selectorString = (*in)[0] - } - selector, err := labels.Parse(selectorString) - if err != nil { - return err - } - *out = unversioned.LabelSelector{selector} - return nil - }, - func(in *[]string, out *unversioned.FieldSelector, s conversion.Scope) error { - selectorString := "" - if len(*in) > 0 { - selectorString = (*in)[0] - } - selector, err := fields.ParseSelector(selectorString) - if err != nil { - return err - } - *out = unversioned.FieldSelector{selector} - return nil - }, - func(in *unversioned.LabelSelector, out *string, s conversion.Scope) error { - if in.Selector == nil { - return nil - } - *out = in.Selector.String() - return nil - }, - func(in *unversioned.FieldSelector, out *string, s conversion.Scope) error { - if in.Selector == nil { - return nil - } - *out = in.Selector.String() - return nil - }, - func(in *unversioned.LabelSelector, out *unversioned.LabelSelector, s conversion.Scope) error { - if in.Selector == nil { - return nil - } - selector, err := labels.Parse(in.Selector.String()) - if err != nil { - return err - } - out.Selector = selector - return nil - }, - func(in *unversioned.FieldSelector, out *unversioned.FieldSelector, s conversion.Scope) error { - if in.Selector == nil { - return nil - } - selector, err := fields.ParseSelector(in.Selector.String()) - if err != nil { - return err - } - out.Selector = selector - return nil - }, func(in *resource.Quantity, out *resource.Quantity, s conversion.Scope) error { // Cannot deep copy these, because inf.Dec has unexported fields. *out = *in.Copy() diff --git a/pkg/api/unversioned/selector.go b/pkg/api/unversioned/selector.go deleted file mode 100644 index 8928b02e51f..00000000000 --- a/pkg/api/unversioned/selector.go +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package unversioned - -import ( - "encoding/json" - - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" -) - -// FieldSelector is a wrapper around fields.Selector that allows for -// Marshaling/Unmarshaling underlying selector. -type FieldSelector struct { - Selector fields.Selector -} - -func (sh FieldSelector) MarshalJSON() ([]byte, error) { - if sh.Selector == nil { - return json.Marshal("") - } - return json.Marshal(sh.Selector.String()) -} - -func (sh *FieldSelector) UnmarshalJSON(b []byte) error { - var unmarshalled string - if err := json.Unmarshal(b, &unmarshalled); err != nil { - return err - } - selector, err := fields.ParseSelector(unmarshalled) - if err != nil { - return err - } - sh.Selector = selector - return nil -} - -// LabelSelector is a wrapper around labels.Selector that allow for -// Marshaling/Unmarshaling underlying selector. -type LabelSelector struct { - Selector labels.Selector -} - -func (sh LabelSelector) MarshalJSON() ([]byte, error) { - if sh.Selector == nil { - return json.Marshal("") - } - return json.Marshal(sh.Selector.String()) -} - -func (sh *LabelSelector) UnmarshalJSON(b []byte) error { - var unmarshalled string - if err := json.Unmarshal(b, &unmarshalled); err != nil { - return err - } - selector, err := labels.Parse(unmarshalled) - if err != nil { - return err - } - sh.Selector = selector - return nil -} diff --git a/pkg/api/unversioned/selector_test.go b/pkg/api/unversioned/selector_test.go deleted file mode 100644 index 355ecfab561..00000000000 --- a/pkg/api/unversioned/selector_test.go +++ /dev/null @@ -1,139 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package unversioned - -import ( - "encoding/json" - "reflect" - "testing" - - "github.com/ghodss/yaml" - "github.com/ugorji/go/codec" - - "k8s.io/kubernetes/pkg/fields" - "k8s.io/kubernetes/pkg/labels" -) - -type FieldSelectorWrapper struct { - Holder FieldSelector `json:"holder"` -} - -func parseFieldSelector(t *testing.T, selector string) fields.Selector { - result, err := fields.ParseSelector(selector) - if err != nil { - t.Fatalf("Unexpected error: %#v", err) - } - return result -} - -func TestFieldSelectorMarshal(t *testing.T) { - cases := []struct { - selector fields.Selector - result string - }{ - {parseFieldSelector(t, ""), "{\"holder\":\"\"}"}, - {parseFieldSelector(t, "foo=bar"), "{\"holder\":\"foo=bar\"}"}, - {parseFieldSelector(t, "foo=bar,bar=foo"), "{\"holder\":\"bar=foo,foo=bar\"}"}, - {parseFieldSelector(t, "foo=bar,bar!=foo"), "{\"holder\":\"bar!=foo,foo=bar\"}"}, - } - - for _, c := range cases { - wrapper := FieldSelectorWrapper{FieldSelector{c.selector}} - marshalled, err := json.Marshal(&wrapper) - if err != nil { - t.Errorf("Unexpected error: %#v", err) - } - if string(marshalled) != c.result { - t.Errorf("Expected: %s, got: %s", c.result, string(marshalled)) - } - - var result FieldSelectorWrapper - if err := json.Unmarshal(marshalled, &result); err != nil { - t.Errorf("Unexpected error: %#v", err) - } - if !reflect.DeepEqual(result, wrapper) { - t.Errorf("Expected: %#v, got: %#v", wrapper, result) - } - - var yamlResult FieldSelectorWrapper - if err := yaml.Unmarshal(marshalled, &yamlResult); err != nil { - t.Errorf("Unexpected error: %#v", err) - } - if !reflect.DeepEqual(yamlResult, wrapper) { - t.Errorf("Expected: %#v, got: %#v", wrapper, yamlResult) - } - - var codecResult FieldSelectorWrapper - if err := codec.NewDecoderBytes(marshalled, new(codec.JsonHandle)).Decode(&codecResult); err != nil { - t.Errorf("Unexpected error: %#v", err) - } - if !reflect.DeepEqual(codecResult, wrapper) { - t.Errorf("Expected: %#v, got: %#v", wrapper, codecResult) - } - } -} - -type LabelSelectorWrapper struct { - Holder LabelSelector `json:"holder"` -} - -func TestSelectorMarshal(t *testing.T) { - cases := []struct { - input labels.Set - result string - }{ - {labels.Set(map[string]string{}), "{\"holder\":\"\"}"}, - {labels.Set(map[string]string{"foo": "bar"}), "{\"holder\":\"foo=bar\"}"}, - {labels.Set(map[string]string{"foo": "bar", "bar": "foo"}), "{\"holder\":\"bar=foo,foo=bar\"}"}, - } - - for _, c := range cases { - selector := c.input.AsSelector() - wrapper := LabelSelectorWrapper{LabelSelector{selector}} - marshalled, err := json.Marshal(&wrapper) - if err != nil { - t.Errorf("Unexpected error: %#v", err) - } - if string(marshalled) != c.result { - t.Errorf("Expected: %s, got: %s", c.result, string(marshalled)) - } - - var result LabelSelectorWrapper - if err := json.Unmarshal(marshalled, &result); err != nil { - t.Errorf("Unexpected error: %#v", err) - } - if !reflect.DeepEqual(result, wrapper) { - t.Errorf("Expected: %#v, got: %#v", wrapper, result) - } - - var yamlResult LabelSelectorWrapper - if err := yaml.Unmarshal(marshalled, &yamlResult); err != nil { - t.Errorf("Unexpected error: %#v", err) - } - if !reflect.DeepEqual(yamlResult, wrapper) { - t.Errorf("Expected: %#v, got: %#v", wrapper, yamlResult) - } - - var codecResult LabelSelectorWrapper - if err := codec.NewDecoderBytes(marshalled, new(codec.JsonHandle)).Decode(&codecResult); err != nil { - t.Errorf("Unexpected error: %#v", err) - } - if !reflect.DeepEqual(codecResult, wrapper) { - t.Errorf("Expected: %#v, got: %#v", wrapper, codecResult) - } - } -} diff --git a/pkg/conversion/queryparams/convert.go b/pkg/conversion/queryparams/convert.go index b91e96123d7..450a43001a2 100644 --- a/pkg/conversion/queryparams/convert.go +++ b/pkg/conversion/queryparams/convert.go @@ -22,7 +22,6 @@ import ( "reflect" "strings" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/runtime" ) @@ -145,12 +144,6 @@ func convertStruct(result url.Values, st reflect.Type, sv reflect.Value) { addListOfParams(result, tag, omitempty, field) } case isStructKind(kind) && !(zeroValue(field) && omitempty): - if selector, ok := field.Interface().(unversioned.LabelSelector); ok { - addParam(result, tag, omitempty, reflect.ValueOf(selector.Selector.String())) - } - if selector, ok := field.Interface().(unversioned.FieldSelector); ok { - addParam(result, tag, omitempty, reflect.ValueOf(selector.Selector.String())) - } convertStruct(result, ft, field) } }