Merge pull request #17940 from soltysh/job_deadline

Added ActiveDeadlineSeconds to jobs
This commit is contained in:
Eric Tune 2015-12-17 13:11:13 -08:00
commit 1752cf22d4
21 changed files with 16070 additions and 14806 deletions

View File

@ -3223,6 +3223,11 @@
"format": "int32", "format": "int32",
"description": "Completions specifies the desired number of successfully finished pods the job should be run with. Defaults to 1. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md" "description": "Completions specifies the desired number of successfully finished pods the job should be run with. Defaults to 1. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md"
}, },
"activeDeadlineSeconds": {
"type": "integer",
"format": "int64",
"description": "Optional duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer"
},
"selector": { "selector": {
"$ref": "v1beta1.LabelSelector", "$ref": "v1beta1.LabelSelector",
"description": "Selector is a label query over pods that should match the pod count. More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors" "description": "Selector is a label query over pods that should match the pod count. More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors"

View File

@ -158,7 +158,13 @@ func (x *TestType) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[2] { if yyq2[2] {
yy10 := &x.ObjectMeta yy10 := &x.ObjectMeta
yy10.CodecEncodeSelf(e) yym11 := z.EncBinary()
_ = yym11
if false {
} else if z.HasExtensions() && z.EncExt(yy10) {
} else {
z.EncFallback(yy10)
}
} else { } else {
r.EncodeNil() r.EncodeNil()
} }
@ -167,8 +173,14 @@ func (x *TestType) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234) z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata")) r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234) z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy11 := &x.ObjectMeta yy12 := &x.ObjectMeta
yy11.CodecEncodeSelf(e) yym13 := z.EncBinary()
_ = yym13
if false {
} else if z.HasExtensions() && z.EncExt(yy12) {
} else {
z.EncFallback(yy12)
}
} }
} }
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
@ -184,25 +196,25 @@ func (x *TestType) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
yym12 := z.DecBinary() yym14 := z.DecBinary()
_ = yym12 _ = yym14
if false { if false {
} else if z.HasExtensions() && z.DecExt(x) { } else if z.HasExtensions() && z.DecExt(x) {
} else { } else {
yyct13 := r.ContainerType() yyct15 := r.ContainerType()
if yyct13 == codecSelferValueTypeMap1234 { if yyct15 == codecSelferValueTypeMap1234 {
yyl13 := r.ReadMapStart() yyl15 := r.ReadMapStart()
if yyl13 == 0 { if yyl15 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else { } else {
x.codecDecodeSelfFromMap(yyl13, d) x.codecDecodeSelfFromMap(yyl15, d)
} }
} else if yyct13 == codecSelferValueTypeArray1234 { } else if yyct15 == codecSelferValueTypeArray1234 {
yyl13 := r.ReadArrayStart() yyl15 := r.ReadArrayStart()
if yyl13 == 0 { if yyl15 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
x.codecDecodeSelfFromArray(yyl13, d) x.codecDecodeSelfFromArray(yyl15, d)
} }
} else { } else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
@ -214,12 +226,12 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yys14Slc = z.DecScratchBuffer() // default slice to decode into var yys16Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys14Slc _ = yys16Slc
var yyhl14 bool = l >= 0 var yyhl16 bool = l >= 0
for yyj14 := 0; ; yyj14++ { for yyj16 := 0; ; yyj16++ {
if yyhl14 { if yyhl16 {
if yyj14 >= l { if yyj16 >= l {
break break
} }
} else { } else {
@ -228,10 +240,10 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} }
} }
z.DecSendContainerState(codecSelfer_containerMapKey1234) z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys14Slc = r.DecodeBytes(yys14Slc, true, true) yys16Slc = r.DecodeBytes(yys16Slc, true, true)
yys14 := string(yys14Slc) yys16 := string(yys16Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234) z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys14 { switch yys16 {
case "kind": case "kind":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Kind = "" x.Kind = ""
@ -248,13 +260,19 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{} x.ObjectMeta = pkg2_api.ObjectMeta{}
} else { } else {
yyv17 := &x.ObjectMeta yyv19 := &x.ObjectMeta
yyv17.CodecDecodeSelf(d) yym20 := z.DecBinary()
_ = yym20
if false {
} else if z.HasExtensions() && z.DecExt(yyv19) {
} else {
z.DecFallback(yyv19, false)
}
} }
default: default:
z.DecStructFieldNotFound(-1, yys14) z.DecStructFieldNotFound(-1, yys16)
} // end switch yys14 } // end switch yys16
} // end for yyj14 } // end for yyj16
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} }
@ -262,16 +280,16 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yyj18 int var yyj21 int
var yyb18 bool var yyb21 bool
var yyhl18 bool = l >= 0 var yyhl21 bool = l >= 0
yyj18++ yyj21++
if yyhl18 { if yyhl21 {
yyb18 = yyj18 > l yyb21 = yyj21 > l
} else { } else {
yyb18 = r.CheckBreak() yyb21 = r.CheckBreak()
} }
if yyb18 { if yyb21 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -281,13 +299,13 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.Kind = string(r.DecodeString()) x.Kind = string(r.DecodeString())
} }
yyj18++ yyj21++
if yyhl18 { if yyhl21 {
yyb18 = yyj18 > l yyb21 = yyj21 > l
} else { } else {
yyb18 = r.CheckBreak() yyb21 = r.CheckBreak()
} }
if yyb18 { if yyb21 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -297,13 +315,13 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.APIVersion = string(r.DecodeString()) x.APIVersion = string(r.DecodeString())
} }
yyj18++ yyj21++
if yyhl18 { if yyhl21 {
yyb18 = yyj18 > l yyb21 = yyj21 > l
} else { } else {
yyb18 = r.CheckBreak() yyb21 = r.CheckBreak()
} }
if yyb18 { if yyb21 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -311,21 +329,27 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{} x.ObjectMeta = pkg2_api.ObjectMeta{}
} else { } else {
yyv21 := &x.ObjectMeta yyv24 := &x.ObjectMeta
yyv21.CodecDecodeSelf(d) yym25 := z.DecBinary()
_ = yym25
if false {
} else if z.HasExtensions() && z.DecExt(yyv24) {
} else {
z.DecFallback(yyv24, false)
}
} }
for { for {
yyj18++ yyj21++
if yyhl18 { if yyhl21 {
yyb18 = yyj18 > l yyb21 = yyj21 > l
} else { } else {
yyb18 = r.CheckBreak() yyb21 = r.CheckBreak()
} }
if yyb18 { if yyb21 {
break break
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj18-1, "") z.DecStructFieldNotFound(yyj21-1, "")
} }
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
@ -337,118 +361,118 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
if x == nil { if x == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym22 := z.EncBinary() yym26 := z.EncBinary()
_ = yym22 _ = yym26
if false { if false {
} else if z.HasExtensions() && z.EncExt(x) { } else if z.HasExtensions() && z.EncExt(x) {
} else { } else {
yysep23 := !z.EncBinary() yysep27 := !z.EncBinary()
yy2arr23 := z.EncBasicHandle().StructToArray yy2arr27 := z.EncBasicHandle().StructToArray
var yyq23 [4]bool var yyq27 [4]bool
_, _, _ = yysep23, yyq23, yy2arr23 _, _, _ = yysep27, yyq27, yy2arr27
const yyr23 bool = false const yyr27 bool = false
yyq23[0] = x.Kind != "" yyq27[0] = x.Kind != ""
yyq23[1] = x.APIVersion != "" yyq27[1] = x.APIVersion != ""
yyq23[2] = true yyq27[2] = true
var yynn23 int var yynn27 int
if yyr23 || yy2arr23 { if yyr27 || yy2arr27 {
r.EncodeArrayStart(4) r.EncodeArrayStart(4)
} else { } else {
yynn23 = 1 yynn27 = 1
for _, b := range yyq23 { for _, b := range yyq27 {
if b { if b {
yynn23++ yynn27++
} }
} }
r.EncodeMapStart(yynn23) r.EncodeMapStart(yynn27)
yynn23 = 0 yynn27 = 0
} }
if yyr23 || yy2arr23 { if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[0] { if yyq27[0] {
yym25 := z.EncBinary()
_ = yym25
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq23[0] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("kind"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym26 := z.EncBinary()
_ = yym26
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr23 || yy2arr23 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[1] {
yym28 := z.EncBinary()
_ = yym28
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq23[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym29 := z.EncBinary() yym29 := z.EncBinary()
_ = yym29 _ = yym29
if false { if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq27[0] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("kind"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym30 := z.EncBinary()
_ = yym30
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq27[1] {
yym32 := z.EncBinary()
_ = yym32
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq27[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym33 := z.EncBinary()
_ = yym33
if false {
} else { } else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
} }
} }
} }
if yyr23 || yy2arr23 { if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[2] { if yyq27[2] {
yy31 := &x.ListMeta yy35 := &x.ListMeta
yym32 := z.EncBinary() yym36 := z.EncBinary()
_ = yym32 _ = yym36
if false { if false {
} else if z.HasExtensions() && z.EncExt(yy31) { } else if z.HasExtensions() && z.EncExt(yy35) {
} else { } else {
z.EncFallback(yy31) z.EncFallback(yy35)
} }
} else { } else {
r.EncodeNil() r.EncodeNil()
} }
} else { } else {
if yyq23[2] { if yyq27[2] {
z.EncSendContainerState(codecSelfer_containerMapKey1234) z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata")) r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234) z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy33 := &x.ListMeta yy37 := &x.ListMeta
yym34 := z.EncBinary() yym38 := z.EncBinary()
_ = yym34 _ = yym38
if false { if false {
} else if z.HasExtensions() && z.EncExt(yy33) { } else if z.HasExtensions() && z.EncExt(yy37) {
} else { } else {
z.EncFallback(yy33) z.EncFallback(yy37)
} }
} }
} }
if yyr23 || yy2arr23 { if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if x.Items == nil { if x.Items == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym36 := z.EncBinary() yym40 := z.EncBinary()
_ = yym36 _ = yym40
if false { if false {
} else { } else {
h.encSliceTestType(([]TestType)(x.Items), e) h.encSliceTestType(([]TestType)(x.Items), e)
@ -461,15 +485,15 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
if x.Items == nil { if x.Items == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym37 := z.EncBinary() yym41 := z.EncBinary()
_ = yym37 _ = yym41
if false { if false {
} else { } else {
h.encSliceTestType(([]TestType)(x.Items), e) h.encSliceTestType(([]TestType)(x.Items), e)
} }
} }
} }
if yyr23 || yy2arr23 { if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234) z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
z.EncSendContainerState(codecSelfer_containerMapEnd1234) z.EncSendContainerState(codecSelfer_containerMapEnd1234)
@ -482,25 +506,25 @@ func (x *TestTypeList) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
yym38 := z.DecBinary() yym42 := z.DecBinary()
_ = yym38 _ = yym42
if false { if false {
} else if z.HasExtensions() && z.DecExt(x) { } else if z.HasExtensions() && z.DecExt(x) {
} else { } else {
yyct39 := r.ContainerType() yyct43 := r.ContainerType()
if yyct39 == codecSelferValueTypeMap1234 { if yyct43 == codecSelferValueTypeMap1234 {
yyl39 := r.ReadMapStart() yyl43 := r.ReadMapStart()
if yyl39 == 0 { if yyl43 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else { } else {
x.codecDecodeSelfFromMap(yyl39, d) x.codecDecodeSelfFromMap(yyl43, d)
} }
} else if yyct39 == codecSelferValueTypeArray1234 { } else if yyct43 == codecSelferValueTypeArray1234 {
yyl39 := r.ReadArrayStart() yyl43 := r.ReadArrayStart()
if yyl39 == 0 { if yyl43 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
x.codecDecodeSelfFromArray(yyl39, d) x.codecDecodeSelfFromArray(yyl43, d)
} }
} else { } else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
@ -512,12 +536,12 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yys40Slc = z.DecScratchBuffer() // default slice to decode into var yys44Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys40Slc _ = yys44Slc
var yyhl40 bool = l >= 0 var yyhl44 bool = l >= 0
for yyj40 := 0; ; yyj40++ { for yyj44 := 0; ; yyj44++ {
if yyhl40 { if yyhl44 {
if yyj40 >= l { if yyj44 >= l {
break break
} }
} else { } else {
@ -526,10 +550,10 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} }
} }
z.DecSendContainerState(codecSelfer_containerMapKey1234) z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys40Slc = r.DecodeBytes(yys40Slc, true, true) yys44Slc = r.DecodeBytes(yys44Slc, true, true)
yys40 := string(yys40Slc) yys44 := string(yys44Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234) z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys40 { switch yys44 {
case "kind": case "kind":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Kind = "" x.Kind = ""
@ -546,31 +570,31 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ListMeta = pkg1_unversioned.ListMeta{} x.ListMeta = pkg1_unversioned.ListMeta{}
} else { } else {
yyv43 := &x.ListMeta yyv47 := &x.ListMeta
yym44 := z.DecBinary() yym48 := z.DecBinary()
_ = yym44 _ = yym48
if false { if false {
} else if z.HasExtensions() && z.DecExt(yyv43) { } else if z.HasExtensions() && z.DecExt(yyv47) {
} else { } else {
z.DecFallback(yyv43, false) z.DecFallback(yyv47, false)
} }
} }
case "items": case "items":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Items = nil x.Items = nil
} else { } else {
yyv45 := &x.Items yyv49 := &x.Items
yym46 := z.DecBinary() yym50 := z.DecBinary()
_ = yym46 _ = yym50
if false { if false {
} else { } else {
h.decSliceTestType((*[]TestType)(yyv45), d) h.decSliceTestType((*[]TestType)(yyv49), d)
} }
} }
default: default:
z.DecStructFieldNotFound(-1, yys40) z.DecStructFieldNotFound(-1, yys44)
} // end switch yys40 } // end switch yys44
} // end for yyj40 } // end for yyj44
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} }
@ -578,16 +602,16 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yyj47 int var yyj51 int
var yyb47 bool var yyb51 bool
var yyhl47 bool = l >= 0 var yyhl51 bool = l >= 0
yyj47++ yyj51++
if yyhl47 { if yyhl51 {
yyb47 = yyj47 > l yyb51 = yyj51 > l
} else { } else {
yyb47 = r.CheckBreak() yyb51 = r.CheckBreak()
} }
if yyb47 { if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -597,13 +621,13 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.Kind = string(r.DecodeString()) x.Kind = string(r.DecodeString())
} }
yyj47++ yyj51++
if yyhl47 { if yyhl51 {
yyb47 = yyj47 > l yyb51 = yyj51 > l
} else { } else {
yyb47 = r.CheckBreak() yyb51 = r.CheckBreak()
} }
if yyb47 { if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -613,13 +637,13 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.APIVersion = string(r.DecodeString()) x.APIVersion = string(r.DecodeString())
} }
yyj47++ yyj51++
if yyhl47 { if yyhl51 {
yyb47 = yyj47 > l yyb51 = yyj51 > l
} else { } else {
yyb47 = r.CheckBreak() yyb51 = r.CheckBreak()
} }
if yyb47 { if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -627,22 +651,22 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ListMeta = pkg1_unversioned.ListMeta{} x.ListMeta = pkg1_unversioned.ListMeta{}
} else { } else {
yyv50 := &x.ListMeta yyv54 := &x.ListMeta
yym51 := z.DecBinary() yym55 := z.DecBinary()
_ = yym51 _ = yym55
if false { if false {
} else if z.HasExtensions() && z.DecExt(yyv50) { } else if z.HasExtensions() && z.DecExt(yyv54) {
} else { } else {
z.DecFallback(yyv50, false) z.DecFallback(yyv54, false)
} }
} }
yyj47++ yyj51++
if yyhl47 { if yyhl51 {
yyb47 = yyj47 > l yyb51 = yyj51 > l
} else { } else {
yyb47 = r.CheckBreak() yyb51 = r.CheckBreak()
} }
if yyb47 { if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -650,26 +674,26 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Items = nil x.Items = nil
} else { } else {
yyv52 := &x.Items yyv56 := &x.Items
yym53 := z.DecBinary() yym57 := z.DecBinary()
_ = yym53 _ = yym57
if false { if false {
} else { } else {
h.decSliceTestType((*[]TestType)(yyv52), d) h.decSliceTestType((*[]TestType)(yyv56), d)
} }
} }
for { for {
yyj47++ yyj51++
if yyhl47 { if yyhl51 {
yyb47 = yyj47 > l yyb51 = yyj51 > l
} else { } else {
yyb47 = r.CheckBreak() yyb51 = r.CheckBreak()
} }
if yyb47 { if yyb51 {
break break
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj47-1, "") z.DecStructFieldNotFound(yyj51-1, "")
} }
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
@ -679,10 +703,10 @@ func (x codecSelfer1234) encSliceTestType(v []TestType, e *codec1978.Encoder) {
z, r := codec1978.GenHelperEncoder(e) z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r _, _, _ = h, z, r
r.EncodeArrayStart(len(v)) r.EncodeArrayStart(len(v))
for _, yyv54 := range v { for _, yyv58 := range v {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yy55 := &yyv54 yy59 := &yyv58
yy55.CodecEncodeSelf(e) yy59.CodecEncodeSelf(e)
} }
z.EncSendContainerState(codecSelfer_containerArrayEnd1234) z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} }
@ -692,83 +716,83 @@ func (x codecSelfer1234) decSliceTestType(v *[]TestType, d *codec1978.Decoder) {
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
yyv56 := *v yyv60 := *v
yyh56, yyl56 := z.DecSliceHelperStart() yyh60, yyl60 := z.DecSliceHelperStart()
var yyc56 bool var yyc60 bool
if yyl56 == 0 { if yyl60 == 0 {
if yyv56 == nil { if yyv60 == nil {
yyv56 = []TestType{} yyv60 = []TestType{}
yyc56 = true yyc60 = true
} else if len(yyv56) != 0 { } else if len(yyv60) != 0 {
yyv56 = yyv56[:0] yyv60 = yyv60[:0]
yyc56 = true yyc60 = true
} }
} else if yyl56 > 0 { } else if yyl60 > 0 {
var yyrr56, yyrl56 int var yyrr60, yyrl60 int
var yyrt56 bool var yyrt60 bool
if yyl56 > cap(yyv56) { if yyl60 > cap(yyv60) {
yyrg56 := len(yyv56) > 0 yyrg60 := len(yyv60) > 0
yyv256 := yyv56 yyv260 := yyv60
yyrl56, yyrt56 = z.DecInferLen(yyl56, z.DecBasicHandle().MaxInitLen, 192) yyrl60, yyrt60 = z.DecInferLen(yyl60, z.DecBasicHandle().MaxInitLen, 192)
if yyrt56 { if yyrt60 {
if yyrl56 <= cap(yyv56) { if yyrl60 <= cap(yyv60) {
yyv56 = yyv56[:yyrl56] yyv60 = yyv60[:yyrl60]
} else { } else {
yyv56 = make([]TestType, yyrl56) yyv60 = make([]TestType, yyrl60)
} }
} else { } else {
yyv56 = make([]TestType, yyrl56) yyv60 = make([]TestType, yyrl60)
} }
yyc56 = true yyc60 = true
yyrr56 = len(yyv56) yyrr60 = len(yyv60)
if yyrg56 { if yyrg60 {
copy(yyv56, yyv256) copy(yyv60, yyv260)
} }
} else if yyl56 != len(yyv56) { } else if yyl60 != len(yyv60) {
yyv56 = yyv56[:yyl56] yyv60 = yyv60[:yyl60]
yyc56 = true yyc60 = true
} }
yyj56 := 0 yyj60 := 0
for ; yyj56 < yyrr56; yyj56++ { for ; yyj60 < yyrr60; yyj60++ {
yyh56.ElemContainerState(yyj56) yyh60.ElemContainerState(yyj60)
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv56[yyj56] = TestType{} yyv60[yyj60] = TestType{}
} else { } else {
yyv57 := &yyv56[yyj56] yyv61 := &yyv60[yyj60]
yyv57.CodecDecodeSelf(d) yyv61.CodecDecodeSelf(d)
} }
} }
if yyrt56 { if yyrt60 {
for ; yyj56 < yyl56; yyj56++ { for ; yyj60 < yyl60; yyj60++ {
yyv56 = append(yyv56, TestType{}) yyv60 = append(yyv60, TestType{})
yyh56.ElemContainerState(yyj56) yyh60.ElemContainerState(yyj60)
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv56[yyj56] = TestType{} yyv60[yyj60] = TestType{}
} else { } else {
yyv58 := &yyv56[yyj56] yyv62 := &yyv60[yyj60]
yyv58.CodecDecodeSelf(d) yyv62.CodecDecodeSelf(d)
} }
} }
} }
} else { } else {
yyj56 := 0 yyj60 := 0
for ; !r.CheckBreak(); yyj56++ { for ; !r.CheckBreak(); yyj60++ {
if yyj56 >= len(yyv56) { if yyj60 >= len(yyv60) {
yyv56 = append(yyv56, TestType{}) // var yyz56 TestType yyv60 = append(yyv60, TestType{}) // var yyz60 TestType
yyc56 = true yyc60 = true
} }
yyh56.ElemContainerState(yyj56) yyh60.ElemContainerState(yyj60)
if yyj56 < len(yyv56) { if yyj60 < len(yyv60) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv56[yyj56] = TestType{} yyv60[yyj60] = TestType{}
} else { } else {
yyv59 := &yyv56[yyj56] yyv63 := &yyv60[yyj60]
yyv59.CodecDecodeSelf(d) yyv63.CodecDecodeSelf(d)
} }
} else { } else {
@ -776,16 +800,16 @@ func (x codecSelfer1234) decSliceTestType(v *[]TestType, d *codec1978.Decoder) {
} }
} }
if yyj56 < len(yyv56) { if yyj60 < len(yyv60) {
yyv56 = yyv56[:yyj56] yyv60 = yyv60[:yyj60]
yyc56 = true yyc60 = true
} else if yyj56 == 0 && yyv56 == nil { } else if yyj60 == 0 && yyv60 == nil {
yyv56 = []TestType{} yyv60 = []TestType{}
yyc56 = true yyc60 = true
} }
} }
yyh56.End() yyh60.End()
if yyc56 { if yyc60 {
*v = yyv56 *v = yyv60
} }
} }

