Commit 87a1635c authored by Brendan Burns's avatar Brendan Burns

Machine generated stuff

parent a0fcbd14
...@@ -394,6 +394,12 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; } ...@@ -394,6 +394,12 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<p><a href="#_v1beta1_scale">v1beta1.Scale</a></p> <p><a href="#_v1beta1_scale">v1beta1.Scale</a></p>
</li> </li>
<li> <li>
<p><a href="#_v1beta1_thirdpartyresource">v1beta1.ThirdPartyResource</a></p>
</li>
<li>
<p><a href="#_v1beta1_thirdpartyresourcelist">v1beta1.ThirdPartyResourceList</a></p>
</li>
<li>
<p><a href="#_v1beta1_daemonset">v1beta1.DaemonSet</a></p> <p><a href="#_v1beta1_daemonset">v1beta1.DaemonSet</a></p>
</li> </li>
<li> <li>
...@@ -2459,6 +2465,40 @@ Populated by the system when a graceful deletion is requested. Read-only. More i ...@@ -2459,6 +2465,40 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_v1beta1_apiversion">v1beta1.APIVersion</h3>
<div class="paragraph">
<p>An APIVersion represents a single concrete version of an object model.</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Schema</th>
<th class="tableblock halign-left valign-top">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of this version (e.g. <em>v1</em>).</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">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_v1_keytopath">v1.KeyToPath</h3> <h3 id="_v1_keytopath">v1.KeyToPath</h3>
<div class="paragraph"> <div class="paragraph">
<p>Maps a string key to a path within a volume.</p> <p>Maps a string key to a path within a volume.</p>
...@@ -4072,6 +4112,68 @@ Populated by the system when a graceful deletion is requested. Read-only. More i ...@@ -4072,6 +4112,68 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_v1beta1_thirdpartyresource">v1beta1.ThirdPartyResource</h3>
<div class="paragraph">
<p>A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource types to the API. It consists of one or more Versions of the api.</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Schema</th>
<th class="tableblock halign-left valign-top">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources">http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">metadata</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Standard object metadata</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"><a href="#_v1_objectmeta">v1.ObjectMeta</a></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">description</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Description is the description of this object.</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">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">versions</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Versions are versions for this third party object</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"><a href="#_v1beta1_apiversion">v1beta1.APIVersion</a> array</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_v1_tcpsocketaction">v1.TCPSocketAction</h3> <h3 id="_v1_tcpsocketaction">v1.TCPSocketAction</h3>
<div class="paragraph"> <div class="paragraph">
<p>TCPSocketAction describes an action based on opening a socket</p> <p>TCPSocketAction describes an action based on opening a socket</p>
...@@ -5698,6 +5800,61 @@ Both these may change in the future. Incoming requests are matched against the h ...@@ -5698,6 +5800,61 @@ Both these may change in the future. Incoming requests are matched against the h
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_v1beta1_thirdpartyresourcelist">v1beta1.ThirdPartyResourceList</h3>
<div class="paragraph">
<p>ThirdPartyResourceList is a list of ThirdPartyResources.</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Schema</th>
<th class="tableblock halign-left valign-top">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources">http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">metadata</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Standard list metadata.</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"><a href="#_unversioned_listmeta">unversioned.ListMeta</a></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">items</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Items is the list of ThirdPartyResources.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1beta1_thirdpartyresource">v1beta1.ThirdPartyResource</a> array</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_any">any</h3> <h3 id="_any">any</h3>
<div class="paragraph"> <div class="paragraph">
<p>Represents an untyped JSON map - see the description of the field for more info about the structure of this object.</p> <p>Represents an untyped JSON map - see the description of the field for more info about the structure of this object.</p>
...@@ -5708,7 +5865,7 @@ Both these may change in the future. Incoming requests are matched against the h ...@@ -5708,7 +5865,7 @@ Both these may change in the future. Incoming requests are matched against the h
</div> </div>
<div id="footer"> <div id="footer">
<div id="footer-text"> <div id="footer-text">
Last updated 2016-03-15 23:42:30 UTC Last updated 2016-03-22 18:43:10 UTC
</div> </div>
</div> </div>
</body> </body>
......
...@@ -392,11 +392,6 @@ func FuzzerFor(t *testing.T, version unversioned.GroupVersion, src rand.Source) ...@@ -392,11 +392,6 @@ func FuzzerFor(t *testing.T, version unversioned.GroupVersion, src rand.Source)
c.FuzzNoCustom(s) c.FuzzNoCustom(s)
s.Allocatable = s.Capacity s.Allocatable = s.Capacity
}, },
func(s *extensions.APIVersion, c fuzz.Continue) {
// We can't use c.RandString() here because it may generate empty
// string, which will cause tests failure.
s.APIGroup = "something"
},
func(s *extensions.HorizontalPodAutoscalerSpec, c fuzz.Continue) { func(s *extensions.HorizontalPodAutoscalerSpec, c fuzz.Continue) {
c.FuzzNoCustom(s) // fuzz self without calling this function again c.FuzzNoCustom(s) // fuzz self without calling this function again
minReplicas := int(c.Rand.Int31()) minReplicas := int(c.Rand.Int31())
......
...@@ -95,7 +95,6 @@ func init() { ...@@ -95,7 +95,6 @@ func init() {
func DeepCopy_extensions_APIVersion(in APIVersion, out *APIVersion, c *conversion.Cloner) error { func DeepCopy_extensions_APIVersion(in APIVersion, out *APIVersion, c *conversion.Cloner) error {
out.Name = in.Name out.Name = in.Name
out.APIGroup = in.APIGroup
return nil return nil
} }
......
...@@ -4551,14 +4551,13 @@ func (x *APIVersion) CodecEncodeSelf(e *codec1978.Encoder) { ...@@ -4551,14 +4551,13 @@ func (x *APIVersion) CodecEncodeSelf(e *codec1978.Encoder) {
} else { } else {
yysep2 := !z.EncBinary() yysep2 := !z.EncBinary()
yy2arr2 := z.EncBasicHandle().StructToArray yy2arr2 := z.EncBasicHandle().StructToArray
var yyq2 [2]bool var yyq2 [1]bool
_, _, _ = yysep2, yyq2, yy2arr2 _, _, _ = yysep2, yyq2, yy2arr2
const yyr2 bool = false const yyr2 bool = false
yyq2[0] = x.Name != "" yyq2[0] = x.Name != ""
yyq2[1] = x.APIGroup != ""
var yynn2 int var yynn2 int
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
r.EncodeArrayStart(2) r.EncodeArrayStart(1)
} else { } else {
yynn2 = 0 yynn2 = 0
for _, b := range yyq2 { for _, b := range yyq2 {
...@@ -4595,31 +4594,6 @@ func (x *APIVersion) CodecEncodeSelf(e *codec1978.Encoder) { ...@@ -4595,31 +4594,6 @@ func (x *APIVersion) CodecEncodeSelf(e *codec1978.Encoder) {
} }
} }
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[1] {
yym7 := z.EncBinary()
_ = yym7
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIGroup))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq2[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiGroup"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym8 := z.EncBinary()
_ = yym8
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIGroup))
}
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234) z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
z.EncSendContainerState(codecSelfer_containerMapEnd1234) z.EncSendContainerState(codecSelfer_containerMapEnd1234)
...@@ -4686,12 +4660,6 @@ func (x *APIVersion) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { ...@@ -4686,12 +4660,6 @@ func (x *APIVersion) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} else { } else {
x.Name = string(r.DecodeString()) x.Name = string(r.DecodeString())
} }
case "apiGroup":
if r.TryDecodeAsNil() {
x.APIGroup = ""
} else {
x.APIGroup = string(r.DecodeString())
}
default: default:
z.DecStructFieldNotFound(-1, yys3) z.DecStructFieldNotFound(-1, yys3)
} // end switch yys3 } // end switch yys3
...@@ -4703,16 +4671,16 @@ func (x *APIVersion) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { ...@@ -4703,16 +4671,16 @@ func (x *APIVersion) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yyj6 int var yyj5 int
var yyb6 bool var yyb5 bool
var yyhl6 bool = l >= 0 var yyhl5 bool = l >= 0
yyj6++ yyj5++
if yyhl6 { if yyhl5 {
yyb6 = yyj6 > l yyb5 = yyj5 > l
} else { } else {
yyb6 = r.CheckBreak() yyb5 = r.CheckBreak()
} }
if yyb6 { if yyb5 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
...@@ -4722,34 +4690,18 @@ func (x *APIVersion) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { ...@@ -4722,34 +4690,18 @@ func (x *APIVersion) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.Name = string(r.DecodeString()) x.Name = string(r.DecodeString())
} }
yyj6++
if yyhl6 {
yyb6 = yyj6 > l
} else {
yyb6 = r.CheckBreak()
}
if yyb6 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.APIGroup = ""
} else {
x.APIGroup = string(r.DecodeString())
}
for { for {
yyj6++ yyj5++
if yyhl6 { if yyhl5 {
yyb6 = yyj6 > l yyb5 = yyj5 > l
} else { } else {
yyb6 = r.CheckBreak() yyb5 = r.CheckBreak()
} }
if yyb6 { if yyb5 {
break break
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj6-1, "") z.DecStructFieldNotFound(yyj5-1, "")
} }
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
...@@ -17687,7 +17639,7 @@ func (x codecSelfer1234) decSliceAPIVersion(v *[]APIVersion, d *codec1978.Decode ...@@ -17687,7 +17639,7 @@ func (x codecSelfer1234) decSliceAPIVersion(v *[]APIVersion, d *codec1978.Decode
yyrg1 := len(yyv1) > 0 yyrg1 := len(yyv1) > 0
yyv21 := yyv1 yyv21 := yyv1
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32) yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
if yyrt1 { if yyrt1 {
if yyrl1 <= cap(yyv1) { if yyrl1 <= cap(yyv1) {
yyv1 = yyv1[:yyrl1] yyv1 = yyv1[:yyrl1]
......
...@@ -2680,7 +2680,6 @@ func autoConvert_extensions_APIVersion_To_v1beta1_APIVersion(in *extensions.APIV ...@@ -2680,7 +2680,6 @@ func autoConvert_extensions_APIVersion_To_v1beta1_APIVersion(in *extensions.APIV
defaulting.(func(*extensions.APIVersion))(in) defaulting.(func(*extensions.APIVersion))(in)
} }
out.Name = in.Name out.Name = in.Name
out.APIGroup = in.APIGroup
return nil return nil
} }
...@@ -3867,7 +3866,6 @@ func autoConvert_v1beta1_APIVersion_To_extensions_APIVersion(in *APIVersion, out ...@@ -3867,7 +3866,6 @@ func autoConvert_v1beta1_APIVersion_To_extensions_APIVersion(in *APIVersion, out
defaulting.(func(*APIVersion))(in) defaulting.(func(*APIVersion))(in)
} }
out.Name = in.Name out.Name = in.Name
out.APIGroup = in.APIGroup
return nil return nil
} }
......
...@@ -100,7 +100,6 @@ func init() { ...@@ -100,7 +100,6 @@ func init() {
func DeepCopy_v1beta1_APIVersion(in APIVersion, out *APIVersion, c *conversion.Cloner) error { func DeepCopy_v1beta1_APIVersion(in APIVersion, out *APIVersion, c *conversion.Cloner) error {
out.Name = in.Name out.Name = in.Name
out.APIGroup = in.APIGroup
return nil return nil
} }
......
...@@ -24,9 +24,6 @@ import ( ...@@ -24,9 +24,6 @@ import (
func addDefaultingFuncs(scheme *runtime.Scheme) { func addDefaultingFuncs(scheme *runtime.Scheme) {
scheme.AddDefaultingFuncs( scheme.AddDefaultingFuncs(
func(obj *APIVersion) { func(obj *APIVersion) {
if len(obj.APIGroup) == 0 {
obj.APIGroup = GroupName
}
}, },
func(obj *DaemonSet) { func(obj *DaemonSet) {
labels := obj.Spec.Template.Labels labels := obj.Spec.Template.Labels
......
...@@ -4587,14 +4587,13 @@ func (x *APIVersion) CodecEncodeSelf(e *codec1978.Encoder) { ...@@ -4587,14 +4587,13 @@ func (x *APIVersion) CodecEncodeSelf(e *codec1978.Encoder) {
} else { } else {
yysep2 := !z.EncBinary() yysep2 := !z.EncBinary()
yy2arr2 := z.EncBasicHandle().StructToArray yy2arr2 := z.EncBasicHandle().StructToArray
var yyq2 [2]bool var yyq2 [1]bool
_, _, _ = yysep2, yyq2, yy2arr2 _, _, _ = yysep2, yyq2, yy2arr2
const yyr2 bool = false const yyr2 bool = false
yyq2[0] = x.Name != "" yyq2[0] = x.Name != ""
yyq2[1] = x.APIGroup != ""
var yynn2 int var yynn2 int
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
r.EncodeArrayStart(2) r.EncodeArrayStart(1)
} else { } else {
yynn2 = 0 yynn2 = 0
for _, b := range yyq2 { for _, b := range yyq2 {
...@@ -4631,31 +4630,6 @@ func (x *APIVersion) CodecEncodeSelf(e *codec1978.Encoder) { ...@@ -4631,31 +4630,6 @@ func (x *APIVersion) CodecEncodeSelf(e *codec1978.Encoder) {
} }
} }
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[1] {
yym7 := z.EncBinary()
_ = yym7
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIGroup))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq2[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("apiGroup"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym8 := z.EncBinary()
_ = yym8
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIGroup))
}
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234) z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
z.EncSendContainerState(codecSelfer_containerMapEnd1234) z.EncSendContainerState(codecSelfer_containerMapEnd1234)
...@@ -4722,12 +4696,6 @@ func (x *APIVersion) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { ...@@ -4722,12 +4696,6 @@ func (x *APIVersion) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} else { } else {
x.Name = string(r.DecodeString()) x.Name = string(r.DecodeString())
} }
case "apiGroup":
if r.TryDecodeAsNil() {
x.APIGroup = ""
} else {
x.APIGroup = string(r.DecodeString())
}
default: default:
z.DecStructFieldNotFound(-1, yys3) z.DecStructFieldNotFound(-1, yys3)
} // end switch yys3 } // end switch yys3
...@@ -4739,16 +4707,16 @@ func (x *APIVersion) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { ...@@ -4739,16 +4707,16 @@ func (x *APIVersion) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yyj6 int var yyj5 int
var yyb6 bool var yyb5 bool
var yyhl6 bool = l >= 0 var yyhl5 bool = l >= 0
yyj6++ yyj5++
if yyhl6 { if yyhl5 {
yyb6 = yyj6 > l yyb5 = yyj5 > l
} else { } else {
yyb6 = r.CheckBreak() yyb5 = r.CheckBreak()
} }
if yyb6 { if yyb5 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
...@@ -4758,34 +4726,18 @@ func (x *APIVersion) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { ...@@ -4758,34 +4726,18 @@ func (x *APIVersion) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else { } else {
x.Name = string(r.DecodeString()) x.Name = string(r.DecodeString())
} }
yyj6++
if yyhl6 {
yyb6 = yyj6 > l
} else {
yyb6 = r.CheckBreak()
}
if yyb6 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.APIGroup = ""
} else {
x.APIGroup = string(r.DecodeString())
}
for { for {
yyj6++ yyj5++
if yyhl6 { if yyhl5 {
yyb6 = yyj6 > l yyb5 = yyj5 > l
} else { } else {
yyb6 = r.CheckBreak() yyb5 = r.CheckBreak()
} }
if yyb6 { if yyb5 {
break break
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj6-1, "") z.DecStructFieldNotFound(yyj5-1, "")
} }
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
...@@ -19052,7 +19004,7 @@ func (x codecSelfer1234) decSliceAPIVersion(v *[]APIVersion, d *codec1978.Decode ...@@ -19052,7 +19004,7 @@ func (x codecSelfer1234) decSliceAPIVersion(v *[]APIVersion, d *codec1978.Decode
yyrg1 := len(yyv1) > 0 yyrg1 := len(yyv1) > 0
yyv21 := yyv1 yyv21 := yyv1
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32) yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
if yyrt1 { if yyrt1 {
if yyrl1 <= cap(yyv1) { if yyrl1 <= cap(yyv1) {
yyv1 = yyv1[:yyrl1] yyv1 = yyv1[:yyrl1]
......
...@@ -28,9 +28,8 @@ package v1beta1 ...@@ -28,9 +28,8 @@ package v1beta1
// AUTO-GENERATED FUNCTIONS START HERE // AUTO-GENERATED FUNCTIONS START HERE
var map_APIVersion = map[string]string{ var map_APIVersion = map[string]string{
"": "An APIVersion represents a single concrete version of an object model.", "": "An APIVersion represents a single concrete version of an object model.",
"name": "Name of this version (e.g. 'v1').", "name": "Name of this version (e.g. 'v1').",
"apiGroup": "The API group to add this object into, default 'experimental'.",
} }
func (APIVersion) SwaggerDoc() map[string]string { func (APIVersion) SwaggerDoc() map[string]string {
......
...@@ -1452,7 +1452,7 @@ func printThirdPartyResource(rsrc *extensions.ThirdPartyResource, w io.Writer, o ...@@ -1452,7 +1452,7 @@ func printThirdPartyResource(rsrc *extensions.ThirdPartyResource, w io.Writer, o
versions := make([]string, len(rsrc.Versions)) versions := make([]string, len(rsrc.Versions))
for ix := range rsrc.Versions { for ix := range rsrc.Versions {
version := &rsrc.Versions[ix] version := &rsrc.Versions[ix]
versions[ix] = fmt.Sprintf("%s/%s", version.APIGroup, version.Name) versions[ix] = fmt.Sprintf("%s", version.Name)
} }
versionsString := strings.Join(versions, ",") versionsString := strings.Join(versions, ",")
if _, err := fmt.Fprintf(w, "%s\t%s\t%s\n", rsrc.Name, rsrc.Description, versionsString); err != nil { if _, err := fmt.Fprintf(w, "%s\t%s\t%s\n", rsrc.Name, rsrc.Description, versionsString); err != nil {
......
...@@ -97,6 +97,8 @@ type Config struct { ...@@ -97,6 +97,8 @@ type Config struct {
KubeletClient kubeletclient.KubeletClient KubeletClient kubeletclient.KubeletClient
// Used to start and monitor tunneling // Used to start and monitor tunneling
Tunneler Tunneler Tunneler Tunneler
disableThirdPartyControllerForTesting bool
} }
// Master contains state for a Kubernetes cluster master/api server. // Master contains state for a Kubernetes cluster master/api server.
...@@ -124,6 +126,8 @@ type Master struct { ...@@ -124,6 +126,8 @@ type Master struct {
thirdPartyResources map[string]thirdPartyEntry thirdPartyResources map[string]thirdPartyEntry
// protects the map // protects the map
thirdPartyResourcesLock sync.RWMutex thirdPartyResourcesLock sync.RWMutex
// Useful for reliable testing. Shouldn't be used otherwise.
disableThirdPartyControllerForTesting bool
// Used to start and monitor tunneling // Used to start and monitor tunneling
tunneler Tunneler tunneler Tunneler
...@@ -155,6 +159,8 @@ func New(c *Config) (*Master, error) { ...@@ -155,6 +159,8 @@ func New(c *Config) (*Master, error) {
enableCoreControllers: c.EnableCoreControllers, enableCoreControllers: c.EnableCoreControllers,
deleteCollectionWorkers: c.DeleteCollectionWorkers, deleteCollectionWorkers: c.DeleteCollectionWorkers,
tunneler: c.Tunneler, tunneler: c.Tunneler,
disableThirdPartyControllerForTesting: c.disableThirdPartyControllerForTesting,
} }
m.InstallAPIs(c) m.InstallAPIs(c)
...@@ -698,12 +704,14 @@ func (m *Master) getExtensionResources(c *Config) map[string]rest.Storage { ...@@ -698,12 +704,14 @@ func (m *Master) getExtensionResources(c *Config) map[string]rest.Storage {
} }
go func() { go func() {
wait.Forever(func() { wait.Forever(func() {
if m.disableThirdPartyControllerForTesting {
return
}
if err := thirdPartyControl.SyncResources(); err != nil { if err := thirdPartyControl.SyncResources(); err != nil {
glog.Warningf("third party resource sync failed: %v", err) glog.Warningf("third party resource sync failed: %v", err)
} }
}, 10*time.Second) }, 10*time.Second)
}() }()
storage["thirdpartyresources"] = thirdPartyResourceStorage storage["thirdpartyresources"] = thirdPartyResourceStorage
} }
......
...@@ -97,6 +97,10 @@ func newMaster(t *testing.T) (*Master, *etcdtesting.EtcdTestServer, Config, *ass ...@@ -97,6 +97,10 @@ func newMaster(t *testing.T) (*Master, *etcdtesting.EtcdTestServer, Config, *ass
config.ProxyDialer = func(network, addr string) (net.Conn, error) { return nil, nil } config.ProxyDialer = func(network, addr string) (net.Conn, error) { return nil, nil }
config.ProxyTLSClientConfig = &tls.Config{} config.ProxyTLSClientConfig = &tls.Config{}
// TODO: this is kind of hacky, make testing flakes go away even with
// the sync loop running.
config.disableThirdPartyControllerForTesting = true
master, err := New(&config) master, err := New(&config)
if err != nil { if err != nil {
t.Fatalf("Error in bringing up the master: %v", err) t.Fatalf("Error in bringing up the master: %v", err)
...@@ -476,12 +480,11 @@ func initThirdParty(t *testing.T, version string) (*Master, *etcdtesting.EtcdTes ...@@ -476,12 +480,11 @@ func initThirdParty(t *testing.T, version string) (*Master, *etcdtesting.EtcdTes
}, },
Versions: []extensions.APIVersion{ Versions: []extensions.APIVersion{
{ {
APIGroup: "group", Name: version,
Name: version,
}, },
}, },
} }
master.thirdPartyStorage = etcdstorage.NewEtcdStorage(etcdserver.Client, testapi.Extensions.Codec(), etcdtest.PathPrefix(), false) // master.thirdPartyStorage = etcdstorage.NewEtcdStorage(etcdserver.Client, testapi.Extensions.Codec(), etcdtest.PathPrefix(), false)
_, master.ServiceClusterIPRange, _ = net.ParseCIDR("10.0.0.0/24") _, master.ServiceClusterIPRange, _ = net.ParseCIDR("10.0.0.0/24")
if !assert.NoError(master.InstallThirdPartyResource(api)) { if !assert.NoError(master.InstallThirdPartyResource(api)) {
...@@ -541,7 +544,10 @@ func testInstallThirdPartyAPIListVersion(t *testing.T, version string) { ...@@ -541,7 +544,10 @@ func testInstallThirdPartyAPIListVersion(t *testing.T, version string) {
defer etcdserver.Terminate(t) defer etcdserver.Terminate(t)
if test.items != nil { if test.items != nil {
storeThirdPartyList(master.thirdPartyStorage, "/ThirdPartyResourceData/company.com/foos/default", test.items) err := storeThirdPartyList(master.thirdPartyStorage, "/ThirdPartyResourceData/company.com/foos/default", test.items)
if !assert.NoError(err) {
return
}
} }
resp, err := http.Get(server.URL + "/apis/company.com/" + version + "/namespaces/default/foos") resp, err := http.Get(server.URL + "/apis/company.com/" + version + "/namespaces/default/foos")
......
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