mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 21:47:07 +00:00
Merge pull request #17940 from soltysh/job_deadline
Added ActiveDeadlineSeconds to jobs
This commit is contained in:
commit
1752cf22d4
@ -3223,6 +3223,11 @@
|
||||
"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"
|
||||
},
|
||||
"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": {
|
||||
"$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"
|
||||
|
@ -158,7 +158,13 @@ func (x *TestType) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq2[2] {
|
||||
yy10 := &x.ObjectMeta
|
||||
yy10.CodecEncodeSelf(e)
|
||||
yym11 := z.EncBinary()
|
||||
_ = yym11
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy10) {
|
||||
} else {
|
||||
z.EncFallback(yy10)
|
||||
}
|
||||
} else {
|
||||
r.EncodeNil()
|
||||
}
|
||||
@ -167,8 +173,14 @@ func (x *TestType) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
|
||||
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||
yy11 := &x.ObjectMeta
|
||||
yy11.CodecEncodeSelf(e)
|
||||
yy12 := &x.ObjectMeta
|
||||
yym13 := z.EncBinary()
|
||||
_ = yym13
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy12) {
|
||||
} else {
|
||||
z.EncFallback(yy12)
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
@ -184,25 +196,25 @@ func (x *TestType) CodecDecodeSelf(d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
yym12 := z.DecBinary()
|
||||
_ = yym12
|
||||
yym14 := z.DecBinary()
|
||||
_ = yym14
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(x) {
|
||||
} else {
|
||||
yyct13 := r.ContainerType()
|
||||
if yyct13 == codecSelferValueTypeMap1234 {
|
||||
yyl13 := r.ReadMapStart()
|
||||
if yyl13 == 0 {
|
||||
yyct15 := r.ContainerType()
|
||||
if yyct15 == codecSelferValueTypeMap1234 {
|
||||
yyl15 := r.ReadMapStart()
|
||||
if yyl15 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromMap(yyl13, d)
|
||||
x.codecDecodeSelfFromMap(yyl15, d)
|
||||
}
|
||||
} else if yyct13 == codecSelferValueTypeArray1234 {
|
||||
yyl13 := r.ReadArrayStart()
|
||||
if yyl13 == 0 {
|
||||
} else if yyct15 == codecSelferValueTypeArray1234 {
|
||||
yyl15 := r.ReadArrayStart()
|
||||
if yyl15 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromArray(yyl13, d)
|
||||
x.codecDecodeSelfFromArray(yyl15, d)
|
||||
}
|
||||
} else {
|
||||
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
|
||||
@ -214,12 +226,12 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yys14Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys14Slc
|
||||
var yyhl14 bool = l >= 0
|
||||
for yyj14 := 0; ; yyj14++ {
|
||||
if yyhl14 {
|
||||
if yyj14 >= l {
|
||||
var yys16Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys16Slc
|
||||
var yyhl16 bool = l >= 0
|
||||
for yyj16 := 0; ; yyj16++ {
|
||||
if yyhl16 {
|
||||
if yyj16 >= l {
|
||||
break
|
||||
}
|
||||
} else {
|
||||
@ -228,10 +240,10 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
}
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerMapKey1234)
|
||||
yys14Slc = r.DecodeBytes(yys14Slc, true, true)
|
||||
yys14 := string(yys14Slc)
|
||||
yys16Slc = r.DecodeBytes(yys16Slc, true, true)
|
||||
yys16 := string(yys16Slc)
|
||||
z.DecSendContainerState(codecSelfer_containerMapValue1234)
|
||||
switch yys14 {
|
||||
switch yys16 {
|
||||
case "kind":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Kind = ""
|
||||
@ -248,13 +260,19 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObjectMeta = pkg2_api.ObjectMeta{}
|
||||
} else {
|
||||
yyv17 := &x.ObjectMeta
|
||||
yyv17.CodecDecodeSelf(d)
|
||||
yyv19 := &x.ObjectMeta
|
||||
yym20 := z.DecBinary()
|
||||
_ = yym20
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv19) {
|
||||
} else {
|
||||
z.DecFallback(yyv19, false)
|
||||
}
|
||||
}
|
||||
default:
|
||||
z.DecStructFieldNotFound(-1, yys14)
|
||||
} // end switch yys14
|
||||
} // end for yyj14
|
||||
z.DecStructFieldNotFound(-1, yys16)
|
||||
} // end switch yys16
|
||||
} // end for yyj16
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
}
|
||||
|
||||
@ -262,16 +280,16 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj18 int
|
||||
var yyb18 bool
|
||||
var yyhl18 bool = l >= 0
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
var yyj21 int
|
||||
var yyb21 bool
|
||||
var yyhl21 bool = l >= 0
|
||||
yyj21++
|
||||
if yyhl21 {
|
||||
yyb21 = yyj21 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb21 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb21 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -281,13 +299,13 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.Kind = string(r.DecodeString())
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj21++
|
||||
if yyhl21 {
|
||||
yyb21 = yyj21 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb21 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb21 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -297,13 +315,13 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.APIVersion = string(r.DecodeString())
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj21++
|
||||
if yyhl21 {
|
||||
yyb21 = yyj21 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb21 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb21 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -311,21 +329,27 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObjectMeta = pkg2_api.ObjectMeta{}
|
||||
} else {
|
||||
yyv21 := &x.ObjectMeta
|
||||
yyv21.CodecDecodeSelf(d)
|
||||
yyv24 := &x.ObjectMeta
|
||||
yym25 := z.DecBinary()
|
||||
_ = yym25
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv24) {
|
||||
} else {
|
||||
z.DecFallback(yyv24, false)
|
||||
}
|
||||
}
|
||||
for {
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj21++
|
||||
if yyhl21 {
|
||||
yyb21 = yyj21 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb21 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb21 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj18-1, "")
|
||||
z.DecStructFieldNotFound(yyj21-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@ -337,118 +361,118 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if x == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym22 := z.EncBinary()
|
||||
_ = yym22
|
||||
yym26 := z.EncBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(x) {
|
||||
} else {
|
||||
yysep23 := !z.EncBinary()
|
||||
yy2arr23 := z.EncBasicHandle().StructToArray
|
||||
var yyq23 [4]bool
|
||||
_, _, _ = yysep23, yyq23, yy2arr23
|
||||
const yyr23 bool = false
|
||||
yyq23[0] = x.Kind != ""
|
||||
yyq23[1] = x.APIVersion != ""
|
||||
yyq23[2] = true
|
||||
var yynn23 int
|
||||
if yyr23 || yy2arr23 {
|
||||
yysep27 := !z.EncBinary()
|
||||
yy2arr27 := z.EncBasicHandle().StructToArray
|
||||
var yyq27 [4]bool
|
||||
_, _, _ = yysep27, yyq27, yy2arr27
|
||||
const yyr27 bool = false
|
||||
yyq27[0] = x.Kind != ""
|
||||
yyq27[1] = x.APIVersion != ""
|
||||
yyq27[2] = true
|
||||
var yynn27 int
|
||||
if yyr27 || yy2arr27 {
|
||||
r.EncodeArrayStart(4)
|
||||
} else {
|
||||
yynn23 = 1
|
||||
for _, b := range yyq23 {
|
||||
yynn27 = 1
|
||||
for _, b := range yyq27 {
|
||||
if b {
|
||||
yynn23++
|
||||
yynn27++
|
||||
}
|
||||
}
|
||||
r.EncodeMapStart(yynn23)
|
||||
yynn23 = 0
|
||||
r.EncodeMapStart(yynn27)
|
||||
yynn27 = 0
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
if yyr27 || yy2arr27 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq23[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)
|
||||
if yyq27[0] {
|
||||
yym29 := z.EncBinary()
|
||||
_ = yym29
|
||||
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 {
|
||||
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
if yyr27 || yy2arr27 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq23[2] {
|
||||
yy31 := &x.ListMeta
|
||||
yym32 := z.EncBinary()
|
||||
_ = yym32
|
||||
if yyq27[2] {
|
||||
yy35 := &x.ListMeta
|
||||
yym36 := z.EncBinary()
|
||||
_ = yym36
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy31) {
|
||||
} else if z.HasExtensions() && z.EncExt(yy35) {
|
||||
} else {
|
||||
z.EncFallback(yy31)
|
||||
z.EncFallback(yy35)
|
||||
}
|
||||
} else {
|
||||
r.EncodeNil()
|
||||
}
|
||||
} else {
|
||||
if yyq23[2] {
|
||||
if yyq27[2] {
|
||||
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
|
||||
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||
yy33 := &x.ListMeta
|
||||
yym34 := z.EncBinary()
|
||||
_ = yym34
|
||||
yy37 := &x.ListMeta
|
||||
yym38 := z.EncBinary()
|
||||
_ = yym38
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy33) {
|
||||
} else if z.HasExtensions() && z.EncExt(yy37) {
|
||||
} else {
|
||||
z.EncFallback(yy33)
|
||||
z.EncFallback(yy37)
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
if yyr27 || yy2arr27 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if x.Items == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym36 := z.EncBinary()
|
||||
_ = yym36
|
||||
yym40 := z.EncBinary()
|
||||
_ = yym40
|
||||
if false {
|
||||
} else {
|
||||
h.encSliceTestType(([]TestType)(x.Items), e)
|
||||
@ -461,15 +485,15 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if x.Items == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym37 := z.EncBinary()
|
||||
_ = yym37
|
||||
yym41 := z.EncBinary()
|
||||
_ = yym41
|
||||
if false {
|
||||
} else {
|
||||
h.encSliceTestType(([]TestType)(x.Items), e)
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
if yyr27 || yy2arr27 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
z.EncSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
@ -482,25 +506,25 @@ func (x *TestTypeList) CodecDecodeSelf(d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
yym38 := z.DecBinary()
|
||||
_ = yym38
|
||||
yym42 := z.DecBinary()
|
||||
_ = yym42
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(x) {
|
||||
} else {
|
||||
yyct39 := r.ContainerType()
|
||||
if yyct39 == codecSelferValueTypeMap1234 {
|
||||
yyl39 := r.ReadMapStart()
|
||||
if yyl39 == 0 {
|
||||
yyct43 := r.ContainerType()
|
||||
if yyct43 == codecSelferValueTypeMap1234 {
|
||||
yyl43 := r.ReadMapStart()
|
||||
if yyl43 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromMap(yyl39, d)
|
||||
x.codecDecodeSelfFromMap(yyl43, d)
|
||||
}
|
||||
} else if yyct39 == codecSelferValueTypeArray1234 {
|
||||
yyl39 := r.ReadArrayStart()
|
||||
if yyl39 == 0 {
|
||||
} else if yyct43 == codecSelferValueTypeArray1234 {
|
||||
yyl43 := r.ReadArrayStart()
|
||||
if yyl43 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromArray(yyl39, d)
|
||||
x.codecDecodeSelfFromArray(yyl43, d)
|
||||
}
|
||||
} else {
|
||||
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
|
||||
@ -512,12 +536,12 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yys40Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys40Slc
|
||||
var yyhl40 bool = l >= 0
|
||||
for yyj40 := 0; ; yyj40++ {
|
||||
if yyhl40 {
|
||||
if yyj40 >= l {
|
||||
var yys44Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys44Slc
|
||||
var yyhl44 bool = l >= 0
|
||||
for yyj44 := 0; ; yyj44++ {
|
||||
if yyhl44 {
|
||||
if yyj44 >= l {
|
||||
break
|
||||
}
|
||||
} else {
|
||||
@ -526,10 +550,10 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
}
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerMapKey1234)
|
||||
yys40Slc = r.DecodeBytes(yys40Slc, true, true)
|
||||
yys40 := string(yys40Slc)
|
||||
yys44Slc = r.DecodeBytes(yys44Slc, true, true)
|
||||
yys44 := string(yys44Slc)
|
||||
z.DecSendContainerState(codecSelfer_containerMapValue1234)
|
||||
switch yys40 {
|
||||
switch yys44 {
|
||||
case "kind":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Kind = ""
|
||||
@ -546,31 +570,31 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ListMeta = pkg1_unversioned.ListMeta{}
|
||||
} else {
|
||||
yyv43 := &x.ListMeta
|
||||
yym44 := z.DecBinary()
|
||||
_ = yym44
|
||||
yyv47 := &x.ListMeta
|
||||
yym48 := z.DecBinary()
|
||||
_ = yym48
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv43) {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv47) {
|
||||
} else {
|
||||
z.DecFallback(yyv43, false)
|
||||
z.DecFallback(yyv47, false)
|
||||
}
|
||||
}
|
||||
case "items":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Items = nil
|
||||
} else {
|
||||
yyv45 := &x.Items
|
||||
yym46 := z.DecBinary()
|
||||
_ = yym46
|
||||
yyv49 := &x.Items
|
||||
yym50 := z.DecBinary()
|
||||
_ = yym50
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceTestType((*[]TestType)(yyv45), d)
|
||||
h.decSliceTestType((*[]TestType)(yyv49), d)
|
||||
}
|
||||
}
|
||||
default:
|
||||
z.DecStructFieldNotFound(-1, yys40)
|
||||
} // end switch yys40
|
||||
} // end for yyj40
|
||||
z.DecStructFieldNotFound(-1, yys44)
|
||||
} // end switch yys44
|
||||
} // end for yyj44
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
}
|
||||
|
||||
@ -578,16 +602,16 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj47 int
|
||||
var yyb47 bool
|
||||
var yyhl47 bool = l >= 0
|
||||
yyj47++
|
||||
if yyhl47 {
|
||||
yyb47 = yyj47 > l
|
||||
var yyj51 int
|
||||
var yyb51 bool
|
||||
var yyhl51 bool = l >= 0
|
||||
yyj51++
|
||||
if yyhl51 {
|
||||
yyb51 = yyj51 > l
|
||||
} else {
|
||||
yyb47 = r.CheckBreak()
|
||||
yyb51 = r.CheckBreak()
|
||||
}
|
||||
if yyb47 {
|
||||
if yyb51 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -597,13 +621,13 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.Kind = string(r.DecodeString())
|
||||
}
|
||||
yyj47++
|
||||
if yyhl47 {
|
||||
yyb47 = yyj47 > l
|
||||
yyj51++
|
||||
if yyhl51 {
|
||||
yyb51 = yyj51 > l
|
||||
} else {
|
||||
yyb47 = r.CheckBreak()
|
||||
yyb51 = r.CheckBreak()
|
||||
}
|
||||
if yyb47 {
|
||||
if yyb51 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -613,13 +637,13 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.APIVersion = string(r.DecodeString())
|
||||
}
|
||||
yyj47++
|
||||
if yyhl47 {
|
||||
yyb47 = yyj47 > l
|
||||
yyj51++
|
||||
if yyhl51 {
|
||||
yyb51 = yyj51 > l
|
||||
} else {
|
||||
yyb47 = r.CheckBreak()
|
||||
yyb51 = r.CheckBreak()
|
||||
}
|
||||
if yyb47 {
|
||||
if yyb51 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -627,22 +651,22 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ListMeta = pkg1_unversioned.ListMeta{}
|
||||
} else {
|
||||
yyv50 := &x.ListMeta
|
||||
yym51 := z.DecBinary()
|
||||
_ = yym51
|
||||
yyv54 := &x.ListMeta
|
||||
yym55 := z.DecBinary()
|
||||
_ = yym55
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv50) {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv54) {
|
||||
} else {
|
||||
z.DecFallback(yyv50, false)
|
||||
z.DecFallback(yyv54, false)
|
||||
}
|
||||
}
|
||||
yyj47++
|
||||
if yyhl47 {
|
||||
yyb47 = yyj47 > l
|
||||
yyj51++
|
||||
if yyhl51 {
|
||||
yyb51 = yyj51 > l
|
||||
} else {
|
||||
yyb47 = r.CheckBreak()
|
||||
yyb51 = r.CheckBreak()
|
||||
}
|
||||
if yyb47 {
|
||||
if yyb51 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -650,26 +674,26 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Items = nil
|
||||
} else {
|
||||
yyv52 := &x.Items
|
||||
yym53 := z.DecBinary()
|
||||
_ = yym53
|
||||
yyv56 := &x.Items
|
||||
yym57 := z.DecBinary()
|
||||
_ = yym57
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceTestType((*[]TestType)(yyv52), d)
|
||||
h.decSliceTestType((*[]TestType)(yyv56), d)
|
||||
}
|
||||
}
|
||||
for {
|
||||
yyj47++
|
||||
if yyhl47 {
|
||||
yyb47 = yyj47 > l
|
||||
yyj51++
|
||||
if yyhl51 {
|
||||
yyb51 = yyj51 > l
|
||||
} else {
|
||||
yyb47 = r.CheckBreak()
|
||||
yyb51 = r.CheckBreak()
|
||||
}
|
||||
if yyb47 {
|
||||
if yyb51 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj47-1, "")
|
||||
z.DecStructFieldNotFound(yyj51-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@ -679,10 +703,10 @@ func (x codecSelfer1234) encSliceTestType(v []TestType, e *codec1978.Encoder) {
|
||||
z, r := codec1978.GenHelperEncoder(e)
|
||||
_, _, _ = h, z, r
|
||||
r.EncodeArrayStart(len(v))
|
||||
for _, yyv54 := range v {
|
||||
for _, yyv58 := range v {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
yy55 := &yyv54
|
||||
yy55.CodecEncodeSelf(e)
|
||||
yy59 := &yyv58
|
||||
yy59.CodecEncodeSelf(e)
|
||||
}
|
||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@ -692,83 +716,83 @@ func (x codecSelfer1234) decSliceTestType(v *[]TestType, d *codec1978.Decoder) {
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
|
||||
yyv56 := *v
|
||||
yyh56, yyl56 := z.DecSliceHelperStart()
|
||||
var yyc56 bool
|
||||
if yyl56 == 0 {
|
||||
if yyv56 == nil {
|
||||
yyv56 = []TestType{}
|
||||
yyc56 = true
|
||||
} else if len(yyv56) != 0 {
|
||||
yyv56 = yyv56[:0]
|
||||
yyc56 = true
|
||||
yyv60 := *v
|
||||
yyh60, yyl60 := z.DecSliceHelperStart()
|
||||
var yyc60 bool
|
||||
if yyl60 == 0 {
|
||||
if yyv60 == nil {
|
||||
yyv60 = []TestType{}
|
||||
yyc60 = true
|
||||
} else if len(yyv60) != 0 {
|
||||
yyv60 = yyv60[:0]
|
||||
yyc60 = true
|
||||
}
|
||||
} else if yyl56 > 0 {
|
||||
var yyrr56, yyrl56 int
|
||||
var yyrt56 bool
|
||||
if yyl56 > cap(yyv56) {
|
||||
} else if yyl60 > 0 {
|
||||
var yyrr60, yyrl60 int
|
||||
var yyrt60 bool
|
||||
if yyl60 > cap(yyv60) {
|
||||
|
||||
yyrg56 := len(yyv56) > 0
|
||||
yyv256 := yyv56
|
||||
yyrl56, yyrt56 = z.DecInferLen(yyl56, z.DecBasicHandle().MaxInitLen, 192)
|
||||
if yyrt56 {
|
||||
if yyrl56 <= cap(yyv56) {
|
||||
yyv56 = yyv56[:yyrl56]
|
||||
yyrg60 := len(yyv60) > 0
|
||||
yyv260 := yyv60
|
||||
yyrl60, yyrt60 = z.DecInferLen(yyl60, z.DecBasicHandle().MaxInitLen, 192)
|
||||
if yyrt60 {
|
||||
if yyrl60 <= cap(yyv60) {
|
||||
yyv60 = yyv60[:yyrl60]
|
||||
} else {
|
||||
yyv56 = make([]TestType, yyrl56)
|
||||
yyv60 = make([]TestType, yyrl60)
|
||||
}
|
||||
} else {
|
||||
yyv56 = make([]TestType, yyrl56)
|
||||
yyv60 = make([]TestType, yyrl60)
|
||||
}
|
||||
yyc56 = true
|
||||
yyrr56 = len(yyv56)
|
||||
if yyrg56 {
|
||||
copy(yyv56, yyv256)
|
||||
yyc60 = true
|
||||
yyrr60 = len(yyv60)
|
||||
if yyrg60 {
|
||||
copy(yyv60, yyv260)
|
||||
}
|
||||
} else if yyl56 != len(yyv56) {
|
||||
yyv56 = yyv56[:yyl56]
|
||||
yyc56 = true
|
||||
} else if yyl60 != len(yyv60) {
|
||||
yyv60 = yyv60[:yyl60]
|
||||
yyc60 = true
|
||||
}
|
||||
yyj56 := 0
|
||||
for ; yyj56 < yyrr56; yyj56++ {
|
||||
yyh56.ElemContainerState(yyj56)
|
||||
yyj60 := 0
|
||||
for ; yyj60 < yyrr60; yyj60++ {
|
||||
yyh60.ElemContainerState(yyj60)
|
||||
if r.TryDecodeAsNil() {
|
||||
yyv56[yyj56] = TestType{}
|
||||
yyv60[yyj60] = TestType{}
|
||||
} else {
|
||||
yyv57 := &yyv56[yyj56]
|
||||
yyv57.CodecDecodeSelf(d)
|
||||
yyv61 := &yyv60[yyj60]
|
||||
yyv61.CodecDecodeSelf(d)
|
||||
}
|
||||
|
||||
}
|
||||
if yyrt56 {
|
||||
for ; yyj56 < yyl56; yyj56++ {
|
||||
yyv56 = append(yyv56, TestType{})
|
||||
yyh56.ElemContainerState(yyj56)
|
||||
if yyrt60 {
|
||||
for ; yyj60 < yyl60; yyj60++ {
|
||||
yyv60 = append(yyv60, TestType{})
|
||||
yyh60.ElemContainerState(yyj60)
|
||||
if r.TryDecodeAsNil() {
|
||||
yyv56[yyj56] = TestType{}
|
||||
yyv60[yyj60] = TestType{}
|
||||
} else {
|
||||
yyv58 := &yyv56[yyj56]
|
||||
yyv58.CodecDecodeSelf(d)
|
||||
yyv62 := &yyv60[yyj60]
|
||||
yyv62.CodecDecodeSelf(d)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
yyj56 := 0
|
||||
for ; !r.CheckBreak(); yyj56++ {
|
||||
yyj60 := 0
|
||||
for ; !r.CheckBreak(); yyj60++ {
|
||||
|
||||
if yyj56 >= len(yyv56) {
|
||||
yyv56 = append(yyv56, TestType{}) // var yyz56 TestType
|
||||
yyc56 = true
|
||||
if yyj60 >= len(yyv60) {
|
||||
yyv60 = append(yyv60, TestType{}) // var yyz60 TestType
|
||||
yyc60 = true
|
||||
}
|
||||
yyh56.ElemContainerState(yyj56)
|
||||
if yyj56 < len(yyv56) {
|
||||
yyh60.ElemContainerState(yyj60)
|
||||
if yyj60 < len(yyv60) {
|
||||
if r.TryDecodeAsNil() {
|
||||
yyv56[yyj56] = TestType{}
|
||||
yyv60[yyj60] = TestType{}
|
||||
} else {
|
||||
yyv59 := &yyv56[yyj56]
|
||||
yyv59.CodecDecodeSelf(d)
|
||||
yyv63 := &yyv60[yyj60]
|
||||
yyv63.CodecDecodeSelf(d)
|
||||
}
|
||||
|
||||
} else {
|
||||
@ -776,16 +800,16 @@ func (x codecSelfer1234) decSliceTestType(v *[]TestType, d *codec1978.Decoder) {
|
||||
}
|
||||
|
||||
}
|
||||
if yyj56 < len(yyv56) {
|
||||
yyv56 = yyv56[:yyj56]
|
||||
yyc56 = true
|
||||
} else if yyj56 == 0 && yyv56 == nil {
|
||||
yyv56 = []TestType{}
|
||||
yyc56 = true
|
||||
if yyj60 < len(yyv60) {
|
||||
yyv60 = yyv60[:yyj60]
|
||||
yyc60 = true
|
||||
} else if yyj60 == 0 && yyv60 == nil {
|
||||
yyv60 = []TestType{}
|
||||
yyc60 = true
|
||||
}
|
||||
}
|
||||
yyh56.End()
|
||||
if yyc56 {
|
||||
*v = yyv56
|
||||
yyh60.End()
|
||||
if yyc60 {
|
||||
*v = yyv60
|
||||
}
|
||||
}
|
||||
|
@ -158,7 +158,13 @@ func (x *TestType) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq2[2] {
|
||||
yy10 := &x.ObjectMeta
|
||||
yy10.CodecEncodeSelf(e)
|
||||
yym11 := z.EncBinary()
|
||||
_ = yym11
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy10) {
|
||||
} else {
|
||||
z.EncFallback(yy10)
|
||||
}
|
||||
} else {
|
||||
r.EncodeNil()
|
||||
}
|
||||
@ -167,8 +173,14 @@ func (x *TestType) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
|
||||
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||
yy11 := &x.ObjectMeta
|
||||
yy11.CodecEncodeSelf(e)
|
||||
yy12 := &x.ObjectMeta
|
||||
yym13 := z.EncBinary()
|
||||
_ = yym13
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy12) {
|
||||
} else {
|
||||
z.EncFallback(yy12)
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
@ -184,25 +196,25 @@ func (x *TestType) CodecDecodeSelf(d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
yym12 := z.DecBinary()
|
||||
_ = yym12
|
||||
yym14 := z.DecBinary()
|
||||
_ = yym14
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(x) {
|
||||
} else {
|
||||
yyct13 := r.ContainerType()
|
||||
if yyct13 == codecSelferValueTypeMap1234 {
|
||||
yyl13 := r.ReadMapStart()
|
||||
if yyl13 == 0 {
|
||||
yyct15 := r.ContainerType()
|
||||
if yyct15 == codecSelferValueTypeMap1234 {
|
||||
yyl15 := r.ReadMapStart()
|
||||
if yyl15 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromMap(yyl13, d)
|
||||
x.codecDecodeSelfFromMap(yyl15, d)
|
||||
}
|
||||
} else if yyct13 == codecSelferValueTypeArray1234 {
|
||||
yyl13 := r.ReadArrayStart()
|
||||
if yyl13 == 0 {
|
||||
} else if yyct15 == codecSelferValueTypeArray1234 {
|
||||
yyl15 := r.ReadArrayStart()
|
||||
if yyl15 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromArray(yyl13, d)
|
||||
x.codecDecodeSelfFromArray(yyl15, d)
|
||||
}
|
||||
} else {
|
||||
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
|
||||
@ -214,12 +226,12 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yys14Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys14Slc
|
||||
var yyhl14 bool = l >= 0
|
||||
for yyj14 := 0; ; yyj14++ {
|
||||
if yyhl14 {
|
||||
if yyj14 >= l {
|
||||
var yys16Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys16Slc
|
||||
var yyhl16 bool = l >= 0
|
||||
for yyj16 := 0; ; yyj16++ {
|
||||
if yyhl16 {
|
||||
if yyj16 >= l {
|
||||
break
|
||||
}
|
||||
} else {
|
||||
@ -228,10 +240,10 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
}
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerMapKey1234)
|
||||
yys14Slc = r.DecodeBytes(yys14Slc, true, true)
|
||||
yys14 := string(yys14Slc)
|
||||
yys16Slc = r.DecodeBytes(yys16Slc, true, true)
|
||||
yys16 := string(yys16Slc)
|
||||
z.DecSendContainerState(codecSelfer_containerMapValue1234)
|
||||
switch yys14 {
|
||||
switch yys16 {
|
||||
case "kind":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Kind = ""
|
||||
@ -248,13 +260,19 @@ func (x *TestType) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObjectMeta = pkg2_api.ObjectMeta{}
|
||||
} else {
|
||||
yyv17 := &x.ObjectMeta
|
||||
yyv17.CodecDecodeSelf(d)
|
||||
yyv19 := &x.ObjectMeta
|
||||
yym20 := z.DecBinary()
|
||||
_ = yym20
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv19) {
|
||||
} else {
|
||||
z.DecFallback(yyv19, false)
|
||||
}
|
||||
}
|
||||
default:
|
||||
z.DecStructFieldNotFound(-1, yys14)
|
||||
} // end switch yys14
|
||||
} // end for yyj14
|
||||
z.DecStructFieldNotFound(-1, yys16)
|
||||
} // end switch yys16
|
||||
} // end for yyj16
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
}
|
||||
|
||||
@ -262,16 +280,16 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj18 int
|
||||
var yyb18 bool
|
||||
var yyhl18 bool = l >= 0
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
var yyj21 int
|
||||
var yyb21 bool
|
||||
var yyhl21 bool = l >= 0
|
||||
yyj21++
|
||||
if yyhl21 {
|
||||
yyb21 = yyj21 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb21 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb21 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -281,13 +299,13 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.Kind = string(r.DecodeString())
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj21++
|
||||
if yyhl21 {
|
||||
yyb21 = yyj21 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb21 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb21 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -297,13 +315,13 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.APIVersion = string(r.DecodeString())
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj21++
|
||||
if yyhl21 {
|
||||
yyb21 = yyj21 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb21 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb21 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -311,21 +329,27 @@ func (x *TestType) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObjectMeta = pkg2_api.ObjectMeta{}
|
||||
} else {
|
||||
yyv21 := &x.ObjectMeta
|
||||
yyv21.CodecDecodeSelf(d)
|
||||
yyv24 := &x.ObjectMeta
|
||||
yym25 := z.DecBinary()
|
||||
_ = yym25
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv24) {
|
||||
} else {
|
||||
z.DecFallback(yyv24, false)
|
||||
}
|
||||
}
|
||||
for {
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj21++
|
||||
if yyhl21 {
|
||||
yyb21 = yyj21 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb21 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb21 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj18-1, "")
|
||||
z.DecStructFieldNotFound(yyj21-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@ -337,118 +361,118 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if x == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym22 := z.EncBinary()
|
||||
_ = yym22
|
||||
yym26 := z.EncBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(x) {
|
||||
} else {
|
||||
yysep23 := !z.EncBinary()
|
||||
yy2arr23 := z.EncBasicHandle().StructToArray
|
||||
var yyq23 [4]bool
|
||||
_, _, _ = yysep23, yyq23, yy2arr23
|
||||
const yyr23 bool = false
|
||||
yyq23[0] = x.Kind != ""
|
||||
yyq23[1] = x.APIVersion != ""
|
||||
yyq23[2] = true
|
||||
var yynn23 int
|
||||
if yyr23 || yy2arr23 {
|
||||
yysep27 := !z.EncBinary()
|
||||
yy2arr27 := z.EncBasicHandle().StructToArray
|
||||
var yyq27 [4]bool
|
||||
_, _, _ = yysep27, yyq27, yy2arr27
|
||||
const yyr27 bool = false
|
||||
yyq27[0] = x.Kind != ""
|
||||
yyq27[1] = x.APIVersion != ""
|
||||
yyq27[2] = true
|
||||
var yynn27 int
|
||||
if yyr27 || yy2arr27 {
|
||||
r.EncodeArrayStart(4)
|
||||
} else {
|
||||
yynn23 = 1
|
||||
for _, b := range yyq23 {
|
||||
yynn27 = 1
|
||||
for _, b := range yyq27 {
|
||||
if b {
|
||||
yynn23++
|
||||
yynn27++
|
||||
}
|
||||
}
|
||||
r.EncodeMapStart(yynn23)
|
||||
yynn23 = 0
|
||||
r.EncodeMapStart(yynn27)
|
||||
yynn27 = 0
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
if yyr27 || yy2arr27 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq23[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)
|
||||
if yyq27[0] {
|
||||
yym29 := z.EncBinary()
|
||||
_ = yym29
|
||||
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 {
|
||||
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
if yyr27 || yy2arr27 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq23[2] {
|
||||
yy31 := &x.ListMeta
|
||||
yym32 := z.EncBinary()
|
||||
_ = yym32
|
||||
if yyq27[2] {
|
||||
yy35 := &x.ListMeta
|
||||
yym36 := z.EncBinary()
|
||||
_ = yym36
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy31) {
|
||||
} else if z.HasExtensions() && z.EncExt(yy35) {
|
||||
} else {
|
||||
z.EncFallback(yy31)
|
||||
z.EncFallback(yy35)
|
||||
}
|
||||
} else {
|
||||
r.EncodeNil()
|
||||
}
|
||||
} else {
|
||||
if yyq23[2] {
|
||||
if yyq27[2] {
|
||||
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
|
||||
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||
yy33 := &x.ListMeta
|
||||
yym34 := z.EncBinary()
|
||||
_ = yym34
|
||||
yy37 := &x.ListMeta
|
||||
yym38 := z.EncBinary()
|
||||
_ = yym38
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy33) {
|
||||
} else if z.HasExtensions() && z.EncExt(yy37) {
|
||||
} else {
|
||||
z.EncFallback(yy33)
|
||||
z.EncFallback(yy37)
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
if yyr27 || yy2arr27 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if x.Items == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym36 := z.EncBinary()
|
||||
_ = yym36
|
||||
yym40 := z.EncBinary()
|
||||
_ = yym40
|
||||
if false {
|
||||
} else {
|
||||
h.encSliceTestType(([]TestType)(x.Items), e)
|
||||
@ -461,15 +485,15 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if x.Items == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym37 := z.EncBinary()
|
||||
_ = yym37
|
||||
yym41 := z.EncBinary()
|
||||
_ = yym41
|
||||
if false {
|
||||
} else {
|
||||
h.encSliceTestType(([]TestType)(x.Items), e)
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
if yyr27 || yy2arr27 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
z.EncSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
@ -482,25 +506,25 @@ func (x *TestTypeList) CodecDecodeSelf(d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
yym38 := z.DecBinary()
|
||||
_ = yym38
|
||||
yym42 := z.DecBinary()
|
||||
_ = yym42
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(x) {
|
||||
} else {
|
||||
yyct39 := r.ContainerType()
|
||||
if yyct39 == codecSelferValueTypeMap1234 {
|
||||
yyl39 := r.ReadMapStart()
|
||||
if yyl39 == 0 {
|
||||
yyct43 := r.ContainerType()
|
||||
if yyct43 == codecSelferValueTypeMap1234 {
|
||||
yyl43 := r.ReadMapStart()
|
||||
if yyl43 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromMap(yyl39, d)
|
||||
x.codecDecodeSelfFromMap(yyl43, d)
|
||||
}
|
||||
} else if yyct39 == codecSelferValueTypeArray1234 {
|
||||
yyl39 := r.ReadArrayStart()
|
||||
if yyl39 == 0 {
|
||||
} else if yyct43 == codecSelferValueTypeArray1234 {
|
||||
yyl43 := r.ReadArrayStart()
|
||||
if yyl43 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromArray(yyl39, d)
|
||||
x.codecDecodeSelfFromArray(yyl43, d)
|
||||
}
|
||||
} else {
|
||||
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
|
||||
@ -512,12 +536,12 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yys40Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys40Slc
|
||||
var yyhl40 bool = l >= 0
|
||||
for yyj40 := 0; ; yyj40++ {
|
||||
if yyhl40 {
|
||||
if yyj40 >= l {
|
||||
var yys44Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys44Slc
|
||||
var yyhl44 bool = l >= 0
|
||||
for yyj44 := 0; ; yyj44++ {
|
||||
if yyhl44 {
|
||||
if yyj44 >= l {
|
||||
break
|
||||
}
|
||||
} else {
|
||||
@ -526,10 +550,10 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
}
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerMapKey1234)
|
||||
yys40Slc = r.DecodeBytes(yys40Slc, true, true)
|
||||
yys40 := string(yys40Slc)
|
||||
yys44Slc = r.DecodeBytes(yys44Slc, true, true)
|
||||
yys44 := string(yys44Slc)
|
||||
z.DecSendContainerState(codecSelfer_containerMapValue1234)
|
||||
switch yys40 {
|
||||
switch yys44 {
|
||||
case "kind":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Kind = ""
|
||||
@ -546,31 +570,31 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ListMeta = pkg1_unversioned.ListMeta{}
|
||||
} else {
|
||||
yyv43 := &x.ListMeta
|
||||
yym44 := z.DecBinary()
|
||||
_ = yym44
|
||||
yyv47 := &x.ListMeta
|
||||
yym48 := z.DecBinary()
|
||||
_ = yym48
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv43) {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv47) {
|
||||
} else {
|
||||
z.DecFallback(yyv43, false)
|
||||
z.DecFallback(yyv47, false)
|
||||
}
|
||||
}
|
||||
case "items":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Items = nil
|
||||
} else {
|
||||
yyv45 := &x.Items
|
||||
yym46 := z.DecBinary()
|
||||
_ = yym46
|
||||
yyv49 := &x.Items
|
||||
yym50 := z.DecBinary()
|
||||
_ = yym50
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceTestType((*[]TestType)(yyv45), d)
|
||||
h.decSliceTestType((*[]TestType)(yyv49), d)
|
||||
}
|
||||
}
|
||||
default:
|
||||
z.DecStructFieldNotFound(-1, yys40)
|
||||
} // end switch yys40
|
||||
} // end for yyj40
|
||||
z.DecStructFieldNotFound(-1, yys44)
|
||||
} // end switch yys44
|
||||
} // end for yyj44
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
}
|
||||
|
||||
@ -578,16 +602,16 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj47 int
|
||||
var yyb47 bool
|
||||
var yyhl47 bool = l >= 0
|
||||
yyj47++
|
||||
if yyhl47 {
|
||||
yyb47 = yyj47 > l
|
||||
var yyj51 int
|
||||
var yyb51 bool
|
||||
var yyhl51 bool = l >= 0
|
||||
yyj51++
|
||||
if yyhl51 {
|
||||
yyb51 = yyj51 > l
|
||||
} else {
|
||||
yyb47 = r.CheckBreak()
|
||||
yyb51 = r.CheckBreak()
|
||||
}
|
||||
if yyb47 {
|
||||
if yyb51 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -597,13 +621,13 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.Kind = string(r.DecodeString())
|
||||
}
|
||||
yyj47++
|
||||
if yyhl47 {
|
||||
yyb47 = yyj47 > l
|
||||
yyj51++
|
||||
if yyhl51 {
|
||||
yyb51 = yyj51 > l
|
||||
} else {
|
||||
yyb47 = r.CheckBreak()
|
||||
yyb51 = r.CheckBreak()
|
||||
}
|
||||
if yyb47 {
|
||||
if yyb51 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -613,13 +637,13 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.APIVersion = string(r.DecodeString())
|
||||
}
|
||||
yyj47++
|
||||
if yyhl47 {
|
||||
yyb47 = yyj47 > l
|
||||
yyj51++
|
||||
if yyhl51 {
|
||||
yyb51 = yyj51 > l
|
||||
} else {
|
||||
yyb47 = r.CheckBreak()
|
||||
yyb51 = r.CheckBreak()
|
||||
}
|
||||
if yyb47 {
|
||||
if yyb51 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -627,22 +651,22 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ListMeta = pkg1_unversioned.ListMeta{}
|
||||
} else {
|
||||
yyv50 := &x.ListMeta
|
||||
yym51 := z.DecBinary()
|
||||
_ = yym51
|
||||
yyv54 := &x.ListMeta
|
||||
yym55 := z.DecBinary()
|
||||
_ = yym55
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv50) {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv54) {
|
||||
} else {
|
||||
z.DecFallback(yyv50, false)
|
||||
z.DecFallback(yyv54, false)
|
||||
}
|
||||
}
|
||||
yyj47++
|
||||
if yyhl47 {
|
||||
yyb47 = yyj47 > l
|
||||
yyj51++
|
||||
if yyhl51 {
|
||||
yyb51 = yyj51 > l
|
||||
} else {
|
||||
yyb47 = r.CheckBreak()
|
||||
yyb51 = r.CheckBreak()
|
||||
}
|
||||
if yyb47 {
|
||||
if yyb51 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -650,26 +674,26 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Items = nil
|
||||
} else {
|
||||
yyv52 := &x.Items
|
||||
yym53 := z.DecBinary()
|
||||
_ = yym53
|
||||
yyv56 := &x.Items
|
||||
yym57 := z.DecBinary()
|
||||
_ = yym57
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceTestType((*[]TestType)(yyv52), d)
|
||||
h.decSliceTestType((*[]TestType)(yyv56), d)
|
||||
}
|
||||
}
|
||||
for {
|
||||
yyj47++
|
||||
if yyhl47 {
|
||||
yyb47 = yyj47 > l
|
||||
yyj51++
|
||||
if yyhl51 {
|
||||
yyb51 = yyj51 > l
|
||||
} else {
|
||||
yyb47 = r.CheckBreak()
|
||||
yyb51 = r.CheckBreak()
|
||||
}
|
||||
if yyb47 {
|
||||
if yyb51 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj47-1, "")
|
||||
z.DecStructFieldNotFound(yyj51-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@ -679,10 +703,10 @@ func (x codecSelfer1234) encSliceTestType(v []TestType, e *codec1978.Encoder) {
|
||||
z, r := codec1978.GenHelperEncoder(e)
|
||||
_, _, _ = h, z, r
|
||||
r.EncodeArrayStart(len(v))
|
||||
for _, yyv54 := range v {
|
||||
for _, yyv58 := range v {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
yy55 := &yyv54
|
||||
yy55.CodecEncodeSelf(e)
|
||||
yy59 := &yyv58
|
||||
yy59.CodecEncodeSelf(e)
|
||||
}
|
||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@ -692,83 +716,83 @@ func (x codecSelfer1234) decSliceTestType(v *[]TestType, d *codec1978.Decoder) {
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
|
||||
yyv56 := *v
|
||||
yyh56, yyl56 := z.DecSliceHelperStart()
|
||||
var yyc56 bool
|
||||
if yyl56 == 0 {
|
||||
if yyv56 == nil {
|
||||
yyv56 = []TestType{}
|
||||
yyc56 = true
|
||||
} else if len(yyv56) != 0 {
|
||||
yyv56 = yyv56[:0]
|
||||
yyc56 = true
|
||||
yyv60 := *v
|
||||
yyh60, yyl60 := z.DecSliceHelperStart()
|
||||
var yyc60 bool
|
||||
if yyl60 == 0 {
|
||||
if yyv60 == nil {
|
||||
yyv60 = []TestType{}
|
||||
yyc60 = true
|
||||
} else if len(yyv60) != 0 {
|
||||
yyv60 = yyv60[:0]
|
||||
yyc60 = true
|
||||
}
|
||||
} else if yyl56 > 0 {
|
||||
var yyrr56, yyrl56 int
|
||||
var yyrt56 bool
|
||||
if yyl56 > cap(yyv56) {
|
||||
} else if yyl60 > 0 {
|
||||
var yyrr60, yyrl60 int
|
||||
var yyrt60 bool
|
||||
if yyl60 > cap(yyv60) {
|
||||
|
||||
yyrg56 := len(yyv56) > 0
|
||||
yyv256 := yyv56
|
||||
yyrl56, yyrt56 = z.DecInferLen(yyl56, z.DecBasicHandle().MaxInitLen, 192)
|
||||
if yyrt56 {
|
||||
if yyrl56 <= cap(yyv56) {
|
||||
yyv56 = yyv56[:yyrl56]
|
||||
yyrg60 := len(yyv60) > 0
|
||||
yyv260 := yyv60
|
||||
yyrl60, yyrt60 = z.DecInferLen(yyl60, z.DecBasicHandle().MaxInitLen, 192)
|
||||
if yyrt60 {
|
||||
if yyrl60 <= cap(yyv60) {
|
||||
yyv60 = yyv60[:yyrl60]
|
||||
} else {
|
||||
yyv56 = make([]TestType, yyrl56)
|
||||
yyv60 = make([]TestType, yyrl60)
|
||||
}
|
||||
} else {
|
||||
yyv56 = make([]TestType, yyrl56)
|
||||
yyv60 = make([]TestType, yyrl60)
|
||||
}
|
||||
yyc56 = true
|
||||
yyrr56 = len(yyv56)
|
||||
if yyrg56 {
|
||||
copy(yyv56, yyv256)
|
||||
yyc60 = true
|
||||
yyrr60 = len(yyv60)
|
||||
if yyrg60 {
|
||||
copy(yyv60, yyv260)
|
||||
}
|
||||
} else if yyl56 != len(yyv56) {
|
||||
yyv56 = yyv56[:yyl56]
|
||||
yyc56 = true
|
||||
} else if yyl60 != len(yyv60) {
|
||||
yyv60 = yyv60[:yyl60]
|
||||
yyc60 = true
|
||||
}
|
||||
yyj56 := 0
|
||||
for ; yyj56 < yyrr56; yyj56++ {
|
||||
yyh56.ElemContainerState(yyj56)
|
||||
yyj60 := 0
|
||||
for ; yyj60 < yyrr60; yyj60++ {
|
||||
yyh60.ElemContainerState(yyj60)
|
||||
if r.TryDecodeAsNil() {
|
||||
yyv56[yyj56] = TestType{}
|
||||
yyv60[yyj60] = TestType{}
|
||||
} else {
|
||||
yyv57 := &yyv56[yyj56]
|
||||
yyv57.CodecDecodeSelf(d)
|
||||
yyv61 := &yyv60[yyj60]
|
||||
yyv61.CodecDecodeSelf(d)
|
||||
}
|
||||
|
||||
}
|
||||
if yyrt56 {
|
||||
for ; yyj56 < yyl56; yyj56++ {
|
||||
yyv56 = append(yyv56, TestType{})
|
||||
yyh56.ElemContainerState(yyj56)
|
||||
if yyrt60 {
|
||||
for ; yyj60 < yyl60; yyj60++ {
|
||||
yyv60 = append(yyv60, TestType{})
|
||||
yyh60.ElemContainerState(yyj60)
|
||||
if r.TryDecodeAsNil() {
|
||||
yyv56[yyj56] = TestType{}
|
||||
yyv60[yyj60] = TestType{}
|
||||
} else {
|
||||
yyv58 := &yyv56[yyj56]
|
||||
yyv58.CodecDecodeSelf(d)
|
||||
yyv62 := &yyv60[yyj60]
|
||||
yyv62.CodecDecodeSelf(d)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
yyj56 := 0
|
||||
for ; !r.CheckBreak(); yyj56++ {
|
||||
yyj60 := 0
|
||||
for ; !r.CheckBreak(); yyj60++ {
|
||||
|
||||
if yyj56 >= len(yyv56) {
|
||||
yyv56 = append(yyv56, TestType{}) // var yyz56 TestType
|
||||
yyc56 = true
|
||||
if yyj60 >= len(yyv60) {
|
||||
yyv60 = append(yyv60, TestType{}) // var yyz60 TestType
|
||||
yyc60 = true
|
||||
}
|
||||
yyh56.ElemContainerState(yyj56)
|
||||
if yyj56 < len(yyv56) {
|
||||
yyh60.ElemContainerState(yyj60)
|
||||
if yyj60 < len(yyv60) {
|
||||
if r.TryDecodeAsNil() {
|
||||
yyv56[yyj56] = TestType{}
|
||||
yyv60[yyj60] = TestType{}
|
||||
} else {
|
||||
yyv59 := &yyv56[yyj56]
|
||||
yyv59.CodecDecodeSelf(d)
|
||||
yyv63 := &yyv60[yyj60]
|
||||
yyv63.CodecDecodeSelf(d)
|
||||
}
|
||||
|
||||
} else {
|
||||
@ -776,16 +800,16 @@ func (x codecSelfer1234) decSliceTestType(v *[]TestType, d *codec1978.Decoder) {
|
||||
}
|
||||
|
||||
}
|
||||
if yyj56 < len(yyv56) {
|
||||
yyv56 = yyv56[:yyj56]
|
||||
yyc56 = true
|
||||
} else if yyj56 == 0 && yyv56 == nil {
|
||||
yyv56 = []TestType{}
|
||||
yyc56 = true
|
||||
if yyj60 < len(yyv60) {
|
||||
yyv60 = yyv60[:yyj60]
|
||||
yyc60 = true
|
||||
} else if yyj60 == 0 && yyv60 == nil {
|
||||
yyv60 = []TestType{}
|
||||
yyc60 = true
|
||||
}
|
||||
}
|
||||
yyh56.End()
|
||||
if yyc56 {
|
||||
*v = yyv56
|
||||
yyh60.End()
|
||||
if yyc60 {
|
||||
*v = yyv60
|
||||
}
|
||||
}
|
||||
|
@ -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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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>
|
||||
</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 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>
|
||||
@ -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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<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%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -4289,4 +4296,4 @@ Last updated 2015-12-16 14:33:53 UTC
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1383,6 +1383,12 @@ func deepCopy_extensions_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner)
|
||||
} else {
|
||||
out.Completions = nil
|
||||
}
|
||||
if in.ActiveDeadlineSeconds != nil {
|
||||
out.ActiveDeadlineSeconds = new(int64)
|
||||
*out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds
|
||||
} else {
|
||||
out.ActiveDeadlineSeconds = nil
|
||||
}
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(LabelSelector)
|
||||
if err := deepCopy_extensions_LabelSelector(*in.Selector, out.Selector, c); err != nil {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -410,6 +410,10 @@ type JobSpec struct {
|
||||
// job should be run with. Defaults to 1.
|
||||
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 *LabelSelector `json:"selector,omitempty"`
|
||||
|
||||
@ -450,6 +454,8 @@ type JobConditionType string
|
||||
const (
|
||||
// JobComplete means the job has completed its execution.
|
||||
JobComplete JobConditionType = "Complete"
|
||||
// JobFailed means the job has failed its execution.
|
||||
JobFailed JobConditionType = "Failed"
|
||||
)
|
||||
|
||||
// JobCondition describes current state of a job.
|
||||
|
@ -2902,6 +2902,12 @@ func autoconvert_extensions_JobSpec_To_v1beta1_JobSpec(in *extensions.JobSpec, o
|
||||
} else {
|
||||
out.Completions = nil
|
||||
}
|
||||
if in.ActiveDeadlineSeconds != nil {
|
||||
out.ActiveDeadlineSeconds = new(int64)
|
||||
*out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds
|
||||
} else {
|
||||
out.ActiveDeadlineSeconds = nil
|
||||
}
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(LabelSelector)
|
||||
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 {
|
||||
out.Completions = nil
|
||||
}
|
||||
if in.ActiveDeadlineSeconds != nil {
|
||||
out.ActiveDeadlineSeconds = new(int64)
|
||||
*out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds
|
||||
} else {
|
||||
out.ActiveDeadlineSeconds = nil
|
||||
}
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(extensions.LabelSelector)
|
||||
if err := convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
|
@ -1395,6 +1395,12 @@ func deepCopy_v1beta1_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner) er
|
||||
} else {
|
||||
out.Completions = nil
|
||||
}
|
||||
if in.ActiveDeadlineSeconds != nil {
|
||||
out.ActiveDeadlineSeconds = new(int64)
|
||||
*out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds
|
||||
} else {
|
||||
out.ActiveDeadlineSeconds = nil
|
||||
}
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(LabelSelector)
|
||||
if err := deepCopy_v1beta1_LabelSelector(*in.Selector, out.Selector, c); err != nil {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -415,6 +415,10 @@ type JobSpec struct {
|
||||
// More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md
|
||||
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.
|
||||
// More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
|
||||
Selector *LabelSelector `json:"selector,omitempty"`
|
||||
@ -458,6 +462,8 @@ type JobConditionType string
|
||||
const (
|
||||
// JobComplete means the job has completed its execution.
|
||||
JobComplete JobConditionType = "Complete"
|
||||
// JobFailed means the job has failed its execution.
|
||||
JobFailed JobConditionType = "Failed"
|
||||
)
|
||||
|
||||
// JobCondition describes current state of a job.
|
||||
|
@ -368,11 +368,12 @@ func (JobList) SwaggerDoc() map[string]string {
|
||||
}
|
||||
|
||||
var map_JobSpec = map[string]string{
|
||||
"": "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",
|
||||
"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",
|
||||
"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",
|
||||
"": "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",
|
||||
"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",
|
||||
"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",
|
||||
"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 {
|
||||
|
@ -338,6 +338,9 @@ func ValidateJobSpec(spec *extensions.JobSpec, fldPath *field.Path) field.ErrorL
|
||||
if spec.Completions != nil {
|
||||
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 {
|
||||
allErrs = append(allErrs, field.Required(fldPath.Child("selector")))
|
||||
} else {
|
||||
|
@ -839,6 +839,7 @@ func TestValidateJob(t *testing.T) {
|
||||
}
|
||||
}
|
||||
negative := -1
|
||||
negative64 := int64(-1)
|
||||
errorCases := map[string]extensions.Job{
|
||||
"spec.parallelism:must be non-negative": {
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
@ -862,6 +863,17 @@ func TestValidateJob(t *testing.T) {
|
||||
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": {
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Name: "myjob",
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -64,6 +64,8 @@ type JobController struct {
|
||||
|
||||
// Jobs that need to be updated
|
||||
queue *workqueue.Type
|
||||
|
||||
recorder record.EventRecorder
|
||||
}
|
||||
|
||||
func NewJobController(kubeClient client.Interface, resyncPeriod controller.ResyncPeriodFunc) *JobController {
|
||||
@ -75,10 +77,11 @@ func NewJobController(kubeClient client.Interface, resyncPeriod controller.Resyn
|
||||
kubeClient: kubeClient,
|
||||
podControl: controller.RealPodControl{
|
||||
KubeClient: kubeClient,
|
||||
Recorder: eventBroadcaster.NewRecorder(api.EventSource{Component: "job"}),
|
||||
Recorder: eventBroadcaster.NewRecorder(api.EventSource{Component: "job-controller"}),
|
||||
},
|
||||
expectations: controller.NewControllerExpectations(),
|
||||
queue: workqueue.New(),
|
||||
recorder: eventBroadcaster.NewRecorder(api.EventSource{Component: "job-controller"}),
|
||||
}
|
||||
|
||||
jm.jobStore.Store, jm.jobController = framework.NewInformer(
|
||||
@ -322,16 +325,52 @@ func (jm *JobController) syncJob(key string) error {
|
||||
activePods := controller.FilterActivePods(podList.Items)
|
||||
active := len(activePods)
|
||||
succeeded, failed := getStatus(podList.Items)
|
||||
if jobNeedsSync {
|
||||
active = jm.manageJob(activePods, succeeded, &job)
|
||||
conditions := len(job.Status.Conditions)
|
||||
if job.Status.StartTime == nil {
|
||||
now := unversioned.Now()
|
||||
job.Status.StartTime = &now
|
||||
}
|
||||
completions := succeeded
|
||||
if completions == *job.Spec.Completions {
|
||||
job.Status.Conditions = append(job.Status.Conditions, newCondition())
|
||||
if pastActiveDeadline(&job) {
|
||||
// if job was finished previously, we don't want to redo the termination
|
||||
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
|
||||
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.Succeeded = succeeded
|
||||
job.Status.Failed = failed
|
||||
@ -344,21 +383,38 @@ func (jm *JobController) syncJob(key string) error {
|
||||
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{
|
||||
Type: extensions.JobComplete,
|
||||
Type: conditionType,
|
||||
Status: api.ConditionTrue,
|
||||
LastProbeTime: 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) {
|
||||
succeeded = filterPods(pods, api.PodSucceeded)
|
||||
failed = filterPods(pods, api.PodFailed)
|
||||
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 {
|
||||
var activeLock sync.Mutex
|
||||
active := len(activePods)
|
||||
@ -447,7 +503,7 @@ func filterPods(pods []api.Pod, phase api.PodPhase) int {
|
||||
|
||||
func isJobFinished(j *extensions.Job) bool {
|
||||
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
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ import (
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/testapi"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/testclient"
|
||||
@ -209,22 +210,158 @@ func TestControllerSyncJob(t *testing.T) {
|
||||
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 tc.expectedComplete {
|
||||
completed := false
|
||||
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)
|
||||
}
|
||||
if tc.expectedComplete && !getCondition(actual, extensions.JobComplete) {
|
||||
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) {
|
||||
client := client.NewOrDie(&client.Config{Host: "", GroupVersion: testapi.Default.GroupVersion()})
|
||||
manager := NewJobController(client, controller.NoResyncPeriodFunc)
|
||||
|
@ -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, "Parallelism:\t%d\n", *job.Spec.Parallelism)
|
||||
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, "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)
|
||||
|
@ -158,7 +158,13 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq2[2] {
|
||||
yy10 := &x.ObjectMeta
|
||||
yy10.CodecEncodeSelf(e)
|
||||
yym11 := z.EncBinary()
|
||||
_ = yym11
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy10) {
|
||||
} else {
|
||||
z.EncFallback(yy10)
|
||||
}
|
||||
} else {
|
||||
r.EncodeNil()
|
||||
}
|
||||
@ -167,14 +173,20 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
|
||||
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||
yy11 := &x.ObjectMeta
|
||||
yy11.CodecEncodeSelf(e)
|
||||
yy12 := &x.ObjectMeta
|
||||
yym13 := z.EncBinary()
|
||||
_ = yym13
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy12) {
|
||||
} else {
|
||||
z.EncFallback(yy12)
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
yym13 := z.EncBinary()
|
||||
_ = yym13
|
||||
yym15 := z.EncBinary()
|
||||
_ = yym15
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeString(codecSelferC_UTF81234, string(x.Key))
|
||||
@ -183,8 +195,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||
r.EncodeString(codecSelferC_UTF81234, string("Key"))
|
||||
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||
yym14 := z.EncBinary()
|
||||
_ = yym14
|
||||
yym16 := z.EncBinary()
|
||||
_ = yym16
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeString(codecSelferC_UTF81234, string(x.Key))
|
||||
@ -195,8 +207,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if x.Map == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym16 := z.EncBinary()
|
||||
_ = yym16
|
||||
yym18 := z.EncBinary()
|
||||
_ = yym18
|
||||
if false {
|
||||
} else {
|
||||
z.F.EncMapStringIntV(x.Map, false, e)
|
||||
@ -209,8 +221,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if x.Map == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym17 := z.EncBinary()
|
||||
_ = yym17
|
||||
yym19 := z.EncBinary()
|
||||
_ = yym19
|
||||
if false {
|
||||
} else {
|
||||
z.F.EncMapStringIntV(x.Map, false, e)
|
||||
@ -222,8 +234,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if x.StringList == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym19 := z.EncBinary()
|
||||
_ = yym19
|
||||
yym21 := z.EncBinary()
|
||||
_ = yym21
|
||||
if false {
|
||||
} else {
|
||||
z.F.EncSliceStringV(x.StringList, false, e)
|
||||
@ -236,8 +248,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if x.StringList == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym20 := z.EncBinary()
|
||||
_ = yym20
|
||||
yym22 := z.EncBinary()
|
||||
_ = yym22
|
||||
if false {
|
||||
} else {
|
||||
z.F.EncSliceStringV(x.StringList, false, e)
|
||||
@ -249,8 +261,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if x.IntList == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym22 := z.EncBinary()
|
||||
_ = yym22
|
||||
yym24 := z.EncBinary()
|
||||
_ = yym24
|
||||
if false {
|
||||
} else {
|
||||
z.F.EncSliceIntV(x.IntList, false, e)
|
||||
@ -263,8 +275,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if x.IntList == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yym23 := z.EncBinary()
|
||||
_ = yym23
|
||||
yym25 := z.EncBinary()
|
||||
_ = yym25
|
||||
if false {
|
||||
} else {
|
||||
z.F.EncSliceIntV(x.IntList, false, e)
|
||||
@ -284,25 +296,25 @@ func (x *TestStruct) CodecDecodeSelf(d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
yym24 := z.DecBinary()
|
||||
_ = yym24
|
||||
yym26 := z.DecBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(x) {
|
||||
} else {
|
||||
yyct25 := r.ContainerType()
|
||||
if yyct25 == codecSelferValueTypeMap1234 {
|
||||
yyl25 := r.ReadMapStart()
|
||||
if yyl25 == 0 {
|
||||
yyct27 := r.ContainerType()
|
||||
if yyct27 == codecSelferValueTypeMap1234 {
|
||||
yyl27 := r.ReadMapStart()
|
||||
if yyl27 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromMap(yyl25, d)
|
||||
x.codecDecodeSelfFromMap(yyl27, d)
|
||||
}
|
||||
} else if yyct25 == codecSelferValueTypeArray1234 {
|
||||
yyl25 := r.ReadArrayStart()
|
||||
if yyl25 == 0 {
|
||||
} else if yyct27 == codecSelferValueTypeArray1234 {
|
||||
yyl27 := r.ReadArrayStart()
|
||||
if yyl27 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromArray(yyl25, d)
|
||||
x.codecDecodeSelfFromArray(yyl27, d)
|
||||
}
|
||||
} else {
|
||||
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
|
||||
@ -314,12 +326,12 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yys26Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys26Slc
|
||||
var yyhl26 bool = l >= 0
|
||||
for yyj26 := 0; ; yyj26++ {
|
||||
if yyhl26 {
|
||||
if yyj26 >= l {
|
||||
var yys28Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys28Slc
|
||||
var yyhl28 bool = l >= 0
|
||||
for yyj28 := 0; ; yyj28++ {
|
||||
if yyhl28 {
|
||||
if yyj28 >= l {
|
||||
break
|
||||
}
|
||||
} else {
|
||||
@ -328,10 +340,10 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
}
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerMapKey1234)
|
||||
yys26Slc = r.DecodeBytes(yys26Slc, true, true)
|
||||
yys26 := string(yys26Slc)
|
||||
yys28Slc = r.DecodeBytes(yys28Slc, true, true)
|
||||
yys28 := string(yys28Slc)
|
||||
z.DecSendContainerState(codecSelfer_containerMapValue1234)
|
||||
switch yys26 {
|
||||
switch yys28 {
|
||||
case "kind":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Kind = ""
|
||||
@ -348,8 +360,14 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObjectMeta = pkg2_api.ObjectMeta{}
|
||||
} else {
|
||||
yyv29 := &x.ObjectMeta
|
||||
yyv29.CodecDecodeSelf(d)
|
||||
yyv31 := &x.ObjectMeta
|
||||
yym32 := z.DecBinary()
|
||||
_ = yym32
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv31) {
|
||||
} else {
|
||||
z.DecFallback(yyv31, false)
|
||||
}
|
||||
}
|
||||
case "Key":
|
||||
if r.TryDecodeAsNil() {
|
||||
@ -361,42 +379,42 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Map = nil
|
||||
} else {
|
||||
yyv31 := &x.Map
|
||||
yym32 := z.DecBinary()
|
||||
_ = yym32
|
||||
yyv34 := &x.Map
|
||||
yym35 := z.DecBinary()
|
||||
_ = yym35
|
||||
if false {
|
||||
} else {
|
||||
z.F.DecMapStringIntX(yyv31, false, d)
|
||||
z.F.DecMapStringIntX(yyv34, false, d)
|
||||
}
|
||||
}
|
||||
case "StringList":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.StringList = nil
|
||||
} else {
|
||||
yyv33 := &x.StringList
|
||||
yym34 := z.DecBinary()
|
||||
_ = yym34
|
||||
yyv36 := &x.StringList
|
||||
yym37 := z.DecBinary()
|
||||
_ = yym37
|
||||
if false {
|
||||
} else {
|
||||
z.F.DecSliceStringX(yyv33, false, d)
|
||||
z.F.DecSliceStringX(yyv36, false, d)
|
||||
}
|
||||
}
|
||||
case "IntList":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.IntList = nil
|
||||
} else {
|
||||
yyv35 := &x.IntList
|
||||
yym36 := z.DecBinary()
|
||||
_ = yym36
|
||||
yyv38 := &x.IntList
|
||||
yym39 := z.DecBinary()
|
||||
_ = yym39
|
||||
if false {
|
||||
} else {
|
||||
z.F.DecSliceIntX(yyv35, false, d)
|
||||
z.F.DecSliceIntX(yyv38, false, d)
|
||||
}
|
||||
}
|
||||
default:
|
||||
z.DecStructFieldNotFound(-1, yys26)
|
||||
} // end switch yys26
|
||||
} // end for yyj26
|
||||
z.DecStructFieldNotFound(-1, yys28)
|
||||
} // end switch yys28
|
||||
} // end for yyj28
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
}
|
||||
|
||||
@ -404,16 +422,16 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj37 int
|
||||
var yyb37 bool
|
||||
var yyhl37 bool = l >= 0
|
||||
yyj37++
|
||||
if yyhl37 {
|
||||
yyb37 = yyj37 > l
|
||||
var yyj40 int
|
||||
var yyb40 bool
|
||||
var yyhl40 bool = l >= 0
|
||||
yyj40++
|
||||
if yyhl40 {
|
||||
yyb40 = yyj40 > l
|
||||
} else {
|
||||
yyb37 = r.CheckBreak()
|
||||
yyb40 = r.CheckBreak()
|
||||
}
|
||||
if yyb37 {
|
||||
if yyb40 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -423,13 +441,13 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.Kind = string(r.DecodeString())
|
||||
}
|
||||
yyj37++
|
||||
if yyhl37 {
|
||||
yyb37 = yyj37 > l
|
||||
yyj40++
|
||||
if yyhl40 {
|
||||
yyb40 = yyj40 > l
|
||||
} else {
|
||||
yyb37 = r.CheckBreak()
|
||||
yyb40 = r.CheckBreak()
|
||||
}
|
||||
if yyb37 {
|
||||
if yyb40 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -439,13 +457,13 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.APIVersion = string(r.DecodeString())
|
||||
}
|
||||
yyj37++
|
||||
if yyhl37 {
|
||||
yyb37 = yyj37 > l
|
||||
yyj40++
|
||||
if yyhl40 {
|
||||
yyb40 = yyj40 > l
|
||||
} else {
|
||||
yyb37 = r.CheckBreak()
|
||||
yyb40 = r.CheckBreak()
|
||||
}
|
||||
if yyb37 {
|
||||
if yyb40 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -453,16 +471,22 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObjectMeta = pkg2_api.ObjectMeta{}
|
||||
} else {
|
||||
yyv40 := &x.ObjectMeta
|
||||
yyv40.CodecDecodeSelf(d)
|
||||
yyv43 := &x.ObjectMeta
|
||||
yym44 := z.DecBinary()
|
||||
_ = yym44
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv43) {
|
||||
} else {
|
||||
z.DecFallback(yyv43, false)
|
||||
}
|
||||
}
|
||||
yyj37++
|
||||
if yyhl37 {
|
||||
yyb37 = yyj37 > l
|
||||
yyj40++
|
||||
if yyhl40 {
|
||||
yyb40 = yyj40 > l
|
||||
} else {
|
||||
yyb37 = r.CheckBreak()
|
||||
yyb40 = r.CheckBreak()
|
||||
}
|
||||
if yyb37 {
|
||||
if yyb40 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -472,13 +496,13 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.Key = string(r.DecodeString())
|
||||
}
|
||||
yyj37++
|
||||
if yyhl37 {
|
||||
yyb37 = yyj37 > l
|
||||
yyj40++
|
||||
if yyhl40 {
|
||||
yyb40 = yyj40 > l
|
||||
} else {
|
||||
yyb37 = r.CheckBreak()
|
||||
yyb40 = r.CheckBreak()
|
||||
}
|
||||
if yyb37 {
|
||||
if yyb40 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -486,21 +510,21 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Map = nil
|
||||
} else {
|
||||
yyv42 := &x.Map
|
||||
yym43 := z.DecBinary()
|
||||
_ = yym43
|
||||
yyv46 := &x.Map
|
||||
yym47 := z.DecBinary()
|
||||
_ = yym47
|
||||
if false {
|
||||
} else {
|
||||
z.F.DecMapStringIntX(yyv42, false, d)
|
||||
z.F.DecMapStringIntX(yyv46, false, d)
|
||||
}
|
||||
}
|
||||
yyj37++
|
||||
if yyhl37 {
|
||||
yyb37 = yyj37 > l
|
||||
yyj40++
|
||||
if yyhl40 {
|
||||
yyb40 = yyj40 > l
|
||||
} else {
|
||||
yyb37 = r.CheckBreak()
|
||||
yyb40 = r.CheckBreak()
|
||||
}
|
||||
if yyb37 {
|
||||
if yyb40 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -508,21 +532,21 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.StringList = nil
|
||||
} else {
|
||||
yyv44 := &x.StringList
|
||||
yym45 := z.DecBinary()
|
||||
_ = yym45
|
||||
yyv48 := &x.StringList
|
||||
yym49 := z.DecBinary()
|
||||
_ = yym49
|
||||
if false {
|
||||
} else {
|
||||
z.F.DecSliceStringX(yyv44, false, d)
|
||||
z.F.DecSliceStringX(yyv48, false, d)
|
||||
}
|
||||
}
|
||||
yyj37++
|
||||
if yyhl37 {
|
||||
yyb37 = yyj37 > l
|
||||
yyj40++
|
||||
if yyhl40 {
|
||||
yyb40 = yyj40 > l
|
||||
} else {
|
||||
yyb37 = r.CheckBreak()
|
||||
yyb40 = r.CheckBreak()
|
||||
}
|
||||
if yyb37 {
|
||||
if yyb40 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -530,26 +554,26 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.IntList = nil
|
||||
} else {
|
||||
yyv46 := &x.IntList
|
||||
yym47 := z.DecBinary()
|
||||
_ = yym47
|
||||
yyv50 := &x.IntList
|
||||
yym51 := z.DecBinary()
|
||||
_ = yym51
|
||||
if false {
|
||||
} else {
|
||||
z.F.DecSliceIntX(yyv46, false, d)
|
||||
z.F.DecSliceIntX(yyv50, false, d)
|
||||
}
|
||||
}
|
||||
for {
|
||||
yyj37++
|
||||
if yyhl37 {
|
||||
yyb37 = yyj37 > l
|
||||
yyj40++
|
||||
if yyhl40 {
|
||||
yyb40 = yyj40 > l
|
||||
} else {
|
||||
yyb37 = r.CheckBreak()
|
||||
yyb40 = r.CheckBreak()
|
||||
}
|
||||
if yyb37 {
|
||||
if yyb40 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj37-1, "")
|
||||
z.DecStructFieldNotFound(yyj40-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
|
@ -156,18 +156,30 @@ func (x *TestResource) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
yy10 := &x.ObjectMeta
|
||||
yy10.CodecEncodeSelf(e)
|
||||
yym11 := z.EncBinary()
|
||||
_ = yym11
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy10) {
|
||||
} else {
|
||||
z.EncFallback(yy10)
|
||||
}
|
||||
} else {
|
||||
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
|
||||
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||
yy11 := &x.ObjectMeta
|
||||
yy11.CodecEncodeSelf(e)
|
||||
yy12 := &x.ObjectMeta
|
||||
yym13 := z.EncBinary()
|
||||
_ = yym13
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.EncExt(yy12) {
|
||||
} else {
|
||||
z.EncFallback(yy12)
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
yym13 := z.EncBinary()
|
||||
_ = yym13
|
||||
yym15 := z.EncBinary()
|
||||
_ = yym15
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(x.Value))
|
||||
@ -176,8 +188,8 @@ func (x *TestResource) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||
r.EncodeString(codecSelferC_UTF81234, string("value"))
|
||||
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||
yym14 := z.EncBinary()
|
||||
_ = yym14
|
||||
yym16 := z.EncBinary()
|
||||
_ = yym16
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(x.Value))
|
||||
@ -196,25 +208,25 @@ func (x *TestResource) CodecDecodeSelf(d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
yym15 := z.DecBinary()
|
||||
_ = yym15
|
||||
yym17 := z.DecBinary()
|
||||
_ = yym17
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(x) {
|
||||
} else {
|
||||
yyct16 := r.ContainerType()
|
||||
if yyct16 == codecSelferValueTypeMap1234 {
|
||||
yyl16 := r.ReadMapStart()
|
||||
if yyl16 == 0 {
|
||||
yyct18 := r.ContainerType()
|
||||
if yyct18 == codecSelferValueTypeMap1234 {
|
||||
yyl18 := r.ReadMapStart()
|
||||
if yyl18 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromMap(yyl16, d)
|
||||
x.codecDecodeSelfFromMap(yyl18, d)
|
||||
}
|
||||
} else if yyct16 == codecSelferValueTypeArray1234 {
|
||||
yyl16 := r.ReadArrayStart()
|
||||
if yyl16 == 0 {
|
||||
} else if yyct18 == codecSelferValueTypeArray1234 {
|
||||
yyl18 := r.ReadArrayStart()
|
||||
if yyl18 == 0 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
x.codecDecodeSelfFromArray(yyl16, d)
|
||||
x.codecDecodeSelfFromArray(yyl18, d)
|
||||
}
|
||||
} else {
|
||||
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
|
||||
@ -226,12 +238,12 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yys17Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys17Slc
|
||||
var yyhl17 bool = l >= 0
|
||||
for yyj17 := 0; ; yyj17++ {
|
||||
if yyhl17 {
|
||||
if yyj17 >= l {
|
||||
var yys19Slc = z.DecScratchBuffer() // default slice to decode into
|
||||
_ = yys19Slc
|
||||
var yyhl19 bool = l >= 0
|
||||
for yyj19 := 0; ; yyj19++ {
|
||||
if yyhl19 {
|
||||
if yyj19 >= l {
|
||||
break
|
||||
}
|
||||
} else {
|
||||
@ -240,10 +252,10 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
}
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerMapKey1234)
|
||||
yys17Slc = r.DecodeBytes(yys17Slc, true, true)
|
||||
yys17 := string(yys17Slc)
|
||||
yys19Slc = r.DecodeBytes(yys19Slc, true, true)
|
||||
yys19 := string(yys19Slc)
|
||||
z.DecSendContainerState(codecSelfer_containerMapValue1234)
|
||||
switch yys17 {
|
||||
switch yys19 {
|
||||
case "kind":
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Kind = ""
|
||||
@ -260,8 +272,14 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObjectMeta = pkg2_api.ObjectMeta{}
|
||||
} else {
|
||||
yyv20 := &x.ObjectMeta
|
||||
yyv20.CodecDecodeSelf(d)
|
||||
yyv22 := &x.ObjectMeta
|
||||
yym23 := z.DecBinary()
|
||||
_ = yym23
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv22) {
|
||||
} else {
|
||||
z.DecFallback(yyv22, false)
|
||||
}
|
||||
}
|
||||
case "value":
|
||||
if r.TryDecodeAsNil() {
|
||||
@ -270,9 +288,9 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
x.Value = int(r.DecodeInt(codecSelferBitsize1234))
|
||||
}
|
||||
default:
|
||||
z.DecStructFieldNotFound(-1, yys17)
|
||||
} // end switch yys17
|
||||
} // end for yyj17
|
||||
z.DecStructFieldNotFound(-1, yys19)
|
||||
} // end switch yys19
|
||||
} // end for yyj19
|
||||
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
|
||||
}
|
||||
|
||||
@ -280,16 +298,16 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj22 int
|
||||
var yyb22 bool
|
||||
var yyhl22 bool = l >= 0
|
||||
yyj22++
|
||||
if yyhl22 {
|
||||
yyb22 = yyj22 > l
|
||||
var yyj25 int
|
||||
var yyb25 bool
|
||||
var yyhl25 bool = l >= 0
|
||||
yyj25++
|
||||
if yyhl25 {
|
||||
yyb25 = yyj25 > l
|
||||
} else {
|
||||
yyb22 = r.CheckBreak()
|
||||
yyb25 = r.CheckBreak()
|
||||
}
|
||||
if yyb22 {
|
||||
if yyb25 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -299,13 +317,13 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.Kind = string(r.DecodeString())
|
||||
}
|
||||
yyj22++
|
||||
if yyhl22 {
|
||||
yyb22 = yyj22 > l
|
||||
yyj25++
|
||||
if yyhl25 {
|
||||
yyb25 = yyj25 > l
|
||||
} else {
|
||||
yyb22 = r.CheckBreak()
|
||||
yyb25 = r.CheckBreak()
|
||||
}
|
||||
if yyb22 {
|
||||
if yyb25 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -315,13 +333,13 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
} else {
|
||||
x.APIVersion = string(r.DecodeString())
|
||||
}
|
||||
yyj22++
|
||||
if yyhl22 {
|
||||
yyb22 = yyj22 > l
|
||||
yyj25++
|
||||
if yyhl25 {
|
||||
yyb25 = yyj25 > l
|
||||
} else {
|
||||
yyb22 = r.CheckBreak()
|
||||
yyb25 = r.CheckBreak()
|
||||
}
|
||||
if yyb22 {
|
||||
if yyb25 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -329,16 +347,22 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObjectMeta = pkg2_api.ObjectMeta{}
|
||||
} else {
|
||||
yyv25 := &x.ObjectMeta
|
||||
yyv25.CodecDecodeSelf(d)
|
||||
yyv28 := &x.ObjectMeta
|
||||
yym29 := z.DecBinary()
|
||||
_ = yym29
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv28) {
|
||||
} else {
|
||||
z.DecFallback(yyv28, false)
|
||||
}
|
||||
}
|
||||
yyj22++
|
||||
if yyhl22 {
|
||||
yyb22 = yyj22 > l
|
||||
yyj25++
|
||||
if yyhl25 {
|
||||
yyb25 = yyj25 > l
|
||||
} else {
|
||||
yyb22 = r.CheckBreak()
|
||||
yyb25 = r.CheckBreak()
|
||||
}
|
||||
if yyb22 {
|
||||
if yyb25 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@ -349,17 +373,17 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
||||
x.Value = int(r.DecodeInt(codecSelferBitsize1234))
|
||||
}
|
||||
for {
|
||||
yyj22++
|
||||
if yyhl22 {
|
||||
yyb22 = yyj22 > l
|
||||
yyj25++
|
||||
if yyhl25 {
|
||||
yyb25 = yyj25 > l
|
||||
} else {
|
||||
yyb22 = r.CheckBreak()
|
||||
yyb25 = r.CheckBreak()
|
||||
}
|
||||
if yyb22 {
|
||||
if yyb25 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj22-1, "")
|
||||
z.DecStructFieldNotFound(yyj25-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
|
@ -182,6 +182,19 @@ var _ = Describe("Job", func() {
|
||||
Expect(err).To(HaveOccurred())
|
||||
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.
|
||||
@ -283,3 +296,19 @@ func waitForJobFinish(c *client.Client, ns, jobName string, completions int) err
|
||||
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
|
||||
})
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user