View File

@ -158,7 +158,13 @@ func (x *TestType) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[2] { if yyq2[2] {
yy10 := &x.ObjectMeta yy10 := &x.ObjectMeta
yy10.CodecEncodeSelf(e) yym11 := z.EncBinary()
_ = yym11
if false {
} else if z.HasExtensions() && z.EncExt(yy10) {
} else {
z.EncFallback(yy10)
}
} else { } else {
r.EncodeNil() r.EncodeNil()
} }
@ -167,8 +173,14 @@ func (x *TestType) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234) z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata")) r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234) z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy11 := &x.ObjectMeta yy12 := &x.ObjectMeta
yy11.CodecEncodeSelf(e) yym13 := z.EncBinary()
_ = yym13
if false {
} else if z.HasExtensions() && z.EncExt(yy12) {
} else {
z.EncFallback(yy12)
}
} }
} }
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
@ -184,25 +196,25 @@ func (x *TestType) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
yym12 := z.DecBinary() yym14 := z.DecBinary()
_ = yym12 _ = yym14
if false { if false {
} else if z.HasExtensions() && z.DecExt(x) { } else if z.HasExtensions() && z.DecExt(x) {
} else { } else {
yyct13 := r.ContainerType() yyct15 := r.ContainerType()
if yyct13 == codecSelferValueTypeMap1234 { if yyct15 == codecSelferValueTypeMap1234 {
yyl13 := r.ReadMapStart() yyl15 := r.ReadMapStart()
if yyl13 == 0 { if yyl15 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else { } else {
x.codecDecodeSelfFromMap(yyl13, d) x.codecDecodeSelfFromMap(yyl15, d)
} }
} else if yyct13 == codecSelferValueTypeArray1234 { } else if yyct15 == codecSelferValueTypeArray1234 {
yyl13 := r.ReadArrayStart() yyl15 := r.ReadArrayStart()
if yyl13 == 0 { if yyl15 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
x.codecDecodeSelfFromArray(yyl13, d) x.codecDecodeSelfFromArray(yyl15, d)
} }
} else { } else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
@ -214,12 +226,12 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yys14Slc = z.DecScratchBuffer() // default slice to decode into var yys16Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys14Slc _ = yys16Slc
var yyhl14 bool = l >= 0 var yyhl16 bool = l >= 0
for yyj14 := 0; ; yyj14++ { for yyj16 := 0; ; yyj16++ {
if yyhl14 { if yyhl16 {
if yyj14 >= l { if yyj16 >= l {
break break
} }
} else { } else {
@ -228,10 +240,10 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} }
} }
z.DecSendContainerState(codecSelfer_containerMapKey1234) z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys14Slc = r.DecodeBytes(yys14Slc, true, true) yys16Slc = r.DecodeBytes(yys16Slc, true, true)
yys14 := string(yys14Slc) yys16 := string(yys16Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234) z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys14 { switch yys16 {
case "kind": case "kind":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Kind = "" x.Kind = ""
@ -248,13 +260,19 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{} x.ObjectMeta = pkg2_api.ObjectMeta{}
} else { } else {
yyv17 := &x.ObjectMeta yyv19 := &x.ObjectMeta
yyv17.CodecDecodeSelf(d) yym20 := z.DecBinary()
_ = yym20
if false {
} else if z.HasExtensions() && z.DecExt(yyv19) {
} else {
z.DecFallback(yyv19, false)
}
} }
default: default:
z.DecStructFieldNotFound(-1, yys14) z.DecStructFieldNotFound(-1, yys16)
} // end switch yys14 } // end switch yys16
} // end for yyj14 } // end for yyj16
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} }
@ -262,16 +280,16 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yyj18 int var yyj21 int
var yyb18 bool var yyb21 bool
var yyhl18 bool = l >= 0 var yyhl21 bool = l >= 0
yyj18++ yyj21++
if yyhl18 { if yyhl21 {
yyb18 = yyj18 > l yyb21 = yyj21 > l
} else { } else {
yyb18 = r.CheckBreak() yyb21 = r.CheckBreak()
} }
if yyb18 { if yyb21 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -281,13 +299,13 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.Kind = string(r.DecodeString()) x.Kind = string(r.DecodeString())
} }
yyj18++ yyj21++
if yyhl18 { if yyhl21 {
yyb18 = yyj18 > l yyb21 = yyj21 > l
} else { } else {
yyb18 = r.CheckBreak() yyb21 = r.CheckBreak()
} }
if yyb18 { if yyb21 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -297,13 +315,13 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.APIVersion = string(r.DecodeString()) x.APIVersion = string(r.DecodeString())
} }
yyj18++ yyj21++
if yyhl18 { if yyhl21 {
yyb18 = yyj18 > l yyb21 = yyj21 > l
} else { } else {
yyb18 = r.CheckBreak() yyb21 = r.CheckBreak()
} }
if yyb18 { if yyb21 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -311,21 +329,27 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{} x.ObjectMeta = pkg2_api.ObjectMeta{}
} else { } else {
yyv21 := &x.ObjectMeta yyv24 := &x.ObjectMeta
yyv21.CodecDecodeSelf(d) yym25 := z.DecBinary()
_ = yym25
if false {
} else if z.HasExtensions() && z.DecExt(yyv24) {
} else {
z.DecFallback(yyv24, false)
}
} }
for { for {
yyj18++ yyj21++
if yyhl18 { if yyhl21 {
yyb18 = yyj18 > l yyb21 = yyj21 > l
} else { } else {
yyb18 = r.CheckBreak() yyb21 = r.CheckBreak()
} }
if yyb18 { if yyb21 {
break break
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj18-1, "") z.DecStructFieldNotFound(yyj21-1, "")
} }
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
@ -337,118 +361,118 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
if x == nil { if x == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym22 := z.EncBinary() yym26 := z.EncBinary()
_ = yym22 _ = yym26
if false { if false {
} else if z.HasExtensions() && z.EncExt(x) { } else if z.HasExtensions() && z.EncExt(x) {
} else { } else {
yysep23 := !z.EncBinary() yysep27 := !z.EncBinary()
yy2arr23 := z.EncBasicHandle().StructToArray yy2arr27 := z.EncBasicHandle().StructToArray
var yyq23 [4]bool var yyq27 [4]bool
_, _, _ = yysep23, yyq23, yy2arr23 _, _, _ = yysep27, yyq27, yy2arr27
const yyr23 bool = false const yyr27 bool = false
yyq23[0] = x.Kind != "" yyq27[0] = x.Kind != ""
yyq23[1] = x.APIVersion != "" yyq27[1] = x.APIVersion != ""
yyq23[2] = true yyq27[2] = true
var yynn23 int var yynn27 int
if yyr23 || yy2arr23 { if yyr27 || yy2arr27 {
r.EncodeArrayStart(4) r.EncodeArrayStart(4)
} else { } else {
yynn23 = 1 yynn27 = 1
for _, b := range yyq23 { for _, b := range yyq27 {
if b { if b {
yynn23++ yynn27++
} }
} }
r.EncodeMapStart(yynn23) r.EncodeMapStart(yynn27)
yynn23 = 0 yynn27 = 0
} }
if yyr23 || yy2arr23 { if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[0] { if yyq27[0] {
yym25 := z.EncBinary()
_ = yym25
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq23[0] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("kind"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym26 := z.EncBinary()
_ = yym26
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr23 || yy2arr23 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[1] {
yym28 := z.EncBinary()
_ = yym28
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq23[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym29 := z.EncBinary() yym29 := z.EncBinary()
_ = yym29 _ = yym29
if false { if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq27[0] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("kind"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym30 := z.EncBinary()
_ = yym30
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq27[1] {
yym32 := z.EncBinary()
_ = yym32
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq27[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym33 := z.EncBinary()
_ = yym33
if false {
} else { } else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
} }
} }
} }
if yyr23 || yy2arr23 { if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[2] { if yyq27[2] {
yy31 := &x.ListMeta yy35 := &x.ListMeta
yym32 := z.EncBinary() yym36 := z.EncBinary()
_ = yym32 _ = yym36
if false { if false {
} else if z.HasExtensions() && z.EncExt(yy31) { } else if z.HasExtensions() && z.EncExt(yy35) {
} else { } else {
z.EncFallback(yy31) z.EncFallback(yy35)
} }
} else { } else {
r.EncodeNil() r.EncodeNil()
} }
} else { } else {
if yyq23[2] { if yyq27[2] {
z.EncSendContainerState(codecSelfer_containerMapKey1234) z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata")) r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234) z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy33 := &x.ListMeta yy37 := &x.ListMeta
yym34 := z.EncBinary() yym38 := z.EncBinary()
_ = yym34 _ = yym38
if false { if false {
} else if z.HasExtensions() && z.EncExt(yy33) { } else if z.HasExtensions() && z.EncExt(yy37) {
} else { } else {
z.EncFallback(yy33) z.EncFallback(yy37)
} }
} }
} }
if yyr23 || yy2arr23 { if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if x.Items == nil { if x.Items == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym36 := z.EncBinary() yym40 := z.EncBinary()
_ = yym36 _ = yym40
if false { if false {
} else { } else {
h.encSliceTestType(([]TestType)(x.Items), e) h.encSliceTestType(([]TestType)(x.Items), e)
@ -461,15 +485,15 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
if x.Items == nil { if x.Items == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym37 := z.EncBinary() yym41 := z.EncBinary()
_ = yym37 _ = yym41
if false { if false {
} else { } else {
h.encSliceTestType(([]TestType)(x.Items), e) h.encSliceTestType(([]TestType)(x.Items), e)
} }
} }
} }
if yyr23 || yy2arr23 { if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234) z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
z.EncSendContainerState(codecSelfer_containerMapEnd1234) z.EncSendContainerState(codecSelfer_containerMapEnd1234)
@ -482,25 +506,25 @@ func (x *TestTypeList) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
yym38 := z.DecBinary() yym42 := z.DecBinary()
_ = yym38 _ = yym42
if false { if false {
} else if z.HasExtensions() && z.DecExt(x) { } else if z.HasExtensions() && z.DecExt(x) {
} else { } else {
yyct39 := r.ContainerType() yyct43 := r.ContainerType()
if yyct39 == codecSelferValueTypeMap1234 { if yyct43 == codecSelferValueTypeMap1234 {
yyl39 := r.ReadMapStart() yyl43 := r.ReadMapStart()
if yyl39 == 0 { if yyl43 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else { } else {
x.codecDecodeSelfFromMap(yyl39, d) x.codecDecodeSelfFromMap(yyl43, d)
} }
} else if yyct39 == codecSelferValueTypeArray1234 { } else if yyct43 == codecSelferValueTypeArray1234 {
yyl39 := r.ReadArrayStart() yyl43 := r.ReadArrayStart()
if yyl39 == 0 { if yyl43 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
x.codecDecodeSelfFromArray(yyl39, d) x.codecDecodeSelfFromArray(yyl43, d)
} }
} else { } else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
@ -512,12 +536,12 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yys40Slc = z.DecScratchBuffer() // default slice to decode into var yys44Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys40Slc _ = yys44Slc
var yyhl40 bool = l >= 0 var yyhl44 bool = l >= 0
for yyj40 := 0; ; yyj40++ { for yyj44 := 0; ; yyj44++ {
if yyhl40 { if yyhl44 {
if yyj40 >= l { if yyj44 >= l {
break break
} }
} else { } else {
@ -526,10 +550,10 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} }
} }
z.DecSendContainerState(codecSelfer_containerMapKey1234) z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys40Slc = r.DecodeBytes(yys40Slc, true, true) yys44Slc = r.DecodeBytes(yys44Slc, true, true)
yys40 := string(yys40Slc) yys44 := string(yys44Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234) z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys40 { switch yys44 {
case "kind": case "kind":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Kind = "" x.Kind = ""
@ -546,31 +570,31 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ListMeta = pkg1_unversioned.ListMeta{} x.ListMeta = pkg1_unversioned.ListMeta{}
} else { } else {
yyv43 := &x.ListMeta yyv47 := &x.ListMeta
yym44 := z.DecBinary() yym48 := z.DecBinary()
_ = yym44 _ = yym48
if false { if false {
} else if z.HasExtensions() && z.DecExt(yyv43) { } else if z.HasExtensions() && z.DecExt(yyv47) {
} else { } else {
z.DecFallback(yyv43, false) z.DecFallback(yyv47, false)
} }
} }
case "items": case "items":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Items = nil x.Items = nil
} else { } else {
yyv45 := &x.Items yyv49 := &x.Items
yym46 := z.DecBinary() yym50 := z.DecBinary()
_ = yym46 _ = yym50
if false { if false {
} else { } else {
h.decSliceTestType((*[]TestType)(yyv45), d) h.decSliceTestType((*[]TestType)(yyv49), d)
} }
} }
default: default:
z.DecStructFieldNotFound(-1, yys40) z.DecStructFieldNotFound(-1, yys44)
} // end switch yys40 } // end switch yys44
} // end for yyj40 } // end for yyj44
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} }
@ -578,16 +602,16 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yyj47 int var yyj51 int
var yyb47 bool var yyb51 bool
var yyhl47 bool = l >= 0 var yyhl51 bool = l >= 0
yyj47++ yyj51++
if yyhl47 { if yyhl51 {
yyb47 = yyj47 > l yyb51 = yyj51 > l
} else { } else {
yyb47 = r.CheckBreak() yyb51 = r.CheckBreak()
} }
if yyb47 { if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -597,13 +621,13 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.Kind = string(r.DecodeString()) x.Kind = string(r.DecodeString())
} }
yyj47++ yyj51++
if yyhl47 { if yyhl51 {
yyb47 = yyj47 > l yyb51 = yyj51 > l
} else { } else {
yyb47 = r.CheckBreak() yyb51 = r.CheckBreak()
} }
if yyb47 { if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -613,13 +637,13 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.APIVersion = string(r.DecodeString()) x.APIVersion = string(r.DecodeString())
} }
yyj47++ yyj51++
if yyhl47 { if yyhl51 {
yyb47 = yyj47 > l yyb51 = yyj51 > l
} else { } else {
yyb47 = r.CheckBreak() yyb51 = r.CheckBreak()
} }
if yyb47 { if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -627,22 +651,22 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ListMeta = pkg1_unversioned.ListMeta{} x.ListMeta = pkg1_unversioned.ListMeta{}
} else { } else {
yyv50 := &x.ListMeta yyv54 := &x.ListMeta
yym51 := z.DecBinary() yym55 := z.DecBinary()
_ = yym51 _ = yym55
if false { if false {
} else if z.HasExtensions() && z.DecExt(yyv50) { } else if z.HasExtensions() && z.DecExt(yyv54) {
} else { } else {
z.DecFallback(yyv50, false) z.DecFallback(yyv54, false)
} }
} }
yyj47++ yyj51++
if yyhl47 { if yyhl51 {
yyb47 = yyj47 > l yyb51 = yyj51 > l
} else { } else {
yyb47 = r.CheckBreak() yyb51 = r.CheckBreak()
} }
if yyb47 { if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -650,26 +674,26 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Items = nil x.Items = nil
} else { } else {
yyv52 := &x.Items yyv56 := &x.Items
yym53 := z.DecBinary() yym57 := z.DecBinary()
_ = yym53 _ = yym57
if false { if false {
} else { } else {
h.decSliceTestType((*[]TestType)(yyv52), d) h.decSliceTestType((*[]TestType)(yyv56), d)
} }
} }
for { for {
yyj47++ yyj51++
if yyhl47 { if yyhl51 {
yyb47 = yyj47 > l yyb51 = yyj51 > l
} else { } else {
yyb47 = r.CheckBreak() yyb51 = r.CheckBreak()
} }
if yyb47 { if yyb51 {
break break
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj47-1, "") z.DecStructFieldNotFound(yyj51-1, "")
} }
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
@ -679,10 +703,10 @@ func (x codecSelfer1234) encSliceTestType(v []TestType, e *codec1978.Encoder) {
z, r := codec1978.GenHelperEncoder(e) z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r _, _, _ = h, z, r
r.EncodeArrayStart(len(v)) r.EncodeArrayStart(len(v))
for _, yyv54 := range v { for _, yyv58 := range v {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yy55 := &yyv54 yy59 := &yyv58
yy55.CodecEncodeSelf(e) yy59.CodecEncodeSelf(e)
} }
z.EncSendContainerState(codecSelfer_containerArrayEnd1234) z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} }
@ -692,83 +716,83 @@ func (x codecSelfer1234) decSliceTestType(v *[]TestType, d *codec1978.Decoder) {
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
yyv56 := *v yyv60 := *v
yyh56, yyl56 := z.DecSliceHelperStart() yyh60, yyl60 := z.DecSliceHelperStart()
var yyc56 bool var yyc60 bool
if yyl56 == 0 { if yyl60 == 0 {
if yyv56 == nil { if yyv60 == nil {
yyv56 = []TestType{} yyv60 = []TestType{}
yyc56 = true yyc60 = true
} else if len(yyv56) != 0 { } else if len(yyv60) != 0 {
yyv56 = yyv56[:0] yyv60 = yyv60[:0]
yyc56 = true yyc60 = true
} }
} else if yyl56 > 0 { } else if yyl60 > 0 {
var yyrr56, yyrl56 int var yyrr60, yyrl60 int
var yyrt56 bool var yyrt60 bool
if yyl56 > cap(yyv56) { if yyl60 > cap(yyv60) {
yyrg56 := len(yyv56) > 0 yyrg60 := len(yyv60) > 0
yyv256 := yyv56 yyv260 := yyv60
yyrl56, yyrt56 = z.DecInferLen(yyl56, z.DecBasicHandle().MaxInitLen, 192) yyrl60, yyrt60 = z.DecInferLen(yyl60, z.DecBasicHandle().MaxInitLen, 192)
if yyrt56 { if yyrt60 {
if yyrl56 <= cap(yyv56) { if yyrl60 <= cap(yyv60) {
yyv56 = yyv56[:yyrl56] yyv60 = yyv60[:yyrl60]
} else { } else {
yyv56 = make([]TestType, yyrl56) yyv60 = make([]TestType, yyrl60)
} }
} else { } else {
yyv56 = make([]TestType, yyrl56) yyv60 = make([]TestType, yyrl60)
} }
yyc56 = true yyc60 = true
yyrr56 = len(yyv56) yyrr60 = len(yyv60)
if yyrg56 { if yyrg60 {
copy(yyv56, yyv256) copy(yyv60, yyv260)
} }
} else if yyl56 != len(yyv56) { } else if yyl60 != len(yyv60) {
yyv56 = yyv56[:yyl56] yyv60 = yyv60[:yyl60]
yyc56 = true yyc60 = true
} }
yyj56 := 0 yyj60 := 0
for ; yyj56 < yyrr56; yyj56++ { for ; yyj60 < yyrr60; yyj60++ {
yyh56.ElemContainerState(yyj56) yyh60.ElemContainerState(yyj60)
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv56[yyj56] = TestType{} yyv60[yyj60] = TestType{}
} else { } else {
yyv57 := &yyv56[yyj56] yyv61 := &yyv60[yyj60]
yyv57.CodecDecodeSelf(d) yyv61.CodecDecodeSelf(d)
} }
} }
if yyrt56 { if yyrt60 {
for ; yyj56 < yyl56; yyj56++ { for ; yyj60 < yyl60; yyj60++ {
yyv56 = append(yyv56, TestType{}) yyv60 = append(yyv60, TestType{})
yyh56.ElemContainerState(yyj56) yyh60.ElemContainerState(yyj60)
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv56[yyj56] = TestType{} yyv60[yyj60] = TestType{}
} else { } else {
yyv58 := &yyv56[yyj56] yyv62 := &yyv60[yyj60]
yyv58.CodecDecodeSelf(d) yyv62.CodecDecodeSelf(d)
} }
} }
} }
} else { } else {
yyj56 := 0 yyj60 := 0
for ; !r.CheckBreak(); yyj56++ { for ; !r.CheckBreak(); yyj60++ {
if yyj56 >= len(yyv56) { if yyj60 >= len(yyv60) {
yyv56 = append(yyv56, TestType{}) // var yyz56 TestType yyv60 = append(yyv60, TestType{}) // var yyz60 TestType
yyc56 = true yyc60 = true
} }
yyh56.ElemContainerState(yyj56) yyh60.ElemContainerState(yyj60)
if yyj56 < len(yyv56) { if yyj60 < len(yyv60) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv56[yyj56] = TestType{} yyv60[yyj60] = TestType{}
} else { } else {
yyv59 := &yyv56[yyj56] yyv63 := &yyv60[yyj60]
yyv59.CodecDecodeSelf(d) yyv63.CodecDecodeSelf(d)
} }
} else { } else {
@ -776,16 +800,16 @@ func (x codecSelfer1234) decSliceTestType(v *[]TestType, d *codec1978.Decoder) {
} }
} }
if yyj56 < len(yyv56) { if yyj60 < len(yyv60) {
yyv56 = yyv56[:yyj56] yyv60 = yyv60[:yyj60]
yyc56 = true yyc60 = true
} else if yyj56 == 0 && yyv56 == nil { } else if yyj60 == 0 && yyv60 == nil {
yyv56 = []TestType{} yyv60 = []TestType{}
yyc56 = true yyc60 = true
} }
} }
yyh56.End() yyh60.End()
if yyc56 { if yyc60 {
*v = yyv56 *v = yyv60
} }
} }

View File

@ -408,7 +408,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -470,7 +470,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -525,7 +525,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -566,7 +566,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -607,7 +607,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -655,7 +655,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -696,7 +696,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -744,7 +744,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -785,7 +785,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -847,7 +847,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -909,7 +909,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -964,7 +964,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -998,7 +998,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1032,7 +1032,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1087,7 +1087,7 @@ Examples:<br>
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1142,7 +1142,7 @@ Examples:<br>
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1176,7 +1176,7 @@ Examples:<br>
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1222,7 +1222,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1277,7 +1277,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1311,7 +1311,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1373,7 +1373,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1421,7 +1421,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1476,7 +1476,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1545,7 +1545,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1586,7 +1586,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1620,7 +1620,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1651,7 +1651,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1685,7 +1685,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1838,7 +1838,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1902,7 +1902,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -1936,7 +1936,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2061,7 +2061,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2102,7 +2102,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2136,7 +2136,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2202,7 +2202,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2243,7 +2243,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2298,7 +2298,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2332,7 +2332,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2372,7 +2372,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2420,7 +2420,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2485,7 +2485,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2540,7 +2540,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2581,7 +2581,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2615,7 +2615,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2656,7 +2656,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2711,7 +2711,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2759,7 +2759,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2821,7 +2821,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2872,7 +2872,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2906,7 +2906,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2947,7 +2947,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -2981,7 +2981,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3050,7 +3050,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3091,7 +3091,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3132,7 +3132,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3180,7 +3180,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3330,7 +3330,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3413,7 +3413,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3440,6 +3440,13 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td>
</tr> </tr>
<tr> <tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">activeDeadlineSeconds</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Optional duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int64)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">selector</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">selector</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Selector is a label query over pods that should match the pod count. More info: <a href="http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors">http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors</a></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Selector is a label query over pods that should match the pod count. More info: <a href="http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors">http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
@ -3472,7 +3479,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3555,7 +3562,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3596,7 +3603,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3658,7 +3665,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3790,7 +3797,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3845,7 +3852,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3886,7 +3893,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3934,7 +3941,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -3982,7 +3989,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -4023,7 +4030,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -4078,7 +4085,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -4140,7 +4147,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -4202,7 +4209,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
<col style="width:20%;"> <col style="width:20%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -4289,4 +4296,4 @@ Last updated 2015-12-16 14:33:53 UTC
</div> </div>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1383,6 +1383,12 @@ func deepCopy_extensions_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner)
} else { } else {
out.Completions = nil out.Completions = nil
} }
if in.ActiveDeadlineSeconds != nil {
out.ActiveDeadlineSeconds = new(int64)
*out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds
} else {
out.ActiveDeadlineSeconds = nil
}
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(LabelSelector) out.Selector = new(LabelSelector)
if err := deepCopy_extensions_LabelSelector(*in.Selector, out.Selector, c); err != nil { if err := deepCopy_extensions_LabelSelector(*in.Selector, out.Selector, c); err != nil {

File diff suppressed because it is too large Load Diff

View File

@ -410,6 +410,10 @@ type JobSpec struct {
// job should be run with. Defaults to 1. // job should be run with. Defaults to 1.
Completions *int `json:"completions,omitempty"` Completions *int `json:"completions,omitempty"`
// Optional duration in seconds relative to the startTime that the job may be active
// before the system tries to terminate it; value must be positive integer
ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"`
// Selector is a label query over pods that should match the pod count. // Selector is a label query over pods that should match the pod count.
Selector *LabelSelector `json:"selector,omitempty"` Selector *LabelSelector `json:"selector,omitempty"`
@ -450,6 +454,8 @@ type JobConditionType string
const ( const (
// JobComplete means the job has completed its execution. // JobComplete means the job has completed its execution.
JobComplete JobConditionType = "Complete" JobComplete JobConditionType = "Complete"
// JobFailed means the job has failed its execution.
JobFailed JobConditionType = "Failed"
) )
// JobCondition describes current state of a job. // JobCondition describes current state of a job.

View File

@ -2902,6 +2902,12 @@ func autoconvert_extensions_JobSpec_To_v1beta1_JobSpec(in *extensions.JobSpec, o
} else { } else {
out.Completions = nil out.Completions = nil
} }
if in.ActiveDeadlineSeconds != nil {
out.ActiveDeadlineSeconds = new(int64)
*out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds
} else {
out.ActiveDeadlineSeconds = nil
}
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(LabelSelector) out.Selector = new(LabelSelector)
if err := convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil { if err := convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
@ -3921,6 +3927,12 @@ func autoconvert_v1beta1_JobSpec_To_extensions_JobSpec(in *JobSpec, out *extensi
} else { } else {
out.Completions = nil out.Completions = nil
} }
if in.ActiveDeadlineSeconds != nil {
out.ActiveDeadlineSeconds = new(int64)
*out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds
} else {
out.ActiveDeadlineSeconds = nil
}
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(extensions.LabelSelector) out.Selector = new(extensions.LabelSelector)
if err := convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil { if err := convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {

View File

@ -1395,6 +1395,12 @@ func deepCopy_v1beta1_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner) er
} else { } else {
out.Completions = nil out.Completions = nil
} }
if in.ActiveDeadlineSeconds != nil {
out.ActiveDeadlineSeconds = new(int64)
*out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds
} else {
out.ActiveDeadlineSeconds = nil
}
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(LabelSelector) out.Selector = new(LabelSelector)
if err := deepCopy_v1beta1_LabelSelector(*in.Selector, out.Selector, c); err != nil { if err := deepCopy_v1beta1_LabelSelector(*in.Selector, out.Selector, c); err != nil {

File diff suppressed because it is too large Load Diff

View File

@ -415,6 +415,10 @@ type JobSpec struct {
// More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md // More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md
Completions *int32 `json:"completions,omitempty"` Completions *int32 `json:"completions,omitempty"`
// Optional duration in seconds relative to the startTime that the job may be active
// before the system tries to terminate it; value must be positive integer
ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"`
// Selector is a label query over pods that should match the pod count. // Selector is a label query over pods that should match the pod count.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors // More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
Selector *LabelSelector `json:"selector,omitempty"` Selector *LabelSelector `json:"selector,omitempty"`
@ -458,6 +462,8 @@ type JobConditionType string
const ( const (
// JobComplete means the job has completed its execution. // JobComplete means the job has completed its execution.
JobComplete JobConditionType = "Complete" JobComplete JobConditionType = "Complete"
// JobFailed means the job has failed its execution.
JobFailed JobConditionType = "Failed"
) )
// JobCondition describes current state of a job. // JobCondition describes current state of a job.

View File

@ -368,11 +368,12 @@ func (JobList) SwaggerDoc() map[string]string {
} }
var map_JobSpec = map[string]string{ var map_JobSpec = map[string]string{
"": "JobSpec describes how the job execution will look like.", "": "JobSpec describes how the job execution will look like.",
"parallelism": "Parallelism specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md", "parallelism": "Parallelism specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md",
"completions": "Completions specifies the desired number of successfully finished pods the job should be run with. Defaults to 1. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md", "completions": "Completions specifies the desired number of successfully finished pods the job should be run with. Defaults to 1. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md",
"selector": "Selector is a label query over pods that should match the pod count. More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors", "activeDeadlineSeconds": "Optional duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer",
"template": "Template is the object that describes the pod that will be created when executing a job. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md", "selector": "Selector is a label query over pods that should match the pod count. More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors",
"template": "Template is the object that describes the pod that will be created when executing a job. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md",
} }
func (JobSpec) SwaggerDoc() map[string]string { func (JobSpec) SwaggerDoc() map[string]string {

View File

@ -338,6 +338,9 @@ func ValidateJobSpec(spec *extensions.JobSpec, fldPath *field.Path) field.ErrorL
if spec.Completions != nil { if spec.Completions != nil {
allErrs = append(allErrs, apivalidation.ValidatePositiveField(int64(*spec.Completions), fldPath.Child("completions"))...) allErrs = append(allErrs, apivalidation.ValidatePositiveField(int64(*spec.Completions), fldPath.Child("completions"))...)
} }
if spec.ActiveDeadlineSeconds != nil {
allErrs = append(allErrs, apivalidation.ValidatePositiveField(int64(*spec.ActiveDeadlineSeconds), fldPath.Child("activeDeadlineSeconds"))...)
}
if spec.Selector == nil { if spec.Selector == nil {
allErrs = append(allErrs, field.Required(fldPath.Child("selector"))) allErrs = append(allErrs, field.Required(fldPath.Child("selector")))
} else { } else {

View File

@ -839,6 +839,7 @@ func TestValidateJob(t *testing.T) {
} }
} }
negative := -1 negative := -1
negative64 := int64(-1)
errorCases := map[string]extensions.Job{ errorCases := map[string]extensions.Job{
"spec.parallelism:must be non-negative": { "spec.parallelism:must be non-negative": {
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
@ -862,6 +863,17 @@ func TestValidateJob(t *testing.T) {
Template: validPodTemplateSpec, Template: validPodTemplateSpec,
}, },
}, },
"spec.activeDeadlineSeconds:must be non-negative": {
ObjectMeta: api.ObjectMeta{
Name: "myjob",
Namespace: api.NamespaceDefault,
},
Spec: extensions.JobSpec{
ActiveDeadlineSeconds: &negative64,
Selector: validSelector,
Template: validPodTemplateSpec,
},
},
"spec.selector:required value": { "spec.selector:required value": {
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Name: "myjob", Name: "myjob",

File diff suppressed because it is too large Load Diff

View File

@ -64,6 +64,8 @@ type JobController struct {
// Jobs that need to be updated // Jobs that need to be updated
queue *workqueue.Type queue *workqueue.Type
recorder record.EventRecorder
} }
func NewJobController(kubeClient client.Interface, resyncPeriod controller.ResyncPeriodFunc) *JobController { func NewJobController(kubeClient client.Interface, resyncPeriod controller.ResyncPeriodFunc) *JobController {
@ -75,10 +77,11 @@ func NewJobController(kubeClient client.Interface, resyncPeriod controller.Resyn
kubeClient: kubeClient, kubeClient: kubeClient,
podControl: controller.RealPodControl{ podControl: controller.RealPodControl{
KubeClient: kubeClient, KubeClient: kubeClient,
Recorder: eventBroadcaster.NewRecorder(api.EventSource{Component: "job"}), Recorder: eventBroadcaster.NewRecorder(api.EventSource{Component: "job-controller"}),
}, },
expectations: controller.NewControllerExpectations(), expectations: controller.NewControllerExpectations(),
queue: workqueue.New(), queue: workqueue.New(),
recorder: eventBroadcaster.NewRecorder(api.EventSource{Component: "job-controller"}),
} }
jm.jobStore.Store, jm.jobController = framework.NewInformer( jm.jobStore.Store, jm.jobController = framework.NewInformer(
@ -322,16 +325,52 @@ func (jm *JobController) syncJob(key string) error {
activePods := controller.FilterActivePods(podList.Items) activePods := controller.FilterActivePods(podList.Items)
active := len(activePods) active := len(activePods)
succeeded, failed := getStatus(podList.Items) succeeded, failed := getStatus(podList.Items)
if jobNeedsSync { conditions := len(job.Status.Conditions)
active = jm.manageJob(activePods, succeeded, &job) if job.Status.StartTime == nil {
now := unversioned.Now()
job.Status.StartTime = &now
} }
completions := succeeded if pastActiveDeadline(&job) {
if completions == *job.Spec.Completions { // if job was finished previously, we don't want to redo the termination
job.Status.Conditions = append(job.Status.Conditions, newCondition()) if isJobFinished(&job) {
return nil
}
// TODO: below code should be replaced with pod termination resulting in
// pod failures, rather than killing pods. Unfortunately none such solution
// exists ATM. There's an open discussion in the topic in
// https://github.com/kubernetes/kubernetes/issues/14602 which might give
// some sort of solution to above problem.
// kill remaining active pods
wait := sync.WaitGroup{}
wait.Add(active)
for i := 0; i < active; i++ {
go func(ix int) {
defer wait.Done()
if err := jm.podControl.DeletePod(job.Namespace, activePods[ix].Name); err != nil {
defer util.HandleError(err)
}
}(i)
}
wait.Wait()
// update status values accordingly
failed += active
active = 0
job.Status.Conditions = append(job.Status.Conditions, newCondition(extensions.JobFailed, "DeadlineExceeded", "Job was active longer than specified deadline"))
jm.recorder.Event(&job, api.EventTypeNormal, "DeadlineExceeded", "Job was active longer than specified deadline")
} else {
if jobNeedsSync {
active = jm.manageJob(activePods, succeeded, &job)
}
completions := succeeded
if completions == *job.Spec.Completions {
job.Status.Conditions = append(job.Status.Conditions, newCondition(extensions.JobComplete, "", ""))
now := unversioned.Now()
job.Status.CompletionTime = &now
}
} }
// no need to update the job if the status hasn't changed since last time // no need to update the job if the status hasn't changed since last time
if job.Status.Active != active || job.Status.Succeeded != succeeded || job.Status.Failed != failed { if job.Status.Active != active || job.Status.Succeeded != succeeded || job.Status.Failed != failed || len(job.Status.Conditions) != conditions {
job.Status.Active = active job.Status.Active = active
job.Status.Succeeded = succeeded job.Status.Succeeded = succeeded
job.Status.Failed = failed job.Status.Failed = failed
@ -344,21 +383,38 @@ func (jm *JobController) syncJob(key string) error {
return nil return nil
} }
func newCondition() extensions.JobCondition { // pastActiveDeadline checks if job has ActiveDeadlineSeconds field set and if it is exceeded.
func pastActiveDeadline(job *extensions.Job) bool {
if job.Spec.ActiveDeadlineSeconds == nil || job.Status.StartTime == nil {
return false
}
now := unversioned.Now()
start := job.Status.StartTime.Time
duration := now.Time.Sub(start)
allowedDuration := time.Duration(*job.Spec.ActiveDeadlineSeconds) * time.Second
return duration >= allowedDuration
}
func newCondition(conditionType extensions.JobConditionType, reason, message string) extensions.JobCondition {
return extensions.JobCondition{ return extensions.JobCondition{
Type: extensions.JobComplete, Type: conditionType,
Status: api.ConditionTrue, Status: api.ConditionTrue,
LastProbeTime: unversioned.Now(), LastProbeTime: unversioned.Now(),
LastTransitionTime: unversioned.Now(), LastTransitionTime: unversioned.Now(),
Reason: reason,
Message: message,
} }
} }
// getStatus returns no of succeeded and failed pods running a job
func getStatus(pods []api.Pod) (succeeded, failed int) { func getStatus(pods []api.Pod) (succeeded, failed int) {
succeeded = filterPods(pods, api.PodSucceeded) succeeded = filterPods(pods, api.PodSucceeded)
failed = filterPods(pods, api.PodFailed) failed = filterPods(pods, api.PodFailed)
return return
} }
// manageJob is the core method responsible for managing the number of running
// pods according to what is specified in the job.Spec.
func (jm *JobController) manageJob(activePods []*api.Pod, succeeded int, job *extensions.Job) int { func (jm *JobController) manageJob(activePods []*api.Pod, succeeded int, job *extensions.Job) int {
var activeLock sync.Mutex var activeLock sync.Mutex
active := len(activePods) active := len(activePods)
@ -447,7 +503,7 @@ func filterPods(pods []api.Pod, phase api.PodPhase) int {
func isJobFinished(j *extensions.Job) bool { func isJobFinished(j *extensions.Job) bool {
for _, c := range j.Status.Conditions { for _, c := range j.Status.Conditions {
if c.Type == extensions.JobComplete && c.Status == api.ConditionTrue { if (c.Type == extensions.JobComplete || c.Type == extensions.JobFailed) && c.Status == api.ConditionTrue {
return true return true
} }
} }

View File

@ -23,6 +23,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
client "k8s.io/kubernetes/pkg/client/unversioned" client "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/client/unversioned/testclient" "k8s.io/kubernetes/pkg/client/unversioned/testclient"
@ -209,22 +210,158 @@ func TestControllerSyncJob(t *testing.T) {
if actual.Status.Failed != tc.expectedFailed { if actual.Status.Failed != tc.expectedFailed {
t.Errorf("%s: unexpected number of failed pods. Expected %d, saw %d\n", name, tc.expectedFailed, actual.Status.Failed) t.Errorf("%s: unexpected number of failed pods. Expected %d, saw %d\n", name, tc.expectedFailed, actual.Status.Failed)
} }
if actual.Status.StartTime == nil {
t.Errorf("%s: .status.startTime was not set", name)
}
// validate conditions // validate conditions
if tc.expectedComplete { if tc.expectedComplete && !getCondition(actual, extensions.JobComplete) {
completed := false t.Errorf("%s: expected completion condition. Got %#v", name, actual.Status.Conditions)
for _, v := range actual.Status.Conditions {
if v.Type == extensions.JobComplete && v.Status == api.ConditionTrue {
completed = true
break
}
}
if !completed {
t.Errorf("%s: expected completion condition. Got %v", name, actual.Status.Conditions)
}
} }
} }
} }
func TestSyncJobPastDeadline(t *testing.T) {
testCases := map[string]struct {
// job setup
parallelism int
completions int
activeDeadlineSeconds int64
startTime int64
// pod setup
activePods int
succeededPods int
failedPods int
// expectations
expectedDeletions int
expectedActive int
expectedSucceeded int
expectedFailed int
}{
"activeDeadlineSeconds less than single pod execution": {
1, 1, 10, 15,
1, 0, 0,
1, 0, 0, 1,
},
"activeDeadlineSeconds bigger than single pod execution": {
1, 2, 10, 15,
1, 1, 0,
1, 0, 1, 1,
},
"activeDeadlineSeconds times-out before any pod starts": {
1, 1, 10, 10,
0, 0, 0,
0, 0, 0, 0,
},
}
for name, tc := range testCases {
// job manager setup
client := client.NewOrDie(&client.Config{Host: "", GroupVersion: testapi.Default.GroupVersion()})
manager := NewJobController(client, controller.NoResyncPeriodFunc)
fakePodControl := controller.FakePodControl{}
manager.podControl = &fakePodControl
manager.podStoreSynced = alwaysReady
var actual *extensions.Job
manager.updateHandler = func(job *extensions.Job) error {
actual = job
return nil
}
// job & pods setup
job := newJob(tc.parallelism, tc.completions)
job.Spec.ActiveDeadlineSeconds = &tc.activeDeadlineSeconds
start := unversioned.Unix(unversioned.Now().Time.Unix()-tc.startTime, 0)
job.Status.StartTime = &start
manager.jobStore.Store.Add(job)
for _, pod := range newPodList(tc.activePods, api.PodRunning, job) {
manager.podStore.Store.Add(&pod)
}
for _, pod := range newPodList(tc.succeededPods, api.PodSucceeded, job) {
manager.podStore.Store.Add(&pod)
}
for _, pod := range newPodList(tc.failedPods, api.PodFailed, job) {
manager.podStore.Store.Add(&pod)
}
// run
err := manager.syncJob(getKey(job, t))
if err != nil {
t.Errorf("%s: unexpected error when syncing jobs %v", err)
}
// validate created/deleted pods
if len(fakePodControl.Templates) != 0 {
t.Errorf("%s: unexpected number of creates. Expected 0, saw %d\n", name, len(fakePodControl.Templates))
}
if len(fakePodControl.DeletePodName) != tc.expectedDeletions {
t.Errorf("%s: unexpected number of deletes. Expected %d, saw %d\n", name, tc.expectedDeletions, len(fakePodControl.DeletePodName))
}
// validate status
if actual.Status.Active != tc.expectedActive {
t.Errorf("%s: unexpected number of active pods. Expected %d, saw %d\n", name, tc.expectedActive, actual.Status.Active)
}
if actual.Status.Succeeded != tc.expectedSucceeded {
t.Errorf("%s: unexpected number of succeeded pods. Expected %d, saw %d\n", name, tc.expectedSucceeded, actual.Status.Succeeded)
}
if actual.Status.Failed != tc.expectedFailed {
t.Errorf("%s: unexpected number of failed pods. Expected %d, saw %d\n", name, tc.expectedFailed, actual.Status.Failed)
}
if actual.Status.StartTime == nil {
t.Errorf("%s: .status.startTime was not set", name)
}
// validate conditions
if !getCondition(actual, extensions.JobFailed) {
t.Errorf("%s: expected fail condition. Got %#v", name, actual.Status.Conditions)
}
}
}
func getCondition(job *extensions.Job, condition extensions.JobConditionType) bool {
for _, v := range job.Status.Conditions {
if v.Type == condition && v.Status == api.ConditionTrue {
return true
}
}
return false
}
func TestSyncPastDeadlineJobFinished(t *testing.T) {
client := client.NewOrDie(&client.Config{Host: "", GroupVersion: testapi.Default.GroupVersion()})
manager := NewJobController(client, controller.NoResyncPeriodFunc)
fakePodControl := controller.FakePodControl{}
manager.podControl = &fakePodControl
manager.podStoreSynced = alwaysReady
var actual *extensions.Job
manager.updateHandler = func(job *extensions.Job) error {
actual = job
return nil
}
job := newJob(1, 1)
activeDeadlineSeconds := int64(10)
job.Spec.ActiveDeadlineSeconds = &activeDeadlineSeconds
start := unversioned.Unix(unversioned.Now().Time.Unix()-15, 0)
job.Status.StartTime = &start
job.Status.Conditions = append(job.Status.Conditions, newCondition(extensions.JobFailed, "DeadlineExceeded", "Job was active longer than specified deadline"))
manager.jobStore.Store.Add(job)
err := manager.syncJob(getKey(job, t))
if err != nil {
t.Errorf("Unexpected error when syncing jobs %v", err)
}
if len(fakePodControl.Templates) != 0 {
t.Errorf("Unexpected number of creates. Expected %d, saw %d\n", 0, len(fakePodControl.Templates))
}
if len(fakePodControl.DeletePodName) != 0 {
t.Errorf("Unexpected number of deletes. Expected %d, saw %d\n", 0, len(fakePodControl.DeletePodName))
}
if actual != nil {
t.Error("Unexpected job modification")
}
}
func TestSyncJobDeleted(t *testing.T) { func TestSyncJobDeleted(t *testing.T) {
client := client.NewOrDie(&client.Config{Host: "", GroupVersion: testapi.Default.GroupVersion()}) client := client.NewOrDie(&client.Config{Host: "", GroupVersion: testapi.Default.GroupVersion()})
manager := NewJobController(client, controller.NoResyncPeriodFunc) manager := NewJobController(client, controller.NoResyncPeriodFunc)

View File

@ -895,6 +895,12 @@ func describeJob(job *extensions.Job, events *api.EventList) (string, error) {
fmt.Fprintf(out, "Selector:\t%s\n", selector) fmt.Fprintf(out, "Selector:\t%s\n", selector)
fmt.Fprintf(out, "Parallelism:\t%d\n", *job.Spec.Parallelism) fmt.Fprintf(out, "Parallelism:\t%d\n", *job.Spec.Parallelism)
fmt.Fprintf(out, "Completions:\t%d\n", *job.Spec.Completions) fmt.Fprintf(out, "Completions:\t%d\n", *job.Spec.Completions)
if job.Status.StartTime != nil {
fmt.Fprintf(out, "Start Time:\t%s\n", job.Status.StartTime.Time.Format(time.RFC1123Z))
}
if job.Spec.ActiveDeadlineSeconds != nil {
fmt.Fprintf(out, "Active Deadline Seconds:\t%ds\n", *job.Spec.ActiveDeadlineSeconds)
}
fmt.Fprintf(out, "Labels:\t%s\n", labels.FormatLabels(job.Labels)) fmt.Fprintf(out, "Labels:\t%s\n", labels.FormatLabels(job.Labels))
fmt.Fprintf(out, "Pods Statuses:\t%d Running / %d Succeeded / %d Failed\n", job.Status.Active, job.Status.Succeeded, job.Status.Failed) fmt.Fprintf(out, "Pods Statuses:\t%d Running / %d Succeeded / %d Failed\n", job.Status.Active, job.Status.Succeeded, job.Status.Failed)
describeVolumes(job.Spec.Template.Spec.Volumes, out) describeVolumes(job.Spec.Template.Spec.Volumes, out)

View File

@ -158,7 +158,13 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[2] { if yyq2[2] {
yy10 := &x.ObjectMeta yy10 := &x.ObjectMeta
yy10.CodecEncodeSelf(e) yym11 := z.EncBinary()
_ = yym11
if false {
} else if z.HasExtensions() && z.EncExt(yy10) {
} else {
z.EncFallback(yy10)
}
} else { } else {
r.EncodeNil() r.EncodeNil()
} }
@ -167,14 +173,20 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234) z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata")) r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234) z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy11 := &x.ObjectMeta yy12 := &x.ObjectMeta
yy11.CodecEncodeSelf(e) yym13 := z.EncBinary()
_ = yym13
if false {
} else if z.HasExtensions() && z.EncExt(yy12) {
} else {
z.EncFallback(yy12)
}
} }
} }
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym13 := z.EncBinary() yym15 := z.EncBinary()
_ = yym13 _ = yym15
if false { if false {
} else { } else {
r.EncodeString(codecSelferC_UTF81234, string(x.Key)) r.EncodeString(codecSelferC_UTF81234, string(x.Key))
@ -183,8 +195,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234) z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("Key")) r.EncodeString(codecSelferC_UTF81234, string("Key"))
z.EncSendContainerState(codecSelfer_containerMapValue1234) z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym14 := z.EncBinary() yym16 := z.EncBinary()
_ = yym14 _ = yym16
if false { if false {
} else { } else {
r.EncodeString(codecSelferC_UTF81234, string(x.Key)) r.EncodeString(codecSelferC_UTF81234, string(x.Key))
@ -195,8 +207,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.Map == nil { if x.Map == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym16 := z.EncBinary() yym18 := z.EncBinary()
_ = yym16 _ = yym18
if false { if false {
} else { } else {
z.F.EncMapStringIntV(x.Map, false, e) z.F.EncMapStringIntV(x.Map, false, e)
@ -209,8 +221,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.Map == nil { if x.Map == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym17 := z.EncBinary() yym19 := z.EncBinary()
_ = yym17 _ = yym19
if false { if false {
} else { } else {
z.F.EncMapStringIntV(x.Map, false, e) z.F.EncMapStringIntV(x.Map, false, e)
@ -222,8 +234,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.StringList == nil { if x.StringList == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym19 := z.EncBinary() yym21 := z.EncBinary()
_ = yym19 _ = yym21
if false { if false {
} else { } else {
z.F.EncSliceStringV(x.StringList, false, e) z.F.EncSliceStringV(x.StringList, false, e)
@ -236,8 +248,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.StringList == nil { if x.StringList == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym20 := z.EncBinary() yym22 := z.EncBinary()
_ = yym20 _ = yym22
if false { if false {
} else { } else {
z.F.EncSliceStringV(x.StringList, false, e) z.F.EncSliceStringV(x.StringList, false, e)
@ -249,8 +261,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.IntList == nil { if x.IntList == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym22 := z.EncBinary() yym24 := z.EncBinary()
_ = yym22 _ = yym24
if false { if false {
} else { } else {
z.F.EncSliceIntV(x.IntList, false, e) z.F.EncSliceIntV(x.IntList, false, e)
@ -263,8 +275,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.IntList == nil { if x.IntList == nil {
r.EncodeNil() r.EncodeNil()
} else { } else {
yym23 := z.EncBinary() yym25 := z.EncBinary()
_ = yym23 _ = yym25
if false { if false {
} else { } else {
z.F.EncSliceIntV(x.IntList, false, e) z.F.EncSliceIntV(x.IntList, false, e)
@ -284,25 +296,25 @@ func (x *TestStruct) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
yym24 := z.DecBinary() yym26 := z.DecBinary()
_ = yym24 _ = yym26
if false { if false {
} else if z.HasExtensions() && z.DecExt(x) { } else if z.HasExtensions() && z.DecExt(x) {
} else { } else {
yyct25 := r.ContainerType() yyct27 := r.ContainerType()
if yyct25 == codecSelferValueTypeMap1234 { if yyct27 == codecSelferValueTypeMap1234 {
yyl25 := r.ReadMapStart() yyl27 := r.ReadMapStart()
if yyl25 == 0 { if yyl27 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else { } else {
x.codecDecodeSelfFromMap(yyl25, d) x.codecDecodeSelfFromMap(yyl27, d)
} }
} else if yyct25 == codecSelferValueTypeArray1234 { } else if yyct27 == codecSelferValueTypeArray1234 {
yyl25 := r.ReadArrayStart() yyl27 := r.ReadArrayStart()
if yyl25 == 0 { if yyl27 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
x.codecDecodeSelfFromArray(yyl25, d) x.codecDecodeSelfFromArray(yyl27, d)
} }
} else { } else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
@ -314,12 +326,12 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yys26Slc = z.DecScratchBuffer() // default slice to decode into var yys28Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys26Slc _ = yys28Slc
var yyhl26 bool = l >= 0 var yyhl28 bool = l >= 0
for yyj26 := 0; ; yyj26++ { for yyj28 := 0; ; yyj28++ {
if yyhl26 { if yyhl28 {
if yyj26 >= l { if yyj28 >= l {
break break
} }
} else { } else {
@ -328,10 +340,10 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} }
} }
z.DecSendContainerState(codecSelfer_containerMapKey1234) z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys26Slc = r.DecodeBytes(yys26Slc, true, true) yys28Slc = r.DecodeBytes(yys28Slc, true, true)
yys26 := string(yys26Slc) yys28 := string(yys28Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234) z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys26 { switch yys28 {
case "kind": case "kind":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Kind = "" x.Kind = ""
@ -348,8 +360,14 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{} x.ObjectMeta = pkg2_api.ObjectMeta{}
} else { } else {
yyv29 := &x.ObjectMeta yyv31 := &x.ObjectMeta
yyv29.CodecDecodeSelf(d) yym32 := z.DecBinary()
_ = yym32
if false {
} else if z.HasExtensions() && z.DecExt(yyv31) {
} else {
z.DecFallback(yyv31, false)
}
} }
case "Key": case "Key":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
@ -361,42 +379,42 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Map = nil x.Map = nil
} else { } else {
yyv31 := &x.Map yyv34 := &x.Map
yym32 := z.DecBinary() yym35 := z.DecBinary()
_ = yym32 _ = yym35
if false { if false {
} else { } else {
z.F.DecMapStringIntX(yyv31, false, d) z.F.DecMapStringIntX(yyv34, false, d)
} }
} }
case "StringList": case "StringList":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.StringList = nil x.StringList = nil
} else { } else {
yyv33 := &x.StringList yyv36 := &x.StringList
yym34 := z.DecBinary() yym37 := z.DecBinary()
_ = yym34 _ = yym37
if false { if false {
} else { } else {
z.F.DecSliceStringX(yyv33, false, d) z.F.DecSliceStringX(yyv36, false, d)
} }
} }
case "IntList": case "IntList":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.IntList = nil x.IntList = nil
} else { } else {
yyv35 := &x.IntList yyv38 := &x.IntList
yym36 := z.DecBinary() yym39 := z.DecBinary()
_ = yym36 _ = yym39
if false { if false {
} else { } else {
z.F.DecSliceIntX(yyv35, false, d) z.F.DecSliceIntX(yyv38, false, d)
} }
} }
default: default:
z.DecStructFieldNotFound(-1, yys26) z.DecStructFieldNotFound(-1, yys28)
} // end switch yys26 } // end switch yys28
} // end for yyj26 } // end for yyj28
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} }
@ -404,16 +422,16 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yyj37 int var yyj40 int
var yyb37 bool var yyb40 bool
var yyhl37 bool = l >= 0 var yyhl40 bool = l >= 0
yyj37++ yyj40++
if yyhl37 { if yyhl40 {
yyb37 = yyj37 > l yyb40 = yyj40 > l
} else { } else {
yyb37 = r.CheckBreak() yyb40 = r.CheckBreak()
} }
if yyb37 { if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -423,13 +441,13 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.Kind = string(r.DecodeString()) x.Kind = string(r.DecodeString())
} }
yyj37++ yyj40++
if yyhl37 { if yyhl40 {
yyb37 = yyj37 > l yyb40 = yyj40 > l
} else { } else {
yyb37 = r.CheckBreak() yyb40 = r.CheckBreak()
} }
if yyb37 { if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -439,13 +457,13 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.APIVersion = string(r.DecodeString()) x.APIVersion = string(r.DecodeString())
} }
yyj37++ yyj40++
if yyhl37 { if yyhl40 {
yyb37 = yyj37 > l yyb40 = yyj40 > l
} else { } else {
yyb37 = r.CheckBreak() yyb40 = r.CheckBreak()
} }
if yyb37 { if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -453,16 +471,22 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{} x.ObjectMeta = pkg2_api.ObjectMeta{}
} else { } else {
yyv40 := &x.ObjectMeta yyv43 := &x.ObjectMeta
yyv40.CodecDecodeSelf(d) yym44 := z.DecBinary()
_ = yym44
if false {
} else if z.HasExtensions() && z.DecExt(yyv43) {
} else {
z.DecFallback(yyv43, false)
}
} }
yyj37++ yyj40++
if yyhl37 { if yyhl40 {
yyb37 = yyj37 > l yyb40 = yyj40 > l
} else { } else {
yyb37 = r.CheckBreak() yyb40 = r.CheckBreak()
} }
if yyb37 { if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -472,13 +496,13 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.Key = string(r.DecodeString()) x.Key = string(r.DecodeString())
} }
yyj37++ yyj40++
if yyhl37 { if yyhl40 {
yyb37 = yyj37 > l yyb40 = yyj40 > l
} else { } else {
yyb37 = r.CheckBreak() yyb40 = r.CheckBreak()
} }
if yyb37 { if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -486,21 +510,21 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Map = nil x.Map = nil
} else { } else {
yyv42 := &x.Map yyv46 := &x.Map
yym43 := z.DecBinary() yym47 := z.DecBinary()
_ = yym43 _ = yym47
if false { if false {
} else { } else {
z.F.DecMapStringIntX(yyv42, false, d) z.F.DecMapStringIntX(yyv46, false, d)
} }
} }
yyj37++ yyj40++
if yyhl37 { if yyhl40 {
yyb37 = yyj37 > l yyb40 = yyj40 > l
} else { } else {
yyb37 = r.CheckBreak() yyb40 = r.CheckBreak()
} }
if yyb37 { if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -508,21 +532,21 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.StringList = nil x.StringList = nil
} else { } else {
yyv44 := &x.StringList yyv48 := &x.StringList
yym45 := z.DecBinary() yym49 := z.DecBinary()
_ = yym45 _ = yym49
if false { if false {
} else { } else {
z.F.DecSliceStringX(yyv44, false, d) z.F.DecSliceStringX(yyv48, false, d)
} }
} }
yyj37++ yyj40++
if yyhl37 { if yyhl40 {
yyb37 = yyj37 > l yyb40 = yyj40 > l
} else { } else {
yyb37 = r.CheckBreak() yyb40 = r.CheckBreak()
} }
if yyb37 { if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -530,26 +554,26 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.IntList = nil x.IntList = nil
} else { } else {
yyv46 := &x.IntList yyv50 := &x.IntList
yym47 := z.DecBinary() yym51 := z.DecBinary()
_ = yym47 _ = yym51
if false { if false {
} else { } else {
z.F.DecSliceIntX(yyv46, false, d) z.F.DecSliceIntX(yyv50, false, d)
} }
} }
for { for {
yyj37++ yyj40++
if yyhl37 { if yyhl40 {
yyb37 = yyj37 > l yyb40 = yyj40 > l
} else { } else {
yyb37 = r.CheckBreak() yyb40 = r.CheckBreak()
} }
if yyb37 { if yyb40 {
break break
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj37-1, "") z.DecStructFieldNotFound(yyj40-1, "")
} }
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }

View File

@ -156,18 +156,30 @@ func (x *TestResource) CodecEncodeSelf(e *codec1978.Encoder) {
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yy10 := &x.ObjectMeta yy10 := &x.ObjectMeta
yy10.CodecEncodeSelf(e) yym11 := z.EncBinary()
_ = yym11
if false {
} else if z.HasExtensions() && z.EncExt(yy10) {
} else {
z.EncFallback(yy10)
}
} else { } else {
z.EncSendContainerState(codecSelfer_containerMapKey1234) z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata")) r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234) z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy11 := &x.ObjectMeta yy12 := &x.ObjectMeta
yy11.CodecEncodeSelf(e) yym13 := z.EncBinary()
_ = yym13
if false {
} else if z.HasExtensions() && z.EncExt(yy12) {
} else {
z.EncFallback(yy12)
}
} }
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234) z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym13 := z.EncBinary() yym15 := z.EncBinary()
_ = yym13 _ = yym15
if false { if false {
} else { } else {
r.EncodeInt(int64(x.Value)) r.EncodeInt(int64(x.Value))
@ -176,8 +188,8 @@ func (x *TestResource) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234) z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("value")) r.EncodeString(codecSelferC_UTF81234, string("value"))
z.EncSendContainerState(codecSelfer_containerMapValue1234) z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym14 := z.EncBinary() yym16 := z.EncBinary()
_ = yym14 _ = yym16
if false { if false {
} else { } else {
r.EncodeInt(int64(x.Value)) r.EncodeInt(int64(x.Value))
@ -196,25 +208,25 @@ func (x *TestResource) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
yym15 := z.DecBinary() yym17 := z.DecBinary()
_ = yym15 _ = yym17
if false { if false {
} else if z.HasExtensions() && z.DecExt(x) { } else if z.HasExtensions() && z.DecExt(x) {
} else { } else {
yyct16 := r.ContainerType() yyct18 := r.ContainerType()
if yyct16 == codecSelferValueTypeMap1234 { if yyct18 == codecSelferValueTypeMap1234 {
yyl16 := r.ReadMapStart() yyl18 := r.ReadMapStart()
if yyl16 == 0 { if yyl18 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else { } else {
x.codecDecodeSelfFromMap(yyl16, d) x.codecDecodeSelfFromMap(yyl18, d)
} }
} else if yyct16 == codecSelferValueTypeArray1234 { } else if yyct18 == codecSelferValueTypeArray1234 {
yyl16 := r.ReadArrayStart() yyl18 := r.ReadArrayStart()
if yyl16 == 0 { if yyl18 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
x.codecDecodeSelfFromArray(yyl16, d) x.codecDecodeSelfFromArray(yyl18, d)
} }
} else { } else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
@ -226,12 +238,12 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yys17Slc = z.DecScratchBuffer() // default slice to decode into var yys19Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys17Slc _ = yys19Slc
var yyhl17 bool = l >= 0 var yyhl19 bool = l >= 0
for yyj17 := 0; ; yyj17++ { for yyj19 := 0; ; yyj19++ {
if yyhl17 { if yyhl19 {
if yyj17 >= l { if yyj19 >= l {
break break
} }
} else { } else {
@ -240,10 +252,10 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} }
} }
z.DecSendContainerState(codecSelfer_containerMapKey1234) z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys17Slc = r.DecodeBytes(yys17Slc, true, true) yys19Slc = r.DecodeBytes(yys19Slc, true, true)
yys17 := string(yys17Slc) yys19 := string(yys19Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234) z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys17 { switch yys19 {
case "kind": case "kind":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Kind = "" x.Kind = ""
@ -260,8 +272,14 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{} x.ObjectMeta = pkg2_api.ObjectMeta{}
} else { } else {
yyv20 := &x.ObjectMeta yyv22 := &x.ObjectMeta
yyv20.CodecDecodeSelf(d) yym23 := z.DecBinary()
_ = yym23
if false {
} else if z.HasExtensions() && z.DecExt(yyv22) {
} else {
z.DecFallback(yyv22, false)
}
} }
case "value": case "value":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
@ -270,9 +288,9 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
x.Value = int(r.DecodeInt(codecSelferBitsize1234)) x.Value = int(r.DecodeInt(codecSelferBitsize1234))
} }
default: default:
z.DecStructFieldNotFound(-1, yys17) z.DecStructFieldNotFound(-1, yys19)
} // end switch yys17 } // end switch yys19
} // end for yyj17 } // end for yyj19
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} }
@ -280,16 +298,16 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yyj22 int var yyj25 int
var yyb22 bool var yyb25 bool
var yyhl22 bool = l >= 0 var yyhl25 bool = l >= 0
yyj22++ yyj25++
if yyhl22 { if yyhl25 {
yyb22 = yyj22 > l yyb25 = yyj25 > l
} else { } else {
yyb22 = r.CheckBreak() yyb25 = r.CheckBreak()
} }
if yyb22 { if yyb25 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -299,13 +317,13 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.Kind = string(r.DecodeString()) x.Kind = string(r.DecodeString())
} }
yyj22++ yyj25++
if yyhl22 { if yyhl25 {
yyb22 = yyj22 > l yyb25 = yyj25 > l
} else { } else {
yyb22 = r.CheckBreak() yyb25 = r.CheckBreak()
} }
if yyb22 { if yyb25 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -315,13 +333,13 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.APIVersion = string(r.DecodeString()) x.APIVersion = string(r.DecodeString())
} }
yyj22++ yyj25++
if yyhl22 { if yyhl25 {
yyb22 = yyj22 > l yyb25 = yyj25 > l
} else { } else {
yyb22 = r.CheckBreak() yyb25 = r.CheckBreak()
} }
if yyb22 { if yyb25 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -329,16 +347,22 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{} x.ObjectMeta = pkg2_api.ObjectMeta{}
} else { } else {
yyv25 := &x.ObjectMeta yyv28 := &x.ObjectMeta
yyv25.CodecDecodeSelf(d) yym29 := z.DecBinary()
_ = yym29
if false {
} else if z.HasExtensions() && z.DecExt(yyv28) {
} else {
z.DecFallback(yyv28, false)
}
} }
yyj22++ yyj25++
if yyhl22 { if yyhl25 {
yyb22 = yyj22 > l yyb25 = yyj25 > l
} else { } else {
yyb22 = r.CheckBreak() yyb25 = r.CheckBreak()
} }
if yyb22 { if yyb25 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -349,17 +373,17 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
x.Value = int(r.DecodeInt(codecSelferBitsize1234)) x.Value = int(r.DecodeInt(codecSelferBitsize1234))
} }
for { for {
yyj22++ yyj25++
if yyhl22 { if yyhl25 {
yyb22 = yyj22 > l yyb25 = yyj25 > l
} else { } else {
yyb22 = r.CheckBreak() yyb25 = r.CheckBreak()
} }
if yyb22 { if yyb25 {
break break
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj22-1, "") z.DecStructFieldNotFound(yyj25-1, "")
} }
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }

View File

@ -182,6 +182,19 @@ var _ = Describe("Job", func() {
Expect(err).To(HaveOccurred()) Expect(err).To(HaveOccurred())
Expect(errors.IsNotFound(err)).To(BeTrue()) Expect(errors.IsNotFound(err)).To(BeTrue())
}) })
It("should fail a job", func() {
By("Creating a job")
job := newTestJob("notTerminate", "foo", api.RestartPolicyNever, parallelism, completions)
activeDeadlineSeconds := int64(10)
job.Spec.ActiveDeadlineSeconds = &activeDeadlineSeconds
job, err := createJob(f.Client, f.Namespace.Name, job)
Expect(err).NotTo(HaveOccurred())
By("Ensuring job was failed")
err = waitForJobFail(f.Client, f.Namespace.Name, job.Name)
Expect(err).NotTo(HaveOccurred())
})
}) })
// newTestJob returns a job which does one of several testing behaviors. // newTestJob returns a job which does one of several testing behaviors.
@ -283,3 +296,19 @@ func waitForJobFinish(c *client.Client, ns, jobName string, completions int) err
return curr.Status.Succeeded == completions, nil return curr.Status.Succeeded == completions, nil
}) })
} }
// Wait for job fail.
func waitForJobFail(c *client.Client, ns, jobName string) error {
return wait.Poll(poll, jobTimeout, func() (bool, error) {
curr, err := c.Extensions().Jobs(ns).Get(jobName)
if err != nil {
return false, err
}
for _, c := range curr.Status.Conditions {
if c.Type == extensions.JobFailed && c.Status == api.ConditionTrue {
return true, nil
}
}
return false, nil
})
}