diff --git a/pkg/api/register.go b/pkg/api/register.go index e31aaf38250..298c62cea18 100644 --- a/pkg/api/register.go +++ b/pkg/api/register.go @@ -35,8 +35,8 @@ func init() { &NodeList{}, &Node{}, &Status{}, - &ServerOpList{}, - &ServerOp{}, + &OperationList{}, + &Operation{}, &Endpoints{}, &EndpointsList{}, &Binding{}, @@ -51,6 +51,8 @@ func init() { // Legacy names are supported Scheme.AddKnownTypeWithName("", "Minion", &Node{}) Scheme.AddKnownTypeWithName("", "MinionList", &NodeList{}) + Scheme.AddKnownTypeWithName("", "ServerOp", &Operation{}) + Scheme.AddKnownTypeWithName("", "ServerOpList", &OperationList{}) } func (*PodContainerInfo) IsAnAPIObject() {} @@ -66,8 +68,8 @@ func (*Node) IsAnAPIObject() {} func (*NodeList) IsAnAPIObject() {} func (*Binding) IsAnAPIObject() {} func (*Status) IsAnAPIObject() {} -func (*ServerOp) IsAnAPIObject() {} -func (*ServerOpList) IsAnAPIObject() {} +func (*Operation) IsAnAPIObject() {} +func (*OperationList) IsAnAPIObject() {} func (*Event) IsAnAPIObject() {} func (*EventList) IsAnAPIObject() {} func (*ContainerManifest) IsAnAPIObject() {} diff --git a/pkg/api/types.go b/pkg/api/types.go index b1b8e2cc9f3..b13cd4667ad 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -476,6 +476,9 @@ type PodSpec struct { type PodStatus struct { Phase PodPhase `json:"phase,omitempty"` + // A human readable message indicating details about why the pod is in this state. + Message string `json:"message,omitempty"` + // Host is the name of the node that this Pod is currently bound to, or empty if no // assignment has been done. Host string `json:"host,omitempty"` @@ -761,8 +764,8 @@ type Binding struct { // TODO: this could go in apiserver, but I'm including it here so clients needn't // import both. type Status struct { - TypeMeta `json:",inline"` - ObjectMeta `json:"metadata,omitempty"` + TypeMeta `json:",inline"` + ListMeta `json:"metadata,omitempty"` // One of: "Success", "Failure", "Working" (for operations not yet completed) Status string `json:"status,omitempty"` @@ -927,18 +930,18 @@ const ( CauseTypeFieldValueNotSupported CauseType = "FieldValueNotSupported" ) -// ServerOp is an operation delivered to API clients. -type ServerOp struct { +// Operation is an operation delivered to API clients. +type Operation struct { TypeMeta `json:",inline"` ObjectMeta `json:"metadata,omitempty"` } -// ServerOpList is a list of operations, as delivered to API clients. -type ServerOpList struct { +// OperationList is a list of operations, as delivered to API clients. +type OperationList struct { TypeMeta `json:",inline"` ListMeta `json:"metadata,omitempty"` - Items []ServerOp `json:"items"` + Items []Operation `json:"items"` } // ObjectReference contains enough information to let you inspect or modify the referred object. diff --git a/pkg/api/v1beta1/conversion.go b/pkg/api/v1beta1/conversion.go index 71e05801ea2..10614a4e23a 100644 --- a/pkg/api/v1beta1/conversion.go +++ b/pkg/api/v1beta1/conversion.go @@ -176,6 +176,7 @@ func init() { if err := s.Convert(&in.Info, &out.Info, 0); err != nil { return err } + out.Message = in.Message out.Host = in.Host out.HostIP = in.HostIP out.PodIP = in.PodIP @@ -189,6 +190,7 @@ func init() { return err } + out.Message = in.Message out.Host = in.Host out.HostIP = in.HostIP out.PodIP = in.PodIP diff --git a/pkg/api/v1beta1/register.go b/pkg/api/v1beta1/register.go index ea6e667e9ef..ab70a33b8b6 100644 --- a/pkg/api/v1beta1/register.go +++ b/pkg/api/v1beta1/register.go @@ -28,6 +28,8 @@ func init() { // Future names are supported, and declared first so they take precedence api.Scheme.AddKnownTypeWithName("v1beta1", "Node", &Minion{}) api.Scheme.AddKnownTypeWithName("v1beta1", "NodeList", &MinionList{}) + api.Scheme.AddKnownTypeWithName("v1beta1", "Operation", &ServerOp{}) + api.Scheme.AddKnownTypeWithName("v1beta1", "OperationList", &ServerOpList{}) api.Scheme.AddKnownTypes("v1beta1", &Pod{}, diff --git a/pkg/api/v1beta2/conversion.go b/pkg/api/v1beta2/conversion.go index a817af67914..9faa062fad3 100644 --- a/pkg/api/v1beta2/conversion.go +++ b/pkg/api/v1beta2/conversion.go @@ -295,6 +295,7 @@ func init() { if err := s.Convert(&in.Info, &out.Info, 0); err != nil { return err } + out.Message = in.Message out.Host = in.Host out.HostIP = in.HostIP out.PodIP = in.PodIP @@ -307,6 +308,7 @@ func init() { if err := s.Convert(&in.Info, &out.Info, 0); err != nil { return err } + out.Message = in.Message out.Host = in.Host out.HostIP = in.HostIP out.PodIP = in.PodIP diff --git a/pkg/api/v1beta2/register.go b/pkg/api/v1beta2/register.go index 3180892eca4..a5ca0d52122 100644 --- a/pkg/api/v1beta2/register.go +++ b/pkg/api/v1beta2/register.go @@ -28,6 +28,8 @@ func init() { // Future names are supported, and declared first so they take precedence api.Scheme.AddKnownTypeWithName("v1beta2", "Node", &Minion{}) api.Scheme.AddKnownTypeWithName("v1beta2", "NodeList", &MinionList{}) + api.Scheme.AddKnownTypeWithName("v1beta2", "Operation", &ServerOp{}) + api.Scheme.AddKnownTypeWithName("v1beta2", "OperationList", &ServerOpList{}) api.Scheme.AddKnownTypes("v1beta2", &Pod{}, diff --git a/pkg/api/v1beta3/register.go b/pkg/api/v1beta3/register.go index 6e0df08504d..3bb97847189 100644 --- a/pkg/api/v1beta3/register.go +++ b/pkg/api/v1beta3/register.go @@ -52,6 +52,8 @@ func init() { // Legacy names are supported api.Scheme.AddKnownTypeWithName("v1beta3", "Minion", &Node{}) api.Scheme.AddKnownTypeWithName("v1beta3", "MinionList", &NodeList{}) + api.Scheme.AddKnownTypeWithName("v1beta3", "ServerOp", &Operation{}) + api.Scheme.AddKnownTypeWithName("v1beta3", "ServerOpList", &OperationList{}) } func (*PodContainerInfo) IsAnAPIObject() {} diff --git a/pkg/apiserver/apiserver_test.go b/pkg/apiserver/apiserver_test.go index 612bd0b8455..c4f5178429c 100644 --- a/pkg/apiserver/apiserver_test.go +++ b/pkg/apiserver/apiserver_test.go @@ -70,15 +70,15 @@ func interfacesFor(version string) (*meta.VersionInterfaces, error) { func init() { // Certain API objects are returned regardless of the contents of storage: // api.Status is returned in errors - // api.ServerOp/api.ServerOpList are returned by /operations + // api.Operation/api.OperationList are returned by /operations // "internal" version api.Scheme.AddKnownTypes("", &Simple{}, &SimpleList{}, - &api.Status{}, &api.ServerOp{}, &api.ServerOpList{}) + &api.Status{}, &api.Operation{}, &api.OperationList{}) // "version" version // TODO: Use versioned api objects? api.Scheme.AddKnownTypes(testVersion, &Simple{}, &SimpleList{}, - &api.Status{}, &api.ServerOp{}, &api.ServerOpList{}) + &api.Status{}, &api.Operation{}, &api.OperationList{}) defMapper := meta.NewDefaultRESTMapper( versions, diff --git a/pkg/apiserver/operation.go b/pkg/apiserver/operation.go index 38451eb5b1e..6d95d1d7261 100644 --- a/pkg/apiserver/operation.go +++ b/pkg/apiserver/operation.go @@ -115,7 +115,7 @@ func (ops *Operations) insert(op *Operation) { } // List lists operations for an API client. -func (ops *Operations) List() *api.ServerOpList { +func (ops *Operations) List() *api.OperationList { ops.lock.Lock() defer ops.lock.Unlock() @@ -124,9 +124,9 @@ func (ops *Operations) List() *api.ServerOpList { ids = append(ids, id) } sort.StringSlice(ids).Sort() - ol := &api.ServerOpList{} + ol := &api.OperationList{} for _, id := range ids { - ol.Items = append(ol.Items, api.ServerOp{ObjectMeta: api.ObjectMeta{Name: id}}) + ol.Items = append(ol.Items, api.Operation{ObjectMeta: api.ObjectMeta{Name: id}}) } return ol } diff --git a/pkg/apiserver/operation_test.go b/pkg/apiserver/operation_test.go index 48e8f6820a5..5eaf924ed70 100644 --- a/pkg/apiserver/operation_test.go +++ b/pkg/apiserver/operation_test.go @@ -149,7 +149,7 @@ func TestOperationsList(t *testing.T) { if err != nil { t.Errorf("unexpected error: %v", err) } - oplist, ok := obj.(*api.ServerOpList) + oplist, ok := obj.(*api.OperationList) if !ok { t.Fatalf("expected ServerOpList, got %#v", obj) }