Change:
<ins> /* Copyright 2014 Google Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ package master import ( "reflect" "testing" "time" "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/registry" ) type FakeContainerInfo struct { host string id   string data interface{} err  error } func (f *FakeContainerInfo) GetContainerInfo(host, id string) (interface{}, error) { f.host = host f.id = id return f.data, f.err } func TestPodCacheGet(t *testing.T) { cache := NewPodCache(nil, nil, time.Second*1) pod := api.Pod{ JSONBase: api.JSONBase{ID: "foo"}, } cache.podInfo["foo"] = pod info, err := cache.GetContainerInfo("host", "foo") if err != nil { t.Errorf("Unexpected error: %#v", err) } if !reflect.DeepEqual(info, pod) { t.Errorf("Unexpected mismatch. Expected: %#v, Got: #%v", pod, info) } } func TestPodCacheGetMissing(t *testing.T) { cache := NewPodCache(nil, nil, time.Second*1) _, err := cache.GetContainerInfo("host", "foo") if err == nil { t.Errorf("Unexpected non-error") } } func TestPodGetContainerInfo(t *testing.T) { pod := api.Pod{ JSONBase: api.JSONBase{ID: "foo"}, } fake := FakeContainerInfo{ data: pod, } cache := NewPodCache(&fake, nil, time.Second*1) cache.updateContainerInfo("host", "foo") if fake.host != "host" || fake.id != "foo" { t.Errorf("Unexpected access: %#v", fake) } info, err := cache.GetContainerInfo("host", "foo") if err != nil { t.Errorf("Unexpected error: %#v", err) } if !reflect.DeepEqual(info, pod) { t.Errorf("Unexpected mismatch. Expected: %#v, Got: #%v", pod, info) } } func TestPodUpdateAllContainers(t *testing.T) { pod := api.Pod{ JSONBase: api.JSONBase{ID: "foo"}, CurrentState: api.PodState{ Host: "machine", }, } pods := []api.Pod{pod} mockRegistry := registry.MakeMockPodRegistry(pods) fake := FakeContainerInfo{ data: pod, } cache := NewPodCache(&fake, mockRegistry, time.Second*1) cache.UpdateAllContainers() if fake.host != "machine" || fake.id != "foo" { t.Errorf("Unexpected access: %#v", fake) } info, err := cache.GetContainerInfo("machine", "foo") if err != nil { t.Errorf("Unexpected error: %#v", err) } if !reflect.DeepEqual(info, pod) { t.Errorf("Unexpected mismatch. Expected: %#v, Got: #%v", pod, info) } } </ins>

Discussion:
Which jobs are failing: cip-postsubmit-push-to-staging (cip-postsubmit-push-to-staging) Since when has it been failing: This is a postsubmit of repository. Testgrid link: Reason for failure: Anything else we need to know: /cc /priority critical-urgent /milestone v1.18
So this is the "create a staging image of the promoter upon a merge to its master branch" job so that I don't have to do it manually myself. As for the failure, I am probably doing something wrong but from the logs it's hard to tell what I'm doing wrong. I don't think this is critical as it is not blocking the official promoter or anything.
I think the error could be that the service account for doesn't have creds to push to the buckets. I'll post another update later.
Thanks for the quick response. So, since this job is not critical, can we removed it from testgrid or is there a good reason to keep it there and just ignore the alerts?
I should be able to fix it this week; if that deadline passes then we can move it to another testgrid dashboard.
/sig release
/reopen Let's observe the job first before closing.
Reopened this issue. <detailsIn response to : /reopen Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
Do we have to rerun the job to make sure that it's fixed or wait for the next PR to be merge?
The behavior I have observed is that the job will re-run for each PR merge. I am now seeing that the latest build is failing due to a MemoryError when joining the heaviest Docker layer that contains gcloud: I am going to change the machine settings in another PR; stay tuned.
Looks like the last couple PRs did the trick. It's green now!
Thanks ! /close
Closing this issue. <detailsIn response to : Thanks ! Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details