Clayton Coleman
12d7032c39
Encoding nested objects must support unregistered runtime.Objects
...
The nested object could be using a different scheme, or want to handle
runtime.Unknown.
2016-08-18 14:45:40 -04:00
Clayton Coleman
5f8366aac3
Convert() should accept the new conversion Context value
...
Allows Convert() to reuse the same conversions as ConvertToVersion
without being overly coupled to the version.
2016-08-18 14:45:20 -04:00
Clayton Coleman
ce57455de6
Allow objects to serialize their nested objects
...
Introduce an optional interface for callers to encode themselves.
2016-08-18 14:45:01 -04:00
Clayton Coleman
12a5eeea17
Introduce GroupVersioner for capturing desired target version
...
Convert single GV and lists of GVs into an interface that can handle
more complex scenarios (everything internal, nothing supported). Pass
the interface down into conversion.
2016-08-18 14:45:00 -04:00
pweil-
f51c1301f2
add asserts for RecognizingDecoder and update protobuf serializer to implement interface
2016-08-03 17:26:31 -04:00
Davanum Srinivas
2b0ed014b7
Use Go canonical import paths
...
Add canonical imports only in existing doc.go files.
https://golang.org/doc/go1.4#canonicalimports
Fixes #29014
2016-07-16 13:48:21 -04:00
Clayton Coleman
b9845e7cb5
Don't double encode protobuf runtime.Unknown
...
When using runtime.Object and runtime.RawExtension, passing
runtime.Unknown to protobuf serializer should result in the raw message
being serialized (since all normal protobuf objects are
runtime.Unknown).
Also, avoid setting a content-type when decoding a protobuf object
except when the content appears to be proto.
2016-07-14 13:09:16 -04:00
Michael Taufen
d3f3bedbb7
Fix typo in pkg/runtime/serializer/codec_factory.go
2016-07-13 10:41:02 -07:00
David McMahon
ef0c9f0c5b
Remove "All rights reserved" from all the headers.
2016-06-29 17:47:36 -07:00
Clayton Coleman
36a5ffbe2f
Remove EncodeToStream(..., []unversioned.GroupVersion)
...
Was not being used.
2016-06-10 18:43:12 -04:00
Clayton Coleman
e1dc3ef933
Remove unused deep_copies
2016-06-06 17:18:22 -04:00
Chao Xu
f32f3966d6
add DirectCodec; use it in release_1_3 clientset
2016-05-31 10:14:24 -07:00
Clayton Coleman
c6961d6fd6
Remove runtime.Typer, reduce to ObjectKinds(1) (3)
...
Remove the unnecessary variants, which avoids allocations in several
core paths.
2016-05-21 23:55:42 -04:00
Clayton Coleman
a9c3edc613
Avoid allocating an array for EncodeToVersion
2016-05-21 23:55:41 -04:00
Clayton Coleman
ea7e7a18cb
Create a new method UnsafeConvertToVersion for faster convert
...
Only encode/decode will call this path, to allow us to optimize for
unsafe operations.
2016-05-12 10:10:35 -04:00
Clayton Coleman
51b624103f
Change ConvertToVersion to use GroupVersion
...
Long delayed refactor, avoids a few more allocations.
2016-05-12 10:10:35 -04:00
Clayton Coleman
a84e62d9e6
Change ObjectKind signature to avoid allocations
...
We don't need to pass a pointer into SetGroupKindVersion() - a
struct works just as well.
2016-05-12 10:10:35 -04:00
Ed Robinson
afdbad078a
Corrects some misspellings in comments
...
This should help to make
https://goreportcard.com/report/k8s.io/kubernetes#misspell
look a little nicer.
2016-05-11 08:16:13 +01:00
Clayton Coleman
e0ebcf4216
Split the storage and negotiation parts of Codecs
...
The codec factory should support two distinct interfaces - negotiating
for a serializer with a client, vs reading or writing data to a storage
form (etcd, disk, etc). Make the EncodeForVersion and DecodeToVersion
methods only take Encoder and Decoder, and slight refactoring elsewhere.
In the storage factory, use a content type to control what serializer to
pick, and use the universal deserializer. This ensures that storage can
read JSON (which might be from older objects) while only writing
protobuf. Add exceptions for those resources that may not be able to
write to protobuf (specifically third party resources, but potentially
others in the future).
2016-05-05 12:08:23 -04:00
Clayton Coleman
4ad5565c41
RecognizingDecoder didn't handle ambiguous input
...
YAML is not guaranteed to be recognizable, so we need to bump JSON and
protobuf above it in the decoding order. Add a unit test.
2016-05-05 12:08:22 -04:00
Wojciech Tyczynski
3aadafd411
Use NegotiatedSerializer in client
2016-05-04 10:57:36 +02:00
Clayton Coleman
84dee0d9cc
Frame decoder was checking cap(), not len()
...
Resulted in bytes being missing from the streaming decoder. Update both
parts.
2016-04-30 17:57:17 -04:00
Wojciech Tyczynski
3175d18b14
Support Close() in streaming decoder
2016-04-28 09:46:33 +02:00
Wojciech Tyczynski
c0020aff59
Merge pull request #24539 from smarterclayton/unify_stream_and_serial
...
Unify Streaming and normal Serializers
2016-04-25 11:25:16 +02:00
Clayton Coleman
668fae253f
Generated spec and docs
2016-04-22 11:07:33 -04:00
Clayton Coleman
3111985564
Handle streaming serializers more consistently
...
Add tests to watch behavior in both protocols (http and websocket)
against all 3 media types. Adopt the
`application/vnd.kubernetes.protobuf;stream=watch` media type for the
content that comes back from a watch call so that it can be
distinguished from a Status result.
2016-04-22 11:07:24 -04:00
goltermann
dddc6cb6c8
Fix a few spellings.
2016-04-21 15:16:42 -07:00
Clayton Coleman
cea4c010a6
Strip the proto build guard
2016-04-20 12:12:29 -04:00
Clayton Coleman
3474911736
Implement a streaming serializer for watch
...
Changeover watch to use streaming serialization. Properly version the
watch objects. Implement simple framing for JSON and Protobuf (but not
YAML).
2016-04-11 11:22:05 -04:00
Clayton Coleman
87146c4255
Fix compilation errors in protobuf and add decode test
2016-04-11 11:22:04 -04:00
Clayton Coleman
bfc991646b
Implement correct and memory safe framing and add tests
2016-04-11 11:22:04 -04:00
Clayton Coleman
f2139b186c
Add an experimental protobuf serializer
...
Provide a core protobuf serializer that can either write objects with
an envelope (a 4 byte prefix and a runtime.Object) or raw to a byte
array.
2016-03-31 10:41:11 -04:00
k8s-merge-robot
1ad3049ed6
Merge pull request #23288 from smarterclayton/refactor_codec
...
Auto commit by PR queue bot
2016-03-26 10:47:58 -07:00
goltermann
32d569d6c7
Fixing all the "composite literal uses unkeyed fields" Vet errors.
2016-03-25 15:25:09 -07:00
Clayton Coleman
54eaa56b92
Add a streaming and "raw" abstraction to codec factory
2016-03-23 17:25:20 -04:00
harry
b0900bf0d4
Refactor diff into sub pkg
2016-03-21 20:21:39 +08:00
Wojciech Tyczynski
7e2fdeae7b
Regenerate autogenerate files
2016-03-17 15:22:19 +01:00
k8s-merge-robot
53c6b35b71
Merge pull request #23038 from wojtek-t/rename_raw_json_to_raw
...
Auto commit by PR queue bot
2016-03-17 04:05:43 -07:00
Wojciech Tyczynski
e610c137c0
Regenerate auto-generated files
2016-03-17 09:30:02 +01:00
Wojciech Tyczynski
218d3e5923
Rename RawJSON to Raw in runtime.Unknown and add ContentType & ContentEncoding.
2016-03-16 16:43:58 +01:00
Wojciech Tyczynski
b264805796
JSON serializer implements serializer interface
2016-03-10 13:26:05 +01:00
Piotr Szczesniak
c02e966d65
Applied comments from the review
2016-02-18 14:18:39 +01:00
Daniel Smith
74400c33ae
changes for cross-group moves
2016-02-15 21:39:00 +01:00
deads2k
f89bd83664
fix group mapping and encoding order
2016-02-15 08:49:17 -05:00
Clayton Coleman
60b66665e1
Move conversion.Scheme to runtime
...
There is only one type registry to rule them all
2016-01-30 14:12:40 -05:00
Clayton Coleman
6b2f70d553
Provide a JSON and YAML serializer, and a versioning wrapper
...
Add a recognizer that is capable of sniffing content type from data by
asking each serializer to try to decode - this is for a "universal
decoder/deserializer" which can be used by client logic.
Add codec factory, which provides the core primitives for content type
negotiation. Codec factories depend only on schemes, serializers, and
groupversion pairs.
2016-01-22 00:12:49 -05:00
Clayton Coleman
6582b4c2ea
Remove codec awareness from conversion
...
Allow convertors to be specialized, some cleanup to how conversion
functions are stored internally to allow better reuse.
2016-01-21 23:18:32 -05:00