Task chaining + some refactoring

This commit is contained in:
simon987
2019-02-15 22:10:02 -05:00
parent 07c0eca5aa
commit 6ca92bc0a7
31 changed files with 306 additions and 166 deletions

View File

@@ -134,8 +134,8 @@ func (api *WebAPI) getAssociatedProject(payload *GitPayload) *storage.Project {
project := api.Database.GetProjectWithRepoName(payload.Repository.FullName)
logrus.WithFields(logrus.Fields{
"project": project,
}).Trace("Found project associated with WebHook")
"projectChange": project,
}).Trace("Found projectChange associated with WebHook")
return project
}

View File

@@ -83,18 +83,18 @@ func New() *WebAPI {
api.router.POST("/access/grant", LogRequestMiddleware(api.WorkerGrantAccess))
api.router.POST("/access/remove", LogRequestMiddleware(api.WorkerRemoveAccess))
api.router.POST("/project/create", LogRequestMiddleware(api.ProjectCreate))
api.router.GET("/project/get/:id", LogRequestMiddleware(api.ProjectGet))
api.router.POST("/project/update/:id", LogRequestMiddleware(api.ProjectUpdate))
api.router.GET("/project/list", LogRequestMiddleware(api.ProjectGetAllProjects))
api.router.GET("/project/monitoring-between/:id", LogRequestMiddleware(api.GetSnapshotsBetween))
api.router.GET("/project/monitoring/:id", LogRequestMiddleware(api.GetNSnapshots))
api.router.GET("/project/assignees/:id", LogRequestMiddleware(api.ProjectGetAssigneeStats))
api.router.GET("/project/requests/:id", LogRequestMiddleware(api.ProjectGetAccessRequests))
api.router.GET("/project/request_access/:id", LogRequestMiddleware(api.WorkerRequestAccess))
api.router.POST("/projectChange/create", LogRequestMiddleware(api.ProjectCreate))
api.router.GET("/projectChange/get/:id", LogRequestMiddleware(api.ProjectGet))
api.router.POST("/projectChange/update/:id", LogRequestMiddleware(api.ProjectUpdate))
api.router.GET("/projectChange/list", LogRequestMiddleware(api.ProjectGetAllProjects))
api.router.GET("/projectChange/monitoring-between/:id", LogRequestMiddleware(api.GetSnapshotsBetween))
api.router.GET("/projectChange/monitoring/:id", LogRequestMiddleware(api.GetNSnapshots))
api.router.GET("/projectChange/assignees/:id", LogRequestMiddleware(api.ProjectGetAssigneeStats))
api.router.GET("/projectChange/requests/:id", LogRequestMiddleware(api.ProjectGetAccessRequests))
api.router.GET("/projectChange/request_access/:id", LogRequestMiddleware(api.WorkerRequestAccess))
api.router.POST("/task/create", LogRequestMiddleware(api.TaskCreate))
api.router.GET("/task/get/:project", LogRequestMiddleware(api.TaskGetFromProject))
api.router.GET("/task/get/:projectChange", LogRequestMiddleware(api.TaskGetFromProject))
api.router.GET("/task/get", LogRequestMiddleware(api.TaskGet))
api.router.POST("/task/release", LogRequestMiddleware(api.TaskRelease))

View File

@@ -16,6 +16,7 @@ type CreateProjectRequest struct {
Motd string `json:"motd"`
Public bool `json:"public"`
Hidden bool `json:"hidden"`
Chain int64 `json:"chain"`
}
type UpdateProjectRequest struct {
@@ -26,6 +27,7 @@ type UpdateProjectRequest struct {
Motd string `json:"motd"`
Public bool `json:"public"`
Hidden bool `json:"hidden"`
Chain int64 `json:"chain"`
}
type UpdateProjectResponse struct {
@@ -42,7 +44,7 @@ type CreateProjectResponse struct {
type GetProjectResponse struct {
Ok bool `json:"ok"`
Message string `json:"message,omitempty"`
Project *storage.Project `json:"project,omitempty"`
Project *storage.Project `json:"projectChange,omitempty"`
}
type GetAllProjectsResponse struct {
@@ -91,28 +93,29 @@ func (api *WebAPI) ProjectCreate(r *Request) {
Motd: createReq.Motd,
Public: createReq.Public,
Hidden: createReq.Hidden,
Chain: createReq.Chain,
}
if !isValidProject(project) {
logrus.WithFields(logrus.Fields{
"project": project,
}).Warn("Invalid project")
"projectChange": project,
}).Warn("Invalid projectChange")
r.Json(CreateProjectResponse{
Ok: false,
Message: "Invalid project",
Message: "Invalid projectChange",
}, 400)
return
}
if !isProjectCreationAuthorized(project, manager) {
logrus.WithFields(logrus.Fields{
"project": project,
}).Warn("Unauthorized project creation")
"projectChange": project,
}).Warn("Unauthorized projectChange creation")
r.Json(CreateProjectResponse{
Ok: false,
Message: "You are not permitted to create a project with this configuration",
Message: "You are not permitted to create a projectChange with this configuration",
}, 400)
return
}
@@ -130,8 +133,8 @@ func (api *WebAPI) ProjectCreate(r *Request) {
Id: id,
})
logrus.WithFields(logrus.Fields{
"project": project,
}).Debug("Created project")
"projectChange": project,
}).Debug("Created projectChange")
}
func (api *WebAPI) ProjectUpdate(r *Request) {
@@ -140,7 +143,7 @@ func (api *WebAPI) ProjectUpdate(r *Request) {
if err != nil || id <= 0 {
r.Json(CreateProjectResponse{
Ok: false,
Message: "Invalid project id",
Message: "Invalid projectChange id",
}, 400)
return
}
@@ -163,6 +166,7 @@ func (api *WebAPI) ProjectUpdate(r *Request) {
Motd: updateReq.Motd,
Public: updateReq.Public,
Hidden: updateReq.Hidden,
Chain: updateReq.Chain,
}
if isValidProject(project) {
@@ -175,26 +179,26 @@ func (api *WebAPI) ProjectUpdate(r *Request) {
}, 500)
logrus.WithError(err).WithFields(logrus.Fields{
"project": project,
}).Warn("Error during project update")
"projectChange": project,
}).Warn("Error during projectChange update")
} else {
r.OkJson(UpdateProjectResponse{
Ok: true,
})
logrus.WithFields(logrus.Fields{
"project": project,
}).Debug("Updated project")
"projectChange": project,
}).Debug("Updated projectChange")
}
} else {
logrus.WithFields(logrus.Fields{
"project": project,
}).Warn("Invalid project")
"projectChange": project,
}).Warn("Invalid projectChange")
r.Json(CreateProjectResponse{
Ok: false,
Message: "Invalid project",
Message: "Invalid projectChange",
}, 400)
}
}
@@ -349,7 +353,7 @@ func (api *WebAPI) WorkerRequestAccess(r *Request) {
r.Json(WorkerRequestAccessResponse{
Ok: false,
Message: "Project is public, you already have " +
"an active request or you already have access to this project",
"an active request or you already have access to this projectChange",
}, 400)
}
}

View File

@@ -14,7 +14,7 @@ import (
)
type CreateTaskRequest struct {
Project int64 `json:"project"`
Project int64 `json:"projectChange"`
MaxRetries int64 `json:"max_retries"`
Recipe string `json:"recipe"`
Priority int64 `json:"priority"`
@@ -123,7 +123,7 @@ func (api *WebAPI) TaskGetFromProject(r *Request) {
return
}
project, err := strconv.ParseInt(r.Ctx.UserValue("project").(string), 10, 64)
project, err := strconv.ParseInt(r.Ctx.UserValue("projectChange").(string), 10, 64)
handleErr(err, r)
task := api.Database.GetTaskFromProject(worker, project)
@@ -254,12 +254,7 @@ func (api *WebAPI) TaskRelease(r *Request) {
}
if !res {
response.Message = "Could not find a task with the specified Id assigned to this workerId"
logrus.WithFields(logrus.Fields{
"releaseTaskRequest": req,
"taskUpdated": res,
}).Warn("Release task: NOT FOUND")
response.Message = "Task was not marked as closed"
} else {
logrus.WithFields(logrus.Fields{

View File

@@ -146,7 +146,7 @@ func (api *WebAPI) WorkerGrantAccess(r *Request) {
} else {
r.OkJson(WorkerAccessResponse{
Ok: false,
Message: "Worker already has access to this project",
Message: "Worker already has access to this projectChange",
})
}
}
@@ -171,7 +171,7 @@ func (api *WebAPI) WorkerRemoveAccess(r *Request) {
} else {
r.OkJson(WorkerAccessResponse{
Ok: false,
Message: "Worker did not have access to this project",
Message: "Worker did not have access to this projectChange",
})
}
}