Add thread-safe Add/Del methods and refactor client locking

- Add Add and Del methods to Client for dynamic host management.
- Add RWMutex to Client to protect the devices map.
- Add Transport to Config to allow mocking HTTP transport in tests.
- Add getDeviceByHost helper to centralize device lookup locking.
- Refactor GetAll* methods to snapshot host keys before iteration to avoid concurrent map read/write panic.
- Add tests for thread safety and Add/Del functionality.
This commit is contained in:
2026-01-04 13:56:19 -05:00
parent 906d005edf
commit 1754eb6e84
4 changed files with 268 additions and 51 deletions

View File

@@ -1,6 +1,9 @@
package edgeos
import "time"
import (
"net/http"
"time"
)
// Config represents the configuration for an EdgeOS device.
type Config struct {
@@ -10,4 +13,6 @@ type Config struct {
Username string
Password string
Timeout time.Duration
// Transport allows customizing the http transport (useful for testing)
Transport http.RoundTripper
}