Commit Graph

170 Commits

Author SHA1 Message Date
Clayton Coleman
12ba4e2452 Do not automatically decode runtime.RawExtension
Make clients opt in to decoding objects that are stored
in the generic api.List object by invoking runtime.DecodeList()
with a set of schemes. Makes it easier to handle unknown
schema objects because decoding is in the control of the code.

Add runtime.Unstructured, which is a simple in memory
representation of an external object.
2015-04-29 12:53:07 -04:00
Wojciech Tyczynski
8eca76298f Improvements to conversions generator. 2015-04-29 16:32:31 +02:00
Wojciech Tyczynski
922555f048 Improvements to generator of conversion methods. 2015-04-27 13:33:38 +02:00
Wojciech Tyczynski
7f919a44c2 Generate conversions for v1beta3 package. 2015-04-24 09:18:12 +02:00
Wojciech Tyczynski
c4a27f5c0f Generating conversion methods. 2015-04-23 18:26:24 +02:00
Wojciech Tyczynski
7e2724e14b Avoid benchmarks from being optimized 2015-04-23 08:57:29 +02:00
Wojciech Tyczynski
ea314d55f7 Create benchmarks for conversions. 2015-04-22 16:27:23 +02:00
Clayton Coleman
545a5a865f List output with differing types should be more resilient
kubectl get can output a series of objects as a List in versioned
form, but not all API objects are available in the same schema.
Make the act of converting a []runtime.Object to api.List more
robust and add a test to verify its behavior in Get.

