本文整理汇总了Golang中github.com/convox/kernel/helpers.Error函数的典型用法代码示例。如果您正苦于以下问题:Golang Error函数的具体用法?Golang Error怎么用?Golang Error使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Error函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ServiceStream
func ServiceStream(rw http.ResponseWriter, r *http.Request) {
log := servicesLogger("stream").Start()
service, err := models.GetServiceFromName(mux.Vars(r)["service"])
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
logs := make(chan []byte)
done := make(chan bool)
service.SubscribeLogs(logs, done)
ws, err := upgrader.Upgrade(rw, r, nil)
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
log.Success("step=upgrade service=%q", service.Name)
defer ws.Close()
for data := range logs {
ws.WriteMessage(websocket.TextMessage, data)
}
log.Success("step=ended service=%q", service.Name)
}
示例2: ServiceCreate
func ServiceCreate(rw http.ResponseWriter, r *http.Request) {
log := servicesLogger("create").Start()
name := GetForm(r, "name")
t := GetForm(r, "type")
password, err := rand_password(20)
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
service := &models.Service{
Name: name,
Password: password,
Type: t,
}
err = service.Create()
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
Redirect(rw, r, "/services")
}
示例3: ReleasePromote
func ReleasePromote(rw http.ResponseWriter, r *http.Request) {
log := releasesLogger("promote").Start()
vars := mux.Vars(r)
app := vars["app"]
release := vars["release"]
rel, err := models.GetRelease(app, release)
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
err = rel.Promote()
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
log.Success("step=release.promote app=%q", app)
RenderText(rw, "ok")
}
示例4: AppCreate
func AppCreate(rw http.ResponseWriter, r *http.Request) {
log := appsLogger("create").Start()
name := GetForm(r, "name")
repo := GetForm(r, "repo")
app := &models.App{
Name: name,
Repository: repo,
}
err := app.Create()
if awsError(err) == "AlreadyExistsException" {
err = fmt.Errorf("There is already an app named %s", name)
helpers.Error(log, err)
RenderError(rw, err)
return
}
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
Redirect(rw, r, fmt.Sprintf("/apps/%s", name))
}
示例5: ProcessRunAttached
func ProcessRunAttached(ws *websocket.Conn) {
defer ws.Close()
log := processesLogger("run.attached").Start()
vars := mux.Vars(ws.Request())
app := vars["app"]
process := vars["process"]
command := ws.Request().Header.Get("Command")
ps, err := models.GetProcess(app, process)
if err != nil {
helpers.Error(log, err)
ws.Write([]byte(fmt.Sprintf("error: %s\n", err)))
return
}
log.Success("step=upgrade app=%q", ps.App)
defer ws.Close()
err = ps.RunAttached(command, ws)
if err != nil {
helpers.Error(log, err)
ws.Write([]byte(fmt.Sprintf("error: %s\n", err)))
return
}
log.Success("step=ended app=%q", ps.App)
}
示例6: EnvironmentDelete
func EnvironmentDelete(rw http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
app := vars["app"]
name := vars["name"]
env, err := models.GetEnvironment(app)
if awsError(err) == "ValidationError" {
RenderNotFound(rw, fmt.Sprintf("no such app: %s", app))
return
}
if err != nil {
helpers.Error(nil, err)
RenderError(rw, err)
return
}
delete(env, name)
err = models.PutEnvironment(app, env)
if err != nil {
helpers.Error(nil, err)
RenderError(rw, err)
return
}
RenderText(rw, "ok")
}
示例7: EnvironmentCreate
func EnvironmentCreate(rw http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
app := vars["app"]
name := vars["name"]
value := GetForm(r, "value")
env, err := models.GetEnvironment(app)
if err != nil {
helpers.Error(nil, err)
RenderError(rw, err)
return
}
env[strings.ToUpper(name)] = value
err = models.PutEnvironment(app, env)
if err != nil {
helpers.Error(nil, err)
RenderError(rw, err)
return
}
RenderText(rw, "ok")
}
示例8: ServiceDelete
func ServiceDelete(rw http.ResponseWriter, r *http.Request) {
log := servicesLogger("delete").Start()
vars := mux.Vars(r)
name := vars["service"]
service, err := models.GetServiceFromName(name)
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
log.Success("step=services.get service=%q", service.Name)
err = service.Delete()
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
log.Success("step=service.delete service=%q", service.Name)
RenderText(rw, "ok")
}
示例9: AppDelete
func AppDelete(rw http.ResponseWriter, r *http.Request) {
log := appsLogger("delete").Start()
vars := mux.Vars(r)
name := vars["app"]
app, err := models.GetApp(name)
if awsError(err) == "ValidationError" {
RenderNotFound(rw, fmt.Sprintf("no such app: %s", name))
return
}
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
log.Success("step=app.get app=%q", app.Name)
err = app.Delete()
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
log.Success("step=app.delete app=%q", app.Name)
RenderText(rw, "ok")
}
示例10: BuildLogs
func BuildLogs(ws *websocket.Conn) {
defer ws.Close()
log := buildsLogger("logs").Start()
vars := mux.Vars(ws.Request())
id := vars["build"]
log.Success("step=upgrade build=%q", id)
defer ws.Close()
// proxy to docker container logs
// https://docs.docker.com/reference/api/docker_remote_api_v1.19/#get-container-logs
client, err := docker.NewClient("unix:///var/run/docker.sock")
if err != nil {
helpers.Error(log, err)
ws.Write([]byte(fmt.Sprintf("error: %s\n", err)))
return
}
r, w := io.Pipe()
quit := make(chan bool)
go scanLines(r, ws)
go keepAlive(ws, quit)
err = client.Logs(docker.LogsOptions{
Container: fmt.Sprintf("build-%s", id),
Follow: true,
Stdout: true,
Stderr: true,
Tail: "all",
RawTerminal: false,
OutputStream: w,
ErrorStream: w,
})
quit <- true
if err != nil {
helpers.Error(log, err)
ws.Write([]byte(fmt.Sprintf("error: %s\n", err)))
return
}
}
示例11: SystemShow
func SystemShow(rw http.ResponseWriter, r *http.Request) {
log := systemLogger("show").Start()
rack := os.Getenv("RACK")
a, err := models.GetApp(rack)
if awsError(err) == "ValidationError" {
RenderNotFound(rw, fmt.Sprintf("no such stack: %s", rack))
return
}
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
switch r.Header.Get("Content-Type") {
case "application/json":
RenderJson(rw, a)
default:
RenderTemplate(rw, "app", a)
}
}
示例12: AppShow
func AppShow(rw http.ResponseWriter, r *http.Request) {
log := appsLogger("show").Start()
app := mux.Vars(r)["app"]
a, err := models.GetApp(app)
if awsError(err) == "ValidationError" {
RenderNotFound(rw, fmt.Sprintf("no such app: %s", app))
return
}
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
switch r.Header.Get("Content-Type") {
case "application/json":
RenderJson(rw, a)
default:
RenderTemplate(rw, "app", a)
}
}
示例13: AppEnvironment
func AppEnvironment(rw http.ResponseWriter, r *http.Request) {
log := appsLogger("environment").Start()
app := mux.Vars(r)["app"]
env, err := models.GetEnvironment(app)
if awsError(err) == "ValidationError" {
RenderNotFound(rw, fmt.Sprintf("no such app: %s", app))
return
}
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
params := map[string]interface{}{
"App": app,
"Environment": env,
}
switch r.Header.Get("Content-Type") {
case "application/json":
RenderJson(rw, params["Environment"])
default:
RenderPartial(rw, "app", "environment", params)
}
}
示例14: AppEvents
func AppEvents(rw http.ResponseWriter, r *http.Request) {
log := appsLogger("events").Start()
app := mux.Vars(r)["app"]
events, err := models.ListECSEvents(app)
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
for i, _ := range events {
match := regexServiceCleaner.FindStringSubmatch(events[i].Message)
if len(match) == 3 {
events[i].Message = fmt.Sprintf("[ECS] (%s) %s", match[1], match[2])
}
}
es, err := models.ListEvents(app)
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
for _, e := range es {
events = append(events, models.ServiceEvent{
Message: fmt.Sprintf("[CFM] (%s) %s %s", e.Name, e.Status, e.Reason),
CreatedAt: e.Time,
})
}
sort.Sort(sort.Reverse(events))
data := ""
for _, e := range events {
data += fmt.Sprintf("%s: %s\n", e.CreatedAt.Format(time.RFC3339), e.Message)
}
RenderText(rw, data)
}
示例15: AppReleases
func AppReleases(rw http.ResponseWriter, r *http.Request) {
log := appsLogger("releases").Start()
vars := mux.Vars(r)
app := vars["app"]
l := map[string]string{
"id": r.URL.Query().Get("id"),
"created": r.URL.Query().Get("created"),
}
a, err := models.GetApp(app)
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
releases, err := models.ListReleases(app, l)
if err != nil {
helpers.Error(log, err)
RenderError(rw, err)
return
}
params := map[string]interface{}{
"App": a,
"Releases": releases,
}
if len(releases) > 0 {
params["Last"] = releases[len(releases)-1]
}
switch r.Header.Get("Content-Type") {
case "application/json":
RenderJson(rw, releases)
default:
RenderPartial(rw, "app", "releases", params)
}
}