Procházet zdrojové kódy

add error logging to usage service, case on create/update errors, add dev dockerfile for cli

Alexander Belanger před 4 roky
rodič
revize
23279efb5a

+ 4 - 0
internal/usage/usage.go

@@ -101,6 +101,10 @@ func GetUsage(opts *GetUsageOpts) (
 		usageCache, err = opts.Repo.ProjectUsage().UpdateProjectUsageCache(usageCache)
 	}
 
+	if err != nil {
+		return nil, nil, nil, err
+	}
+
 	return &types.ProjectUsage{
 		ResourceCPU:    usageCache.ResourceCPU,
 		ResourceMemory: usageCache.ResourceMemory,

+ 35 - 0
services/porter_cli_container/dev.Dockerfile

@@ -0,0 +1,35 @@
+
+# syntax=docker/dockerfile:1.1.7-experimental
+
+# Base Go environment
+# -------------------
+FROM golang:1.16 as base
+WORKDIR /porter
+
+RUN apt-get update && apt-get install -y gcc musl-dev git
+
+COPY go.mod go.sum Makefile ./
+COPY /cli ./cli
+COPY /internal ./internal
+COPY /api ./api
+COPY /ee ./ee
+
+RUN --mount=type=cache,target=$GOPATH/pkg/mod \
+    go mod download
+
+# Go build environment
+# --------------------
+FROM base AS build-go
+
+ARG version=dev
+
+RUN make build-cli-dev
+
+# Deployment environment
+# ----------------------
+FROM ubuntu:latest
+RUN apt-get update && apt-get install -y ca-certificates git
+
+COPY --from=build-go /porter/bin/porter /bin/porter
+
+ENTRYPOINT ["porter"]

+ 7 - 4
services/usage/usage.go

@@ -3,6 +3,7 @@
 package usage
 
 import (
+	"fmt"
 	"sync"
 	"time"
 
@@ -102,7 +103,7 @@ func (u *UsageTracker) GetProjectUsage() (map[uint]*UsageTrackerResponse, error)
 	var mu sync.Mutex
 	var wg sync.WaitGroup
 
-	worker := func(project *models.Project) error {
+	worker := func(project *models.Project) {
 		defer wg.Done()
 
 		current, limit, cache, err := usage.GetUsage(&usage.GetUsageOpts{
@@ -113,14 +114,16 @@ func (u *UsageTracker) GetProjectUsage() (map[uint]*UsageTrackerResponse, error)
 		})
 
 		if err != nil {
-			return err
+			fmt.Printf("Project %d: error getting usage: %v\n", project.ID, err)
+			return
 		}
 
 		// get the admin emails for the project
 		roles, err := u.repo.Project().ListProjectRoles(project.ID)
 
 		if err != nil {
-			return err
+			fmt.Printf("Project %d: error getting admin emails: %v\n", project.ID, err)
+			return
 		}
 
 		adminEmails := make([]string, 0)
@@ -161,7 +164,7 @@ func (u *UsageTracker) GetProjectUsage() (map[uint]*UsageTrackerResponse, error)
 		}
 		mu.Unlock()
 
-		return nil
+		return
 	}
 
 	// iterate (count / stepSize) + 1 times using Limit and Offset