From af3b4830b3b00aa337a3218eeed93a7ee123ff68 Mon Sep 17 00:00:00 2001 From: Wangjunqi123 Date: Mon, 3 Jun 2024 09:31:24 +0800 Subject: [PATCH] kibanaclient: generate package inputs from package info --- elk/handler/policyHandle.go | 7 +++++++ elk/kibanaClient/client.go | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 elk/handler/policyHandle.go diff --git a/elk/handler/policyHandle.go b/elk/handler/policyHandle.go new file mode 100644 index 00000000..a1e3fc6f --- /dev/null +++ b/elk/handler/policyHandle.go @@ -0,0 +1,7 @@ +package handler + +import "github.com/gin-gonic/gin" + +func CreatePolicyHandle(ctx *gin.Context) { + +} \ No newline at end of file diff --git a/elk/kibanaClient/client.go b/elk/kibanaClient/client.go index eb074105..3053d63c 100644 --- a/elk/kibanaClient/client.go +++ b/elk/kibanaClient/client.go @@ -3,9 +3,11 @@ package kibanaClient import ( "context" "errors" + "fmt" "gitee.com/openeuler/PilotGo-plugin-elk/conf" "gitee.com/openeuler/PilotGo-plugin-elk/errormanager" + "gitee.com/openeuler/PilotGo-plugin-elk/kibanaClient/meta" "gitee.com/openeuler/PilotGo-plugin-elk/pluginclient" "github.com/elastic/elastic-agent-libs/kibana" ) @@ -37,3 +39,35 @@ func InitKibanaClient() { Ctx: context.Background(), } } + +func (client *KibanaClient) pkgInfo2PkgPolicyInputs(pinfo *meta.PackageInfo_p) map[string]meta.PackagePolicyInput_p { + inputs := map[string]meta.PackagePolicyInput_p{} + for _, policy_template_input := range pinfo.PolicyTemplates[0].Inputs { + pkg_policy_input := meta.PackagePolicyInput_p{ + Enabled: true, + Vars: map[string]interface{}{}, + Streams: map[string]meta.PackagePolicyInputStream_p{}, + } + for _, data_stream := range pinfo.DataStreams { + if policy_template_input.Type == data_stream.Streams[0].Input { + pkg_policy_input_stream := meta.PackagePolicyInputStream_p{ + Enabled: true, + Vars: map[string]interface{}{}, + } + for _, data_stream_stream_var := range data_stream.Streams[0].Vars { + pkg_policy_input_stream.Vars[data_stream_stream_var["name"].(string)] = data_stream_stream_var["default"] + } + pkg_policy_input.Streams[data_stream.Dataset] = pkg_policy_input_stream + } + } + + if policy_template_input.Vars != nil { + for _, policy_template_input_var := range policy_template_input.Vars { + pkg_policy_input.Vars[policy_template_input_var["name"].(string)] = policy_template_input_var["default"] + } + } + + inputs[fmt.Sprintf("%s-%s", pinfo.Name, policy_template_input.Type)] = pkg_policy_input + } + return inputs +} -- Gitee