diff --git a/elk/kibanaClient/7_17_16/client.go b/elk/kibanaClient/7_17_16/client.go index b109b62e45e777f68abb1a2a8b7fd94724075327..2b4b1715c2c1d36b38d42c5e85d5dc1c9bfeae25 100644 --- a/elk/kibanaClient/7_17_16/client.go +++ b/elk/kibanaClient/7_17_16/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/global" "gitee.com/openeuler/PilotGo-plugin-elk/kibanaClient/7_17_16/meta" "gitee.com/openeuler/PilotGo-plugin-elk/pluginclient" "github.com/elastic/elastic-agent-libs/kibana" @@ -83,3 +85,38 @@ func (client *KibanaClient_v7) pkgInfo2PkgPolicyInputs(pinfo *meta.PackageInfo_p return inputs } + +/* +向kibana请求package info并生成package policy + +input(key) == data_streams[0].streams[0].input +*/ +func (client *KibanaClient_v7) ComposePackagePolicy(policyid, pkgname string) (*meta.PackagePolicyRequest_p, error) { + pkginfo, err := client.GetPackageInfo(client.Ctx, pkgname) + if err != nil { + return nil, err + } + + outputs, err := client.GetOutputs(client.Ctx) + if err != nil { + return nil, err + } + + inputs := client.pkgInfo2PkgPolicyInputs(pkginfo) + + return &meta.PackagePolicyRequest_p{ + Enabled: true, + Name: fmt.Sprintf("%s-%s", pkginfo.Name, global.GenerateRandomID(5)), + Namespace: "default", + PolicyID: policyid, + Output_id: outputs[0].Id, + Package: meta.PackagePolicyRequestPackage_p{ + Name: pkgname, + Version: pkginfo.Version, + Title: pkginfo.Title, + }, + Vars: map[string]interface{}{}, + Inputs: inputs, + Force: true, + }, nil +}