From f482d3bd54ab0d956f89dff4e7d786a760439555 Mon Sep 17 00:00:00 2001 From: shlomi-noach Date: Tue, 27 Oct 2015 14:50:43 +0100 Subject: [PATCH] /api/audit-recovery supports "unacknowledged=true" query param filter --- build.sh | 2 +- go/http/api.go | 3 ++- go/logic/topology_recovery_dao.go | 14 +++++++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/build.sh b/build.sh index a4c7e9c8..a72f8b8b 100755 --- a/build.sh +++ b/build.sh @@ -6,7 +6,7 @@ # set -e -RELEASE_VERSION="1.4.468" +RELEASE_VERSION="1.4.469" TOPDIR=/tmp/orchestrator-release export RELEASE_VERSION TOPDIR diff --git a/go/http/api.go b/go/http/api.go index 553f7cd1..c3847d99 100644 --- a/go/http/api.go +++ b/go/http/api.go @@ -1890,7 +1890,8 @@ func (this *HttpAPI) AuditRecovery(params martini.Params, r render.Render, req * if err != nil || page < 0 { page = 0 } - audits, err := logic.ReadRecentRecoveries(params["clusterName"], page) + unacknowledgedOnly := (req.URL.Query().Get("unacknowledged") == "true") + audits, err := logic.ReadRecentRecoveries(params["clusterName"], unacknowledgedOnly, page) if err != nil { r.JSON(200, &APIResponse{Code: ERROR, Message: fmt.Sprintf("%+v", err)}) diff --git a/go/logic/topology_recovery_dao.go b/go/logic/topology_recovery_dao.go index 320d08af..d48a8cfe 100644 --- a/go/logic/topology_recovery_dao.go +++ b/go/logic/topology_recovery_dao.go @@ -485,13 +485,17 @@ func ReadCompletedRecoveries(page int) ([]TopologyRecovery, error) { } // ReadCRecoveries reads latest recovery entries from topology_recovery -func ReadRecentRecoveries(clusterName string, page int) ([]TopologyRecovery, error) { +func ReadRecentRecoveries(clusterName string, unacknowledgedOnly bool, page int) ([]TopologyRecovery, error) { + whereConditions := []string{} whereClause := "" + if unacknowledgedOnly { + whereConditions = append(whereConditions, `acknowledged=0`) + } if clusterName != "" { - whereClause = fmt.Sprintf(` - where - cluster_name='%s'`, - clusterName) + whereConditions = append(whereConditions, fmt.Sprintf(`cluster_name='%s'`, clusterName)) + } + if len(whereConditions) > 0 { + whereClause = fmt.Sprintf("where %s", strings.Join(whereConditions, " and ")) } limit := fmt.Sprintf(` limit %d