Skip to content

chore: remove duplicated code in orb backends #82

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 21 additions & 13 deletions agent/backend/devicediscovery/device_discovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func Register() bool {
return true
}

func (d *deviceDiscoveryBackend) Configure(logger *zap.Logger, repo policies.PolicyRepo, config map[string]interface{}, common config.BackendCommons) error {
func (d *deviceDiscoveryBackend) Configure(logger *zap.Logger, repo policies.PolicyRepo, config map[string]any, common config.BackendCommons) error {
d.logger = logger
d.policyRepo = repo

Expand All @@ -86,7 +86,9 @@ func (d *deviceDiscoveryBackend) Configure(logger *zap.Logger, repo policies.Pol

func (d *deviceDiscoveryBackend) Version() (string, error) {
var info info
err := d.request("status", &info, http.MethodGet, http.NoBody, "application/json", versionTimeout)
url := fmt.Sprintf("%s://%s:%s/api/v1/status", d.apiProtocol, d.apiHost, d.apiPort)
err := backend.CommonRequest("device-discovery", d.proc, d.logger, url, &info, http.MethodGet,
http.NoBody, "application/json", versionTimeout, "detail")
if err != nil {
return "", err
}
Expand Down Expand Up @@ -200,7 +202,7 @@ func (d *deviceDiscoveryBackend) Stop(ctx context.Context) error {

func (d *deviceDiscoveryBackend) FullReset(ctx context.Context) error {
// force a stop, which stops scrape as well. if proc is dead, it no ops.
if state, _, _ := d.getProcRunningStatus(); state == backend.Running {
if state, _, _ := backend.GetRunningStatus(d.proc); state == backend.Running {
if err := d.Stop(ctx); err != nil {
d.logger.Error("failed to stop backend on restart procedure", zap.Error(err))
return err
Expand All @@ -220,9 +222,11 @@ func (d *deviceDiscoveryBackend) GetStartTime() time.Time {
return d.startTime
}

func (d *deviceDiscoveryBackend) GetCapabilities() (map[string]interface{}, error) {
caps := make(map[string]interface{})
err := d.request("capabilities", &caps, http.MethodGet, http.NoBody, "application/json", capabilitiesTimeout)
func (d *deviceDiscoveryBackend) GetCapabilities() (map[string]any, error) {
caps := make(map[string]any)
url := fmt.Sprintf("%s://%s:%s/api/v1/capabilities", d.apiProtocol, d.apiHost, d.apiPort)
err := backend.CommonRequest("device-discovery", d.proc, d.logger, url, &caps, http.MethodGet,
http.NoBody, "application/json", capabilitiesTimeout, "detail")
if err != nil {
return nil, err
}
Expand All @@ -231,7 +235,7 @@ func (d *deviceDiscoveryBackend) GetCapabilities() (map[string]interface{}, erro

func (d *deviceDiscoveryBackend) GetRunningStatus() (backend.RunningStatus, string, error) {
// first check process status
runningStatus, errMsg, err := d.getProcRunningStatus()
runningStatus, errMsg, err := backend.GetRunningStatus(d.proc)
// if it's not running, we're done
if runningStatus != backend.Running {
return runningStatus, errMsg, err
Expand All @@ -258,8 +262,8 @@ func (d *deviceDiscoveryBackend) ApplyPolicy(data policies.PolicyData, updatePol

d.logger.Debug("device-discovery policy apply", zap.String("policy_id", data.ID), zap.Any("data", data.Data))

fullPolicy := map[string]interface{}{
"policies": map[string]interface{}{
fullPolicy := map[string]any{
"policies": map[string]any{
data.Name: data.Data,
},
}
Expand All @@ -270,8 +274,10 @@ func (d *deviceDiscoveryBackend) ApplyPolicy(data policies.PolicyData, updatePol
return err
}

var resp map[string]interface{}
err = d.request("policies", &resp, http.MethodPost, bytes.NewBuffer(policyYaml), "application/x-yaml", applyPolicyTimeout)
var resp map[string]any
url := fmt.Sprintf("%s://%s:%s/api/v1/policies", d.apiProtocol, d.apiHost, d.apiPort)
err = backend.CommonRequest("device-discovery", d.proc, d.logger, url, &resp, http.MethodPost,
bytes.NewBuffer(policyYaml), "application/x-yaml", applyPolicyTimeout, "detail")
if err != nil {
d.logger.Warn("policy application failure", zap.String("policy_id", data.ID), zap.ByteString("policy", policyYaml))
return err
Expand All @@ -282,15 +288,17 @@ func (d *deviceDiscoveryBackend) ApplyPolicy(data policies.PolicyData, updatePol

func (d *deviceDiscoveryBackend) RemovePolicy(data policies.PolicyData) error {
d.logger.Debug("device-discovery policy remove", zap.String("policy_id", data.ID))
var resp interface{}
var resp any
var name string
// Since we use Name for removing policies not IDs, if there is a change, we need to remove the previous name of the policy
if data.PreviousPolicyData != nil && data.PreviousPolicyData.Name != data.Name {
name = data.PreviousPolicyData.Name
} else {
name = data.Name
}
err := d.request(fmt.Sprintf("policies/%s", name), &resp, http.MethodDelete, http.NoBody, "application/json", removePolicyTimeout)
url := fmt.Sprintf("%s://%s:%s/api/v1/policies/%s", d.apiProtocol, d.apiHost, d.apiPort, name)
err := backend.CommonRequest("device-discovery", d.proc, d.logger, url, &resp, http.MethodDelete,
http.NoBody, "application/json", removePolicyTimeout, "detail")
if err != nil {
return err
}
Expand Down
96 changes: 0 additions & 96 deletions agent/backend/devicediscovery/utils.go

This file was deleted.

34 changes: 21 additions & 13 deletions agent/backend/networkdiscovery/network_discovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func Register() bool {
return true
}

func (d *networkDiscoveryBackend) Configure(logger *zap.Logger, repo policies.PolicyRepo, config map[string]interface{}, common config.BackendCommons) error {
func (d *networkDiscoveryBackend) Configure(logger *zap.Logger, repo policies.PolicyRepo, config map[string]any, common config.BackendCommons) error {
d.logger = logger
d.policyRepo = repo

Expand All @@ -86,7 +86,9 @@ func (d *networkDiscoveryBackend) Configure(logger *zap.Logger, repo policies.Po

func (d *networkDiscoveryBackend) Version() (string, error) {
var info info
err := d.request("status", &info, http.MethodGet, http.NoBody, "application/json", versionTimeout)
url := fmt.Sprintf("%s://%s:%s/api/v1/status", d.apiProtocol, d.apiHost, d.apiPort)
err := backend.CommonRequest("network-discovery", d.proc, d.logger, url, &info, http.MethodGet,
http.NoBody, "application/json", versionTimeout, "detail")
if err != nil {
return "", err
}
Expand Down Expand Up @@ -200,7 +202,7 @@ func (d *networkDiscoveryBackend) Stop(ctx context.Context) error {

func (d *networkDiscoveryBackend) FullReset(ctx context.Context) error {
// force a stop, which stops scrape as well. if proc is dead, it no ops.
if state, _, _ := d.getProcRunningStatus(); state == backend.Running {
if state, _, _ := backend.GetRunningStatus(d.proc); state == backend.Running {
if err := d.Stop(ctx); err != nil {
d.logger.Error("failed to stop backend on restart procedure", zap.Error(err))
return err
Expand All @@ -220,9 +222,11 @@ func (d *networkDiscoveryBackend) GetStartTime() time.Time {
return d.startTime
}

func (d *networkDiscoveryBackend) GetCapabilities() (map[string]interface{}, error) {
caps := make(map[string]interface{})
err := d.request("capabilities", &caps, http.MethodGet, http.NoBody, "application/json", capabilitiesTimeout)
func (d *networkDiscoveryBackend) GetCapabilities() (map[string]any, error) {
caps := make(map[string]any)
url := fmt.Sprintf("%s://%s:%s/api/v1/capabilities", d.apiProtocol, d.apiHost, d.apiPort)
err := backend.CommonRequest("network-discovery", d.proc, d.logger, url, &caps, http.MethodGet,
http.NoBody, "application/json", capabilitiesTimeout, "detail")
if err != nil {
return nil, err
}
Expand All @@ -231,7 +235,7 @@ func (d *networkDiscoveryBackend) GetCapabilities() (map[string]interface{}, err

func (d *networkDiscoveryBackend) GetRunningStatus() (backend.RunningStatus, string, error) {
// first check process status
runningStatus, errMsg, err := d.getProcRunningStatus()
runningStatus, errMsg, err := backend.GetRunningStatus(d.proc)
// if it's not running, we're done
if runningStatus != backend.Running {
return runningStatus, errMsg, err
Expand All @@ -258,8 +262,8 @@ func (d *networkDiscoveryBackend) ApplyPolicy(data policies.PolicyData, updatePo

d.logger.Debug("network-discovery policy apply", zap.String("policy_id", data.ID), zap.Any("data", data.Data))

fullPolicy := map[string]interface{}{
"policies": map[string]interface{}{
fullPolicy := map[string]any{
"policies": map[string]any{
data.Name: data.Data,
},
}
Expand All @@ -270,8 +274,10 @@ func (d *networkDiscoveryBackend) ApplyPolicy(data policies.PolicyData, updatePo
return err
}

var resp map[string]interface{}
err = d.request("policies", &resp, http.MethodPost, bytes.NewBuffer(policyYaml), "application/x-yaml", applyPolicyTimeout)
var resp map[string]any
url := fmt.Sprintf("%s://%s:%s/api/v1/%s", d.apiProtocol, d.apiHost, d.apiPort, "policies")
err = backend.CommonRequest("network-discovery", d.proc, d.logger, url, &resp, http.MethodPost,
bytes.NewBuffer(policyYaml), "application/x-yaml", applyPolicyTimeout, "detail")
if err != nil {
d.logger.Warn("policy application failure", zap.String("policy_id", data.ID), zap.ByteString("policy", policyYaml))
return err
Expand All @@ -282,13 +288,15 @@ func (d *networkDiscoveryBackend) ApplyPolicy(data policies.PolicyData, updatePo

func (d *networkDiscoveryBackend) RemovePolicy(data policies.PolicyData) error {
d.logger.Debug("network-discovery policy remove", zap.String("policy_id", data.ID))
var resp interface{}
var resp any
name := data.Name
// Since we use Name for removing policies not IDs, if there is a change, we need to remove the previous name of the policy
if data.PreviousPolicyData != nil && data.PreviousPolicyData.Name != data.Name {
name = data.PreviousPolicyData.Name
}
err := d.request(fmt.Sprintf("policies/%s", name), &resp, http.MethodDelete, http.NoBody, "application/json", removePolicyTimeout)
url := fmt.Sprintf("%s://%s:%s/api/v1/policies/%s", d.apiProtocol, d.apiHost, d.apiPort, name)
err := backend.CommonRequest("network-discovery", d.proc, d.logger, url, &resp, http.MethodDelete,
http.NoBody, "application/json", removePolicyTimeout, "detail")
if err != nil {
return err
}
Expand Down
96 changes: 0 additions & 96 deletions agent/backend/networkdiscovery/utils.go

This file was deleted.

Loading