mirror of
https://github.com/davidallendj/magellan.git
synced 2025-12-20 03:27:03 -07:00
* feat: initial implementation of command split * feat: update collect and new send cmd * chore: cleanup unused code * chore: refactored getting username * chore: more refactoring and cleanup * feat: update send cmd implementation * chore: changed/updated example config * chore: made cmd more consistent and added formatting * refactor: removed --host flag from scan * chore: cleaned up and fixed issue with client * chore: cleaned up CLI flags in collect cmd * feat: updated crawl to include managers and output YAML optionally * refactor: updated and improved send implementation * refactor: minor improvements * refactor: added util func to check for empty slices * fix: issue with reading from stdin * refactor: added scheme trimming function for URIs * refactor: changed host arg back to positional * refactor: removed unused vars and added --output-dir flag * fix: make -f for secrets persistent * refactor: removed --host flag and request in collect * refactor: changed --output flag to --output-file * fix: updated flags for collect * fix: typo in crawler error * fix: dir being created when outputDir not set * fix: reading stdin and data args * fix: made output using -v and -o consistent * readme: added info about command split * updated changelog adding missing version entries * chore: updated example to use host as positional arg * fix: issue with reading --data arg * fix: remove unused import from collect pkg Signed-off-by: Devon Bautista <devonb@lanl.gov> --------- Signed-off-by: David Allen <16520934+davidallendj@users.noreply.github.com> Signed-off-by: Devon Bautista <devonb@lanl.gov> Co-authored-by: Devon Bautista <devonb@lanl.gov>
53 lines
1.5 KiB
Go
53 lines
1.5 KiB
Go
package client
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
)
|
|
|
|
type DefaultClient struct {
|
|
*http.Client
|
|
}
|
|
|
|
func (c *DefaultClient) Name() string {
|
|
return "default"
|
|
}
|
|
|
|
// Add() is the default function that is called with a client with no implementation.
|
|
// This function will simply make a HTTP request including all the data passed as
|
|
// the first argument with no data processing or manipulation. The function sends
|
|
// the data to a set callback URL (which may be changed to use a configurable value
|
|
// instead).
|
|
func (c *DefaultClient) Add(data HTTPBody, headers HTTPHeader) error {
|
|
if data == nil {
|
|
return fmt.Errorf("no data found")
|
|
}
|
|
|
|
path := "/inventory/add"
|
|
res, body, err := MakeRequest(c.Client, path, http.MethodPost, data, headers)
|
|
if res != nil {
|
|
statusOk := res.StatusCode >= 200 && res.StatusCode < 300
|
|
if !statusOk {
|
|
return fmt.Errorf("returned status code %d when POST'ing to endpoint", res.StatusCode)
|
|
}
|
|
fmt.Printf("%v (%v)\n%s\n", path, res.Status, string(body))
|
|
}
|
|
return err
|
|
}
|
|
|
|
func (c *DefaultClient) Update(data HTTPBody, headers HTTPHeader) error {
|
|
if data == nil {
|
|
return fmt.Errorf("no data found")
|
|
}
|
|
|
|
path := "/inventory/update"
|
|
res, body, err := MakeRequest(c.Client, path, http.MethodPut, data, headers)
|
|
if res != nil {
|
|
statusOk := res.StatusCode >= 200 && res.StatusCode < 300
|
|
if !statusOk {
|
|
return fmt.Errorf("returned status code %d when PUT'ing to endpoint", res.StatusCode)
|
|
}
|
|
fmt.Printf("%v (%v)\n%s\n", path, res.Status, string(body))
|
|
}
|
|
return err
|
|
}
|