Merge pull request #8923 from caesarxuchao/TerminationToTerminated

Update ContainerState.Termination to ContainerState.Terminated
This commit is contained in:
Rohit Jnagal 2015-05-29 14:51:09 -07:00
commit 233ce46b83
20 changed files with 217 additions and 169 deletions

View File

@ -305,13 +305,13 @@ func deepCopy_api_ContainerState(in ContainerState, out *ContainerState, c *conv
} else {
out.Running = nil
}
if in.Termination != nil {
out.Termination = new(ContainerStateTerminated)
if err := deepCopy_api_ContainerStateTerminated(*in.Termination, out.Termination, c); err != nil {
if in.Terminated != nil {
out.Terminated = new(ContainerStateTerminated)
if err := deepCopy_api_ContainerStateTerminated(*in.Terminated, out.Terminated, c); err != nil {
return err
}
} else {
out.Termination = nil
out.Terminated = nil
}
return nil
}

View File

@ -742,7 +742,7 @@ type ContainerStateTerminated struct {
type ContainerState struct {
Waiting *ContainerStateWaiting `json:"waiting,omitempty"`
Running *ContainerStateRunning `json:"running,omitempty"`
Termination *ContainerStateTerminated `json:"termination,omitempty"`
Terminated *ContainerStateTerminated `json:"terminated,omitempty"`
}
type ContainerStatus struct {

View File

@ -257,13 +257,13 @@ func convert_api_ContainerState_To_v1_ContainerState(in *api.ContainerState, out
} else {
out.Running = nil
}
if in.Termination != nil {
out.Termination = new(ContainerStateTerminated)
if err := convert_api_ContainerStateTerminated_To_v1_ContainerStateTerminated(in.Termination, out.Termination, s); err != nil {
if in.Terminated != nil {
out.Terminated = new(ContainerStateTerminated)
if err := convert_api_ContainerStateTerminated_To_v1_ContainerStateTerminated(in.Terminated, out.Terminated, s); err != nil {
return err
}
} else {
out.Termination = nil
out.Terminated = nil
}
return nil
}
@ -2532,13 +2532,13 @@ func convert_v1_ContainerState_To_api_ContainerState(in *ContainerState, out *ap
} else {
out.Running = nil
}
if in.Termination != nil {
out.Termination = new(api.ContainerStateTerminated)
if err := convert_v1_ContainerStateTerminated_To_api_ContainerStateTerminated(in.Termination, out.Termination, s); err != nil {
if in.Terminated != nil {
out.Terminated = new(api.ContainerStateTerminated)
if err := convert_v1_ContainerStateTerminated_To_api_ContainerStateTerminated(in.Terminated, out.Terminated, s); err != nil {
return err
}
} else {
out.Termination = nil
out.Terminated = nil
}
return nil
}

View File

@ -246,13 +246,13 @@ func deepCopy_v1_ContainerState(in ContainerState, out *ContainerState, c *conve
} else {
out.Running = nil
}
if in.Termination != nil {
out.Termination = new(ContainerStateTerminated)
if err := deepCopy_v1_ContainerStateTerminated(*in.Termination, out.Termination, c); err != nil {
if in.Terminated != nil {
out.Terminated = new(ContainerStateTerminated)
if err := deepCopy_v1_ContainerStateTerminated(*in.Terminated, out.Terminated, c); err != nil {
return err
}
} else {
out.Termination = nil
out.Terminated = nil
}
return nil
}

View File

@ -752,7 +752,7 @@ type ContainerStateTerminated struct {
type ContainerState struct {
Waiting *ContainerStateWaiting `json:"waiting,omitempty" description:"details about a waiting container"`
Running *ContainerStateRunning `json:"running,omitempty" description:"details about a running container"`
Termination *ContainerStateTerminated `json:"termination,omitempty" description:"details about a terminated container"`
Terminated *ContainerStateTerminated `json:"terminated,omitempty" description:"details about a terminated container"`
}
type ContainerStatus struct {

View File

@ -1632,6 +1632,30 @@ func addConversionFuncs() {
out.SecretName = in.Target.ID
return nil
},
func(in *api.ContainerState, out *ContainerState, s conversion.Scope) error {
if err := s.Convert(&in.Waiting, &out.Waiting, 0); err != nil {
return err
}
if err := s.Convert(&in.Running, &out.Running, 0); err != nil {
return err
}
if err := s.Convert(&in.Terminated, &out.Termination, 0); err != nil {
return err
}
return nil
},
func(in *ContainerState, out *api.ContainerState, s conversion.Scope) error {
if err := s.Convert(&in.Waiting, &out.Waiting, 0); err != nil {
return err
}
if err := s.Convert(&in.Running, &out.Running, 0); err != nil {
return err
}
if err := s.Convert(&in.Termination, &out.Terminated, 0); err != nil {
return err
}
return nil
},
)
if err != nil {
// If one of the conversion functions is malformed, detect it immediately.

View File

@ -1547,6 +1547,30 @@ func addConversionFuncs() {
out.SecretName = in.Target.ID
return nil
},
func(in *api.ContainerState, out *ContainerState, s conversion.Scope) error {
if err := s.Convert(&in.Waiting, &out.Waiting, 0); err != nil {
return err
}
if err := s.Convert(&in.Running, &out.Running, 0); err != nil {
return err
}
if err := s.Convert(&in.Terminated, &out.Termination, 0); err != nil {
return err
}
return nil
},
func(in *ContainerState, out *api.ContainerState, s conversion.Scope) error {
if err := s.Convert(&in.Waiting, &out.Waiting, 0); err != nil {
return err
}
if err := s.Convert(&in.Running, &out.Running, 0); err != nil {
return err
}
if err := s.Convert(&in.Termination, &out.Terminated, 0); err != nil {
return err
}
return nil
},
)
if err != nil {
// If one of the conversion functions is malformed, detect it immediately.

View File

@ -33,6 +33,10 @@ func addConversionFuncs() {
convert_api_ServiceSpec_To_v1beta3_ServiceSpec,
convert_v1beta3_PodSpec_To_api_PodSpec,
convert_api_PodSpec_To_v1beta3_PodSpec,
convert_v1beta3_ContainerState_To_api_ContainerState,
convert_api_ContainerState_To_v1beta3_ContainerState,
convert_api_ContainerStateTerminated_To_v1beta3_ContainerStateTerminated,
convert_v1beta3_ContainerStateTerminated_To_api_ContainerStateTerminated,
)
if err != nil {
// If one of the conversion functions is malformed, detect it immediately.
@ -546,3 +550,101 @@ func convert_api_PodSpec_To_v1beta3_PodSpec(in *api.PodSpec, out *PodSpec, s con
}
return nil
}
func convert_api_ContainerState_To_v1beta3_ContainerState(in *api.ContainerState, out *ContainerState, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*api.ContainerState))(in)
}
if in.Waiting != nil {
out.Waiting = new(ContainerStateWaiting)
if err := convert_api_ContainerStateWaiting_To_v1beta3_ContainerStateWaiting(in.Waiting, out.Waiting, s); err != nil {
return err
}
} else {
out.Waiting = nil
}
if in.Running != nil {
out.Running = new(ContainerStateRunning)
if err := convert_api_ContainerStateRunning_To_v1beta3_ContainerStateRunning(in.Running, out.Running, s); err != nil {
return err
}
} else {
out.Running = nil
}
if in.Terminated != nil {
out.Termination = new(ContainerStateTerminated)
if err := convert_api_ContainerStateTerminated_To_v1beta3_ContainerStateTerminated(in.Terminated, out.Termination, s); err != nil {
return err
}
} else {
out.Termination = nil
}
return nil
}
func convert_v1beta3_ContainerState_To_api_ContainerState(in *ContainerState, out *api.ContainerState, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*ContainerState))(in)
}
if in.Waiting != nil {
out.Waiting = new(api.ContainerStateWaiting)
if err := convert_v1beta3_ContainerStateWaiting_To_api_ContainerStateWaiting(in.Waiting, out.Waiting, s); err != nil {
return err
}
} else {
out.Waiting = nil
}
if in.Running != nil {
out.Running = new(api.ContainerStateRunning)
if err := convert_v1beta3_ContainerStateRunning_To_api_ContainerStateRunning(in.Running, out.Running, s); err != nil {
return err
}
} else {
out.Running = nil
}
if in.Termination != nil {
out.Terminated = new(api.ContainerStateTerminated)
if err := convert_v1beta3_ContainerStateTerminated_To_api_ContainerStateTerminated(in.Termination, out.Terminated, s); err != nil {
return err
}
} else {
out.Terminated = nil
}
return nil
}
func convert_api_ContainerStateTerminated_To_v1beta3_ContainerStateTerminated(in *api.ContainerStateTerminated, out *ContainerStateTerminated, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*api.ContainerStateTerminated))(in)
}
out.ExitCode = in.ExitCode
out.Signal = in.Signal
out.Reason = in.Reason
out.Message = in.Message
if err := s.Convert(&in.StartedAt, &out.StartedAt, 0); err != nil {
return err
}
if err := s.Convert(&in.FinishedAt, &out.FinishedAt, 0); err != nil {
return err
}
out.ContainerID = in.ContainerID
return nil
}
func convert_v1beta3_ContainerStateTerminated_To_api_ContainerStateTerminated(in *ContainerStateTerminated, out *api.ContainerStateTerminated, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*ContainerStateTerminated))(in)
}
out.ExitCode = in.ExitCode
out.Signal = in.Signal
out.Reason = in.Reason
out.Message = in.Message
if err := s.Convert(&in.StartedAt, &out.StartedAt, 0); err != nil {
return err
}
if err := s.Convert(&in.FinishedAt, &out.FinishedAt, 0); err != nil {
return err
}
out.ContainerID = in.ContainerID
return nil
}

