-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
bugSomething isn't workingSomething isn't working
Description
bug
In my system the "collect" command always gives error failed to find MAC address with IP
version
commit fcfe76295e4759abcf4596f7c2d7eacb9244c253 (HEAD -> main, tag: v0.2.1, origin/main, origin/HEAD)
Merge: 2fca8f9 cc6ab50
To Reproduce
Steps to reproduce the behavior:
- ./magellan scan --subnet 192.168.10.0 --subnet-mask 255.255.255.0 --cache data/assets.db
- ./magellan list --cache data/assets.db
- ./magellan collect --cache data/assets.db --timeout 5 --username root --password 0penBmc --output logs
And I see these errors
{"level":"warn","error":"no ethernet interfaces found with IP address","time":"2025-04-25T16:32:21+02:00","message":"failed to find MAC address with IP 'https://192.168.10.46'"}
{"level":"warn","error":"no ethernet interfaces found with IP address","time":"2025-04-25T16:32:21+02:00","message":"failed to find MAC address with IP 'https://192.168.10.91'"}
{"level":"warn","error":"no ethernet interfaces found with IP address","time":"2025-04-25T16:32:23+02:00","message":"failed to find MAC address with IP 'https://192.168.10.82'"}
{"level":"warn","error":"no ethernet interfaces found with IP address","time":"2025-04-25T16:32:23+02:00","message":"failed to find MAC address with IP 'https://192.168.10.85'"}
See the complete traces in the file below (traces.error.txt)
and
$ sqlite3
SQLite version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> attach "/playground/magellan/data/assets.db" as db1;
sqlite> .tables
db1.magellan_scanned_assets
sqlite> SELECT * FROM db1.magellan_scanned_assets;
https://192.168.10.86|443|tcp|1|2025-04-25 16:31:34.732021656+02:00
https://192.168.10.91|443|tcp|1|2025-04-25 16:31:34.732903915+02:00
https://192.168.10.46|443|tcp|1|2025-04-25 16:31:34.733949108+02:00
https://192.168.10.82|443|tcp|1|2025-04-25 16:31:34.731715066+02:00
https://192.168.10.85|443|tcp|1|2025-04-25 16:31:34.731943185+02:00
https://192.168.10.25|443|tcp|1|2025-04-25 16:31:34.732430844+02:00
sqlite>
Fix
The problem is that the IP is stored with the HTTPS prefix, https://192.168.10.85 , but the function expects only the IP, 192.168.10.85.
This patch fixes the error:
$ git diff pkg/collect.go
diff --git a/pkg/collect.go b/pkg/collect.go
index 69fe951..862ea3c 100644
--- a/pkg/collect.go
+++ b/pkg/collect.go
@@ -167,7 +167,14 @@ func CollectInventory(assets *[]RemoteAsset, params *CollectParams) ([]map[strin
// optionally, add the MACAddr property if we find a matching IP
// from the correct ethernet interface
- mac, err := FindMACAddressWithIP(config, net.ParseIP(sr.Host))
+ host := sr.Host
+ sub_str := "https://"
+ if strings.Contains(host, sub_str) {
+ host = strings.TrimPrefix(sr.Host,sub_str)
+ }
+
+ mac, err := FindMACAddressWithIP(config, net.ParseIP(host))
+ // mac, err := FindMACAddressWithIP(config, net.ParseIP(sr.Host))
if err != nil {
log.Warn().Err(err).Msgf("failed to find MAC address with IP '%s'", sr.Host)
}
(END)See the complete traces in the file below (traces.fix.txt)
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working