mirror of
https://github.com/davidallendj/magellan.git
synced 2025-12-20 03:27:03 -07:00
Merge branch 'main' into alt-releaser
This commit is contained in:
commit
4c45afce8d
7 changed files with 39 additions and 45 deletions
|
|
@ -30,11 +30,11 @@ var collectCmd = &cobra.Command{
|
||||||
User: user,
|
User: user,
|
||||||
Pass: pass,
|
Pass: pass,
|
||||||
Drivers: drivers,
|
Drivers: drivers,
|
||||||
|
Preferred: preferredDriver,
|
||||||
Timeout: timeout,
|
Timeout: timeout,
|
||||||
Threads: threads,
|
Threads: threads,
|
||||||
Verbose: verbose,
|
Verbose: verbose,
|
||||||
WithSecureTLS: withSecureTLS,
|
WithSecureTLS: withSecureTLS,
|
||||||
|
|
||||||
}
|
}
|
||||||
magellan.CollectInfo(&probeStates, l, q)
|
magellan.CollectInfo(&probeStates, l, q)
|
||||||
|
|
||||||
|
|
|
||||||
24
cmd/root.go
24
cmd/root.go
|
|
@ -8,19 +8,19 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
timeout int
|
timeout int
|
||||||
threads int
|
threads int
|
||||||
ports []int
|
ports []int
|
||||||
hosts []string
|
hosts []string
|
||||||
withSecureTLS bool
|
withSecureTLS bool
|
||||||
certPoolFile string
|
certPoolFile string
|
||||||
user string
|
user string
|
||||||
pass string
|
pass string
|
||||||
dbpath string
|
dbpath string
|
||||||
drivers []string
|
drivers []string
|
||||||
preferredDriver string
|
preferredDriver string
|
||||||
ipmitoolPath string
|
ipmitoolPath string
|
||||||
verbose bool
|
verbose bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO: discover bmc's on network (dora)
|
// TODO: discover bmc's on network (dora)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
func MakeRequest(url string, httpMethod string, body []byte, headers map[string]string) (*http.Response, []byte, error) {
|
func MakeRequest(url string, httpMethod string, body []byte, headers map[string]string) (*http.Response, []byte, error) {
|
||||||
// url := getSmdEndpointUrl(endpoint)
|
// url := getSmdEndpointUrl(endpoint)
|
||||||
req, _ := http.NewRequest(httpMethod, url, bytes.NewBuffer(body))
|
req, _ := http.NewRequest(httpMethod, url, bytes.NewBuffer(body))
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,9 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
IPMI_PORT = 623
|
IPMI_PORT = 623
|
||||||
SSH_PORT = 22
|
SSH_PORT = 22
|
||||||
HTTPS_PORT = 443
|
HTTPS_PORT = 443
|
||||||
)
|
)
|
||||||
|
|
||||||
type BMCProbeResult struct {
|
type BMCProbeResult struct {
|
||||||
|
|
@ -156,8 +156,7 @@ func CollectInfo(probeStates *[]BMCProbeResult, l *Logger, q *QueryParams) error
|
||||||
// inventories
|
// inventories
|
||||||
inventory, err := QueryInventory(client, l, q)
|
inventory, err := QueryInventory(client, l, q)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Log.Errorf("could not query inventory: %v", err)
|
l.Log.Errorf("could not query inventory (%v:%v): %v", q.Host, q.Port, err)
|
||||||
continue
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// chassis
|
// chassis
|
||||||
|
|
@ -177,11 +176,12 @@ func CollectInfo(probeStates *[]BMCProbeResult, l *Logger, q *QueryParams) error
|
||||||
data["Type"] = ""
|
data["Type"] = ""
|
||||||
data["Name"] = ""
|
data["Name"] = ""
|
||||||
data["FQDN"] = ps.Host
|
data["FQDN"] = ps.Host
|
||||||
|
data["User"] = q.User
|
||||||
|
data["Password"] = q.Pass
|
||||||
data["RediscoverOnUpdate"] = false
|
data["RediscoverOnUpdate"] = false
|
||||||
data["Inventory"] = inventory
|
data["Inventory"] = inventory
|
||||||
data["Chassis"] = chassis
|
data["Chassis"] = chassis
|
||||||
|
|
||||||
|
|
||||||
b, err := json.MarshalIndent(data, "", " ")
|
b, err := json.MarshalIndent(data, "", " ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Log.Errorf("could not marshal JSON: %v", err)
|
l.Log.Errorf("could not marshal JSON: %v", err)
|
||||||
|
|
@ -419,13 +419,13 @@ func QueryChassis(q *QueryParams) ([]byte, error) {
|
||||||
url += fmt.Sprintf("%s:%s@", q.User, q.Pass)
|
url += fmt.Sprintf("%s:%s@", q.User, q.Pass)
|
||||||
}
|
}
|
||||||
url += fmt.Sprintf("%s:%d", q.Host, q.Port)
|
url += fmt.Sprintf("%s:%d", q.Host, q.Port)
|
||||||
config := gofish.ClientConfig {
|
|
||||||
Endpoint: url,
|
|
||||||
Username: q.User,
|
|
||||||
Password: q.Pass,
|
|
||||||
Insecure: !q.WithSecureTLS,
|
|
||||||
TLSHandshakeTimeout: q.Timeout,
|
|
||||||
|
|
||||||
|
config := gofish.ClientConfig{
|
||||||
|
Endpoint: url,
|
||||||
|
Username: q.User,
|
||||||
|
Password: q.Pass,
|
||||||
|
Insecure: !q.WithSecureTLS,
|
||||||
|
TLSHandshakeTimeout: q.Timeout,
|
||||||
}
|
}
|
||||||
c, err := gofish.Connect(config)
|
c, err := gofish.Connect(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -4,23 +4,19 @@ import (
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
type Logger struct {
|
type Logger struct {
|
||||||
Log *logrus.Logger
|
Log *logrus.Logger
|
||||||
Path string
|
Path string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func NewLogger(l *logrus.Logger, level logrus.Level) *Logger {
|
func NewLogger(l *logrus.Logger, level logrus.Level) *Logger {
|
||||||
l.SetLevel(level)
|
l.SetLevel(level)
|
||||||
return &Logger{
|
return &Logger{
|
||||||
Log: logrus.New(),
|
Log: logrus.New(),
|
||||||
Path: "",
|
Path: "",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (l *Logger) WriteFile(path string) {
|
||||||
func (l *Logger)WriteFile(path string) {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
func rawConnect(host string, ports []int, timeout int, keepOpenOnly bool) []BMCProbeResult {
|
func rawConnect(host string, ports []int, timeout int, keepOpenOnly bool) []BMCProbeResult {
|
||||||
results := []BMCProbeResult{}
|
results := []BMCProbeResult{}
|
||||||
for _, p := range ports {
|
for _, p := range ports {
|
||||||
|
|
@ -52,9 +51,9 @@ func GenerateHosts(subnet string, begin uint8, end uint8) []string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func ScanForAssets(hosts []string, ports []int, threads int, timeout int) []BMCProbeResult {
|
func ScanForAssets(hosts []string, ports []int, threads int, timeout int) []BMCProbeResult {
|
||||||
results := make([]BMCProbeResult, 0, len(hosts))
|
results := make([]BMCProbeResult, 0, len(hosts))
|
||||||
done := make(chan struct{}, threads+1)
|
done := make(chan struct{}, threads+1)
|
||||||
chanHost := make(chan string, threads+1)
|
chanHost := make(chan string, threads+1)
|
||||||
// chanPort := make(chan int, threads+1)
|
// chanPort := make(chan int, threads+1)
|
||||||
|
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue