Skip to content

Commit

Permalink
Optimize SetRunnerMetaUsed
Browse files Browse the repository at this point in the history
to send a second request to Nomad only when the meta values change.
  • Loading branch information
mpass99 committed Sep 12, 2024
1 parent 31299f4 commit b42819b
Showing 1 changed file with 17 additions and 9 deletions.
26 changes: 17 additions & 9 deletions internal/nomad/nomad.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,21 +176,29 @@ func (a *APIClient) LoadRunnerJobs(environmentID dto.EnvironmentID) ([]*nomadApi
}

func (a *APIClient) SetRunnerMetaUsed(runnerID string, used bool, duration int) error {
newMetaUsedValue := ConfigMetaUsedValue
if !used {
newMetaUsedValue = ConfigMetaUnusedValue

Check warning on line 181 in internal/nomad/nomad.go

View check run for this annotation

Codecov / codecov/patch

internal/nomad/nomad.go#L181

Added line #L181 was not covered by tests
}
newMetaTimeoutValue := strconv.Itoa(duration)

job, err := a.job(runnerID)
if err != nil {
return fmt.Errorf("couldn't retrieve job info: %w", err)
}
configTaskGroup := FindAndValidateConfigTaskGroup(job)
if used {
configTaskGroup.Meta[ConfigMetaUsedKey] = ConfigMetaUsedValue
configTaskGroup.Meta[ConfigMetaTimeoutKey] = strconv.Itoa(duration)
} else {
configTaskGroup.Meta[ConfigMetaUsedKey] = ConfigMetaUnusedValue
}
metaUsedDiffers := configTaskGroup.Meta[ConfigMetaUsedKey] != newMetaUsedValue
metaTimeoutDiffers := configTaskGroup.Meta[ConfigMetaTimeoutKey] != newMetaTimeoutValue

_, err = a.RegisterNomadJob(job)
if err != nil {
return fmt.Errorf("couldn't update runner config: %w", err)
if metaUsedDiffers || (used && metaTimeoutDiffers) {
configTaskGroup.Meta[ConfigMetaUsedKey] = newMetaUsedValue
if used {
configTaskGroup.Meta[ConfigMetaTimeoutKey] = newMetaTimeoutValue
}
_, err = a.RegisterNomadJob(job)
if err != nil {
return fmt.Errorf("couldn't update runner config: %w", err)

Check warning on line 200 in internal/nomad/nomad.go

View check run for this annotation

Codecov / codecov/patch

internal/nomad/nomad.go#L200

Added line #L200 was not covered by tests
}
}
return nil
}
Expand Down

0 comments on commit b42819b

Please sign in to comment.