Skip to content

Commit c659b63

Browse files
committed
refactor: add repo for ansible tasks
1 parent cb1d8b6 commit c659b63

File tree

7 files changed

+54
-7
lines changed

7 files changed

+54
-7
lines changed

api/api_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ func TestApiPing(t *testing.T) {
2727
nil,
2828
nil,
2929
nil,
30+
nil,
3031
)
3132

3233
r.ServeHTTP(rr, req)

api/projects/tasks.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@ import (
1515
"time"
1616
)
1717

18+
type TaskController struct {
19+
ansibleTaskRepo db.AnsibleTaskRepository
20+
}
21+
22+
func NewTaskController(ansibleTaskRepo db.AnsibleTaskRepository) *TaskController {
23+
return &TaskController{
24+
ansibleTaskRepo: ansibleTaskRepo,
25+
}
26+
}
27+
1828
func taskPool(r *http.Request) *tasks.TaskPool {
1929
return helpers.GetFromContext(r, "task_pool").(*tasks.TaskPool)
2030
}
@@ -139,10 +149,10 @@ func GetTaskMiddleware(next http.Handler) http.Handler {
139149
// return
140150
//}
141151

142-
func GetAnsibleTaskHosts(w http.ResponseWriter, r *http.Request) {
152+
func (c *TaskController) GetAnsibleTaskHosts(w http.ResponseWriter, r *http.Request) {
143153
task := helpers.GetFromContext(r, "task").(db.Task)
144154
project := helpers.GetFromContext(r, "project").(db.Project)
145-
hosts, err := helpers.Store(r).GetAnsibleTaskHosts(project.ID, task.ID)
155+
hosts, err := c.ansibleTaskRepo.GetAnsibleTaskHosts(project.ID, task.ID)
146156
if err != nil {
147157
helpers.WriteError(w, err)
148158
return
@@ -151,10 +161,10 @@ func GetAnsibleTaskHosts(w http.ResponseWriter, r *http.Request) {
151161
helpers.WriteJSON(w, http.StatusOK, hosts)
152162
}
153163

154-
func GetAnsibleTaskErrors(w http.ResponseWriter, r *http.Request) {
164+
func (c *TaskController) GetAnsibleTaskErrors(w http.ResponseWriter, r *http.Request) {
155165
task := helpers.GetFromContext(r, "task").(db.Task)
156166
project := helpers.GetFromContext(r, "project").(db.Project)
157-
hosts, err := helpers.Store(r).GetAnsibleTaskErrors(project.ID, task.ID)
167+
hosts, err := c.ansibleTaskRepo.GetAnsibleTaskErrors(project.ID, task.ID)
158168
if err != nil {
159169
helpers.WriteError(w, err)
160170
return

api/router.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ func DelayMiddleware(delay time.Duration) func(http.Handler) http.Handler {
8484
func Route(
8585
store db.Store,
8686
terraformStore db.TerraformStore,
87+
ansibleTaskRepo db.AnsibleTaskRepository,
8788
taskPool *taskServices.TaskPool,
8889
projectService server.ProjectService,
8990
integrationService server.IntegrationService,
@@ -109,6 +110,7 @@ func Route(
109110
usersController := NewUsersController(subscriptionService)
110111
subscriptionController := proApi.NewSubscriptionController(store)
111112
projectRunnerController := proProjects.NewProjectRunnerController()
113+
taskController := projects.NewTaskController(ansibleTaskRepo)
112114

113115
r := mux.NewRouter()
114116
r.NotFoundHandler = http.HandlerFunc(servePublic)
@@ -436,8 +438,8 @@ func Route(
436438
projectTaskManagement.HandleFunc("/{task_id}", projects.GetTask).Methods("GET", "HEAD")
437439
projectTaskManagement.HandleFunc("/{task_id}", projects.RemoveTask).Methods("DELETE")
438440
projectTaskManagement.HandleFunc("/{task_id}/stages", projects.GetTaskStages).Methods("GET", "HEAD")
439-
projectTaskManagement.HandleFunc("/{task_id}/ansible/hosts", projects.GetAnsibleTaskHosts).Methods("GET", "HEAD")
440-
projectTaskManagement.HandleFunc("/{task_id}/ansible/errors", projects.GetAnsibleTaskErrors).Methods("GET", "HEAD")
441+
projectTaskManagement.HandleFunc("/{task_id}/ansible/hosts", taskController.GetAnsibleTaskHosts).Methods("GET", "HEAD")
442+
projectTaskManagement.HandleFunc("/{task_id}/ansible/errors", taskController.GetAnsibleTaskErrors).Methods("GET", "HEAD")
441443

442444
projectScheduleManagement := projectUserAPI.PathPrefix("/schedules").Subrouter()
443445
projectScheduleManagement.Use(projects.SchedulesMiddleware)

cli/cmd/root.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ func Execute() {
7373
func runService() {
7474
store := createStore("root")
7575
terraformStore := proFactory.NewTerraformStore(store)
76+
ansibleTaskRepository := proFactory.NewAnsibleTaskRepository(store)
7677

7778
projectService := server.NewProjectService(store, store)
7879
encryptionService := server.NewAccessKeyEncryptionService(store, store, store)
@@ -129,6 +130,7 @@ func runService() {
129130
route := api.Route(
130131
store,
131132
terraformStore,
133+
ansibleTaskRepository,
132134
&taskPool,
133135
projectService,
134136
integrationService,

db/Store.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,6 @@ type Store interface {
459459
SessionManager
460460
TokenManager
461461
TaskManager
462-
AnsibleTaskRepository
463462
ScheduleManager
464463
ViewManager
465464
RunnerManager

pro/db/factory/factory.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,7 @@ import (
88
func NewTerraformStore(store db.Store) db.TerraformStore {
99
return &sql.TerraformStoreImpl{}
1010
}
11+
12+
func NewAnsibleTaskRepository(store db.Store) db.AnsibleTaskRepository {
13+
return &sql.AnsibleTaskStoreImpl{}
14+
}

pro/db/sql/ansible_task.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package sql
2+
3+
import (
4+
"github.com/semaphoreui/semaphore/db"
5+
"github.com/semaphoreui/semaphore/db/sql"
6+
)
7+
8+
type AnsibleTaskStoreImpl struct {
9+
}
10+
11+
func NewAnsibleTask(connection *sql.SqlDbConnection) db.AnsibleTaskRepository {
12+
return &AnsibleTaskStoreImpl{}
13+
}
14+
15+
func (d *AnsibleTaskStoreImpl) CreateAnsibleTaskHost(host db.AnsibleTaskHost) error {
16+
return nil
17+
}
18+
19+
func (d *AnsibleTaskStoreImpl) CreateAnsibleTaskError(error db.AnsibleTaskError) error {
20+
return nil
21+
}
22+
23+
func (d *AnsibleTaskStoreImpl) GetAnsibleTaskHosts(projectID int, taskID int) (res []db.AnsibleTaskHost, err error) {
24+
return
25+
}
26+
27+
func (d *AnsibleTaskStoreImpl) GetAnsibleTaskErrors(projectID int, taskID int) (res []db.AnsibleTaskError, err error) {
28+
return
29+
}

0 commit comments

Comments
 (0)