Merge pull request #5969 from yujuhong/selflink

Kubelet: no need to overwrite SelfLink for pods from the apiserver
This commit is contained in:
Victor Marmol 2015-03-25 16:59:56 -07:00
commit b1c06eb52e
2 changed files with 7 additions and 20 deletions

View File

@ -36,10 +36,7 @@ func newSourceApiserverFromLW(lw cache.ListerWatcher, updates chan<- interface{}
send := func(objs []interface{}) { send := func(objs []interface{}) {
var pods []api.Pod var pods []api.Pod
for _, o := range objs { for _, o := range objs {
pod := o.(*api.Pod) pods = append(pods, *o.(*api.Pod))
// Make a dummy self link so that references to this pod will work.
pod.SelfLink = "/api/v1beta1/pods/" + pod.Name
pods = append(pods, *pod)
} }
updates <- kubelet.PodUpdate{pods, kubelet.SET, kubelet.ApiserverSource} updates <- kubelet.PodUpdate{pods, kubelet.SET, kubelet.ApiserverSource}
} }

View File

@ -52,16 +52,6 @@ func TestNewSourceApiserver_UpdatesAndMultiplePods(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "q"}, ObjectMeta: api.ObjectMeta{Name: "q"},
Spec: api.PodSpec{Containers: []api.Container{{Image: "image/blah"}}}} Spec: api.PodSpec{Containers: []api.Container{{Image: "image/blah"}}}}
expectedPod1v1 := api.Pod{
ObjectMeta: api.ObjectMeta{Name: "p", SelfLink: "/api/v1beta1/pods/p"},
Spec: api.PodSpec{Containers: []api.Container{{Image: "image/one"}}}}
expectedPod1v2 := api.Pod{
ObjectMeta: api.ObjectMeta{Name: "p", SelfLink: "/api/v1beta1/pods/p"},
Spec: api.PodSpec{Containers: []api.Container{{Image: "image/two"}}}}
expectedPod2 := api.Pod{
ObjectMeta: api.ObjectMeta{Name: "q", SelfLink: "/api/v1beta1/pods/q"},
Spec: api.PodSpec{Containers: []api.Container{{Image: "image/blah"}}}}
// Setup fake api client. // Setup fake api client.
fakeWatch := watch.NewFake() fakeWatch := watch.NewFake()
lw := fakePodLW{ lw := fakePodLW{
@ -78,7 +68,7 @@ func TestNewSourceApiserver_UpdatesAndMultiplePods(t *testing.T) {
t.Errorf("Unable to read from channel when expected") t.Errorf("Unable to read from channel when expected")
} }
update := got.(kubelet.PodUpdate) update := got.(kubelet.PodUpdate)
expected := CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, expectedPod1v1) expected := CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, pod1v1)
if !api.Semantic.DeepEqual(expected, update) { if !api.Semantic.DeepEqual(expected, update) {
t.Errorf("Expected %#v; Got %#v", expected, update) t.Errorf("Expected %#v; Got %#v", expected, update)
} }
@ -91,8 +81,8 @@ func TestNewSourceApiserver_UpdatesAndMultiplePods(t *testing.T) {
} }
update = got.(kubelet.PodUpdate) update = got.(kubelet.PodUpdate)
// Could be sorted either of these two ways: // Could be sorted either of these two ways:
expectedA := CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, expectedPod1v1, expectedPod2) expectedA := CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, pod1v1, pod2)
expectedB := CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, expectedPod2, expectedPod1v1) expectedB := CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, pod2, pod1v1)
if !api.Semantic.DeepEqual(expectedA, update) && !api.Semantic.DeepEqual(expectedB, update) { if !api.Semantic.DeepEqual(expectedA, update) && !api.Semantic.DeepEqual(expectedB, update) {
t.Errorf("Expected %#v or %#v, Got %#v", expectedA, expectedB, update) t.Errorf("Expected %#v or %#v, Got %#v", expectedA, expectedB, update)
@ -105,8 +95,8 @@ func TestNewSourceApiserver_UpdatesAndMultiplePods(t *testing.T) {
t.Errorf("Unable to read from channel when expected") t.Errorf("Unable to read from channel when expected")
} }
update = got.(kubelet.PodUpdate) update = got.(kubelet.PodUpdate)
expectedA = CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, expectedPod1v2, expectedPod2) expectedA = CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, pod1v2, pod2)
expectedB = CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, expectedPod2, expectedPod1v2) expectedB = CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, pod2, pod1v2)
if !api.Semantic.DeepEqual(expectedA, update) && !api.Semantic.DeepEqual(expectedB, update) { if !api.Semantic.DeepEqual(expectedA, update) && !api.Semantic.DeepEqual(expectedB, update) {
t.Errorf("Expected %#v or %#v, Got %#v", expectedA, expectedB, update) t.Errorf("Expected %#v or %#v, Got %#v", expectedA, expectedB, update)
@ -119,7 +109,7 @@ func TestNewSourceApiserver_UpdatesAndMultiplePods(t *testing.T) {
t.Errorf("Unable to read from channel when expected") t.Errorf("Unable to read from channel when expected")
} }
update = got.(kubelet.PodUpdate) update = got.(kubelet.PodUpdate)
expected = CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, expectedPod2) expected = CreatePodUpdate(kubelet.SET, kubelet.ApiserverSource, pod2)
if !api.Semantic.DeepEqual(expected, update) { if !api.Semantic.DeepEqual(expected, update) {
t.Errorf("Expected %#v, Got %#v", expected, update) t.Errorf("Expected %#v, Got %#v", expected, update)
} }