Makes it easier for client code to output unified objects.
2015-04-20 14:44:16 -04:00
Clayton Coleman
f95cc2b8f2 Reuse gob.Encoder and Decoder in DeepCopy 2015-04-13 13:52:38 -04:00
Daniel Smith
395d69641e fix race 2015-04-10 16:02:51 -07:00
Daniel Smith
f591873af7 Add DeepCopy! Also-- optimize conversion for []byte 2015-04-10 13:26:46 -07:00
Daniel Smith
2c93080373 Fix licensing for forked code. 2015-04-03 17:06:24 -07:00
Tim Hockin
c63f4c71ba Remove dead, buggy code 2015-04-01 21:25:49 -07:00
Tim Hockin
b07ed62910 Fix deep equal to not panic on bad slice lengths
Also test it more throughly and test DeepDerivative.
2015-03-26 11:47:30 -07:00
Clayton Coleman
ea32b89e5e Allow map[string][]string to be converted to an object
Will allow query parameters to be converted to versioned objects.
2015-03-24 17:25:45 -04:00
Clayton Coleman
6918a4d32e Replace automatic YAML decoding with opt-in YAML decoding
Base codecs no longer automically handle YAML.  Instead, clients
must convert to JSON first via yaml.ToJSON and runtime.YAMLDecoder.
2015-03-20 00:03:56 -04:00
Daniel Smith
3ef3777192 Make unexported fields panic (informatively)
...Also fix some incorrect calls to semantic.DeepEqual, and a bug where
it returned true incorrectly.
2015-03-05 21:40:37 -08:00
Brendan Burns
877f605dc0 Add specific errors for missing kind and version. 2015-02-26 11:19:04 -08:00
Andy Goldstein
5bd0e9ab05 Add streaming command execution & port forwarding
Add streaming command execution & port forwarding via HTTP connection
upgrades (currently using SPDY).
2015-02-20 09:57:02 -05:00
Yu-Ju Hong
4a72addaeb Factor out API defaulting from validation logic
Currently, the validation logic validates fields in an object and supply default
values wherever applies. This change factors out defaulting to a set of
defaulting callback functions for decoding (see #1502 for more discussion).

 * This change is based on pull request 2587.

 * Most defaulting has been migrated to defaults.go where the defaulting
   functions are added.

 * validation_test.go and converter_test.go have been adapted to not testing the
   default values.

 * Fixed all tests with that create invalid objects with the absence of
   defaulting logic.
2015-02-03 00:55:42 -08:00
Tim Hockin
1ddb68d8d7 Sketch: a third take on defaulting values 2015-02-02 22:35:58 -08:00
Daniel Smith
37f5a9df07 make conversion do deep copies 2015-01-15 12:02:22 -08:00
Joe Beda
dcd00c936e Move all kubernetes to posix flags 2015-01-15 09:12:19 -08:00
Clayton Coleman
8f65442c2f Client should not include ns/ for non-namespaced calls in v1beta3 2015-01-08 12:44:07 -05:00
Daniel Smith
0d628b3bff Make semantic deep equal public feature
* Use semantic deep equal when validating
* More test cases for deep equal
2015-01-07 15:21:34 -08:00
Clayton Coleman
3b5c3ec786 Merge pull request #3220 from lavalamp/deepEqual
Add *useful* DeepEqual
2015-01-07 14:24:26 -05:00
Jordan Liggitt
2da1865fc2 Make default conversion behavior available to conversion funcs 2015-01-06 13:38:57 -05:00
Daniel Smith
f0b7743402 Add useful DeepEqual 2015-01-05 10:37:50 -08:00
Clayton Coleman
7fde4583f2 v1beta1 should return Minion as kind, rather than Node
This changes the internal name logic (for conversion) to prefer the
internal registered preferred name for a resource, and then makes
v1beta1 and v1beta2 prefer Minion.

Fixes #3010
2014-12-17 19:55:56 -05:00
Daniel Smith
f3148e9965 Fix taking addr() of map value/key 2014-12-12 15:26:17 -08:00
Daniel Smith
f81ec248d0 Merge pull request #2786 from smarterclayton/load_opaque_objects
Allow runtime.Object to be encoded as runtime.RawExtension
2014-12-10 16:24:05 -08:00
Clayton Coleman
279df03377 Allow mismatched type names on all conversions
Allows v1beta3.Node to be converted to api.Minion
2014-12-10 11:48:41 -05:00
Daniel Smith
3c1d51b19d refactor to hide structs behind an interface 2014-12-08 17:12:40 -08:00
Daniel Smith
564c087062 produce more readable error messages 2014-12-08 17:12:38 -08:00
Daniel Smith
77521a33d3 Add stack of previous values to converter 2014-12-08 17:12:07 -08:00
Clayton Coleman
dd24b013cb Use if err := ; err != nil instead of two lines 2014-12-07 20:48:16 -05:00
Clayton Coleman
84d84c50c2 Add a strongly typed error for unrecognized kind/type/version 2014-12-07 20:48:16 -05:00
Jordan Liggitt
22eee15fe7 Remove uint64 bitshift workaround 2014-12-04 15:00:23 -08:00
Sam Ghods
6399854240 Remove unused YAML tags and GetYAML/SetYAML methods
Unneeded after move to ghodss/yaml.
2014-12-02 16:25:28 -08:00
Sam Ghods
9a9a1e0939 Move from go-yaml/yaml to ghodss/yaml 2014-12-02 16:24:05 -08:00
Daniel Smith
f1c21c8fdf add boilerplate reduction struct field copier 2014-11-24 12:57:34 -08:00
Tim Hockin
95a9098311 fix 'go vet' warnings 2014-11-21 09:45:28 +08:00
Tim Hockin
ea960711ff Clean up error logs.
Use %v for errors, tidy some messages, make error messages start lowe-case
(as per go guidelines).  Just accumulated nits.
2014-11-21 09:45:26 +08:00
Clayton Coleman
811f77894c Not having Kind set in Decode(1) is an error 2014-11-18 20:22:05 -05:00
Clayton Coleman
9f15e96bd6 Better logging when a type is invalid during conversion 2014-11-10 11:33:31 -05:00
Clayton Coleman
ad92ff6952 When explicitly converting two objects, allow names to differ 2014-11-10 11:33:31 -05:00
Clayton Coleman
778a50d00b Introduce ObjectConvertor for conversion to known API versions
Will allow clients to transform internal objects to a version
suitable for external output.
2014-11-04 10:34:15 -05:00
Daniel Smith
94e736e286 Merge pull request #2009 from smarterclayton/unify_meta
Unify Accessor for ObjectMeta/TypeMeta/ListMeta
2014-10-29 09:58:46 -07:00
Vojtech Vitek (V-Teq)
90809c270d Use conversion.EnforcePtr() where appropriate
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-10-28 16:36:09 +01:00
Vojtech Vitek (V-Teq)
8969f0df7e Handle nil values in conversion.EnforcePtr()
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-10-28 16:36:04 +01:00