GetJobSummary API (#8)

* Adds GetJobSummary API
This commit is contained in:
lenhattan86 2021-01-12 16:18:09 -08:00 committed by GitHub
parent 755f99fb76
commit b1661698c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 61 additions and 0 deletions

View file

@ -348,6 +348,19 @@ func (c *Client) GetJobUpdateSummaries(jobUpdateQuery *aurora.JobUpdateQuery) (*
return resp.GetResult_().GetGetJobUpdateSummariesResult_(), nil
}
func (c *Client) GetJobSummary(role string) (*aurora.JobSummaryResult_, error) {
resp, retryErr := c.thriftCallWithRetries(false, func() (*aurora.Response, error) {
return c.readonlyClient.GetJobSummary(context.TODO(), role)
})
if retryErr != nil {
return nil, errors.Wrap(retryErr, "error getting job summaries from Aurora Scheduler")
}
return resp.GetResult_().GetJobSummaryResult_(), nil
}
func (c *Client) GetJobs(role string) (*aurora.GetJobsResult_, error) {
var result *aurora.GetJobsResult_

View file

@ -823,3 +823,51 @@ func TestRealisClient_BatchAwareAutoPause(t *testing.T) {
}
assert.NoError(t, r.KillJob(strategy.JobKey()))
}
// Test configuring an executor that doesn't exist for CreateJob API
func TestRealisClient_GetJobSummary(t *testing.T) {
role := "vagrant"
// Create a single job
job := realis.NewJobUpdate().
Environment("prod").
Role(role).
Name("TestGetJobSummary").
ThermosExecutor(thermosExec).
CPU(.25).
RAM(4).
Disk(10).
InstanceCount(3).
WatchTime(20 * time.Second).
IsService(true).
BatchSize(2)
result, err := r.CreateService(job)
assert.NoError(t, err)
assert.NotNil(t, result)
var ok bool
var mErr error
if ok, mErr = r.MonitorJobUpdate(*result.GetKey(), 5*time.Second, 4*time.Minute); !ok || mErr != nil {
// Update may already be in a terminal state so don't check for error
err := r.AbortJobUpdate(*result.GetKey(), "Monitor timed out.")
err = r.KillJob(job.JobKey())
assert.NoError(t, err)
}
assert.True(t, ok)
assert.NoError(t, mErr)
// get job summary of the role
summary, mErr := r.GetJobSummary(role)
assert.NoError(t, mErr)
assert.NotNil(t, summary)
assert.Equal(t, len(summary.Summaries), 1)
// Kill task test task after confirming it came up fine
err = r.KillJob(job.JobKey())
assert.NoError(t, err)
}