Skip to content

Commit 36a28f5

Browse files
committed
Refactoring: merging packages API into Kibana client
1 parent 9feab35 commit 36a28f5

File tree

4 files changed

+24
-14
lines changed

4 files changed

+24
-14
lines changed

internal/kibana/client.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ func (c *Client) put(resourcePath string, body []byte) (int, []byte, error) {
5353
return c.sendRequest(http.MethodPut, resourcePath, body)
5454
}
5555

56+
func (c *Client) delete(resourcePath string) (int, []byte, error) {
57+
return c.sendRequest(http.MethodDelete, resourcePath, nil)
58+
}
59+
5660
func (c *Client) sendRequest(method, resourcePath string, body []byte) (int, []byte, error) {
5761
reqBody := bytes.NewReader(body)
5862
base, err := url.Parse(c.host)

internal/kibana/ingestmanager/client_packages.go renamed to internal/kibana/packages.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// or more contributor license agreements. Licensed under the Elastic License;
33
// you may not use this file except in compliance with the Elastic License.
44

5-
package ingestmanager
5+
package kibana
66

77
import (
88
"encoding/json"
@@ -15,21 +15,27 @@ import (
1515

1616
// InstallPackage installs the given package in Fleet.
1717
func (c *Client) InstallPackage(pkg packages.PackageManifest) ([]packages.Asset, error) {
18-
return managePackage(pkg, "install", c.post)
18+
path := fmt.Sprintf("epm/packages/%s-%s", pkg.Name, pkg.Version)
19+
statusCode, respBody, err := c.post(path, nil)
20+
if err != nil {
21+
return nil, errors.Wrap(err, "could not install package")
22+
}
23+
24+
return processResults("install", statusCode, respBody)
1925
}
2026

2127
// RemovePackage removes the given package from Fleet.
2228
func (c *Client) RemovePackage(pkg packages.PackageManifest) ([]packages.Asset, error) {
23-
return managePackage(pkg, "remove", c.delete)
24-
}
25-
26-
func managePackage(pkg packages.PackageManifest, action string, actionFunc func(string, []byte) (int, []byte, error)) ([]packages.Asset, error) {
2729
path := fmt.Sprintf("epm/packages/%s-%s", pkg.Name, pkg.Version)
28-
statusCode, respBody, err := actionFunc(path, nil)
30+
statusCode, respBody, err := c.delete(path)
2931
if err != nil {
30-
return nil, errors.Wrapf(err, "could not %s package", action)
32+
return nil, errors.Wrap(err, "could not delete package")
3133
}
3234

35+
return processResults("remove", statusCode, respBody)
36+
}
37+
38+
func processResults(action string, statusCode int, respBody []byte) ([]packages.Asset, error) {
3339
if statusCode != 200 {
3440
return nil, fmt.Errorf("could not %s package; API status code = %d; response body = %s", action, statusCode, respBody)
3541
}

internal/testrunner/runners/asset/runner.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
es "github.com/elastic/go-elasticsearch/v7"
1313
"github.com/pkg/errors"
1414

15-
"github.com/elastic/elastic-package/internal/kibana/ingestmanager"
15+
"github.com/elastic/elastic-package/internal/kibana"
1616
"github.com/elastic/elastic-package/internal/logger"
1717
"github.com/elastic/elastic-package/internal/packages"
1818
"github.com/elastic/elastic-package/internal/stack"
@@ -98,19 +98,19 @@ func (r *runner) run() ([]testrunner.TestResult, error) {
9898
}
9999

100100
// Install package
101-
im, err := ingestmanager.NewClient(r.stackSettings.Kibana.Host, r.stackSettings.Elasticsearch.Username, r.stackSettings.Elasticsearch.Password)
101+
kib, err := kibana.NewClient()
102102
if err != nil {
103-
return resultsWith(result, errors.Wrap(err, "could not create ingest manager client"))
103+
return resultsWith(result, errors.Wrap(err, "could not create kibana client"))
104104
}
105105

106106
logger.Debug("installing package...")
107-
actualAssets, err := im.InstallPackage(*pkgManifest)
107+
actualAssets, err := kib.InstallPackage(*pkgManifest)
108108
if err != nil {
109109
return resultsWith(result, errors.Wrap(err, "could not install package"))
110110
}
111111
r.removePackageHandler = func() error {
112112
logger.Debug("removing package...")
113-
if _, err := im.RemovePackage(*pkgManifest); err != nil {
113+
if _, err := kib.RemovePackage(*pkgManifest); err != nil {
114114
return errors.Wrap(err, "error cleaning up package")
115115
}
116116
return nil

internal/testrunner/runners/system/runner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ func (r *runner) run() ([]testrunner.TestResult, error) {
178178
// Step 2. Configure package (single data stream) via Ingest Manager APIs.
179179
kib, err := kibana.NewClient()
180180
if err != nil {
181-
return resultsWith(result, errors.Wrap(err, "could not create ingest manager client"))
181+
return resultsWith(result, errors.Wrap(err, "could not create kibana client"))
182182
}
183183

184184
logger.Debug("creating test policy...")

0 commit comments

Comments
 (0)