From 383697d637482f8f658dabd369ecd317ae789be8 Mon Sep 17 00:00:00 2001 From: gnmahanth Date: Thu, 25 Apr 2024 07:16:30 +0000 Subject: [PATCH] pod and container namespace completion (https://github.com/deepfence/ThreatMapper/issues/2103) --- deepfence_server/apiDocs/operation.go | 6 ++++++ deepfence_server/handler/completion.go | 10 ++++++++++ deepfence_server/router/router.go | 2 ++ 3 files changed, 18 insertions(+) diff --git a/deepfence_server/apiDocs/operation.go b/deepfence_server/apiDocs/operation.go index bf689646f8..fb6f7251eb 100644 --- a/deepfence_server/apiDocs/operation.go +++ b/deepfence_server/apiDocs/operation.go @@ -914,4 +914,10 @@ func (d *OpenAPIDocs) AddCompletionOperations() { d.AddOperation("completeComplianceInfo", http.MethodPost, "/deepfence/complete/compliance", "Get Completion for compliance fields", "Complete compliance info", http.StatusOK, []string{tagCompletion}, bearerToken, new(CompletionNodeFieldReq), new(CompletionNodeFieldRes)) + d.AddOperation("completePodInfo", http.MethodPost, "/deepfence/complete/pod", + "Get Completion for Pod fields", "Complete Pod info", + http.StatusOK, []string{tagCompletion}, bearerToken, new(CompletionNodeFieldReq), new(CompletionNodeFieldRes)) + d.AddOperation("completeContainer", http.MethodPost, "/deepfence/complete/container", + "Get Completion for Container fields", "Complete Container info", + http.StatusOK, []string{tagCompletion}, bearerToken, new(CompletionNodeFieldReq), new(CompletionNodeFieldRes)) } diff --git a/deepfence_server/handler/completion.go b/deepfence_server/handler/completion.go index a7b9993aaa..2f4c6c9b1d 100644 --- a/deepfence_server/handler/completion.go +++ b/deepfence_server/handler/completion.go @@ -21,13 +21,23 @@ func (h *Handler) CompleteVulnerabilityInfo(w http.ResponseWriter, r *http.Reque func (h *Handler) CompleteHostInfo(w http.ResponseWriter, r *http.Request) { genericCompleteInfoHandler[model.Host](w, r, h) } + func (h *Handler) CompleteComplianceInfo(w http.ResponseWriter, r *http.Request) { genericCompleteInfoHandler[model.ComplianceRule](w, r, h) } + func (h *Handler) CompleteCloudComplianceInfo(w http.ResponseWriter, r *http.Request) { genericCompleteInfoHandler[model.CloudCompliance](w, r, h) } +func (h *Handler) CompletePodInfo(w http.ResponseWriter, r *http.Request) { + genericCompleteInfoHandler[model.Pod](w, r, h) +} + +func (h *Handler) CompleteContainerInfo(w http.ResponseWriter, r *http.Request) { + genericCompleteInfoHandler[model.Container](w, r, h) +} + func genericCompleteInfoHandler[T reporters.Cypherable](w http.ResponseWriter, r *http.Request, h *Handler) { defer r.Body.Close() var req completion.CompletionNodeFieldReq diff --git a/deepfence_server/router/router.go b/deepfence_server/router/router.go index 7d4d3e14c6..c5de581d52 100644 --- a/deepfence_server/router/router.go +++ b/deepfence_server/router/router.go @@ -264,6 +264,8 @@ func SetupRoutes(r *chi.Mux, serverPort string, serveOpenapiDocs bool, ingestC c r.Post("/host", dfHandler.CompleteHostInfo) r.Post("/cloud-compliance", dfHandler.CompleteCloudComplianceInfo) r.Post("/compliance", dfHandler.CompleteComplianceInfo) + r.Post("/pod", dfHandler.CompletePodInfo) + r.Post("/container", dfHandler.CompleteContainerInfo) }) r.Route("/search", func(r chi.Router) {