func (s *S) TestPullAppImageNames(c *check.C) { err := image.AppendAppImageName("myapp", "tsuru/app-myapp:v1") c.Assert(err, check.IsNil) err = image.AppendAppImageName("myapp", "tsuru/app-myapp:v2") c.Assert(err, check.IsNil) err = image.AppendAppImageName("myapp", "tsuru/app-myapp:v3") c.Assert(err, check.IsNil) err = image.PullAppImageNames("myapp", []string{"tsuru/app-myapp:v1", "tsuru/app-myapp:v3"}) c.Assert(err, check.IsNil) images, err := image.ListAppImages("myapp") c.Assert(err, check.IsNil) c.Assert(images, check.DeepEquals, []string{"tsuru/app-myapp:v2"}) }
func (s *S) TestPullAppImageNamesRemovesCustomData(c *check.C) { img1Name := "tsuru/app-myapp:v1" err := image.AppendAppImageName("myapp", img1Name) c.Assert(err, check.IsNil) err = image.AppendAppImageName("myapp", "tsuru/app-myapp:v2") c.Assert(err, check.IsNil) err = image.AppendAppImageName("myapp", "tsuru/app-myapp:v3") c.Assert(err, check.IsNil) data := map[string]interface{}{"healthcheck": map[string]interface{}{"path": "/test"}} err = image.SaveImageCustomData(img1Name, data) c.Assert(err, check.IsNil) err = image.PullAppImageNames("myapp", []string{img1Name}) c.Assert(err, check.IsNil) images, err := image.ListAppImages("myapp") c.Assert(err, check.IsNil) c.Assert(images, check.DeepEquals, []string{"tsuru/app-myapp:v2", "tsuru/app-myapp:v3"}) yamlData, err := image.GetImageTsuruYamlData(img1Name) c.Assert(err, check.IsNil) c.Assert(yamlData, check.DeepEquals, provision.TsuruYamlData{}) }
func (p *dockerProvisioner) cleanImage(appName, imgName string) { shouldRemove := true err := p.Cluster().RemoveImage(imgName) if err != nil { shouldRemove = false log.Errorf("Ignored error removing old image %q: %s. Image kept on list to retry later.", imgName, err.Error()) } err = p.Cluster().RemoveFromRegistry(imgName) if err != nil { shouldRemove = false log.Errorf("Ignored error removing old image from registry %q: %s. Image kept on list to retry later.", imgName, err.Error()) } if shouldRemove { err = image.PullAppImageNames(appName, []string{imgName}) if err != nil { log.Errorf("Ignored error pulling old images from database: %s", err) } } }
func (s *S) TestRemoveOldRoutesForwardNoImageData(c *check.C) { app := provisiontest.NewFakeApp("myapp", "python", 1) err := image.AppendAppImageName(app.GetName(), "img1") c.Assert(err, check.IsNil) err = image.PullAppImageNames(app.GetName(), []string{"img1"}) c.Assert(err, check.IsNil) routertest.FakeRouter.AddBackend(app.GetName()) defer routertest.FakeRouter.RemoveBackend(app.GetName()) cont1 := container.Container{ID: "ble-1", AppName: app.GetName(), ProcessName: "", HostAddr: "127.0.0.1", HostPort: ""} args := changeUnitsPipelineArgs{ app: app, toRemove: []container.Container{cont1}, provisioner: s.p, } context := action.FWContext{Previous: []container.Container{}, Params: []interface{}{args}} r, err := removeOldRoutes.Forward(context) c.Assert(err, check.IsNil) hasRoute := routertest.FakeRouter.HasRoute(app.GetName(), cont1.Address().String()) c.Assert(hasRoute, check.Equals, false) containers := r.([]container.Container) c.Assert(containers, check.DeepEquals, []container.Container{}) c.Assert(args.toRemove[0].Routable, check.Equals, false) }