Files
ops-assistant/internal/core/runbook/targets.go

38 lines
700 B
Go

package runbook
import (
"strings"
"ops-assistant/models"
"gorm.io/gorm"
)
type ResolvedTarget struct {
Found bool
User string
Host string
Port int
}
func resolveTarget(db *gorm.DB, name string) ResolvedTarget {
trim := strings.TrimSpace(name)
if trim == "" {
return ResolvedTarget{}
}
var t models.OpsTarget
if err := db.Where("name = ? AND enabled = ?", trim, true).First(&t).Error; err != nil {
return ResolvedTarget{}
}
user := strings.TrimSpace(t.User)
host := strings.TrimSpace(t.Host)
port := t.Port
if user == "" || host == "" {
return ResolvedTarget{}
}
if port <= 0 {
port = 22
}
return ResolvedTarget{Found: true, User: user, Host: host, Port: port}
}