diff --git a/pkg/mining/manager.go b/pkg/mining/manager.go index bd91d19..3b3b3eb 100644 --- a/pkg/mining/manager.go +++ b/pkg/mining/manager.go @@ -50,11 +50,11 @@ var instanceNameRegex = regexp.MustCompile(`[^a-zA-Z0-9_/-]`) // defer managerInterface.Stop() type ManagerInterface interface { StartMiner(ctx context.Context, minerType string, config *Config) (Miner, error) - StopMiner(ctx context.Context, name string) error - GetMiner(name string) (Miner, error) + StopMiner(ctx context.Context, minerName string) error + GetMiner(minerName string) (Miner, error) ListMiners() []Miner ListAvailableMiners() []AvailableMiner - GetMinerHashrateHistory(name string) ([]HashratePoint, error) + GetMinerHashrateHistory(minerName string) ([]HashratePoint, error) UninstallMiner(ctx context.Context, minerType string) error Stop() } @@ -439,7 +439,7 @@ func (manager *Manager) updateMinerConfig(minerType string, autostart bool, conf // manager.StopMiner(ctx, "xmrig/monero") stops the matching miner instance and removes it from the manager map. // manager.StopMiner(ctx, "ttminer/rtx4090") still removes the entry when the miner has already stopped. -func (manager *Manager) StopMiner(ctx context.Context, name string) error { +func (manager *Manager) StopMiner(ctx context.Context, minerName string) error { // ctx, cancel := context.WithCancel(context.Background()); cancel(); manager.StopMiner(ctx, "xmrig-rx_0") returns context.Canceled before locking. select { case <-ctx.Done(): @@ -450,12 +450,12 @@ func (manager *Manager) StopMiner(ctx context.Context, name string) error { manager.mutex.Lock() defer manager.mutex.Unlock() - miner, exists := manager.miners[name] + miner, exists := manager.miners[minerName] if !exists { for minerKey := range manager.miners { - if hasPrefix(minerKey, name) { + if hasPrefix(minerKey, minerName) { miner = manager.miners[minerKey] - name = minerKey + minerName = minerKey exists = true break } @@ -463,19 +463,19 @@ func (manager *Manager) StopMiner(ctx context.Context, name string) error { } if !exists { - return ErrMinerNotFound(name) + return ErrMinerNotFound(minerName) } // manager.emitEvent(EventMinerStopping, MinerEventData{Name: "xmrig-rx_0"}) tells websocket clients shutdown has started. manager.emitEvent(EventMinerStopping, MinerEventData{ - Name: name, + Name: minerName, }) // stopErr := miner.Stop() may fail after an external kill, but cleanup continues so the manager state stays accurate. stopErr := miner.Stop() // delete(manager.miners, "xmrig-rx_0") removes stale entries even when the process has already exited. - delete(manager.miners, name) + delete(manager.miners, minerName) // manager.emitEvent(EventMinerStopped, MinerEventData{Name: "xmrig-rx_0", Reason: "stopped"}) confirms the final stop reason. reason := "stopped" @@ -483,7 +483,7 @@ func (manager *Manager) StopMiner(ctx context.Context, name string) error { reason = stopErr.Error() } manager.emitEvent(EventMinerStopped, MinerEventData{ - Name: name, + Name: minerName, Reason: reason, }) @@ -523,21 +523,21 @@ func (manager *Manager) ListMiners() []Miner { // simulatedMiner := NewSimulatedMiner(SimulatedMinerConfig{Name: "sim-rx0"}) // if err := manager.RegisterMiner(simulatedMiner); err != nil { return err } func (manager *Manager) RegisterMiner(miner Miner) error { - name := miner.GetName() + minerName := miner.GetName() manager.mutex.Lock() - if _, exists := manager.miners[name]; exists { + if _, exists := manager.miners[minerName]; exists { manager.mutex.Unlock() - return ErrMinerExists(name) + return ErrMinerExists(minerName) } - manager.miners[name] = miner + manager.miners[minerName] = miner manager.mutex.Unlock() - logging.Info("registered miner", logging.Fields{"name": name}) + logging.Info("registered miner", logging.Fields{"miner_name": minerName}) - // Emit miner started event (outside lock) - manager.emitEvent(EventMinerStarted, map[string]interface{}{ - "name": name, + // Emit miner started event (outside lock) with the shared event payload shape. + manager.emitEvent(EventMinerStarted, MinerEventData{ + Name: minerName, }) return nil @@ -713,12 +713,12 @@ func (manager *Manager) collectSingleMinerStats(miner Miner, minerType string, n // points, err := manager.GetMinerHashrateHistory("xmrig") // for _, point := range points { logging.Info("hashrate", logging.Fields{"time": point.Timestamp, "rate": point.Hashrate}) } -func (manager *Manager) GetMinerHashrateHistory(name string) ([]HashratePoint, error) { +func (manager *Manager) GetMinerHashrateHistory(minerName string) ([]HashratePoint, error) { manager.mutex.RLock() defer manager.mutex.RUnlock() - miner, exists := manager.miners[name] + miner, exists := manager.miners[minerName] if !exists { - return nil, ErrMinerNotFound(name) + return nil, ErrMinerNotFound(minerName) } return miner.GetHashrateHistory(), nil } diff --git a/pkg/node/bundle.go b/pkg/node/bundle.go index cd4426d..8f0e0f4 100644 --- a/pkg/node/bundle.go +++ b/pkg/node/bundle.go @@ -6,11 +6,11 @@ import ( "crypto/sha256" "encoding/hex" "encoding/json" + "forge.lthn.ai/Snider/Borg/pkg/datanode" + "forge.lthn.ai/Snider/Borg/pkg/tim" "io" "os" "path/filepath" - "forge.lthn.ai/Snider/Borg/pkg/datanode" - "forge.lthn.ai/Snider/Borg/pkg/tim" ) // bundle.Type = BundleProfile // config/profile JSON only @@ -207,7 +207,7 @@ func isJSON(data []byte) bool { return data[0] == '{' || data[0] == '[' } -// tarData, err := createTarball(map[string][]byte{"xmrig": binaryData, "config.json": cfgData}) +// tarData, err := createTarball(map[string][]byte{"xmrig": binaryData, "config.json": configData}) // if err != nil { return nil, err } func createTarball(files map[string][]byte) ([]byte, error) { var buffer bytes.Buffer