From decffdd6a4119c8777acdd0470c9508c5815cdc0 Mon Sep 17 00:00:00 2001 From: Ziming Zhang Date: Fri, 2 Aug 2019 14:43:52 +0800 Subject: [PATCH] add total page num for tag retention Signed-off-by: Ziming Zhang Change-Id: I58a250dbb643f6949c1e34aa3a84a01dc3e0b285 --- src/core/api/retention.go | 12 ++++++++++++ src/pkg/retention/controller.go | 14 ++++++++++++++ src/pkg/retention/dao/retention.go | 16 ++++++++++++++++ src/pkg/retention/launcher_test.go | 8 ++++++++ src/pkg/retention/manager.go | 16 +++++++++++++++- 5 files changed, 65 insertions(+), 1 deletion(-) diff --git a/src/core/api/retention.go b/src/core/api/retention.go index e47d5ddcc..8df14d321 100644 --- a/src/core/api/retention.go +++ b/src/core/api/retention.go @@ -316,6 +316,12 @@ func (r *RetentionAPI) ListRetentionExecs() { r.SendInternalServerError(err) return } + total, err := retentionController.GetTotalOfRetentionExecs(id) + if err != nil { + r.SendInternalServerError(err) + return + } + r.SetPaginationHeader(total, query.PageNumber, query.PageSize) r.WriteJSONData(execs) } @@ -353,6 +359,12 @@ func (r *RetentionAPI) ListRetentionExecTasks() { r.SendInternalServerError(err) return } + total, err := retentionController.GetTotalOfRetentionExecTasks(eid) + if err != nil { + r.SendInternalServerError(err) + return + } + r.SetPaginationHeader(total, query.PageNumber, query.PageSize) r.WriteJSONData(his) } diff --git a/src/pkg/retention/controller.go b/src/pkg/retention/controller.go index 2cd6680ec..d156bd8ce 100644 --- a/src/pkg/retention/controller.go +++ b/src/pkg/retention/controller.go @@ -54,8 +54,12 @@ type APIController interface { ListRetentionExecs(policyID int64, query *q.Query) ([]*Execution, error) + GetTotalOfRetentionExecs(policyID int64) (int64, error) + ListRetentionExecTasks(executionID int64, query *q.Query) ([]*Task, error) + GetTotalOfRetentionExecTasks(executionID int64) (int64, error) + GetRetentionExecTaskLog(taskID int64) ([]byte, error) } @@ -232,6 +236,11 @@ func (r *DefaultAPIController) ListRetentionExecs(policyID int64, query *q.Query return r.manager.ListExecutions(policyID, query) } +// GetTotalOfRetentionExecs Count Retention Executions +func (r *DefaultAPIController) GetTotalOfRetentionExecs(policyID int64) (int64, error) { + return r.manager.GetTotalOfRetentionExecs(policyID) +} + // ListRetentionExecTasks List Retention Execution Histories func (r *DefaultAPIController) ListRetentionExecTasks(executionID int64, query *q.Query) ([]*Task, error) { q1 := &q.TaskQuery{ @@ -244,6 +253,11 @@ func (r *DefaultAPIController) ListRetentionExecTasks(executionID int64, query * return r.manager.ListTasks(q1) } +// GetTotalOfRetentionExecTasks Count Retention Execution Histories +func (r *DefaultAPIController) GetTotalOfRetentionExecTasks(executionID int64) (int64, error) { + return r.manager.GetTotalOfTasks(executionID) +} + // GetRetentionExecTaskLog Get Retention Execution Task Log func (r *DefaultAPIController) GetRetentionExecTaskLog(taskID int64) ([]byte, error) { return r.manager.GetTaskLog(taskID) diff --git a/src/pkg/retention/dao/retention.go b/src/pkg/retention/dao/retention.go index 21fd9abd8..e10cf12e4 100644 --- a/src/pkg/retention/dao/retention.go +++ b/src/pkg/retention/dao/retention.go @@ -175,6 +175,15 @@ func ListExecutions(policyID int64, query *q.Query) ([]*models.RetentionExecutio return execs, nil } +// GetTotalOfRetentionExecs Count Executions +func GetTotalOfRetentionExecs(policyID int64) (int64, error) { + o := dao.GetOrmer() + qs := o.QueryTable(new(models.RetentionExecution)) + + qs = qs.Filter("policy_id", policyID) + return qs.Count() +} + /* // ListExecHistories List Execution Histories func ListExecHistories(executionID int64, query *q.Query) ([]*models.RetentionTask, error) { @@ -260,3 +269,10 @@ func ListTask(query ...*q.TaskQuery) ([]*models.RetentionTask, error) { _, err := qs.All(&tasks) return tasks, err } + +// GetTotalOfTasks Count tasks +func GetTotalOfTasks(executionID int64) (int64, error) { + qs := dao.GetOrmer().QueryTable(&models.RetentionTask{}) + qs = qs.Filter("ExecutionID", executionID) + return qs.Count() +} diff --git a/src/pkg/retention/launcher_test.go b/src/pkg/retention/launcher_test.go index 3511ba34e..55f5cd559 100644 --- a/src/pkg/retention/launcher_test.go +++ b/src/pkg/retention/launcher_test.go @@ -76,6 +76,14 @@ func (f *fakeRepositoryManager) ListChartRepositories(projectID int64) ([]*chart type fakeRetentionManager struct{} +func (f *fakeRetentionManager) GetTotalOfRetentionExecs(policyID int64) (int64, error) { + return 0, nil +} + +func (f *fakeRetentionManager) GetTotalOfTasks(executionID int64) (int64, error) { + return 0, nil +} + func (f *fakeRetentionManager) CreatePolicy(p *policy.Metadata) (int64, error) { return 0, nil } diff --git a/src/pkg/retention/manager.go b/src/pkg/retention/manager.go index d6fae5947..5ac0ee79a 100644 --- a/src/pkg/retention/manager.go +++ b/src/pkg/retention/manager.go @@ -46,10 +46,14 @@ type Manager interface { DeleteExecution(int64) error // Get the specified execution GetExecution(eid int64) (*Execution, error) - // List execution histories + // List executions ListExecutions(policyID int64, query *q.Query) ([]*Execution, error) + // GetTotalOfRetentionExecs Count Retention Executions + GetTotalOfRetentionExecs(policyID int64) (int64, error) // List tasks histories ListTasks(query ...*q.TaskQuery) ([]*Task, error) + // GetTotalOfTasks Count Tasks + GetTotalOfTasks(executionID int64) (int64, error) // Create a new retention task CreateTask(task *Task) (int64, error) // Update the specified task @@ -157,6 +161,11 @@ func (d *DefaultManager) ListExecutions(policyID int64, query *q.Query) ([]*Exec return execs1, nil } +// GetTotalOfRetentionExecs Count Executions +func (d *DefaultManager) GetTotalOfRetentionExecs(policyID int64) (int64, error) { + return dao.GetTotalOfRetentionExecs(policyID) +} + // GetExecution Get Execution func (d *DefaultManager) GetExecution(eid int64) (*Execution, error) { e, err := dao.GetExecution(eid) @@ -213,6 +222,11 @@ func (d *DefaultManager) ListTasks(query ...*q.TaskQuery) ([]*Task, error) { return tasks, nil } +// GetTotalOfTasks Count tasks +func (d *DefaultManager) GetTotalOfTasks(executionID int64) (int64, error) { + return dao.GetTotalOfTasks(executionID) +} + // UpdateTask updates the task func (d *DefaultManager) UpdateTask(task *Task, cols ...string) error { if task == nil {