View File

@ -144,37 +144,6 @@ func convert_api_ContainerPort_To_v1beta3_ContainerPort(in *api.ContainerPort, o
return nil
}
func convert_api_ContainerState_To_v1beta3_ContainerState(in *api.ContainerState, out *ContainerState, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*api.ContainerState))(in)
}
if in.Waiting != nil {
out.Waiting = new(ContainerStateWaiting)
if err := convert_api_ContainerStateWaiting_To_v1beta3_ContainerStateWaiting(in.Waiting, out.Waiting, s); err != nil {
return err
}
} else {
out.Waiting = nil
}
if in.Running != nil {
out.Running = new(ContainerStateRunning)
if err := convert_api_ContainerStateRunning_To_v1beta3_ContainerStateRunning(in.Running, out.Running, s); err != nil {
return err
}
} else {
out.Running = nil
}
if in.Termination != nil {
out.Termination = new(ContainerStateTerminated)
if err := convert_api_ContainerStateTerminated_To_v1beta3_ContainerStateTerminated(in.Termination, out.Termination, s); err != nil {
return err
}
} else {
out.Termination = nil
}
return nil
}
func convert_api_ContainerStateRunning_To_v1beta3_ContainerStateRunning(in *api.ContainerStateRunning, out *ContainerStateRunning, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*api.ContainerStateRunning))(in)
@ -185,24 +154,6 @@ func convert_api_ContainerStateRunning_To_v1beta3_ContainerStateRunning(in *api.
return nil
}
func convert_api_ContainerStateTerminated_To_v1beta3_ContainerStateTerminated(in *api.ContainerStateTerminated, out *ContainerStateTerminated, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*api.ContainerStateTerminated))(in)
}
out.ExitCode = in.ExitCode
out.Signal = in.Signal
out.Reason = in.Reason
out.Message = in.Message
if err := s.Convert(&in.StartedAt, &out.StartedAt, 0); err != nil {
return err
}
if err := s.Convert(&in.FinishedAt, &out.FinishedAt, 0); err != nil {
return err
}
out.ContainerID = in.ContainerID
return nil
}
func convert_api_ContainerStateWaiting_To_v1beta3_ContainerStateWaiting(in *api.ContainerStateWaiting, out *ContainerStateWaiting, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*api.ContainerStateWaiting))(in)
@ -2290,37 +2241,6 @@ func convert_v1beta3_ContainerPort_To_api_ContainerPort(in *ContainerPort, out *
return nil
}
func convert_v1beta3_ContainerState_To_api_ContainerState(in *ContainerState, out *api.ContainerState, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*ContainerState))(in)
}
if in.Waiting != nil {
out.Waiting = new(api.ContainerStateWaiting)
if err := convert_v1beta3_ContainerStateWaiting_To_api_ContainerStateWaiting(in.Waiting, out.Waiting, s); err != nil {
return err
}
} else {
out.Waiting = nil
}
if in.Running != nil {
out.Running = new(api.ContainerStateRunning)
if err := convert_v1beta3_ContainerStateRunning_To_api_ContainerStateRunning(in.Running, out.Running, s); err != nil {
return err
}
} else {
out.Running = nil
}
if in.Termination != nil {
out.Termination = new(api.ContainerStateTerminated)
if err := convert_v1beta3_ContainerStateTerminated_To_api_ContainerStateTerminated(in.Termination, out.Termination, s); err != nil {
return err
}
} else {
out.Termination = nil
}
return nil
}
func convert_v1beta3_ContainerStateRunning_To_api_ContainerStateRunning(in *ContainerStateRunning, out *api.ContainerStateRunning, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*ContainerStateRunning))(in)
@ -2331,24 +2251,6 @@ func convert_v1beta3_ContainerStateRunning_To_api_ContainerStateRunning(in *Cont
return nil
}
func convert_v1beta3_ContainerStateTerminated_To_api_ContainerStateTerminated(in *ContainerStateTerminated, out *api.ContainerStateTerminated, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*ContainerStateTerminated))(in)
}
out.ExitCode = in.ExitCode
out.Signal = in.Signal
out.Reason = in.Reason
out.Message = in.Message
if err := s.Convert(&in.StartedAt, &out.StartedAt, 0); err != nil {
return err
}
if err := s.Convert(&in.FinishedAt, &out.FinishedAt, 0); err != nil {
return err
}
out.ContainerID = in.ContainerID
return nil
}
func convert_v1beta3_ContainerStateWaiting_To_api_ContainerStateWaiting(in *ContainerStateWaiting, out *api.ContainerStateWaiting, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*ContainerStateWaiting))(in)
@ -4327,9 +4229,7 @@ func init() {
convert_api_ComponentStatus_To_v1beta3_ComponentStatus,
convert_api_ContainerPort_To_v1beta3_ContainerPort,
convert_api_ContainerStateRunning_To_v1beta3_ContainerStateRunning,
convert_api_ContainerStateTerminated_To_v1beta3_ContainerStateTerminated,
convert_api_ContainerStateWaiting_To_v1beta3_ContainerStateWaiting,
convert_api_ContainerState_To_v1beta3_ContainerState,
convert_api_ContainerStatus_To_v1beta3_ContainerStatus,
convert_api_DeleteOptions_To_v1beta3_DeleteOptions,
convert_api_EmptyDirVolumeSource_To_v1beta3_EmptyDirVolumeSource,
@ -4438,9 +4338,7 @@ func init() {
convert_v1beta3_ComponentStatus_To_api_ComponentStatus,
convert_v1beta3_ContainerPort_To_api_ContainerPort,
convert_v1beta3_ContainerStateRunning_To_api_ContainerStateRunning,
convert_v1beta3_ContainerStateTerminated_To_api_ContainerStateTerminated,
convert_v1beta3_ContainerStateWaiting_To_api_ContainerStateWaiting,
convert_v1beta3_ContainerState_To_api_ContainerState,
convert_v1beta3_ContainerStatus_To_api_ContainerStatus,
convert_v1beta3_DeleteOptions_To_api_DeleteOptions,
convert_v1beta3_EmptyDirVolumeSource_To_api_EmptyDirVolumeSource,

View File

@ -349,20 +349,20 @@ func describeContainers(containers []api.ContainerStatus, out io.Writer) {
if container.State.Waiting.Reason != "" {
fmt.Fprintf(out, " Reason:\t%s\n", container.State.Waiting.Reason)
}
case container.State.Termination != nil:
case container.State.Terminated != nil:
fmt.Fprintf(out, " State:\tTerminated\n")
if container.State.Termination.Reason != "" {
fmt.Fprintf(out, " Reason:\t%s\n", container.State.Termination.Reason)
if container.State.Terminated.Reason != "" {
fmt.Fprintf(out, " Reason:\t%s\n", container.State.Terminated.Reason)
}
if container.State.Termination.Message != "" {
fmt.Fprintf(out, " Message:\t%s\n", container.State.Termination.Message)
if container.State.Terminated.Message != "" {
fmt.Fprintf(out, " Message:\t%s\n", container.State.Terminated.Message)
}
fmt.Fprintf(out, " Exit Code:\t%d\n", container.State.Termination.ExitCode)
if container.State.Termination.Signal > 0 {
fmt.Fprintf(out, " Signal:\t%d\n", container.State.Termination.Signal)
fmt.Fprintf(out, " Exit Code:\t%d\n", container.State.Terminated.ExitCode)
if container.State.Terminated.Signal > 0 {
fmt.Fprintf(out, " Signal:\t%d\n", container.State.Terminated.Signal)
}
fmt.Fprintf(out, " Started:\t%s\n", container.State.Termination.StartedAt.Time.Format(time.RFC1123Z))
fmt.Fprintf(out, " Finished:\t%s\n", container.State.Termination.FinishedAt.Time.Format(time.RFC1123Z))
fmt.Fprintf(out, " Started:\t%s\n", container.State.Terminated.StartedAt.Time.Format(time.RFC1123Z))
fmt.Fprintf(out, " Finished:\t%s\n", container.State.Terminated.FinishedAt.Time.Format(time.RFC1123Z))
default:
fmt.Fprintf(out, " State:\tWaiting\n")
}

View File

@ -157,7 +157,7 @@ func TestDescribeContainers(t *testing.T) {
input: api.ContainerStatus{
Name: "test",
State: api.ContainerState{
Termination: &api.ContainerStateTerminated{
Terminated: &api.ContainerStateTerminated{
StartedAt: util.NewTime(time.Now()),
FinishedAt: util.NewTime(time.Now()),
Reason: "potato",

View File

@ -381,7 +381,7 @@ func interpretContainerStatus(status *api.ContainerStatus) (string, string, stri
} else if state.Running != nil {
// Get the information of the last termination state. This is useful if
// a container is stuck in a crash loop.
message := getTermMsg(status.LastTerminationState.Termination)
message := getTermMsg(status.LastTerminationState.Terminated)
if message != "" {
message = "last termination: " + message
}
@ -390,8 +390,8 @@ func interpretContainerStatus(status *api.ContainerStatus) (string, string, stri
stateMsg = stateMsg + " *not ready*"
}
return stateMsg, translateTimestamp(state.Running.StartedAt), message, nil
} else if state.Termination != nil {
return "Terminated", translateTimestamp(state.Termination.StartedAt), getTermMsg(state.Termination), nil
} else if state.Terminated != nil {
return "Terminated", translateTimestamp(state.Terminated.StartedAt), getTermMsg(state.Terminated), nil
}
return "", "", "", fmt.Errorf("unknown container state %#v", *state)
}

View File

@ -838,7 +838,7 @@ func TestInterpretContainerStatus(t *testing.T) {
{
status: &api.ContainerStatus{
State: api.ContainerState{
Termination: &api.ContainerStateTerminated{
Terminated: &api.ContainerStateTerminated{
ExitCode: 3,
},
},
@ -851,7 +851,7 @@ func TestInterpretContainerStatus(t *testing.T) {
{
status: &api.ContainerStatus{
State: api.ContainerState{
Termination: &api.ContainerStateTerminated{
Terminated: &api.ContainerStateTerminated{
ExitCode: 5,
Reason: "test reason",
},

View File

@ -57,7 +57,7 @@ func ShouldContainerBeRestarted(container *api.Container, pod *api.Pod, podStatu
// Get all dead container status.
var resultStatus []*api.ContainerStatus
for i, containerStatus := range podStatus.ContainerStatuses {
if containerStatus.Name == container.Name && containerStatus.State.Termination != nil {
if containerStatus.Name == container.Name && containerStatus.State.Terminated != nil {
resultStatus = append(resultStatus, &podStatus.ContainerStatuses[i])
}
}
@ -76,7 +76,7 @@ func ShouldContainerBeRestarted(container *api.Container, pod *api.Pod, podStatu
if pod.Spec.RestartPolicy == api.RestartPolicyOnFailure {
// Check the exit code of last run. Note: This assumes the result is sorted
// by the created time in reverse order.
if resultStatus[0].State.Termination.ExitCode == 0 {
if resultStatus[0].State.Terminated.ExitCode == 0 {
glog.V(4).Infof("Already successfully ran container %q of pod %q, do nothing", container.Name, podFullName)
return false
}

View File

@ -290,7 +290,7 @@ func (dm *DockerManager) inspectContainer(dockerID, containerName, tPath string)
} else {
reason = inspectResult.State.Error
}
result.status.State.Termination = &api.ContainerStateTerminated{
result.status.State.Terminated = &api.ContainerStateTerminated{
ExitCode: inspectResult.State.ExitCode,
Reason: reason,
StartedAt: util.NewTime(inspectResult.State.StartedAt),
@ -304,7 +304,7 @@ func (dm *DockerManager) inspectContainer(dockerID, containerName, tPath string)
if err != nil {
glog.Errorf("Error on reading termination-log %s: %v", path, err)
} else {
result.status.State.Termination.Message = string(data)
result.status.State.Terminated.Message = string(data)
}
}
}
@ -329,8 +329,8 @@ func (dm *DockerManager) GetPodStatus(pod *api.Pod) (*api.PodStatus, error) {
lastObservedTime := make(map[string]util.Time, len(pod.Spec.Containers))
for _, status := range pod.Status.ContainerStatuses {
oldStatuses[status.Name] = status
if status.LastTerminationState.Termination != nil {
lastObservedTime[status.Name] = status.LastTerminationState.Termination.FinishedAt
if status.LastTerminationState.Terminated != nil {
lastObservedTime[status.Name] = status.LastTerminationState.Terminated.FinishedAt
}
}
@ -381,19 +381,19 @@ func (dm *DockerManager) GetPodStatus(pod *api.Pod) (*api.PodStatus, error) {
result := dm.inspectContainer(value.ID, dockerContainerName, terminationMessagePath)
if result.err != nil {
return nil, result.err
} else if result.status.State.Termination != nil {
} else if result.status.State.Terminated != nil {
terminationState = &result.status.State
}
if containerStatus, found := statuses[dockerContainerName]; found {
if containerStatus.LastTerminationState.Termination == nil && terminationState != nil {
if containerStatus.LastTerminationState.Terminated == nil && terminationState != nil {
// Populate the last termination state.
containerStatus.LastTerminationState = *terminationState
}
count := true
// Only count dead containers terminated after last time we observed,
if lastObservedTime, ok := lastObservedTime[dockerContainerName]; ok {
if terminationState != nil && terminationState.Termination.FinishedAt.After(lastObservedTime.Time) {
if terminationState != nil && terminationState.Terminated.FinishedAt.After(lastObservedTime.Time) {
count = false
} else {
// The container finished before the last observation. No

View File

@ -1567,8 +1567,8 @@ func TestGetPodStatusWithLastTermination(t *testing.T) {
}
terminatedContainers := []string{}
for _, cs := range status.ContainerStatuses {
if cs.LastTerminationState.Termination != nil {
terminatedContainers = append(terminatedContainers, cs.LastTerminationState.Termination.ContainerID)
if cs.LastTerminationState.Terminated != nil {
terminatedContainers = append(terminatedContainers, cs.LastTerminationState.Terminated.ContainerID)
}
}
sort.StringSlice(terminatedContainers).Sort()

View File

@ -1668,10 +1668,10 @@ func (kl *Kubelet) validateContainerStatus(podStatus *api.PodStatus, containerNa
return "", fmt.Errorf("container %q not found in pod", containerName)
}
if previous {
if cStatus.LastTerminationState.Termination == nil {
if cStatus.LastTerminationState.Terminated == nil {
return "", fmt.Errorf("previous terminated container %q not found in pod", containerName)
}
cID = cStatus.LastTerminationState.Termination.ContainerID
cID = cStatus.LastTerminationState.Terminated.ContainerID
} else {
if cStatus.State.Waiting != nil {
return "", fmt.Errorf("container %q is in waiting state.", containerName)
@ -1983,9 +1983,9 @@ func getPhase(spec *api.PodSpec, info []api.ContainerStatus) api.PodPhase {
if containerStatus, ok := api.GetContainerStatus(info, container.Name); ok {
if containerStatus.State.Running != nil {
running++
} else if containerStatus.State.Termination != nil {
} else if containerStatus.State.Terminated != nil {
stopped++
if containerStatus.State.Termination.ExitCode == 0 {
if containerStatus.State.Terminated.ExitCode == 0 {
succeeded++
} else {
failed++

View File

@ -1712,7 +1712,7 @@ func stoppedState(cName string) api.ContainerStatus {
return api.ContainerStatus{
Name: cName,
State: api.ContainerState{
Termination: &api.ContainerStateTerminated{},
Terminated: &api.ContainerStateTerminated{},
},
}
}
@ -1720,7 +1720,7 @@ func succeededState(cName string) api.ContainerStatus {
return api.ContainerStatus{
Name: cName,
State: api.ContainerState{
Termination: &api.ContainerStateTerminated{
Terminated: &api.ContainerStateTerminated{
ExitCode: 0,
},
},
@ -1730,7 +1730,7 @@ func failedState(cName string) api.ContainerStatus {
return api.ContainerStatus{
Name: cName,
State: api.ContainerState{
Termination: &api.ContainerStateTerminated{
Terminated: &api.ContainerStateTerminated{
ExitCode: -1,
},
},
@ -2577,7 +2577,7 @@ func TestValidateContainerStatus(t *testing.T) {
Running: &api.ContainerStateRunning{},
},
LastTerminationState: api.ContainerState{
Termination: &api.ContainerStateTerminated{},
Terminated: &api.ContainerStateTerminated{},
},
},
},
@ -2588,7 +2588,7 @@ func TestValidateContainerStatus(t *testing.T) {
{
Name: containerName,
State: api.ContainerState{
Termination: &api.ContainerStateTerminated{},
Terminated: &api.ContainerStateTerminated{},
},
},
},

View File

@ -136,7 +136,7 @@ func (p *podInfo) getContainerStatus(container *kubecontainer.Container) api.Con
}
exitCode = -1
status.State = api.ContainerState{
Termination: &api.ContainerStateTerminated{
Terminated: &api.ContainerStateTerminated{
ExitCode: exitCode,
StartedAt: util.Unix(container.Created, 0),
},

View File

@ -299,15 +299,15 @@ func waitForPodSuccessInNamespace(c *client.Client, podName string, contName str
if !ok {
Logf("No Status.Info for container '%s' in pod '%s' yet", contName, podName)
} else {
if ci.State.Termination != nil {
if ci.State.Termination.ExitCode == 0 {
if ci.State.Terminated != nil {
if ci.State.Terminated.ExitCode == 0 {
By("Saw pod success")
return true, nil
} else {
return true, fmt.Errorf("pod '%s' terminated with failure: %+v", podName, ci.State.Termination)
return true, fmt.Errorf("pod '%s' terminated with failure: %+v", podName, ci.State.Terminated)
}
} else {
Logf("Nil State.Termination for container '%s' in pod '%s' in namespace '%s' so far", contName, podName, namespace)
Logf("Nil State.Terminated for container '%s' in pod '%s' in namespace '%s' so far", contName, podName, namespace)
}
}
return false, nil
@ -903,10 +903,10 @@ func FailedContainers(pod api.Pod) map[string]ContainerFailures {
return nil
} else {
for _, status := range statuses {
if status.State.Termination != nil {
states[status.ContainerID] = ContainerFailures{status: status.State.Termination}
} else if status.LastTerminationState.Termination != nil {
states[status.ContainerID] = ContainerFailures{status: status.LastTerminationState.Termination}
if status.State.Terminated != nil {
states[status.ContainerID] = ContainerFailures{status: status.State.Terminated}
} else if status.LastTerminationState.Terminated != nil {
states[status.ContainerID] = ContainerFailures{status: status.LastTerminationState.Terminated}
}
if status.RestartCount > 0 {
var ok bool