Move update error observation to a single place. NFC

This commit is contained in:
Catherine
2025-10-17 10:56:29 +00:00
parent fcc6245ce8
commit 99b87226a1
2 changed files with 19 additions and 11 deletions

View File

@@ -328,7 +328,6 @@ func putPage(w http.ResponseWriter, r *http.Request) error {
switch result.outcome {
case UpdateError:
ObserveError(result.err)
if errors.Is(result.err, ErrManifestTooLarge) {
w.WriteHeader(http.StatusRequestEntityTooLarge)
} else if errors.Is(result.err, errArchiveFormat) {
@@ -339,7 +338,6 @@ func putPage(w http.ResponseWriter, r *http.Request) error {
w.WriteHeader(http.StatusServiceUnavailable)
}
case UpdateTimeout:
ObserveError(fmt.Errorf("update timeout"))
w.WriteHeader(http.StatusGatewayTimeout)
case UpdateNoChange:
w.Header().Add("X-Pages-Update", "no-change")
@@ -504,11 +502,9 @@ func postPage(w http.ResponseWriter, r *http.Request) error {
switch result.outcome {
case UpdateError:
ObserveError(result.err)
w.WriteHeader(http.StatusServiceUnavailable)
fmt.Fprintf(w, "update error: %s\n", result.err)
case UpdateTimeout:
ObserveError(fmt.Errorf("update timeout"))
w.WriteHeader(http.StatusGatewayTimeout)
fmt.Fprintln(w, "update timeout")
case UpdateNoChange:

View File

@@ -82,7 +82,7 @@ func UpdateFromRepository(
webRoot string,
repoURL string,
branch string,
) UpdateResult {
) (result UpdateResult) {
span, ctx := ObserveFunction(ctx, "UpdateFromRepository", "repo.url", repoURL)
defer span.Finish()
@@ -90,12 +90,15 @@ func UpdateFromRepository(
manifest, err := FetchRepository(ctx, repoURL, branch)
if errors.Is(err, context.DeadlineExceeded) {
return UpdateResult{UpdateTimeout, nil, fmt.Errorf("update timeout")}
result = UpdateResult{UpdateTimeout, nil, fmt.Errorf("update timeout")}
} else if err != nil {
return UpdateResult{UpdateError, nil, err}
result = UpdateResult{UpdateError, nil, err}
} else {
return Update(ctx, webRoot, manifest)
result = Update(ctx, webRoot, manifest)
}
observeUpdateResult(result)
return result
}
var errArchiveFormat = errors.New("unsupported archive format")
@@ -105,7 +108,7 @@ func UpdateFromArchive(
webRoot string,
contentType string,
reader io.Reader,
) UpdateResult {
) (result UpdateResult) {
var manifest *Manifest
var err error
@@ -128,8 +131,17 @@ func UpdateFromArchive(
if err != nil {
log.Printf("update %s err: %s", webRoot, err)
return UpdateResult{UpdateError, nil, err}
result = UpdateResult{UpdateError, nil, err}
} else {
return Update(ctx, webRoot, manifest)
result = Update(ctx, webRoot, manifest)
}
observeUpdateResult(result)
return
}
func observeUpdateResult(result UpdateResult) {
if result.err != nil {
ObserveError(result.err)
}
}