Commit 1752cf22 authored by Eric Tune's avatar Eric Tune

Merge pull request #17940 from soltysh/job_deadline

Added ActiveDeadlineSeconds to jobs
parents a45c8786 327c1044
......@@ -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,37 +361,37 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
if x == nil {
r.EncodeNil()
} else {
yym22 := z.EncBinary()
_ = yym22
yym26 := z.EncBinary()
_ = yym26
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
yysep23 := !z.EncBinary()
yy2arr23 := z.EncBasicHandle().StructToArray
var yyq23 [4]bool
_, _, _ = yysep23, yyq23, yy2arr23
const yyr23 bool = false
yyq23[0] = x.Kind != ""
yyq23[1] = x.APIVersion != ""
yyq23[2] = true
var yynn23 int
if yyr23 || yy2arr23 {
yysep27 := !z.EncBinary()
yy2arr27 := z.EncBasicHandle().StructToArray
var yyq27 [4]bool
_, _, _ = yysep27, yyq27, yy2arr27
const yyr27 bool = false
yyq27[0] = x.Kind != ""
yyq27[1] = x.APIVersion != ""
yyq27[2] = true
var yynn27 int
if yyr27 || yy2arr27 {
r.EncodeArrayStart(4)
} else {
yynn23 = 1
for _, b := range yyq23 {
yynn27 = 1
for _, b := range yyq27 {
if b {
yynn23++
yynn27++
}
}
r.EncodeMapStart(yynn23)
yynn23 = 0
r.EncodeMapStart(yynn27)
yynn27 = 0
}
if yyr23 || yy2arr23 {
if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[0] {
yym25 := z.EncBinary()
_ = yym25
if yyq27[0] {
yym29 := z.EncBinary()
_ = yym29
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
......@@ -376,23 +400,23 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq23[0] {
if yyq27[0] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("kind"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym26 := z.EncBinary()
_ = yym26
yym30 := z.EncBinary()
_ = yym30
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr23 || yy2arr23 {
if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[1] {
yym28 := z.EncBinary()
_ = yym28
if yyq27[1] {
yym32 := z.EncBinary()
_ = yym32
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
......@@ -401,54 +425,54 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq23[1] {
if yyq27[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym29 := z.EncBinary()
_ = yym29
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,37 +361,37 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
if x == nil {
r.EncodeNil()
} else {
yym22 := z.EncBinary()
_ = yym22
yym26 := z.EncBinary()
_ = yym26
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
yysep23 := !z.EncBinary()
yy2arr23 := z.EncBasicHandle().StructToArray
var yyq23 [4]bool
_, _, _ = yysep23, yyq23, yy2arr23
const yyr23 bool = false
yyq23[0] = x.Kind != ""
yyq23[1] = x.APIVersion != ""
yyq23[2] = true
var yynn23 int
if yyr23 || yy2arr23 {
yysep27 := !z.EncBinary()
yy2arr27 := z.EncBasicHandle().StructToArray
var yyq27 [4]bool
_, _, _ = yysep27, yyq27, yy2arr27
const yyr27 bool = false
yyq27[0] = x.Kind != ""
yyq27[1] = x.APIVersion != ""
yyq27[2] = true
var yynn27 int
if yyr27 || yy2arr27 {
r.EncodeArrayStart(4)
} else {
yynn23 = 1
for _, b := range yyq23 {
yynn27 = 1
for _, b := range yyq27 {
if b {
yynn23++
yynn27++
}
}
r.EncodeMapStart(yynn23)
yynn23 = 0
r.EncodeMapStart(yynn27)
yynn27 = 0
}
if yyr23 || yy2arr23 {
if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[0] {
yym25 := z.EncBinary()
_ = yym25
if yyq27[0] {
yym29 := z.EncBinary()
_ = yym29
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
......@@ -376,23 +400,23 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq23[0] {
if yyq27[0] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("kind"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym26 := z.EncBinary()
_ = yym26
yym30 := z.EncBinary()
_ = yym30
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr23 || yy2arr23 {
if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[1] {
yym28 := z.EncBinary()
_ = yym28
if yyq27[1] {
yym32 := z.EncBinary()
_ = yym32
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
......@@ -401,54 +425,54 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq23[1] {
if yyq27[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym29 := z.EncBinary()
_ = yym29
yym33 := z.EncBinary()
_ = yym33
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
}
}
if yyr23 || yy2arr23 {
if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq23[2] {
yy31 := &x.ListMeta
yym32 := z.EncBinary()
_ = yym32
if yyq27[2] {
yy35 := &x.ListMeta
yym36 := z.EncBinary()
_ = yym36
if false {
} else if z.HasExtensions() && z.EncExt(yy31) {
} else if z.HasExtensions() && z.EncExt(yy35) {
} else {
z.EncFallback(yy31)
z.EncFallback(yy35)
}
} else {
r.EncodeNil()
}
} else {
if yyq23[2] {
if yyq27[2] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy33 := &x.ListMeta
yym34 := z.EncBinary()
_ = yym34
yy37 := &x.ListMeta
yym38 := z.EncBinary()
_ = yym38
if false {
} else if z.HasExtensions() && z.EncExt(yy33) {
} else if z.HasExtensions() && z.EncExt(yy37) {
} else {
z.EncFallback(yy33)
z.EncFallback(yy37)
}
}
}
if yyr23 || yy2arr23 {
if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if x.Items == nil {
r.EncodeNil()
} else {
yym36 := z.EncBinary()
_ = yym36
yym40 := z.EncBinary()
_ = yym40
if false {
} else {
h.encSliceTestType(([]TestType)(x.Items), e)
......@@ -461,15 +485,15 @@ func (x *TestTypeList) CodecEncodeSelf(e *codec1978.Encoder) {
if x.Items == nil {
r.EncodeNil()
} else {
yym37 := z.EncBinary()
_ = yym37
yym41 := z.EncBinary()
_ = yym41
if false {
} else {
h.encSliceTestType(([]TestType)(x.Items), e)
}
}
}
if yyr23 || yy2arr23 {
if yyr27 || yy2arr27 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
z.EncSendContainerState(codecSelfer_containerMapEnd1234)
......@@ -482,25 +506,25 @@ func (x *TestTypeList) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym38 := z.DecBinary()
_ = yym38
yym42 := z.DecBinary()
_ = yym42
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
yyct39 := r.ContainerType()
if yyct39 == codecSelferValueTypeMap1234 {
yyl39 := r.ReadMapStart()
if yyl39 == 0 {
yyct43 := r.ContainerType()
if yyct43 == codecSelferValueTypeMap1234 {
yyl43 := r.ReadMapStart()
if yyl43 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else {
x.codecDecodeSelfFromMap(yyl39, d)
x.codecDecodeSelfFromMap(yyl43, d)
}
} else if yyct39 == codecSelferValueTypeArray1234 {
yyl39 := r.ReadArrayStart()
if yyl39 == 0 {
} else if yyct43 == codecSelferValueTypeArray1234 {
yyl43 := r.ReadArrayStart()
if yyl43 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
x.codecDecodeSelfFromArray(yyl39, d)
x.codecDecodeSelfFromArray(yyl43, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
......@@ -512,12 +536,12 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys40Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys40Slc
var yyhl40 bool = l >= 0
for yyj40 := 0; ; yyj40++ {
if yyhl40 {
if yyj40 >= l {
var yys44Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys44Slc
var yyhl44 bool = l >= 0
for yyj44 := 0; ; yyj44++ {
if yyhl44 {
if yyj44 >= l {
break
}
} else {
......@@ -526,10 +550,10 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
}
z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys40Slc = r.DecodeBytes(yys40Slc, true, true)
yys40 := string(yys40Slc)
yys44Slc = r.DecodeBytes(yys44Slc, true, true)
yys44 := string(yys44Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys40 {
switch yys44 {
case "kind":
if r.TryDecodeAsNil() {
x.Kind = ""
......@@ -546,31 +570,31 @@ func (x *TestTypeList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ListMeta = pkg1_unversioned.ListMeta{}
} else {
yyv43 := &x.ListMeta
yym44 := z.DecBinary()
_ = yym44
yyv47 := &x.ListMeta
yym48 := z.DecBinary()
_ = yym48
if false {
} else if z.HasExtensions() && z.DecExt(yyv43) {
} else if z.HasExtensions() && z.DecExt(yyv47) {
} else {
z.DecFallback(yyv43, false)
z.DecFallback(yyv47, false)
}
}
case "items":
if r.TryDecodeAsNil() {
x.Items = nil
} else {
yyv45 := &x.Items
yym46 := z.DecBinary()
_ = yym46
yyv49 := &x.Items
yym50 := z.DecBinary()
_ = yym50
if false {
} else {
h.decSliceTestType((*[]TestType)(yyv45), d)
h.decSliceTestType((*[]TestType)(yyv49), d)
}
}
default:
z.DecStructFieldNotFound(-1, yys40)
} // end switch yys40
} // end for yyj40
z.DecStructFieldNotFound(-1, yys44)
} // end switch yys44
} // end for yyj44
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
}
......@@ -578,16 +602,16 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj47 int
var yyb47 bool
var yyhl47 bool = l >= 0
yyj47++
if yyhl47 {
yyb47 = yyj47 > l
var yyj51 int
var yyb51 bool
var yyhl51 bool = l >= 0
yyj51++
if yyhl51 {
yyb51 = yyj51 > l
} else {
yyb47 = r.CheckBreak()
yyb51 = r.CheckBreak()
}
if yyb47 {
if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -597,13 +621,13 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Kind = string(r.DecodeString())
}
yyj47++
if yyhl47 {
yyb47 = yyj47 > l
yyj51++
if yyhl51 {
yyb51 = yyj51 > l
} else {
yyb47 = r.CheckBreak()
yyb51 = r.CheckBreak()
}
if yyb47 {
if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -613,13 +637,13 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.APIVersion = string(r.DecodeString())
}
yyj47++
if yyhl47 {
yyb47 = yyj47 > l
yyj51++
if yyhl51 {
yyb51 = yyj51 > l
} else {
yyb47 = r.CheckBreak()
yyb51 = r.CheckBreak()
}
if yyb47 {
if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -627,22 +651,22 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ListMeta = pkg1_unversioned.ListMeta{}
} else {
yyv50 := &x.ListMeta
yym51 := z.DecBinary()
_ = yym51
yyv54 := &x.ListMeta
yym55 := z.DecBinary()
_ = yym55
if false {
} else if z.HasExtensions() && z.DecExt(yyv50) {
} else if z.HasExtensions() && z.DecExt(yyv54) {
} else {
z.DecFallback(yyv50, false)
z.DecFallback(yyv54, false)
}
}
yyj47++
if yyhl47 {
yyb47 = yyj47 > l
yyj51++
if yyhl51 {
yyb51 = yyj51 > l
} else {
yyb47 = r.CheckBreak()
yyb51 = r.CheckBreak()
}
if yyb47 {
if yyb51 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -650,26 +674,26 @@ func (x *TestTypeList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Items = nil
} else {
yyv52 := &x.Items
yym53 := z.DecBinary()
_ = yym53
yyv56 := &x.Items
yym57 := z.DecBinary()
_ = yym57
if false {
} else {
h.decSliceTestType((*[]TestType)(yyv52), d)
h.decSliceTestType((*[]TestType)(yyv56), d)
}
}
for {
yyj47++
if yyhl47 {
yyb47 = yyj47 > l
yyj51++
if yyhl51 {
yyb51 = yyj51 > l
} else {
yyb47 = r.CheckBreak()
yyb51 = r.CheckBreak()
}
if yyb47 {
if yyb51 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj47-1, "")
z.DecStructFieldNotFound(yyj51-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
......@@ -679,10 +703,10 @@ func (x codecSelfer1234) encSliceTestType(v []TestType, e *codec1978.Encoder) {
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
r.EncodeArrayStart(len(v))
for _, yyv54 := range v {
for _, yyv58 := range v {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yy55 := &yyv54
yy55.CodecEncodeSelf(e)
yy59 := &yyv58
yy59.CodecEncodeSelf(e)
}
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
}
......@@ -692,83 +716,83 @@ func (x codecSelfer1234) decSliceTestType(v *[]TestType, d *codec1978.Decoder) {
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yyv56 := *v
yyh56, yyl56 := z.DecSliceHelperStart()
var yyc56 bool
if yyl56 == 0 {
if yyv56 == nil {
yyv56 = []TestType{}
yyc56 = true
} else if len(yyv56) != 0 {
yyv56 = yyv56[:0]
yyc56 = true
yyv60 := *v
yyh60, yyl60 := z.DecSliceHelperStart()
var yyc60 bool
if yyl60 == 0 {
if yyv60 == nil {
yyv60 = []TestType{}
yyc60 = true
} else if len(yyv60) != 0 {
yyv60 = yyv60[:0]
yyc60 = true
}
} else if yyl56 > 0 {
var yyrr56, yyrl56 int
var yyrt56 bool
if yyl56 > cap(yyv56) {
} else if yyl60 > 0 {
var yyrr60, yyrl60 int
var yyrt60 bool
if yyl60 > cap(yyv60) {
yyrg56 := len(yyv56) > 0
yyv256 := yyv56
yyrl56, yyrt56 = z.DecInferLen(yyl56, z.DecBasicHandle().MaxInitLen, 192)
if yyrt56 {
if yyrl56 <= cap(yyv56) {
yyv56 = yyv56[:yyrl56]
yyrg60 := len(yyv60) > 0
yyv260 := yyv60
yyrl60, yyrt60 = z.DecInferLen(yyl60, z.DecBasicHandle().MaxInitLen, 192)
if yyrt60 {
if yyrl60 <= cap(yyv60) {
yyv60 = yyv60[:yyrl60]
} else {
yyv56 = make([]TestType, yyrl56)
yyv60 = make([]TestType, yyrl60)
}
} else {
yyv56 = make([]TestType, yyrl56)
yyv60 = make([]TestType, yyrl60)
}
yyc56 = true
yyrr56 = len(yyv56)
if yyrg56 {
copy(yyv56, yyv256)
yyc60 = true
yyrr60 = len(yyv60)
if yyrg60 {
copy(yyv60, yyv260)
}
} else if yyl56 != len(yyv56) {
yyv56 = yyv56[:yyl56]
yyc56 = true
} else if yyl60 != len(yyv60) {
yyv60 = yyv60[:yyl60]
yyc60 = true
}
yyj56 := 0
for ; yyj56 < yyrr56; yyj56++ {
yyh56.ElemContainerState(yyj56)
yyj60 := 0
for ; yyj60 < yyrr60; yyj60++ {
yyh60.ElemContainerState(yyj60)
if r.TryDecodeAsNil() {
yyv56[yyj56] = TestType{}
yyv60[yyj60] = TestType{}
} else {
yyv57 := &yyv56[yyj56]
yyv57.CodecDecodeSelf(d)
yyv61 := &yyv60[yyj60]
yyv61.CodecDecodeSelf(d)
}
}
if yyrt56 {
for ; yyj56 < yyl56; yyj56++ {
yyv56 = append(yyv56, TestType{})
yyh56.ElemContainerState(yyj56)
if yyrt60 {
for ; yyj60 < yyl60; yyj60++ {
yyv60 = append(yyv60, TestType{})
yyh60.ElemContainerState(yyj60)
if r.TryDecodeAsNil() {
yyv56[yyj56] = TestType{}
yyv60[yyj60] = TestType{}
} else {
yyv58 := &yyv56[yyj56]
yyv58.CodecDecodeSelf(d)
yyv62 := &yyv60[yyj60]
yyv62.CodecDecodeSelf(d)
}
}
}
} else {
yyj56 := 0
for ; !r.CheckBreak(); yyj56++ {
yyj60 := 0
for ; !r.CheckBreak(); yyj60++ {
if yyj56 >= len(yyv56) {
yyv56 = append(yyv56, TestType{}) // var yyz56 TestType
yyc56 = true
if yyj60 >= len(yyv60) {
yyv60 = append(yyv60, TestType{}) // var yyz60 TestType
yyc60 = true
}
yyh56.ElemContainerState(yyj56)
if yyj56 < len(yyv56) {
yyh60.ElemContainerState(yyj60)
if yyj60 < len(yyv60) {
if r.TryDecodeAsNil() {
yyv56[yyj56] = TestType{}
yyv60[yyj60] = TestType{}
} else {
yyv59 := &yyv56[yyj56]
yyv59.CodecDecodeSelf(d)
yyv63 := &yyv60[yyj60]
yyv63.CodecDecodeSelf(d)
}
} else {
......@@ -776,16 +800,16 @@ func (x codecSelfer1234) decSliceTestType(v *[]TestType, d *codec1978.Decoder) {
}
}
if yyj56 < len(yyv56) {
yyv56 = yyv56[:yyj56]
yyc56 = true
} else if yyj56 == 0 && yyv56 == nil {
yyv56 = []TestType{}
yyc56 = true
if yyj60 < len(yyv60) {
yyv60 = yyv60[:yyj60]
yyc60 = true
} else if yyj60 == 0 && yyv60 == nil {
yyv60 = []TestType{}
yyc60 = true
}
}
yyh56.End()
if yyc56 {
*v = yyv56
yyh60.End()
if yyc60 {
*v = yyv60
}
}
......@@ -408,7 +408,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -470,7 +470,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -525,7 +525,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -566,7 +566,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -607,7 +607,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -655,7 +655,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -696,7 +696,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -744,7 +744,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -785,7 +785,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -847,7 +847,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -909,7 +909,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -964,7 +964,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -998,7 +998,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1032,7 +1032,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1087,7 +1087,7 @@ Examples:<br>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1142,7 +1142,7 @@ Examples:<br>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1176,7 +1176,7 @@ Examples:<br>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1222,7 +1222,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1277,7 +1277,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1311,7 +1311,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1373,7 +1373,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1421,7 +1421,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1476,7 +1476,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1545,7 +1545,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1586,7 +1586,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1620,7 +1620,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1651,7 +1651,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1685,7 +1685,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1838,7 +1838,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1902,7 +1902,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -1936,7 +1936,7 @@ Both these may change in the future. Incoming requests are matched against the h
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2061,7 +2061,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2102,7 +2102,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2136,7 +2136,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2202,7 +2202,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2243,7 +2243,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2298,7 +2298,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2332,7 +2332,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2372,7 +2372,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2420,7 +2420,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2485,7 +2485,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2540,7 +2540,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2581,7 +2581,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2615,7 +2615,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2656,7 +2656,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2711,7 +2711,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2759,7 +2759,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2821,7 +2821,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2872,7 +2872,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2906,7 +2906,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2947,7 +2947,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -2981,7 +2981,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3050,7 +3050,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3091,7 +3091,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3132,7 +3132,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3180,7 +3180,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3330,7 +3330,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3413,7 +3413,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3440,6 +3440,13 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">activeDeadlineSeconds</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Optional duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int64)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">selector</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Selector is a label query over pods that should match the pod count. More info: <a href="http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors">http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
......@@ -3472,7 +3479,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3555,7 +3562,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3596,7 +3603,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3658,7 +3665,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3790,7 +3797,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3845,7 +3852,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3886,7 +3893,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3934,7 +3941,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -3982,7 +3989,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -4023,7 +4030,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -4078,7 +4085,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -4140,7 +4147,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -4202,7 +4209,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
......@@ -4289,4 +4296,4 @@ Last updated 2015-12-16 14:33:53 UTC
</div>
</div>
</body>
</html>
\ No newline at end of file
</html>
......@@ -1383,6 +1383,12 @@ func deepCopy_extensions_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner)
} else {
out.Completions = nil
}
if in.ActiveDeadlineSeconds != nil {
out.ActiveDeadlineSeconds = new(int64)
*out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds
} else {
out.ActiveDeadlineSeconds = nil
}
if in.Selector != nil {
out.Selector = new(LabelSelector)
if err := deepCopy_extensions_LabelSelector(*in.Selector, out.Selector, c); err != nil {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -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 {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -415,6 +415,10 @@ type JobSpec struct {
// More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md
Completions *int32 `json:"completions,omitempty"`
// Optional duration in seconds relative to the startTime that the job may be active
// before the system tries to terminate it; value must be positive integer
ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"`
// Selector is a label query over pods that should match the pod count.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
Selector *LabelSelector `json:"selector,omitempty"`
......@@ -458,6 +462,8 @@ type JobConditionType string
const (
// JobComplete means the job has completed its execution.
JobComplete JobConditionType = "Complete"
// JobFailed means the job has failed its execution.
JobFailed JobConditionType = "Failed"
)
// JobCondition describes current state of a job.
......
......@@ -368,11 +368,12 @@ func (JobList) SwaggerDoc() map[string]string {
}
var map_JobSpec = map[string]string{
"": "JobSpec describes how the job execution will look like.",
"parallelism": "Parallelism specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md",
"completions": "Completions specifies the desired number of successfully finished pods the job should be run with. Defaults to 1. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md",
"selector": "Selector is a label query over pods that should match the pod count. More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors",
"template": "Template is the object that describes the pod that will be created when executing a job. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md",
"": "JobSpec describes how the job execution will look like.",
"parallelism": "Parallelism specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md",
"completions": "Completions specifies the desired number of successfully finished pods the job should be run with. Defaults to 1. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md",
"activeDeadlineSeconds": "Optional duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer",
"selector": "Selector is a label query over pods that should match the pod count. More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors",
"template": "Template is the object that describes the pod that will be created when executing a job. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md",
}
func (JobSpec) SwaggerDoc() map[string]string {
......
......@@ -338,6 +338,9 @@ func ValidateJobSpec(spec *extensions.JobSpec, fldPath *field.Path) field.ErrorL
if spec.Completions != nil {
allErrs = append(allErrs, apivalidation.ValidatePositiveField(int64(*spec.Completions), fldPath.Child("completions"))...)
}
if spec.ActiveDeadlineSeconds != nil {
allErrs = append(allErrs, apivalidation.ValidatePositiveField(int64(*spec.ActiveDeadlineSeconds), fldPath.Child("activeDeadlineSeconds"))...)
}
if spec.Selector == nil {
allErrs = append(allErrs, field.Required(fldPath.Child("selector")))
} else {
......
......@@ -839,6 +839,7 @@ func TestValidateJob(t *testing.T) {
}
}
negative := -1
negative64 := int64(-1)
errorCases := map[string]extensions.Job{
"spec.parallelism:must be non-negative": {
ObjectMeta: api.ObjectMeta{
......@@ -862,6 +863,17 @@ func TestValidateJob(t *testing.T) {
Template: validPodTemplateSpec,
},
},
"spec.activeDeadlineSeconds:must be non-negative": {
ObjectMeta: api.ObjectMeta{
Name: "myjob",
Namespace: api.NamespaceDefault,
},
Spec: extensions.JobSpec{
ActiveDeadlineSeconds: &negative64,
Selector: validSelector,
Template: validPodTemplateSpec,
},
},
"spec.selector:required value": {
ObjectMeta: api.ObjectMeta{
Name: "myjob",
......
......@@ -158,19 +158,31 @@ func (x *Simple) 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)
if yyq2[3] {
yym13 := z.EncBinary()
_ = yym13
yym15 := z.EncBinary()
_ = yym15
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Other))
......@@ -183,8 +195,8 @@ func (x *Simple) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("other"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym14 := z.EncBinary()
_ = yym14
yym16 := z.EncBinary()
_ = yym16
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Other))
......@@ -197,8 +209,8 @@ func (x *Simple) CodecEncodeSelf(e *codec1978.Encoder) {
if x.Labels == nil {
r.EncodeNil()
} else {
yym16 := z.EncBinary()
_ = yym16
yym18 := z.EncBinary()
_ = yym18
if false {
} else {
z.F.EncMapStringStringV(x.Labels, false, e)
......@@ -215,8 +227,8 @@ func (x *Simple) CodecEncodeSelf(e *codec1978.Encoder) {
if x.Labels == nil {
r.EncodeNil()
} else {
yym17 := z.EncBinary()
_ = yym17
yym19 := z.EncBinary()
_ = yym19
if false {
} else {
z.F.EncMapStringStringV(x.Labels, false, e)
......@@ -237,25 +249,25 @@ func (x *Simple) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym18 := z.DecBinary()
_ = yym18
yym20 := z.DecBinary()
_ = yym20
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
yyct19 := r.ContainerType()
if yyct19 == codecSelferValueTypeMap1234 {
yyl19 := r.ReadMapStart()
if yyl19 == 0 {
yyct21 := r.ContainerType()
if yyct21 == codecSelferValueTypeMap1234 {
yyl21 := r.ReadMapStart()
if yyl21 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else {
x.codecDecodeSelfFromMap(yyl19, d)
x.codecDecodeSelfFromMap(yyl21, d)
}
} else if yyct19 == codecSelferValueTypeArray1234 {
yyl19 := r.ReadArrayStart()
if yyl19 == 0 {
} else if yyct21 == codecSelferValueTypeArray1234 {
yyl21 := r.ReadArrayStart()
if yyl21 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
x.codecDecodeSelfFromArray(yyl19, d)
x.codecDecodeSelfFromArray(yyl21, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
......@@ -267,12 +279,12 @@ func (x *Simple) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys20Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys20Slc
var yyhl20 bool = l >= 0
for yyj20 := 0; ; yyj20++ {
if yyhl20 {
if yyj20 >= l {
var yys22Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys22Slc
var yyhl22 bool = l >= 0
for yyj22 := 0; ; yyj22++ {
if yyhl22 {
if yyj22 >= l {
break
}
} else {
......@@ -281,10 +293,10 @@ func (x *Simple) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
}
z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys20Slc = r.DecodeBytes(yys20Slc, true, true)
yys20 := string(yys20Slc)
yys22Slc = r.DecodeBytes(yys22Slc, true, true)
yys22 := string(yys22Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys20 {
switch yys22 {
case "kind":
if r.TryDecodeAsNil() {
x.Kind = ""
......@@ -301,8 +313,14 @@ func (x *Simple) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{}
} else {
yyv23 := &x.ObjectMeta
yyv23.CodecDecodeSelf(d)
yyv25 := &x.ObjectMeta
yym26 := z.DecBinary()
_ = yym26
if false {
} else if z.HasExtensions() && z.DecExt(yyv25) {
} else {
z.DecFallback(yyv25, false)
}
}
case "other":
if r.TryDecodeAsNil() {
......@@ -314,18 +332,18 @@ func (x *Simple) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Labels = nil
} else {
yyv25 := &x.Labels
yym26 := z.DecBinary()
_ = yym26
yyv28 := &x.Labels
yym29 := z.DecBinary()
_ = yym29
if false {
} else {
z.F.DecMapStringStringX(yyv25, false, d)
z.F.DecMapStringStringX(yyv28, false, d)
}
}
default:
z.DecStructFieldNotFound(-1, yys20)
} // end switch yys20
} // end for yyj20
z.DecStructFieldNotFound(-1, yys22)
} // end switch yys22
} // end for yyj22
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
}
......@@ -333,16 +351,16 @@ func (x *Simple) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj27 int
var yyb27 bool
var yyhl27 bool = l >= 0
yyj27++
if yyhl27 {
yyb27 = yyj27 > l
var yyj30 int
var yyb30 bool
var yyhl30 bool = l >= 0
yyj30++
if yyhl30 {
yyb30 = yyj30 > l
} else {
yyb27 = r.CheckBreak()
yyb30 = r.CheckBreak()
}
if yyb27 {
if yyb30 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -352,13 +370,13 @@ func (x *Simple) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Kind = string(r.DecodeString())
}
yyj27++
if yyhl27 {
yyb27 = yyj27 > l
yyj30++
if yyhl30 {
yyb30 = yyj30 > l
} else {
yyb27 = r.CheckBreak()
yyb30 = r.CheckBreak()
}
if yyb27 {
if yyb30 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -368,13 +386,13 @@ func (x *Simple) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.APIVersion = string(r.DecodeString())
}
yyj27++
if yyhl27 {
yyb27 = yyj27 > l
yyj30++
if yyhl30 {
yyb30 = yyj30 > l
} else {
yyb27 = r.CheckBreak()
yyb30 = r.CheckBreak()
}
if yyb27 {
if yyb30 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -382,16 +400,22 @@ func (x *Simple) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{}
} else {
yyv30 := &x.ObjectMeta
yyv30.CodecDecodeSelf(d)
yyv33 := &x.ObjectMeta
yym34 := z.DecBinary()
_ = yym34
if false {
} else if z.HasExtensions() && z.DecExt(yyv33) {
} else {
z.DecFallback(yyv33, false)
}
}
yyj27++
if yyhl27 {
yyb27 = yyj27 > l
yyj30++
if yyhl30 {
yyb30 = yyj30 > l
} else {
yyb27 = r.CheckBreak()
yyb30 = r.CheckBreak()
}
if yyb27 {
if yyb30 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -401,13 +425,13 @@ func (x *Simple) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Other = string(r.DecodeString())
}
yyj27++
if yyhl27 {
yyb27 = yyj27 > l
yyj30++
if yyhl30 {
yyb30 = yyj30 > l
} else {
yyb27 = r.CheckBreak()
yyb30 = r.CheckBreak()
}
if yyb27 {
if yyb30 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -415,26 +439,26 @@ func (x *Simple) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Labels = nil
} else {
yyv32 := &x.Labels
yym33 := z.DecBinary()
_ = yym33
yyv36 := &x.Labels
yym37 := z.DecBinary()
_ = yym37
if false {
} else {
z.F.DecMapStringStringX(yyv32, false, d)
z.F.DecMapStringStringX(yyv36, false, d)
}
}
for {
yyj27++
if yyhl27 {
yyb27 = yyj27 > l
yyj30++
if yyhl30 {
yyb30 = yyj30 > l
} else {
yyb27 = r.CheckBreak()
yyb30 = r.CheckBreak()
}
if yyb27 {
if yyb30 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj27-1, "")
z.DecStructFieldNotFound(yyj30-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
......@@ -446,38 +470,38 @@ func (x *SimpleRoot) CodecEncodeSelf(e *codec1978.Encoder) {
if x == nil {
r.EncodeNil()
} else {
yym34 := z.EncBinary()
_ = yym34
yym38 := z.EncBinary()
_ = yym38
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
yysep35 := !z.EncBinary()
yy2arr35 := z.EncBasicHandle().StructToArray
var yyq35 [5]bool
_, _, _ = yysep35, yyq35, yy2arr35
const yyr35 bool = false
yyq35[0] = x.Kind != ""
yyq35[1] = x.APIVersion != ""
yyq35[3] = x.Other != ""
yyq35[4] = len(x.Labels) != 0
var yynn35 int
if yyr35 || yy2arr35 {
yysep39 := !z.EncBinary()
yy2arr39 := z.EncBasicHandle().StructToArray
var yyq39 [5]bool
_, _, _ = yysep39, yyq39, yy2arr39
const yyr39 bool = false
yyq39[0] = x.Kind != ""
yyq39[1] = x.APIVersion != ""
yyq39[3] = x.Other != ""
yyq39[4] = len(x.Labels) != 0
var yynn39 int
if yyr39 || yy2arr39 {
r.EncodeArrayStart(5)
} else {
yynn35 = 1
for _, b := range yyq35 {
yynn39 = 1
for _, b := range yyq39 {
if b {
yynn35++
yynn39++
}
}
r.EncodeMapStart(yynn35)
yynn35 = 0
r.EncodeMapStart(yynn39)
yynn39 = 0
}
if yyr35 || yy2arr35 {
if yyr39 || yy2arr39 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq35[0] {
yym37 := z.EncBinary()
_ = yym37
if yyq39[0] {
yym41 := z.EncBinary()
_ = yym41
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
......@@ -486,23 +510,23 @@ func (x *SimpleRoot) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq35[0] {
if yyq39[0] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("kind"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym38 := z.EncBinary()
_ = yym38
yym42 := z.EncBinary()
_ = yym42
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr35 || yy2arr35 {
if yyr39 || yy2arr39 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq35[1] {
yym40 := z.EncBinary()
_ = yym40
if yyq39[1] {
yym44 := z.EncBinary()
_ = yym44
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
......@@ -511,34 +535,46 @@ func (x *SimpleRoot) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq35[1] {
if yyq39[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym41 := z.EncBinary()
_ = yym41
yym45 := z.EncBinary()
_ = yym45
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
}
}
if yyr35 || yy2arr35 {
if yyr39 || yy2arr39 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yy43 := &x.ObjectMeta
yy43.CodecEncodeSelf(e)
yy47 := &x.ObjectMeta
yym48 := z.EncBinary()
_ = yym48
if false {
} else if z.HasExtensions() && z.EncExt(yy47) {
} else {
z.EncFallback(yy47)
}
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy44 := &x.ObjectMeta
yy44.CodecEncodeSelf(e)
yy49 := &x.ObjectMeta
yym50 := z.EncBinary()
_ = yym50
if false {
} else if z.HasExtensions() && z.EncExt(yy49) {
} else {
z.EncFallback(yy49)
}
}
if yyr35 || yy2arr35 {
if yyr39 || yy2arr39 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq35[3] {
yym46 := z.EncBinary()
_ = yym46
if yyq39[3] {
yym52 := z.EncBinary()
_ = yym52
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Other))
......@@ -547,26 +583,26 @@ func (x *SimpleRoot) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq35[3] {
if yyq39[3] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("other"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym47 := z.EncBinary()
_ = yym47
yym53 := z.EncBinary()
_ = yym53
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Other))
}
}
}
if yyr35 || yy2arr35 {
if yyr39 || yy2arr39 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq35[4] {
if yyq39[4] {
if x.Labels == nil {
r.EncodeNil()
} else {
yym49 := z.EncBinary()
_ = yym49
yym55 := z.EncBinary()
_ = yym55
if false {
} else {
z.F.EncMapStringStringV(x.Labels, false, e)
......@@ -576,15 +612,15 @@ func (x *SimpleRoot) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeNil()
}
} else {
if yyq35[4] {
if yyq39[4] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("labels"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
if x.Labels == nil {
r.EncodeNil()
} else {
yym50 := z.EncBinary()
_ = yym50
yym56 := z.EncBinary()
_ = yym56
if false {
} else {
z.F.EncMapStringStringV(x.Labels, false, e)
......@@ -592,7 +628,7 @@ func (x *SimpleRoot) CodecEncodeSelf(e *codec1978.Encoder) {
}
}
}
if yyr35 || yy2arr35 {
if yyr39 || yy2arr39 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
z.EncSendContainerState(codecSelfer_containerMapEnd1234)
......@@ -605,25 +641,25 @@ func (x *SimpleRoot) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym51 := z.DecBinary()
_ = yym51
yym57 := z.DecBinary()
_ = yym57
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
yyct52 := r.ContainerType()
if yyct52 == codecSelferValueTypeMap1234 {
yyl52 := r.ReadMapStart()
if yyl52 == 0 {
yyct58 := r.ContainerType()
if yyct58 == codecSelferValueTypeMap1234 {
yyl58 := r.ReadMapStart()
if yyl58 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else {
x.codecDecodeSelfFromMap(yyl52, d)
x.codecDecodeSelfFromMap(yyl58, d)
}
} else if yyct52 == codecSelferValueTypeArray1234 {
yyl52 := r.ReadArrayStart()
if yyl52 == 0 {
} else if yyct58 == codecSelferValueTypeArray1234 {
yyl58 := r.ReadArrayStart()
if yyl58 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
x.codecDecodeSelfFromArray(yyl52, d)
x.codecDecodeSelfFromArray(yyl58, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
......@@ -635,12 +671,12 @@ func (x *SimpleRoot) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys53Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys53Slc
var yyhl53 bool = l >= 0
for yyj53 := 0; ; yyj53++ {
if yyhl53 {
if yyj53 >= l {
var yys59Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys59Slc
var yyhl59 bool = l >= 0
for yyj59 := 0; ; yyj59++ {
if yyhl59 {
if yyj59 >= l {
break
}
} else {
......@@ -649,10 +685,10 @@ func (x *SimpleRoot) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
}
z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys53Slc = r.DecodeBytes(yys53Slc, true, true)
yys53 := string(yys53Slc)
yys59Slc = r.DecodeBytes(yys59Slc, true, true)
yys59 := string(yys59Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys53 {
switch yys59 {
case "kind":
if r.TryDecodeAsNil() {
x.Kind = ""
......@@ -669,8 +705,14 @@ func (x *SimpleRoot) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{}
} else {
yyv56 := &x.ObjectMeta
yyv56.CodecDecodeSelf(d)
yyv62 := &x.ObjectMeta
yym63 := z.DecBinary()
_ = yym63
if false {
} else if z.HasExtensions() && z.DecExt(yyv62) {
} else {
z.DecFallback(yyv62, false)
}
}
case "other":
if r.TryDecodeAsNil() {
......@@ -682,18 +724,18 @@ func (x *SimpleRoot) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Labels = nil
} else {
yyv58 := &x.Labels
yym59 := z.DecBinary()
_ = yym59
yyv65 := &x.Labels
yym66 := z.DecBinary()
_ = yym66
if false {
} else {
z.F.DecMapStringStringX(yyv58, false, d)
z.F.DecMapStringStringX(yyv65, false, d)
}
}
default:
z.DecStructFieldNotFound(-1, yys53)
} // end switch yys53
} // end for yyj53
z.DecStructFieldNotFound(-1, yys59)
} // end switch yys59
} // end for yyj59
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
}
......@@ -701,16 +743,16 @@ func (x *SimpleRoot) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj60 int
var yyb60 bool
var yyhl60 bool = l >= 0
yyj60++
if yyhl60 {
yyb60 = yyj60 > l
var yyj67 int
var yyb67 bool
var yyhl67 bool = l >= 0
yyj67++
if yyhl67 {
yyb67 = yyj67 > l
} else {
yyb60 = r.CheckBreak()
yyb67 = r.CheckBreak()
}
if yyb60 {
if yyb67 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -720,13 +762,13 @@ func (x *SimpleRoot) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Kind = string(r.DecodeString())
}
yyj60++
if yyhl60 {
yyb60 = yyj60 > l
yyj67++
if yyhl67 {
yyb67 = yyj67 > l
} else {
yyb60 = r.CheckBreak()
yyb67 = r.CheckBreak()
}
if yyb60 {
if yyb67 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -736,13 +778,13 @@ func (x *SimpleRoot) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.APIVersion = string(r.DecodeString())
}
yyj60++
if yyhl60 {
yyb60 = yyj60 > l
yyj67++
if yyhl67 {
yyb67 = yyj67 > l
} else {
yyb60 = r.CheckBreak()
yyb67 = r.CheckBreak()
}
if yyb60 {
if yyb67 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -750,16 +792,22 @@ func (x *SimpleRoot) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{}
} else {
yyv63 := &x.ObjectMeta
yyv63.CodecDecodeSelf(d)
yyv70 := &x.ObjectMeta
yym71 := z.DecBinary()
_ = yym71
if false {
} else if z.HasExtensions() && z.DecExt(yyv70) {
} else {
z.DecFallback(yyv70, false)
}
}
yyj60++
if yyhl60 {
yyb60 = yyj60 > l
yyj67++
if yyhl67 {
yyb67 = yyj67 > l
} else {
yyb60 = r.CheckBreak()
yyb67 = r.CheckBreak()
}
if yyb60 {
if yyb67 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -769,13 +817,13 @@ func (x *SimpleRoot) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Other = string(r.DecodeString())
}
yyj60++
if yyhl60 {
yyb60 = yyj60 > l
yyj67++
if yyhl67 {
yyb67 = yyj67 > l
} else {
yyb60 = r.CheckBreak()
yyb67 = r.CheckBreak()
}
if yyb60 {
if yyb67 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -783,26 +831,26 @@ func (x *SimpleRoot) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Labels = nil
} else {
yyv65 := &x.Labels
yym66 := z.DecBinary()
_ = yym66
yyv73 := &x.Labels
yym74 := z.DecBinary()
_ = yym74
if false {
} else {
z.F.DecMapStringStringX(yyv65, false, d)
z.F.DecMapStringStringX(yyv73, false, d)
}
}
for {
yyj60++
if yyhl60 {
yyb60 = yyj60 > l
yyj67++
if yyhl67 {
yyb67 = yyj67 > l
} else {
yyb60 = r.CheckBreak()
yyb67 = r.CheckBreak()
}
if yyb60 {
if yyb67 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj60-1, "")
z.DecStructFieldNotFound(yyj67-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
......@@ -814,36 +862,36 @@ func (x *SimpleGetOptions) CodecEncodeSelf(e *codec1978.Encoder) {
if x == nil {
r.EncodeNil()
} else {
yym67 := z.EncBinary()
_ = yym67
yym75 := z.EncBinary()
_ = yym75
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
yysep68 := !z.EncBinary()
yy2arr68 := z.EncBasicHandle().StructToArray
var yyq68 [5]bool
_, _, _ = yysep68, yyq68, yy2arr68
const yyr68 bool = false
yyq68[0] = x.Kind != ""
yyq68[1] = x.APIVersion != ""
var yynn68 int
if yyr68 || yy2arr68 {
yysep76 := !z.EncBinary()
yy2arr76 := z.EncBasicHandle().StructToArray
var yyq76 [5]bool
_, _, _ = yysep76, yyq76, yy2arr76
const yyr76 bool = false
yyq76[0] = x.Kind != ""
yyq76[1] = x.APIVersion != ""
var yynn76 int
if yyr76 || yy2arr76 {
r.EncodeArrayStart(5)
} else {
yynn68 = 3
for _, b := range yyq68 {
yynn76 = 3
for _, b := range yyq76 {
if b {
yynn68++
yynn76++
}
}
r.EncodeMapStart(yynn68)
yynn68 = 0
r.EncodeMapStart(yynn76)
yynn76 = 0
}
if yyr68 || yy2arr68 {
if yyr76 || yy2arr76 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq68[0] {
yym70 := z.EncBinary()
_ = yym70
if yyq76[0] {
yym78 := z.EncBinary()
_ = yym78
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
......@@ -852,23 +900,23 @@ func (x *SimpleGetOptions) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq68[0] {
if yyq76[0] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("kind"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym71 := z.EncBinary()
_ = yym71
yym79 := z.EncBinary()
_ = yym79
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr68 || yy2arr68 {
if yyr76 || yy2arr76 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq68[1] {
yym73 := z.EncBinary()
_ = yym73
if yyq76[1] {
yym81 := z.EncBinary()
_ = yym81
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
......@@ -877,22 +925,22 @@ func (x *SimpleGetOptions) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq68[1] {
if yyq76[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym74 := z.EncBinary()
_ = yym74
yym82 := z.EncBinary()
_ = yym82
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
}
}
if yyr68 || yy2arr68 {
if yyr76 || yy2arr76 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym76 := z.EncBinary()
_ = yym76
yym84 := z.EncBinary()
_ = yym84
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Param1))
......@@ -901,17 +949,17 @@ func (x *SimpleGetOptions) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("param1"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym77 := z.EncBinary()
_ = yym77
yym85 := z.EncBinary()
_ = yym85
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Param1))
}
}
if yyr68 || yy2arr68 {
if yyr76 || yy2arr76 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym79 := z.EncBinary()
_ = yym79
yym87 := z.EncBinary()
_ = yym87
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Param2))
......@@ -920,17 +968,17 @@ func (x *SimpleGetOptions) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("param2"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym80 := z.EncBinary()
_ = yym80
yym88 := z.EncBinary()
_ = yym88
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Param2))
}
}
if yyr68 || yy2arr68 {
if yyr76 || yy2arr76 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym82 := z.EncBinary()
_ = yym82
yym90 := z.EncBinary()
_ = yym90
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Path))
......@@ -939,14 +987,14 @@ func (x *SimpleGetOptions) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("atAPath"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym83 := z.EncBinary()
_ = yym83
yym91 := z.EncBinary()
_ = yym91
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Path))
}
}
if yyr68 || yy2arr68 {
if yyr76 || yy2arr76 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
z.EncSendContainerState(codecSelfer_containerMapEnd1234)
......@@ -959,25 +1007,25 @@ func (x *SimpleGetOptions) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym84 := z.DecBinary()
_ = yym84
yym92 := z.DecBinary()
_ = yym92
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
yyct85 := r.ContainerType()
if yyct85 == codecSelferValueTypeMap1234 {
yyl85 := r.ReadMapStart()
if yyl85 == 0 {
yyct93 := r.ContainerType()
if yyct93 == codecSelferValueTypeMap1234 {
yyl93 := r.ReadMapStart()
if yyl93 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else {
x.codecDecodeSelfFromMap(yyl85, d)
x.codecDecodeSelfFromMap(yyl93, d)
}
} else if yyct85 == codecSelferValueTypeArray1234 {
yyl85 := r.ReadArrayStart()
if yyl85 == 0 {
} else if yyct93 == codecSelferValueTypeArray1234 {
yyl93 := r.ReadArrayStart()
if yyl93 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
x.codecDecodeSelfFromArray(yyl85, d)
x.codecDecodeSelfFromArray(yyl93, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
......@@ -989,12 +1037,12 @@ func (x *SimpleGetOptions) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys86Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys86Slc
var yyhl86 bool = l >= 0
for yyj86 := 0; ; yyj86++ {
if yyhl86 {
if yyj86 >= l {
var yys94Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys94Slc
var yyhl94 bool = l >= 0
for yyj94 := 0; ; yyj94++ {
if yyhl94 {
if yyj94 >= l {
break
}
} else {
......@@ -1003,10 +1051,10 @@ func (x *SimpleGetOptions) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
}
z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys86Slc = r.DecodeBytes(yys86Slc, true, true)
yys86 := string(yys86Slc)
yys94Slc = r.DecodeBytes(yys94Slc, true, true)
yys94 := string(yys94Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys86 {
switch yys94 {
case "kind":
if r.TryDecodeAsNil() {
x.Kind = ""
......@@ -1038,9 +1086,9 @@ func (x *SimpleGetOptions) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
x.Path = string(r.DecodeString())
}
default:
z.DecStructFieldNotFound(-1, yys86)
} // end switch yys86
} // end for yyj86
z.DecStructFieldNotFound(-1, yys94)
} // end switch yys94
} // end for yyj94
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
}
......@@ -1048,16 +1096,16 @@ func (x *SimpleGetOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj92 int
var yyb92 bool
var yyhl92 bool = l >= 0
yyj92++
if yyhl92 {
yyb92 = yyj92 > l
var yyj100 int
var yyb100 bool
var yyhl100 bool = l >= 0
yyj100++
if yyhl100 {
yyb100 = yyj100 > l
} else {
yyb92 = r.CheckBreak()
yyb100 = r.CheckBreak()
}
if yyb92 {
if yyb100 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -1067,13 +1115,13 @@ func (x *SimpleGetOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
} else {
x.Kind = string(r.DecodeString())
}
yyj92++
if yyhl92 {
yyb92 = yyj92 > l
yyj100++
if yyhl100 {
yyb100 = yyj100 > l
} else {
yyb92 = r.CheckBreak()
yyb100 = r.CheckBreak()
}
if yyb92 {
if yyb100 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -1083,13 +1131,13 @@ func (x *SimpleGetOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
} else {
x.APIVersion = string(r.DecodeString())
}
yyj92++
if yyhl92 {
yyb92 = yyj92 > l
yyj100++
if yyhl100 {
yyb100 = yyj100 > l
} else {
yyb92 = r.CheckBreak()
yyb100 = r.CheckBreak()
}
if yyb92 {
if yyb100 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -1099,13 +1147,13 @@ func (x *SimpleGetOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
} else {
x.Param1 = string(r.DecodeString())
}
yyj92++
if yyhl92 {
yyb92 = yyj92 > l
yyj100++
if yyhl100 {
yyb100 = yyj100 > l
} else {
yyb92 = r.CheckBreak()
yyb100 = r.CheckBreak()
}
if yyb92 {
if yyb100 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -1115,13 +1163,13 @@ func (x *SimpleGetOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
} else {
x.Param2 = string(r.DecodeString())
}
yyj92++
if yyhl92 {
yyb92 = yyj92 > l
yyj100++
if yyhl100 {
yyb100 = yyj100 > l
} else {
yyb92 = r.CheckBreak()
yyb100 = r.CheckBreak()
}
if yyb92 {
if yyb100 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -1132,17 +1180,17 @@ func (x *SimpleGetOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
x.Path = string(r.DecodeString())
}
for {
yyj92++
if yyhl92 {
yyb92 = yyj92 > l
yyj100++
if yyhl100 {
yyb100 = yyj100 > l
} else {
yyb92 = r.CheckBreak()
yyb100 = r.CheckBreak()
}
if yyb92 {
if yyb100 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj92-1, "")
z.DecStructFieldNotFound(yyj100-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
......@@ -1154,37 +1202,37 @@ func (x *SimpleList) CodecEncodeSelf(e *codec1978.Encoder) {
if x == nil {
r.EncodeNil()
} else {
yym98 := z.EncBinary()
_ = yym98
yym106 := z.EncBinary()
_ = yym106
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
yysep99 := !z.EncBinary()
yy2arr99 := z.EncBasicHandle().StructToArray
var yyq99 [4]bool
_, _, _ = yysep99, yyq99, yy2arr99
const yyr99 bool = false
yyq99[0] = x.Kind != ""
yyq99[1] = x.APIVersion != ""
yyq99[3] = len(x.Items) != 0
var yynn99 int
if yyr99 || yy2arr99 {
yysep107 := !z.EncBinary()
yy2arr107 := z.EncBasicHandle().StructToArray
var yyq107 [4]bool
_, _, _ = yysep107, yyq107, yy2arr107
const yyr107 bool = false
yyq107[0] = x.Kind != ""
yyq107[1] = x.APIVersion != ""
yyq107[3] = len(x.Items) != 0
var yynn107 int
if yyr107 || yy2arr107 {
r.EncodeArrayStart(4)
} else {
yynn99 = 1
for _, b := range yyq99 {
yynn107 = 1
for _, b := range yyq107 {
if b {
yynn99++
yynn107++
}
}
r.EncodeMapStart(yynn99)
yynn99 = 0
r.EncodeMapStart(yynn107)
yynn107 = 0
}
if yyr99 || yy2arr99 {
if yyr107 || yy2arr107 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq99[0] {
yym101 := z.EncBinary()
_ = yym101
if yyq107[0] {
yym109 := z.EncBinary()
_ = yym109
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
......@@ -1193,23 +1241,23 @@ func (x *SimpleList) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq99[0] {
if yyq107[0] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("kind"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym102 := z.EncBinary()
_ = yym102
yym110 := z.EncBinary()
_ = yym110
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr99 || yy2arr99 {
if yyr107 || yy2arr107 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq99[1] {
yym104 := z.EncBinary()
_ = yym104
if yyq107[1] {
yym112 := z.EncBinary()
_ = yym112
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
......@@ -1218,49 +1266,49 @@ func (x *SimpleList) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq99[1] {
if yyq107[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym105 := z.EncBinary()
_ = yym105
yym113 := z.EncBinary()
_ = yym113
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
}
}
if yyr99 || yy2arr99 {
if yyr107 || yy2arr107 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yy107 := &x.ListMeta
yym108 := z.EncBinary()
_ = yym108
yy115 := &x.ListMeta
yym116 := z.EncBinary()
_ = yym116
if false {
} else if z.HasExtensions() && z.EncExt(yy107) {
} else if z.HasExtensions() && z.EncExt(yy115) {
} else {
z.EncFallback(yy107)
z.EncFallback(yy115)
}
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy109 := &x.ListMeta
yym110 := z.EncBinary()
_ = yym110
yy117 := &x.ListMeta
yym118 := z.EncBinary()
_ = yym118
if false {
} else if z.HasExtensions() && z.EncExt(yy109) {
} else if z.HasExtensions() && z.EncExt(yy117) {
} else {
z.EncFallback(yy109)
z.EncFallback(yy117)
}
}
if yyr99 || yy2arr99 {
if yyr107 || yy2arr107 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq99[3] {
if yyq107[3] {
if x.Items == nil {
r.EncodeNil()
} else {
yym112 := z.EncBinary()
_ = yym112
yym120 := z.EncBinary()
_ = yym120
if false {
} else {
h.encSliceSimple(([]Simple)(x.Items), e)
......@@ -1270,15 +1318,15 @@ func (x *SimpleList) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeNil()
}
} else {
if yyq99[3] {
if yyq107[3] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("items"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
if x.Items == nil {
r.EncodeNil()
} else {
yym113 := z.EncBinary()
_ = yym113
yym121 := z.EncBinary()
_ = yym121
if false {
} else {
h.encSliceSimple(([]Simple)(x.Items), e)
......@@ -1286,7 +1334,7 @@ func (x *SimpleList) CodecEncodeSelf(e *codec1978.Encoder) {
}
}
}
if yyr99 || yy2arr99 {
if yyr107 || yy2arr107 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
z.EncSendContainerState(codecSelfer_containerMapEnd1234)
......@@ -1299,25 +1347,25 @@ func (x *SimpleList) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym114 := z.DecBinary()
_ = yym114
yym122 := z.DecBinary()
_ = yym122
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
yyct115 := r.ContainerType()
if yyct115 == codecSelferValueTypeMap1234 {
yyl115 := r.ReadMapStart()
if yyl115 == 0 {
yyct123 := r.ContainerType()
if yyct123 == codecSelferValueTypeMap1234 {
yyl123 := r.ReadMapStart()
if yyl123 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else {
x.codecDecodeSelfFromMap(yyl115, d)
x.codecDecodeSelfFromMap(yyl123, d)
}
} else if yyct115 == codecSelferValueTypeArray1234 {
yyl115 := r.ReadArrayStart()
if yyl115 == 0 {
} else if yyct123 == codecSelferValueTypeArray1234 {
yyl123 := r.ReadArrayStart()
if yyl123 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
x.codecDecodeSelfFromArray(yyl115, d)
x.codecDecodeSelfFromArray(yyl123, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
......@@ -1329,12 +1377,12 @@ func (x *SimpleList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys116Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys116Slc
var yyhl116 bool = l >= 0
for yyj116 := 0; ; yyj116++ {
if yyhl116 {
if yyj116 >= l {
var yys124Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys124Slc
var yyhl124 bool = l >= 0
for yyj124 := 0; ; yyj124++ {
if yyhl124 {
if yyj124 >= l {
break
}
} else {
......@@ -1343,10 +1391,10 @@ func (x *SimpleList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
}
z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys116Slc = r.DecodeBytes(yys116Slc, true, true)
yys116 := string(yys116Slc)
yys124Slc = r.DecodeBytes(yys124Slc, true, true)
yys124 := string(yys124Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys116 {
switch yys124 {
case "kind":
if r.TryDecodeAsNil() {
x.Kind = ""
......@@ -1363,31 +1411,31 @@ func (x *SimpleList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ListMeta = pkg1_unversioned.ListMeta{}
} else {
yyv119 := &x.ListMeta
yym120 := z.DecBinary()
_ = yym120
yyv127 := &x.ListMeta
yym128 := z.DecBinary()
_ = yym128
if false {
} else if z.HasExtensions() && z.DecExt(yyv119) {
} else if z.HasExtensions() && z.DecExt(yyv127) {
} else {
z.DecFallback(yyv119, false)
z.DecFallback(yyv127, false)
}
}
case "items":
if r.TryDecodeAsNil() {
x.Items = nil
} else {
yyv121 := &x.Items
yym122 := z.DecBinary()
_ = yym122
yyv129 := &x.Items
yym130 := z.DecBinary()
_ = yym130
if false {
} else {
h.decSliceSimple((*[]Simple)(yyv121), d)
h.decSliceSimple((*[]Simple)(yyv129), d)
}
}
default:
z.DecStructFieldNotFound(-1, yys116)
} // end switch yys116
} // end for yyj116
z.DecStructFieldNotFound(-1, yys124)
} // end switch yys124
} // end for yyj124
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
}
......@@ -1395,16 +1443,16 @@ func (x *SimpleList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj123 int
var yyb123 bool
var yyhl123 bool = l >= 0
yyj123++
if yyhl123 {
yyb123 = yyj123 > l
var yyj131 int
var yyb131 bool
var yyhl131 bool = l >= 0
yyj131++
if yyhl131 {
yyb131 = yyj131 > l
} else {
yyb123 = r.CheckBreak()
yyb131 = r.CheckBreak()
}
if yyb123 {
if yyb131 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -1414,13 +1462,13 @@ func (x *SimpleList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Kind = string(r.DecodeString())
}
yyj123++
if yyhl123 {
yyb123 = yyj123 > l
yyj131++
if yyhl131 {
yyb131 = yyj131 > l
} else {
yyb123 = r.CheckBreak()
yyb131 = r.CheckBreak()
}
if yyb123 {
if yyb131 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -1430,13 +1478,13 @@ func (x *SimpleList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.APIVersion = string(r.DecodeString())
}
yyj123++
if yyhl123 {
yyb123 = yyj123 > l
yyj131++
if yyhl131 {
yyb131 = yyj131 > l
} else {
yyb123 = r.CheckBreak()
yyb131 = r.CheckBreak()
}
if yyb123 {
if yyb131 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -1444,22 +1492,22 @@ func (x *SimpleList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ListMeta = pkg1_unversioned.ListMeta{}
} else {
yyv126 := &x.ListMeta
yym127 := z.DecBinary()
_ = yym127
yyv134 := &x.ListMeta
yym135 := z.DecBinary()
_ = yym135
if false {
} else if z.HasExtensions() && z.DecExt(yyv126) {
} else if z.HasExtensions() && z.DecExt(yyv134) {
} else {
z.DecFallback(yyv126, false)
z.DecFallback(yyv134, false)
}
}
yyj123++
if yyhl123 {
yyb123 = yyj123 > l
yyj131++
if yyhl131 {
yyb131 = yyj131 > l
} else {
yyb123 = r.CheckBreak()
yyb131 = r.CheckBreak()
}
if yyb123 {
if yyb131 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -1467,26 +1515,26 @@ func (x *SimpleList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Items = nil
} else {
yyv128 := &x.Items
yym129 := z.DecBinary()
_ = yym129
yyv136 := &x.Items
yym137 := z.DecBinary()
_ = yym137
if false {
} else {
h.decSliceSimple((*[]Simple)(yyv128), d)
h.decSliceSimple((*[]Simple)(yyv136), d)
}
}
for {
yyj123++
if yyhl123 {
yyb123 = yyj123 > l
yyj131++
if yyhl131 {
yyb131 = yyj131 > l
} else {
yyb123 = r.CheckBreak()
yyb131 = r.CheckBreak()
}
if yyb123 {
if yyb131 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj123-1, "")
z.DecStructFieldNotFound(yyj131-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
......@@ -1496,10 +1544,10 @@ func (x codecSelfer1234) encSliceSimple(v []Simple, e *codec1978.Encoder) {
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
r.EncodeArrayStart(len(v))
for _, yyv130 := range v {
for _, yyv138 := range v {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yy131 := &yyv130
yy131.CodecEncodeSelf(e)
yy139 := &yyv138
yy139.CodecEncodeSelf(e)
}
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
}
......@@ -1509,83 +1557,83 @@ func (x codecSelfer1234) decSliceSimple(v *[]Simple, d *codec1978.Decoder) {
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yyv132 := *v
yyh132, yyl132 := z.DecSliceHelperStart()
var yyc132 bool
if yyl132 == 0 {
if yyv132 == nil {
yyv132 = []Simple{}
yyc132 = true
} else if len(yyv132) != 0 {
yyv132 = yyv132[:0]
yyc132 = true
yyv140 := *v
yyh140, yyl140 := z.DecSliceHelperStart()
var yyc140 bool
if yyl140 == 0 {
if yyv140 == nil {
yyv140 = []Simple{}
yyc140 = true
} else if len(yyv140) != 0 {
yyv140 = yyv140[:0]
yyc140 = true
}
} else if yyl132 > 0 {
var yyrr132, yyrl132 int
var yyrt132 bool
if yyl132 > cap(yyv132) {
} else if yyl140 > 0 {
var yyrr140, yyrl140 int
var yyrt140 bool
if yyl140 > cap(yyv140) {
yyrg132 := len(yyv132) > 0
yyv2132 := yyv132
yyrl132, yyrt132 = z.DecInferLen(yyl132, z.DecBasicHandle().MaxInitLen, 216)
if yyrt132 {
if yyrl132 <= cap(yyv132) {
yyv132 = yyv132[:yyrl132]
yyrg140 := len(yyv140) > 0
yyv2140 := yyv140
yyrl140, yyrt140 = z.DecInferLen(yyl140, z.DecBasicHandle().MaxInitLen, 216)
if yyrt140 {
if yyrl140 <= cap(yyv140) {
yyv140 = yyv140[:yyrl140]
} else {
yyv132 = make([]Simple, yyrl132)
yyv140 = make([]Simple, yyrl140)
}
} else {
yyv132 = make([]Simple, yyrl132)
yyv140 = make([]Simple, yyrl140)
}
yyc132 = true
yyrr132 = len(yyv132)
if yyrg132 {
copy(yyv132, yyv2132)
yyc140 = true
yyrr140 = len(yyv140)
if yyrg140 {
copy(yyv140, yyv2140)
}
} else if yyl132 != len(yyv132) {
yyv132 = yyv132[:yyl132]
yyc132 = true
} else if yyl140 != len(yyv140) {
yyv140 = yyv140[:yyl140]
yyc140 = true
}
yyj132 := 0
for ; yyj132 < yyrr132; yyj132++ {
yyh132.ElemContainerState(yyj132)
yyj140 := 0
for ; yyj140 < yyrr140; yyj140++ {
yyh140.ElemContainerState(yyj140)
if r.TryDecodeAsNil() {
yyv132[yyj132] = Simple{}
yyv140[yyj140] = Simple{}
} else {
yyv133 := &yyv132[yyj132]
yyv133.CodecDecodeSelf(d)
yyv141 := &yyv140[yyj140]
yyv141.CodecDecodeSelf(d)
}
}
if yyrt132 {
for ; yyj132 < yyl132; yyj132++ {
yyv132 = append(yyv132, Simple{})
yyh132.ElemContainerState(yyj132)
if yyrt140 {
for ; yyj140 < yyl140; yyj140++ {
yyv140 = append(yyv140, Simple{})
yyh140.ElemContainerState(yyj140)
if r.TryDecodeAsNil() {
yyv132[yyj132] = Simple{}
yyv140[yyj140] = Simple{}
} else {
yyv134 := &yyv132[yyj132]
yyv134.CodecDecodeSelf(d)
yyv142 := &yyv140[yyj140]
yyv142.CodecDecodeSelf(d)
}
}
}
} else {
yyj132 := 0
for ; !r.CheckBreak(); yyj132++ {
yyj140 := 0
for ; !r.CheckBreak(); yyj140++ {
if yyj132 >= len(yyv132) {
yyv132 = append(yyv132, Simple{}) // var yyz132 Simple
yyc132 = true
if yyj140 >= len(yyv140) {
yyv140 = append(yyv140, Simple{}) // var yyz140 Simple
yyc140 = true
}
yyh132.ElemContainerState(yyj132)
if yyj132 < len(yyv132) {
yyh140.ElemContainerState(yyj140)
if yyj140 < len(yyv140) {
if r.TryDecodeAsNil() {
yyv132[yyj132] = Simple{}
yyv140[yyj140] = Simple{}
} else {
yyv135 := &yyv132[yyj132]
yyv135.CodecDecodeSelf(d)
yyv143 := &yyv140[yyj140]
yyv143.CodecDecodeSelf(d)
}
} else {
......@@ -1593,16 +1641,16 @@ func (x codecSelfer1234) decSliceSimple(v *[]Simple, d *codec1978.Decoder) {
}
}
if yyj132 < len(yyv132) {
yyv132 = yyv132[:yyj132]
yyc132 = true
} else if yyj132 == 0 && yyv132 == nil {
yyv132 = []Simple{}
yyc132 = true
if yyj140 < len(yyv140) {
yyv140 = yyv140[:yyj140]
yyc140 = true
} else if yyj140 == 0 && yyv140 == nil {
yyv140 = []Simple{}
yyc140 = true
}
}
yyh132.End()
if yyc132 {
*v = yyv132
yyh140.End()
if yyc140 {
*v = yyv140
}
}
......@@ -64,6 +64,8 @@ type JobController struct {
// Jobs that need to be updated
queue *workqueue.Type
recorder record.EventRecorder
}
func NewJobController(kubeClient client.Interface, resyncPeriod controller.ResyncPeriodFunc) *JobController {
......@@ -75,10 +77,11 @@ func NewJobController(kubeClient client.Interface, resyncPeriod controller.Resyn
kubeClient: kubeClient,
podControl: controller.RealPodControl{
KubeClient: kubeClient,
Recorder: eventBroadcaster.NewRecorder(api.EventSource{Component: "job"}),
Recorder: eventBroadcaster.NewRecorder(api.EventSource{Component: "job-controller"}),
},
expectations: controller.NewControllerExpectations(),
queue: workqueue.New(),
recorder: eventBroadcaster.NewRecorder(api.EventSource{Component: "job-controller"}),
}
jm.jobStore.Store, jm.jobController = framework.NewInformer(
......@@ -322,16 +325,52 @@ func (jm *JobController) syncJob(key string) error {
activePods := controller.FilterActivePods(podList.Items)
active := len(activePods)
succeeded, failed := getStatus(podList.Items)
if jobNeedsSync {
active = jm.manageJob(activePods, succeeded, &job)
conditions := len(job.Status.Conditions)
if job.Status.StartTime == nil {
now := unversioned.Now()
job.Status.StartTime = &now
}
completions := succeeded
if completions == *job.Spec.Completions {
job.Status.Conditions = append(job.Status.Conditions, newCondition())
if pastActiveDeadline(&job) {
// if job was finished previously, we don't want to redo the termination
if isJobFinished(&job) {
return nil
}
// TODO: below code should be replaced with pod termination resulting in
// pod failures, rather than killing pods. Unfortunately none such solution
// exists ATM. There's an open discussion in the topic in
// https://github.com/kubernetes/kubernetes/issues/14602 which might give
// some sort of solution to above problem.
// kill remaining active pods
wait := sync.WaitGroup{}
wait.Add(active)
for i := 0; i < active; i++ {
go func(ix int) {
defer wait.Done()
if err := jm.podControl.DeletePod(job.Namespace, activePods[ix].Name); err != nil {
defer util.HandleError(err)
}
}(i)
}
wait.Wait()
// update status values accordingly
failed += active
active = 0
job.Status.Conditions = append(job.Status.Conditions, newCondition(extensions.JobFailed, "DeadlineExceeded", "Job was active longer than specified deadline"))
jm.recorder.Event(&job, api.EventTypeNormal, "DeadlineExceeded", "Job was active longer than specified deadline")
} else {
if jobNeedsSync {
active = jm.manageJob(activePods, succeeded, &job)
}
completions := succeeded
if completions == *job.Spec.Completions {
job.Status.Conditions = append(job.Status.Conditions, newCondition(extensions.JobComplete, "", ""))
now := unversioned.Now()
job.Status.CompletionTime = &now
}
}
// no need to update the job if the status hasn't changed since last time
if job.Status.Active != active || job.Status.Succeeded != succeeded || job.Status.Failed != failed {
if job.Status.Active != active || job.Status.Succeeded != succeeded || job.Status.Failed != failed || len(job.Status.Conditions) != conditions {
job.Status.Active = active
job.Status.Succeeded = succeeded
job.Status.Failed = failed
......@@ -344,21 +383,38 @@ func (jm *JobController) syncJob(key string) error {
return nil
}
func newCondition() extensions.JobCondition {
// pastActiveDeadline checks if job has ActiveDeadlineSeconds field set and if it is exceeded.
func pastActiveDeadline(job *extensions.Job) bool {
if job.Spec.ActiveDeadlineSeconds == nil || job.Status.StartTime == nil {
return false
}
now := unversioned.Now()
start := job.Status.StartTime.Time
duration := now.Time.Sub(start)
allowedDuration := time.Duration(*job.Spec.ActiveDeadlineSeconds) * time.Second
return duration >= allowedDuration
}
func newCondition(conditionType extensions.JobConditionType, reason, message string) extensions.JobCondition {
return extensions.JobCondition{
Type: extensions.JobComplete,
Type: conditionType,
Status: api.ConditionTrue,
LastProbeTime: unversioned.Now(),
LastTransitionTime: unversioned.Now(),
Reason: reason,
Message: message,
}
}
// getStatus returns no of succeeded and failed pods running a job
func getStatus(pods []api.Pod) (succeeded, failed int) {
succeeded = filterPods(pods, api.PodSucceeded)
failed = filterPods(pods, api.PodFailed)
return
}
// manageJob is the core method responsible for managing the number of running
// pods according to what is specified in the job.Spec.
func (jm *JobController) manageJob(activePods []*api.Pod, succeeded int, job *extensions.Job) int {
var activeLock sync.Mutex
active := len(activePods)
......@@ -447,7 +503,7 @@ func filterPods(pods []api.Pod, phase api.PodPhase) int {
func isJobFinished(j *extensions.Job) bool {
for _, c := range j.Status.Conditions {
if c.Type == extensions.JobComplete && c.Status == api.ConditionTrue {
if (c.Type == extensions.JobComplete || c.Type == extensions.JobFailed) && c.Status == api.ConditionTrue {
return true
}
}
......
......@@ -23,6 +23,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apis/extensions"
client "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/client/unversioned/testclient"
......@@ -209,22 +210,158 @@ func TestControllerSyncJob(t *testing.T) {
if actual.Status.Failed != tc.expectedFailed {
t.Errorf("%s: unexpected number of failed pods. Expected %d, saw %d\n", name, tc.expectedFailed, actual.Status.Failed)
}
if actual.Status.StartTime == nil {
t.Errorf("%s: .status.startTime was not set", name)
}
// validate conditions
if tc.expectedComplete {
completed := false
for _, v := range actual.Status.Conditions {
if v.Type == extensions.JobComplete && v.Status == api.ConditionTrue {
completed = true
break
}
}
if !completed {
t.Errorf("%s: expected completion condition. Got %v", name, actual.Status.Conditions)
}
if tc.expectedComplete && !getCondition(actual, extensions.JobComplete) {
t.Errorf("%s: expected completion condition. Got %#v", name, actual.Status.Conditions)
}
}
}
func TestSyncJobPastDeadline(t *testing.T) {
testCases := map[string]struct {
// job setup
parallelism int
completions int
activeDeadlineSeconds int64
startTime int64
// pod setup
activePods int
succeededPods int
failedPods int
// expectations
expectedDeletions int
expectedActive int
expectedSucceeded int
expectedFailed int
}{
"activeDeadlineSeconds less than single pod execution": {
1, 1, 10, 15,
1, 0, 0,
1, 0, 0, 1,
},
"activeDeadlineSeconds bigger than single pod execution": {
1, 2, 10, 15,
1, 1, 0,
1, 0, 1, 1,
},
"activeDeadlineSeconds times-out before any pod starts": {
1, 1, 10, 10,
0, 0, 0,
0, 0, 0, 0,
},
}
for name, tc := range testCases {
// job manager setup
client := client.NewOrDie(&client.Config{Host: "", GroupVersion: testapi.Default.GroupVersion()})
manager := NewJobController(client, controller.NoResyncPeriodFunc)
fakePodControl := controller.FakePodControl{}
manager.podControl = &fakePodControl
manager.podStoreSynced = alwaysReady
var actual *extensions.Job
manager.updateHandler = func(job *extensions.Job) error {
actual = job
return nil
}
// job & pods setup
job := newJob(tc.parallelism, tc.completions)
job.Spec.ActiveDeadlineSeconds = &tc.activeDeadlineSeconds
start := unversioned.Unix(unversioned.Now().Time.Unix()-tc.startTime, 0)
job.Status.StartTime = &start
manager.jobStore.Store.Add(job)
for _, pod := range newPodList(tc.activePods, api.PodRunning, job) {
manager.podStore.Store.Add(&pod)
}
for _, pod := range newPodList(tc.succeededPods, api.PodSucceeded, job) {
manager.podStore.Store.Add(&pod)
}
for _, pod := range newPodList(tc.failedPods, api.PodFailed, job) {
manager.podStore.Store.Add(&pod)
}
// run
err := manager.syncJob(getKey(job, t))
if err != nil {
t.Errorf("%s: unexpected error when syncing jobs %v", err)
}
// validate created/deleted pods
if len(fakePodControl.Templates) != 0 {
t.Errorf("%s: unexpected number of creates. Expected 0, saw %d\n", name, len(fakePodControl.Templates))
}
if len(fakePodControl.DeletePodName) != tc.expectedDeletions {
t.Errorf("%s: unexpected number of deletes. Expected %d, saw %d\n", name, tc.expectedDeletions, len(fakePodControl.DeletePodName))
}
// validate status
if actual.Status.Active != tc.expectedActive {
t.Errorf("%s: unexpected number of active pods. Expected %d, saw %d\n", name, tc.expectedActive, actual.Status.Active)
}
if actual.Status.Succeeded != tc.expectedSucceeded {
t.Errorf("%s: unexpected number of succeeded pods. Expected %d, saw %d\n", name, tc.expectedSucceeded, actual.Status.Succeeded)
}
if actual.Status.Failed != tc.expectedFailed {
t.Errorf("%s: unexpected number of failed pods. Expected %d, saw %d\n", name, tc.expectedFailed, actual.Status.Failed)
}
if actual.Status.StartTime == nil {
t.Errorf("%s: .status.startTime was not set", name)
}
// validate conditions
if !getCondition(actual, extensions.JobFailed) {
t.Errorf("%s: expected fail condition. Got %#v", name, actual.Status.Conditions)
}
}
}
func getCondition(job *extensions.Job, condition extensions.JobConditionType) bool {
for _, v := range job.Status.Conditions {
if v.Type == condition && v.Status == api.ConditionTrue {
return true
}
}
return false
}
func TestSyncPastDeadlineJobFinished(t *testing.T) {
client := client.NewOrDie(&client.Config{Host: "", GroupVersion: testapi.Default.GroupVersion()})
manager := NewJobController(client, controller.NoResyncPeriodFunc)
fakePodControl := controller.FakePodControl{}
manager.podControl = &fakePodControl
manager.podStoreSynced = alwaysReady
var actual *extensions.Job
manager.updateHandler = func(job *extensions.Job) error {
actual = job
return nil
}
job := newJob(1, 1)
activeDeadlineSeconds := int64(10)
job.Spec.ActiveDeadlineSeconds = &activeDeadlineSeconds
start := unversioned.Unix(unversioned.Now().Time.Unix()-15, 0)
job.Status.StartTime = &start
job.Status.Conditions = append(job.Status.Conditions, newCondition(extensions.JobFailed, "DeadlineExceeded", "Job was active longer than specified deadline"))
manager.jobStore.Store.Add(job)
err := manager.syncJob(getKey(job, t))
if err != nil {
t.Errorf("Unexpected error when syncing jobs %v", err)
}
if len(fakePodControl.Templates) != 0 {
t.Errorf("Unexpected number of creates. Expected %d, saw %d\n", 0, len(fakePodControl.Templates))
}
if len(fakePodControl.DeletePodName) != 0 {
t.Errorf("Unexpected number of deletes. Expected %d, saw %d\n", 0, len(fakePodControl.DeletePodName))
}
if actual != nil {
t.Error("Unexpected job modification")
}
}
func TestSyncJobDeleted(t *testing.T) {
client := client.NewOrDie(&client.Config{Host: "", GroupVersion: testapi.Default.GroupVersion()})
manager := NewJobController(client, controller.NoResyncPeriodFunc)
......
......@@ -895,6 +895,12 @@ func describeJob(job *extensions.Job, events *api.EventList) (string, error) {
fmt.Fprintf(out, "Selector:\t%s\n", selector)
fmt.Fprintf(out, "Parallelism:\t%d\n", *job.Spec.Parallelism)
fmt.Fprintf(out, "Completions:\t%d\n", *job.Spec.Completions)
if job.Status.StartTime != nil {
fmt.Fprintf(out, "Start Time:\t%s\n", job.Status.StartTime.Time.Format(time.RFC1123Z))
}
if job.Spec.ActiveDeadlineSeconds != nil {
fmt.Fprintf(out, "Active Deadline Seconds:\t%ds\n", *job.Spec.ActiveDeadlineSeconds)
}
fmt.Fprintf(out, "Labels:\t%s\n", labels.FormatLabels(job.Labels))
fmt.Fprintf(out, "Pods Statuses:\t%d Running / %d Succeeded / %d Failed\n", job.Status.Active, job.Status.Succeeded, job.Status.Failed)
describeVolumes(job.Spec.Template.Spec.Volumes, out)
......
......@@ -158,7 +158,13 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[2] {
yy10 := &x.ObjectMeta
yy10.CodecEncodeSelf(e)
yym11 := z.EncBinary()
_ = yym11
if false {
} else if z.HasExtensions() && z.EncExt(yy10) {
} else {
z.EncFallback(yy10)
}
} else {
r.EncodeNil()
}
......@@ -167,14 +173,20 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy11 := &x.ObjectMeta
yy11.CodecEncodeSelf(e)
yy12 := &x.ObjectMeta
yym13 := z.EncBinary()
_ = yym13
if false {
} else if z.HasExtensions() && z.EncExt(yy12) {
} else {
z.EncFallback(yy12)
}
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym13 := z.EncBinary()
_ = yym13
yym15 := z.EncBinary()
_ = yym15
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Key))
......@@ -183,8 +195,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("Key"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym14 := z.EncBinary()
_ = yym14
yym16 := z.EncBinary()
_ = yym16
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Key))
......@@ -195,8 +207,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.Map == nil {
r.EncodeNil()
} else {
yym16 := z.EncBinary()
_ = yym16
yym18 := z.EncBinary()
_ = yym18
if false {
} else {
z.F.EncMapStringIntV(x.Map, false, e)
......@@ -209,8 +221,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.Map == nil {
r.EncodeNil()
} else {
yym17 := z.EncBinary()
_ = yym17
yym19 := z.EncBinary()
_ = yym19
if false {
} else {
z.F.EncMapStringIntV(x.Map, false, e)
......@@ -222,8 +234,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.StringList == nil {
r.EncodeNil()
} else {
yym19 := z.EncBinary()
_ = yym19
yym21 := z.EncBinary()
_ = yym21
if false {
} else {
z.F.EncSliceStringV(x.StringList, false, e)
......@@ -236,8 +248,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.StringList == nil {
r.EncodeNil()
} else {
yym20 := z.EncBinary()
_ = yym20
yym22 := z.EncBinary()
_ = yym22
if false {
} else {
z.F.EncSliceStringV(x.StringList, false, e)
......@@ -249,8 +261,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.IntList == nil {
r.EncodeNil()
} else {
yym22 := z.EncBinary()
_ = yym22
yym24 := z.EncBinary()
_ = yym24
if false {
} else {
z.F.EncSliceIntV(x.IntList, false, e)
......@@ -263,8 +275,8 @@ func (x *TestStruct) CodecEncodeSelf(e *codec1978.Encoder) {
if x.IntList == nil {
r.EncodeNil()
} else {
yym23 := z.EncBinary()
_ = yym23
yym25 := z.EncBinary()
_ = yym25
if false {
} else {
z.F.EncSliceIntV(x.IntList, false, e)
......@@ -284,25 +296,25 @@ func (x *TestStruct) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym24 := z.DecBinary()
_ = yym24
yym26 := z.DecBinary()
_ = yym26
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
yyct25 := r.ContainerType()
if yyct25 == codecSelferValueTypeMap1234 {
yyl25 := r.ReadMapStart()
if yyl25 == 0 {
yyct27 := r.ContainerType()
if yyct27 == codecSelferValueTypeMap1234 {
yyl27 := r.ReadMapStart()
if yyl27 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else {
x.codecDecodeSelfFromMap(yyl25, d)
x.codecDecodeSelfFromMap(yyl27, d)
}
} else if yyct25 == codecSelferValueTypeArray1234 {
yyl25 := r.ReadArrayStart()
if yyl25 == 0 {
} else if yyct27 == codecSelferValueTypeArray1234 {
yyl27 := r.ReadArrayStart()
if yyl27 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
x.codecDecodeSelfFromArray(yyl25, d)
x.codecDecodeSelfFromArray(yyl27, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
......@@ -314,12 +326,12 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys26Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys26Slc
var yyhl26 bool = l >= 0
for yyj26 := 0; ; yyj26++ {
if yyhl26 {
if yyj26 >= l {
var yys28Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys28Slc
var yyhl28 bool = l >= 0
for yyj28 := 0; ; yyj28++ {
if yyhl28 {
if yyj28 >= l {
break
}
} else {
......@@ -328,10 +340,10 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
}
z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys26Slc = r.DecodeBytes(yys26Slc, true, true)
yys26 := string(yys26Slc)
yys28Slc = r.DecodeBytes(yys28Slc, true, true)
yys28 := string(yys28Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys26 {
switch yys28 {
case "kind":
if r.TryDecodeAsNil() {
x.Kind = ""
......@@ -348,8 +360,14 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{}
} else {
yyv29 := &x.ObjectMeta
yyv29.CodecDecodeSelf(d)
yyv31 := &x.ObjectMeta
yym32 := z.DecBinary()
_ = yym32
if false {
} else if z.HasExtensions() && z.DecExt(yyv31) {
} else {
z.DecFallback(yyv31, false)
}
}
case "Key":
if r.TryDecodeAsNil() {
......@@ -361,42 +379,42 @@ func (x *TestStruct) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Map = nil
} else {
yyv31 := &x.Map
yym32 := z.DecBinary()
_ = yym32
yyv34 := &x.Map
yym35 := z.DecBinary()
_ = yym35
if false {
} else {
z.F.DecMapStringIntX(yyv31, false, d)
z.F.DecMapStringIntX(yyv34, false, d)
}
}
case "StringList":
if r.TryDecodeAsNil() {
x.StringList = nil
} else {
yyv33 := &x.StringList
yym34 := z.DecBinary()
_ = yym34
yyv36 := &x.StringList
yym37 := z.DecBinary()
_ = yym37
if false {
} else {
z.F.DecSliceStringX(yyv33, false, d)
z.F.DecSliceStringX(yyv36, false, d)
}
}
case "IntList":
if r.TryDecodeAsNil() {
x.IntList = nil
} else {
yyv35 := &x.IntList
yym36 := z.DecBinary()
_ = yym36
yyv38 := &x.IntList
yym39 := z.DecBinary()
_ = yym39
if false {
} else {
z.F.DecSliceIntX(yyv35, false, d)
z.F.DecSliceIntX(yyv38, false, d)
}
}
default:
z.DecStructFieldNotFound(-1, yys26)
} // end switch yys26
} // end for yyj26
z.DecStructFieldNotFound(-1, yys28)
} // end switch yys28
} // end for yyj28
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
}
......@@ -404,16 +422,16 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj37 int
var yyb37 bool
var yyhl37 bool = l >= 0
yyj37++
if yyhl37 {
yyb37 = yyj37 > l
var yyj40 int
var yyb40 bool
var yyhl40 bool = l >= 0
yyj40++
if yyhl40 {
yyb40 = yyj40 > l
} else {
yyb37 = r.CheckBreak()
yyb40 = r.CheckBreak()
}
if yyb37 {
if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -423,13 +441,13 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Kind = string(r.DecodeString())
}
yyj37++
if yyhl37 {
yyb37 = yyj37 > l
yyj40++
if yyhl40 {
yyb40 = yyj40 > l
} else {
yyb37 = r.CheckBreak()
yyb40 = r.CheckBreak()
}
if yyb37 {
if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -439,13 +457,13 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.APIVersion = string(r.DecodeString())
}
yyj37++
if yyhl37 {
yyb37 = yyj37 > l
yyj40++
if yyhl40 {
yyb40 = yyj40 > l
} else {
yyb37 = r.CheckBreak()
yyb40 = r.CheckBreak()
}
if yyb37 {
if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -453,16 +471,22 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{}
} else {
yyv40 := &x.ObjectMeta
yyv40.CodecDecodeSelf(d)
yyv43 := &x.ObjectMeta
yym44 := z.DecBinary()
_ = yym44
if false {
} else if z.HasExtensions() && z.DecExt(yyv43) {
} else {
z.DecFallback(yyv43, false)
}
}
yyj37++
if yyhl37 {
yyb37 = yyj37 > l
yyj40++
if yyhl40 {
yyb40 = yyj40 > l
} else {
yyb37 = r.CheckBreak()
yyb40 = r.CheckBreak()
}
if yyb37 {
if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -472,13 +496,13 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Key = string(r.DecodeString())
}
yyj37++
if yyhl37 {
yyb37 = yyj37 > l
yyj40++
if yyhl40 {
yyb40 = yyj40 > l
} else {
yyb37 = r.CheckBreak()
yyb40 = r.CheckBreak()
}
if yyb37 {
if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -486,21 +510,21 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Map = nil
} else {
yyv42 := &x.Map
yym43 := z.DecBinary()
_ = yym43
yyv46 := &x.Map
yym47 := z.DecBinary()
_ = yym47
if false {
} else {
z.F.DecMapStringIntX(yyv42, false, d)
z.F.DecMapStringIntX(yyv46, false, d)
}
}
yyj37++
if yyhl37 {
yyb37 = yyj37 > l
yyj40++
if yyhl40 {
yyb40 = yyj40 > l
} else {
yyb37 = r.CheckBreak()
yyb40 = r.CheckBreak()
}
if yyb37 {
if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -508,21 +532,21 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.StringList = nil
} else {
yyv44 := &x.StringList
yym45 := z.DecBinary()
_ = yym45
yyv48 := &x.StringList
yym49 := z.DecBinary()
_ = yym49
if false {
} else {
z.F.DecSliceStringX(yyv44, false, d)
z.F.DecSliceStringX(yyv48, false, d)
}
}
yyj37++
if yyhl37 {
yyb37 = yyj37 > l
yyj40++
if yyhl40 {
yyb40 = yyj40 > l
} else {
yyb37 = r.CheckBreak()
yyb40 = r.CheckBreak()
}
if yyb37 {
if yyb40 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -530,26 +554,26 @@ func (x *TestStruct) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.IntList = nil
} else {
yyv46 := &x.IntList
yym47 := z.DecBinary()
_ = yym47
yyv50 := &x.IntList
yym51 := z.DecBinary()
_ = yym51
if false {
} else {
z.F.DecSliceIntX(yyv46, false, d)
z.F.DecSliceIntX(yyv50, false, d)
}
}
for {
yyj37++
if yyhl37 {
yyb37 = yyj37 > l
yyj40++
if yyhl40 {
yyb40 = yyj40 > l
} else {
yyb37 = r.CheckBreak()
yyb40 = r.CheckBreak()
}
if yyb37 {
if yyb40 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj37-1, "")
z.DecStructFieldNotFound(yyj40-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
......@@ -156,18 +156,30 @@ func (x *TestResource) CodecEncodeSelf(e *codec1978.Encoder) {
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yy10 := &x.ObjectMeta
yy10.CodecEncodeSelf(e)
yym11 := z.EncBinary()
_ = yym11
if false {
} else if z.HasExtensions() && z.EncExt(yy10) {
} else {
z.EncFallback(yy10)
}
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("metadata"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yy11 := &x.ObjectMeta
yy11.CodecEncodeSelf(e)
yy12 := &x.ObjectMeta
yym13 := z.EncBinary()
_ = yym13
if false {
} else if z.HasExtensions() && z.EncExt(yy12) {
} else {
z.EncFallback(yy12)
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym13 := z.EncBinary()
_ = yym13
yym15 := z.EncBinary()
_ = yym15
if false {
} else {
r.EncodeInt(int64(x.Value))
......@@ -176,8 +188,8 @@ func (x *TestResource) CodecEncodeSelf(e *codec1978.Encoder) {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("value"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym14 := z.EncBinary()
_ = yym14
yym16 := z.EncBinary()
_ = yym16
if false {
} else {
r.EncodeInt(int64(x.Value))
......@@ -196,25 +208,25 @@ func (x *TestResource) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym15 := z.DecBinary()
_ = yym15
yym17 := z.DecBinary()
_ = yym17
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
yyct16 := r.ContainerType()
if yyct16 == codecSelferValueTypeMap1234 {
yyl16 := r.ReadMapStart()
if yyl16 == 0 {
yyct18 := r.ContainerType()
if yyct18 == codecSelferValueTypeMap1234 {
yyl18 := r.ReadMapStart()
if yyl18 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else {
x.codecDecodeSelfFromMap(yyl16, d)
x.codecDecodeSelfFromMap(yyl18, d)
}
} else if yyct16 == codecSelferValueTypeArray1234 {
yyl16 := r.ReadArrayStart()
if yyl16 == 0 {
} else if yyct18 == codecSelferValueTypeArray1234 {
yyl18 := r.ReadArrayStart()
if yyl18 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
x.codecDecodeSelfFromArray(yyl16, d)
x.codecDecodeSelfFromArray(yyl18, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
......@@ -226,12 +238,12 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys17Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys17Slc
var yyhl17 bool = l >= 0
for yyj17 := 0; ; yyj17++ {
if yyhl17 {
if yyj17 >= l {
var yys19Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys19Slc
var yyhl19 bool = l >= 0
for yyj19 := 0; ; yyj19++ {
if yyhl19 {
if yyj19 >= l {
break
}
} else {
......@@ -240,10 +252,10 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
}
z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys17Slc = r.DecodeBytes(yys17Slc, true, true)
yys17 := string(yys17Slc)
yys19Slc = r.DecodeBytes(yys19Slc, true, true)
yys19 := string(yys19Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys17 {
switch yys19 {
case "kind":
if r.TryDecodeAsNil() {
x.Kind = ""
......@@ -260,8 +272,14 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{}
} else {
yyv20 := &x.ObjectMeta
yyv20.CodecDecodeSelf(d)
yyv22 := &x.ObjectMeta
yym23 := z.DecBinary()
_ = yym23
if false {
} else if z.HasExtensions() && z.DecExt(yyv22) {
} else {
z.DecFallback(yyv22, false)
}
}
case "value":
if r.TryDecodeAsNil() {
......@@ -270,9 +288,9 @@ func (x *TestResource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
x.Value = int(r.DecodeInt(codecSelferBitsize1234))
}
default:
z.DecStructFieldNotFound(-1, yys17)
} // end switch yys17
} // end for yyj17
z.DecStructFieldNotFound(-1, yys19)
} // end switch yys19
} // end for yyj19
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
}
......@@ -280,16 +298,16 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj22 int
var yyb22 bool
var yyhl22 bool = l >= 0
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
var yyj25 int
var yyb25 bool
var yyhl25 bool = l >= 0
yyj25++
if yyhl25 {
yyb25 = yyj25 > l
} else {
yyb22 = r.CheckBreak()
yyb25 = r.CheckBreak()
}
if yyb22 {
if yyb25 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -299,13 +317,13 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Kind = string(r.DecodeString())
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj25++
if yyhl25 {
yyb25 = yyj25 > l
} else {
yyb22 = r.CheckBreak()
yyb25 = r.CheckBreak()
}
if yyb22 {
if yyb25 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -315,13 +333,13 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.APIVersion = string(r.DecodeString())
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj25++
if yyhl25 {
yyb25 = yyj25 > l
} else {
yyb22 = r.CheckBreak()
yyb25 = r.CheckBreak()
}
if yyb22 {
if yyb25 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -329,16 +347,22 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ObjectMeta = pkg2_api.ObjectMeta{}
} else {
yyv25 := &x.ObjectMeta
yyv25.CodecDecodeSelf(d)
yyv28 := &x.ObjectMeta
yym29 := z.DecBinary()
_ = yym29
if false {
} else if z.HasExtensions() && z.DecExt(yyv28) {
} else {
z.DecFallback(yyv28, false)
}
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj25++
if yyhl25 {
yyb25 = yyj25 > l
} else {
yyb22 = r.CheckBreak()
yyb25 = r.CheckBreak()
}
if yyb22 {
if yyb25 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
......@@ -349,17 +373,17 @@ func (x *TestResource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
x.Value = int(r.DecodeInt(codecSelferBitsize1234))
}
for {
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj25++
if yyhl25 {
yyb25 = yyj25 > l
} else {
yyb22 = r.CheckBreak()
yyb25 = r.CheckBreak()
}
if yyb22 {
if yyb25 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj22-1, "")
z.DecStructFieldNotFound(yyj25-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
......@@ -182,6 +182,19 @@ var _ = Describe("Job", func() {
Expect(err).To(HaveOccurred())
Expect(errors.IsNotFound(err)).To(BeTrue())
})
It("should fail a job", func() {
By("Creating a job")
job := newTestJob("notTerminate", "foo", api.RestartPolicyNever, parallelism, completions)
activeDeadlineSeconds := int64(10)
job.Spec.ActiveDeadlineSeconds = &activeDeadlineSeconds
job, err := createJob(f.Client, f.Namespace.Name, job)
Expect(err).NotTo(HaveOccurred())
By("Ensuring job was failed")
err = waitForJobFail(f.Client, f.Namespace.Name, job.Name)
Expect(err).NotTo(HaveOccurred())
})
})
// newTestJob returns a job which does one of several testing behaviors.
......@@ -283,3 +296,19 @@ func waitForJobFinish(c *client.Client, ns, jobName string, completions int) err
return curr.Status.Succeeded == completions, nil
})
}
// Wait for job fail.
func waitForJobFail(c *client.Client, ns, jobName string) error {
return wait.Poll(poll, jobTimeout, func() (bool, error) {
curr, err := c.Extensions().Jobs(ns).Get(jobName)
if err != nil {
return false, err
}
for _, c := range curr.Status.Conditions {
if c.Type == extensions.JobFailed && c.Status == api.ConditionTrue {
return true, nil
}
}
return false, nil
})
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment