func rotateDeployments(etcd *store.Etcd, application *model.Application, maxAppDeploy int64, dockerHost string, repositoryDir string) error { deployments, err := application.Deployments() if err != nil { return err } if len(deployments) == 0 || int64(len(deployments)) < maxAppDeploy { return nil } fmt.Println("=====> Max deploy limit reached.") oldestTimestamp := util.SortKeys(deployments)[0] oldestDeployment := model.NewDeployment(application, "", deployments[oldestTimestamp], oldestTimestamp, repositoryDir) fmt.Println("=====> Stop " + oldestDeployment.Revision + " ...") compose, err := model.NewCompose(dockerHost, oldestDeployment.ComposeFilePath, oldestDeployment.ProjectName) if err != nil { return err } if err := compose.Stop(); err != nil { return err } if err := application.DeleteDeployment(oldestTimestamp); err != nil { return err } if err := vulcand.DeregisterInformation(etcd, oldestDeployment); err != nil { return err } return nil }