-
Notifications
You must be signed in to change notification settings - Fork 894
feat: cancel stuck pending jobs #17803
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
0f51f35
2f3d606
4b252eb
ca49519
af994c2
3815727
b65f620
3c7c323
35df01f
8aa1ee2
4385933
96fee51
d8db119
5120fb1
8d4fa5a
18b809c
0fe1404
77be34e
4351529
c03bfa3
a15bd1c
5b9348f
91d2d32
767cb77
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1088,9 +1088,9 @@ func (q *querier) AcquireNotificationMessages(ctx context.Context, arg database. | |
} | ||
|
||
func (q *querier) AcquireProvisionerJob(ctx context.Context, arg database.AcquireProvisionerJobParams) (database.ProvisionerJob, error) { | ||
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
return database.ProvisionerJob{}, err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
// return database.ProvisionerJob{}, err | ||
// } | ||
return q.db.AcquireProvisionerJob(ctx, arg) | ||
} | ||
|
||
|
@@ -2309,30 +2309,31 @@ func (q *querier) GetProvisionerJobTimingsByJobID(ctx context.Context, jobID uui | |
} | ||
|
||
func (q *querier) GetProvisionerJobsByIDs(ctx context.Context, ids []uuid.UUID) ([]database.ProvisionerJob, error) { | ||
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceProvisionerJobs); err != nil { | ||
return nil, err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceProvisionerJobs); err != nil { | ||
// return nil, err | ||
// } | ||
return q.db.GetProvisionerJobsByIDs(ctx, ids) | ||
} | ||
|
||
func (q *querier) GetProvisionerJobsByIDsWithQueuePosition(ctx context.Context, ids []uuid.UUID) ([]database.GetProvisionerJobsByIDsWithQueuePositionRow, error) { | ||
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceProvisionerJobs); err != nil { | ||
return nil, err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceProvisionerJobs); err != nil { | ||
// return nil, err | ||
// } | ||
// policy.ActionRead, rbac.ResourceProvisionerJobs.InOrg(org.ID) | ||
return q.db.GetProvisionerJobsByIDsWithQueuePosition(ctx, ids) | ||
} | ||
|
||
func (q *querier) GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner(ctx context.Context, arg database.GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisionerParams) ([]database.GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisionerRow, error) { | ||
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceProvisionerJobs); err != nil { | ||
return nil, err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceProvisionerJobs); err != nil { | ||
// return nil, err | ||
// } | ||
ibetitsmike marked this conversation as resolved.
Show resolved
Hide resolved
|
||
return fetchWithPostFilter(q.auth, policy.ActionRead, q.db.GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner)(ctx, arg) | ||
} | ||
|
||
func (q *querier) GetProvisionerJobsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.ProvisionerJob, error) { | ||
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceProvisionerJobs); err != nil { | ||
return nil, err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceProvisionerJobs); err != nil { | ||
// return nil, err | ||
// } | ||
return q.db.GetProvisionerJobsCreatedAfter(ctx, createdAt) | ||
} | ||
|
||
|
@@ -3528,23 +3529,27 @@ func (q *querier) InsertPresetParameters(ctx context.Context, arg database.Inser | |
} | ||
|
||
func (q *querier) InsertProvisionerJob(ctx context.Context, arg database.InsertProvisionerJobParams) (database.ProvisionerJob, error) { | ||
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceProvisionerJobs); err != nil { | ||
return database.ProvisionerJob{}, err | ||
} | ||
// TODO: Remove this once we have a proper rbac check for provisioner jobs. | ||
// Currently ProvisionerJobs are not associated with a user, so we can't | ||
// check for a user's permissions. We'd need to check for the associated workspace | ||
// and verify ownership through that. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The comment should probably mention all the ways a job could be made and what the permission check should look like. I think the following is correct:
I just don't want the comment to only say that workspace ownership needs to be checked, and for some poor soul to start working on this thinking it'll be simple when in reality it will probably be difficult. Likely should have a ticket created to track this too. You might want to add a comment here in the code with the ticket number after you create it. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Left a simple description with link to the issue to not duplicate information. |
||
// if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceProvisionerJobs); err != nil { | ||
// return database.ProvisionerJob{}, err | ||
// } | ||
return q.db.InsertProvisionerJob(ctx, arg) | ||
} | ||
|
||
func (q *querier) InsertProvisionerJobLogs(ctx context.Context, arg database.InsertProvisionerJobLogsParams) ([]database.ProvisionerJobLog, error) { | ||
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
return nil, err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
// return nil, err | ||
ibetitsmike marked this conversation as resolved.
Show resolved
Hide resolved
|
||
// } | ||
return q.db.InsertProvisionerJobLogs(ctx, arg) | ||
} | ||
|
||
func (q *querier) InsertProvisionerJobTimings(ctx context.Context, arg database.InsertProvisionerJobTimingsParams) ([]database.ProvisionerJobTiming, error) { | ||
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
return nil, err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
// return nil, err | ||
// } | ||
return q.db.InsertProvisionerJobTimings(ctx, arg) | ||
} | ||
|
||
|
@@ -4168,16 +4173,16 @@ func (q *querier) UpdateProvisionerDaemonLastSeenAt(ctx context.Context, arg dat | |
} | ||
|
||
func (q *querier) UpdateProvisionerJobByID(ctx context.Context, arg database.UpdateProvisionerJobByIDParams) error { | ||
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
return err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
// return err | ||
// } | ||
return q.db.UpdateProvisionerJobByID(ctx, arg) | ||
} | ||
|
||
func (q *querier) UpdateProvisionerJobWithCancelByID(ctx context.Context, arg database.UpdateProvisionerJobWithCancelByIDParams) error { | ||
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
return err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
// return err | ||
// } | ||
ibetitsmike marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
job, err := q.db.GetProvisionerJobByID(ctx, arg.ID) | ||
if err != nil { | ||
|
@@ -4246,16 +4251,16 @@ func (q *querier) UpdateProvisionerJobWithCancelByID(ctx context.Context, arg da | |
} | ||
|
||
func (q *querier) UpdateProvisionerJobWithCompleteByID(ctx context.Context, arg database.UpdateProvisionerJobWithCompleteByIDParams) error { | ||
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
return err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
// return err | ||
// } | ||
return q.db.UpdateProvisionerJobWithCompleteByID(ctx, arg) | ||
} | ||
|
||
func (q *querier) UpdateProvisionerJobWithCompleteWithStartedAtByID(ctx context.Context, arg database.UpdateProvisionerJobWithCompleteWithStartedAtByIDParams) error { | ||
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
return err | ||
} | ||
// if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerJobs); err != nil { | ||
// return err | ||
// } | ||
return q.db.UpdateProvisionerJobWithCompleteWithStartedAtByID(ctx, arg) | ||
} | ||
|
||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.