Fix: SettingsController in install.sh aktualisiert (rmmagent[general] Parsing)

This commit is contained in:
cynfo3000
2026-03-01 01:37:35 +01:00
parent 77ec200b42
commit c114df215a
11 changed files with 534 additions and 60 deletions
+28
View File
@@ -416,6 +416,27 @@ func (d *Database) GetAgentByHostname(hostname string) (*models.Agent, error) {
return &a, nil
}
func (d *Database) GetAgentByName(name string) (*models.Agent, error) {
var a models.Agent
var lastHB sql.NullTime
err := d.db.QueryRow(
"SELECT id, name, hostname, ip, opnsense_version, registered_at, last_heartbeat FROM agents WHERE name = $1 LIMIT 1",
name,
).Scan(&a.ID, &a.Name, &a.Hostname, &a.IP, &a.OPNsenseVersion, &a.RegisteredAt, &lastHB)
if err == sql.ErrNoRows {
return nil, nil
}
if err != nil {
return nil, err
}
if lastHB.Valid {
a.LastHeartbeat = &lastHB.Time
}
return &a, nil
}
func (d *Database) GetAgent(id string) (*models.Agent, *models.SystemData, error) {
var a models.Agent
var lastHB sql.NullTime
@@ -505,6 +526,13 @@ func (d *Database) SetUpdateRequestAll(requested bool) (int64, error) {
return res.RowsAffected()
}
// Agent-Version direkt aus DB lesen (vor dem Update durch Heartbeat)
func (d *Database) GetAgentVersionFromDB(id string) string {
var version string
d.db.QueryRow("SELECT agent_version FROM agents WHERE id = $1", id).Scan(&version)
return version
}
// Agent-Firmware speichern (pro Plattform)
func (d *Database) SaveAgentFirmware(version, platform, hash string, binary []byte) error {
_, err := d.db.Exec(`