From 56daf2606125f60088595d754fcc1f48ee153843 Mon Sep 17 00:00:00 2001 From: Wangjunqi123 Date: Fri, 31 May 2024 14:18:03 +0800 Subject: [PATCH] kibanaclient: wrap API of install package policy --- elk/kibanaClient/clientFleetAPI+.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/elk/kibanaClient/clientFleetAPI+.go b/elk/kibanaClient/clientFleetAPI+.go index 9525e36b..48006739 100644 --- a/elk/kibanaClient/clientFleetAPI+.go +++ b/elk/kibanaClient/clientFleetAPI+.go @@ -1,12 +1,16 @@ package kibanaClient import ( + "bytes" "context" + "encoding/json" "fmt" "io" "net/http" "gitee.com/openeuler/PilotGo-plugin-elk/kibanaClient/meta" + "gitee.com/openeuler/PilotGo-plugin-elk/global" + "github.com/elastic/elastic-agent-libs/kibana" ) func (client *KibanaClient) GetPackageInfo(ctx context.Context, pkgname, pkgversion string) (*meta.PackageInfo_p, error) { @@ -24,3 +28,24 @@ func (client *KibanaClient) GetPackageInfo(ctx context.Context, pkgname, pkgvers pinfo := Gjson_GetPackageInfo(bytes, "item.name", "item.policy_templates", "item.data_streams") return pinfo, nil } + +func (client *KibanaClient) InstallFleetPackage(ctx context.Context, reqbody *meta.PackagePolicyRequest_p) (*kibana.PackagePolicyResponse, error) { + reqBytes, err := json.Marshal(reqbody) + if err != nil { + return nil, fmt.Errorf("marshalling request json: %w", err) + } + + apiURL := meta.FleetPackagePoliciesAPI + resp, err := client.Client.Connection.SendWithContext(ctx, http.MethodPost, apiURL, nil, nil, bytes.NewReader(reqBytes)) + if err != nil { + return nil, fmt.Errorf("error calling %s API: %w", meta.FleetPackagePoliciesAPI, err) + } + defer resp.Body.Close() + + pkg_policy_resp := &kibana.PackagePolicyResponse{} + err = global.ReadJSONResponse(resp, pkg_policy_resp) + if err != nil { + return nil, fmt.Errorf("error reading response body: %w", err) + } + return pkg_policy_resp, nil +} -- Gitee