mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +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
|
||||
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 {
|
||||
r.EncodeArrayStart(4)
|
||||
} else {
|
||||
yynn23 = 1
|
||||
for _, b := range yyq23 {
|
||||
if b {
|
||||
yynn23++
|
||||
}
|
||||
}
|
||||
r.EncodeMapStart(yynn23)
|
||||
yynn23 = 0
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
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 if z.HasExtensions() && z.EncExt(x) {
|
||||
} else {
|
||||
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
|
||||
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 {
|
||||
yynn27 = 1
|
||||
for _, b := range yyq27 {
|
||||
if b {
|
||||
yynn27++
|
||||
}
|
||||
}
|
||||
r.EncodeMapStart(yynn27)
|
||||
yynn27 = 0
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
if yyr27 || yy2arr27 {
|
||||
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
|
||||
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 {
|
||||
r.EncodeArrayStart(4)
|
||||
} else {
|
||||
yynn23 = 1
|
||||
for _, b := range yyq23 {
|
||||
if b {
|
||||
yynn23++
|
||||
}
|
||||
}
|
||||
r.EncodeMapStart(yynn23)
|
||||
yynn23 = 0
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
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 if z.HasExtensions() && z.EncExt(x) {
|
||||
} else {
|
||||
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
|
||||
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 {
|
||||
yynn27 = 1
|
||||
for _, b := range yyq27 {
|
||||
if b {
|
||||
yynn27++
|
||||
}
|
||||
}
|
||||
r.EncodeMapStart(yynn27)
|
||||
yynn27 = 0
|
||||
}
|
||||
if yyr23 || yy2arr23 {
|
||||
if yyr27 || yy2arr27 {
|
||||
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
|
||||
}
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -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.
|
||||
|
@ -371,6 +371,7 @@ 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",
|
||||
"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",
|
||||
}
|
||||
|
@ -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)
|
||||
conditions := len(job.Status.Conditions)
|
||||
if job.Status.StartTime == nil {
|
||||
now := unversioned.Now()
|
||||
job.Status.StartTime = &now
|
||||
}
|
||||
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())
|
||||
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,20 +210,156 @@ 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) {
|
||||
|
@ -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)
|
||||
}
|
||||
yyj37++
|
||||
if yyhl37 {
|
||||
yyb37 = yyj37 > l
|
||||
yyv43 := &x.ObjectMeta
|
||||
yym44 := z.DecBinary()
|
||||
_ = yym44
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv43) {
|
||||
} else {
|
||||
yyb37 = r.CheckBreak()
|
||||
z.DecFallback(yyv43, false)
|
||||
}
|
||||
if yyb37 {
|
||||
}
|
||||
yyj40++
|
||||
if yyhl40 {
|
||||
yyb40 = yyj40 > l
|
||||
} else {
|
||||
yyb40 = r.CheckBreak()
|
||||
}
|
||||
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)
|
||||
}
|
||||
yyj22++
|
||||
if yyhl22 {
|
||||
yyb22 = yyj22 > l
|
||||
yyv28 := &x.ObjectMeta
|
||||
yym29 := z.DecBinary()
|
||||
_ = yym29
|
||||
if false {
|
||||
} else if z.HasExtensions() && z.DecExt(yyv28) {
|
||||
} else {
|
||||
yyb22 = r.CheckBreak()
|
||||
z.DecFallback(yyv28, false)
|
||||
}
|
||||
if yyb22 {
|
||||
}
|
||||
yyj25++
|
||||
if yyhl25 {
|
||||
yyb25 = yyj25 > l
|
||||
} else {
|
||||
yyb25 = r.CheckBreak()
|
||||
}
|
||||
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