184 lines
4.1 KiB
Go
184 lines
4.1 KiB
Go
package resource
|
|
|
|
// BOZO!!
|
|
// import (
|
|
// "testing"
|
|
// "time"
|
|
|
|
// "github.com/stretchr/testify/assert"
|
|
// v1 "k8s.io/api/core/v1"
|
|
// metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
// )
|
|
|
|
// func TestPodStatuses(t *testing.T) {
|
|
// type counts struct {
|
|
// ready, terminated, restarts int
|
|
// }
|
|
|
|
// uu := []struct {
|
|
// s []v1.ContainerStatus
|
|
// e counts
|
|
// }{
|
|
// {
|
|
// []v1.ContainerStatus{
|
|
// {
|
|
// Name: "c1",
|
|
// Ready: true,
|
|
// State: v1.ContainerState{
|
|
// Running: &v1.ContainerStateRunning{},
|
|
// },
|
|
// },
|
|
// {
|
|
// Name: "c2",
|
|
// Ready: false,
|
|
// RestartCount: 10,
|
|
// State: v1.ContainerState{
|
|
// Terminated: &v1.ContainerStateTerminated{},
|
|
// },
|
|
// },
|
|
// },
|
|
// counts{1, 1, 10},
|
|
// },
|
|
// }
|
|
|
|
// var p Pod
|
|
// for _, u := range uu {
|
|
// cr, ct, cs := p.statuses(u.s)
|
|
// assert.Equal(t, u.e.ready, cr)
|
|
// assert.Equal(t, u.e.terminated, ct)
|
|
// assert.Equal(t, u.e.restarts, cs)
|
|
// }
|
|
// }
|
|
|
|
// func TestPodPhase(t *testing.T) {
|
|
// uu := []struct {
|
|
// p *v1.Pod
|
|
// e string
|
|
// }{
|
|
// {makePodStatus("p1", v1.PodRunning, ""), "Running"},
|
|
// {makePodStatus("p2", v1.PodRunning, "Evicted"), "Evicted"},
|
|
// {makePodStatus("p1", v1.PodPending, ""), "Pending"},
|
|
// {makePodStatus("p1", v1.PodSucceeded, ""), "Succeeded"},
|
|
// {makePodStatus("p1", v1.PodFailed, ""), "Failed"},
|
|
// {makePodStatus("p1", v1.PodUnknown, ""), "Unknown"},
|
|
// {makePodCoInitTerminated("p1"), "Init:OOMKilled"},
|
|
// {makePodCoInitWaiting("p1", ""), "Init:0/1"},
|
|
// {makePodCoInitWaiting("p2", "Waiting"), "Init:Waiting"},
|
|
// {makePodCoInitWaiting("p1", "PodInitializing"), "Init:0/1"},
|
|
// {makePodCoWaiting("p1", "Waiting"), "Waiting"},
|
|
// {makePodCoWaiting("p1", ""), ""},
|
|
// {makePodCoTerminated("p1", "OOMKilled", 0, true), Terminating},
|
|
// {makePodCoTerminated("p2", "OOMKilled", 0, false), "OOMKilled"},
|
|
// {makePodCoTerminated("p1", "", 0, true), Terminating},
|
|
// {makePodCoTerminated("p1", "", 0, false), "ExitCode:1"},
|
|
// {makePodCoTerminated("p1", "", 1, true), Terminating},
|
|
// {makePodCoTerminated("p1", "", 1, false), "Signal:1"},
|
|
// }
|
|
|
|
// var p Pod
|
|
// for _, u := range uu {
|
|
// assert.Equal(t, u.e, p.phase(u.p))
|
|
// }
|
|
// }
|
|
|
|
// func makePodStatus(n string, phase v1.PodPhase, reason string) *v1.Pod {
|
|
// po := makePod(n)
|
|
// po.Status = v1.PodStatus{
|
|
// Phase: phase,
|
|
// Reason: reason,
|
|
// }
|
|
|
|
// return po
|
|
// }
|
|
|
|
// func makePodCoInitTerminated(n string) *v1.Pod {
|
|
// po := makePod(n)
|
|
|
|
// po.Status.InitContainerStatuses = []v1.ContainerStatus{
|
|
// {
|
|
// State: v1.ContainerState{
|
|
// Terminated: &v1.ContainerStateTerminated{
|
|
// Reason: "OOMKilled",
|
|
// ExitCode: 1,
|
|
// },
|
|
// },
|
|
// },
|
|
// }
|
|
|
|
// return po
|
|
// }
|
|
|
|
// func makePodCoInitWaiting(n, reason string) *v1.Pod {
|
|
// po := makePod(n)
|
|
|
|
// po.Status.InitContainerStatuses = []v1.ContainerStatus{
|
|
// {
|
|
// State: v1.ContainerState{
|
|
// Waiting: &v1.ContainerStateWaiting{
|
|
// Reason: reason,
|
|
// },
|
|
// },
|
|
// },
|
|
// }
|
|
|
|
// return po
|
|
// }
|
|
|
|
// func makePodCoTerminated(n, reason string, signal int32, deleted bool) *v1.Pod {
|
|
// po := makePod(n)
|
|
|
|
// if deleted {
|
|
// po.DeletionTimestamp = &metav1.Time{Time: time.Now()}
|
|
// }
|
|
// po.Status.ContainerStatuses = []v1.ContainerStatus{
|
|
// {
|
|
// State: v1.ContainerState{
|
|
// Terminated: &v1.ContainerStateTerminated{
|
|
// Reason: reason,
|
|
// Signal: signal,
|
|
// ExitCode: 1,
|
|
// },
|
|
// },
|
|
// },
|
|
// }
|
|
|
|
// return po
|
|
// }
|
|
|
|
// func makePodCoWaiting(n, reason string) *v1.Pod {
|
|
// po := makePod(n)
|
|
|
|
// po.Status.ContainerStatuses = []v1.ContainerStatus{
|
|
// {
|
|
// State: v1.ContainerState{
|
|
// Waiting: &v1.ContainerStateWaiting{
|
|
// Reason: reason,
|
|
// },
|
|
// },
|
|
// },
|
|
// }
|
|
|
|
// return po
|
|
// }
|
|
|
|
// func makePod(n string) *v1.Pod {
|
|
// return &v1.Pod{
|
|
// ObjectMeta: metav1.ObjectMeta{
|
|
// Name: n,
|
|
// Namespace: "default",
|
|
// },
|
|
// Spec: v1.PodSpec{
|
|
// InitContainers: []v1.Container{
|
|
// {
|
|
// Name: "ic1",
|
|
// },
|
|
// },
|
|
// Containers: []v1.Container{
|
|
// {
|
|
// Name: "c1",
|
|
// },
|
|
// },
|
|
// },
|
|
// }
|
|
// }
|