mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-13 11:25:19 +00:00
@@ -49,6 +49,30 @@ func AddKnownTypes(types ...interface{}) {
|
||||
}
|
||||
}
|
||||
|
||||
// Takes an arbitary api type, returns pointer to its JSONBase field.
|
||||
// obj must be a pointer to an api type.
|
||||
func FindJSONBase(obj interface{}) (*JSONBase, error) {
|
||||
_, jsonBase, err := nameAndJSONBase(obj)
|
||||
return jsonBase, err
|
||||
}
|
||||
|
||||
// Takes an arbitary api type, return a copy of its JSONBase field.
|
||||
// obj may be a pointer to an api type, or a non-pointer struct api type.
|
||||
func FindJSONBaseRO(obj interface{}) (JSONBase, error) {
|
||||
v := reflect.ValueOf(obj)
|
||||
if v.Kind() == reflect.Ptr {
|
||||
v = v.Elem()
|
||||
}
|
||||
if v.Kind() != reflect.Struct {
|
||||
return JSONBase{}, fmt.Errorf("expected struct, but got %v", v.Type().Name())
|
||||
}
|
||||
jsonBase := v.FieldByName("JSONBase")
|
||||
if !jsonBase.IsValid() {
|
||||
return JSONBase{}, fmt.Errorf("struct %v lacks embedded JSON type", v.Type().Name())
|
||||
}
|
||||
return jsonBase.Interface().(JSONBase), nil
|
||||
}
|
||||
|
||||
// Encode turns the given api object into an appropriate JSON string.
|
||||
// Will return an error if the object doesn't have an embedded JSONBase.
|
||||
// Obj may be a pointer to a struct, or a struct. If a struct, a copy
|
||||
|
||||
@@ -150,6 +150,7 @@ type JSONBase struct {
|
||||
ID string `json:"id,omitempty" yaml:"id,omitempty"`
|
||||
CreationTimestamp string `json:"creationTimestamp,omitempty" yaml:"creationTimestamp,omitempty"`
|
||||
SelfLink string `json:"selfLink,omitempty" yaml:"selfLink,omitempty"`
|
||||
ResourceVersion uint64 `json:"resourceVersion,omitempty" yaml:"resourceVersion,omitempty"`
|
||||
}
|
||||
|
||||
type PodStatus string
|
||||
@@ -266,8 +267,12 @@ type Status struct {
|
||||
// One of: "success", "failure", "working" (for operations not yet completed)
|
||||
// TODO: if "working", include an operation identifier so final status can be
|
||||
// checked.
|
||||
Status string `json:"status,omitempty" yaml:"status,omitempty"`
|
||||
Status string `json:"status,omitempty" yaml:"status,omitempty"`
|
||||
// Details about the status. May be an error description or an
|
||||
// operation number for later polling.
|
||||
Details string `json:"details,omitempty" yaml:"details,omitempty"`
|
||||
// Suggested HTTP return code for this status, 0 if not set.
|
||||
Code int `json:"code,omitempty" yaml:"code,omitempty"`
|
||||
}
|
||||
|
||||
// Values of Status.Status
|
||||
|
||||
Reference in New Issue
Block a user