Fix: Agent-Rollout downloadete immer globale AGENT_VERSION statt Gruppen-Ziel (v2.5.0)
- downloadSetup() nutzte process.env.AGENT_VERSION statt der Patch-Gruppen- Zielversion → Staged Rollout (Test/Pilot/Produktion) hatte nie funktioniert, jeder Agent bekam beim Auto-Update immer dieselbe globale Version - Fix: downloadSetup() löst jetzt per ?hostname=X die Gruppen-Zielversion auf, exakt wie checkin() es bereits tat - ApiService.DownloadSetupAsync() schickt jetzt den Hostnamen mit - Version: 2.4.0 → 2.5.0 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -212,7 +212,26 @@ const downloadSetup = asyncHandler(async (req, res) => {
|
||||
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const version = process.env.AGENT_VERSION || '2.0.0';
|
||||
|
||||
// Zielversion: Gruppen-spezifisch (staged rollout) oder globaler Default — gleiche Logik wie checkin()
|
||||
let version = process.env.AGENT_VERSION || '2.0.0';
|
||||
const hostname = req.query.hostname;
|
||||
if (hostname) {
|
||||
try {
|
||||
const db = getDatabase();
|
||||
const agent = db.prepare('SELECT id FROM monitoring_agents WHERE hostname = ?').get(hostname);
|
||||
const groupRow = agent && db.prepare(`
|
||||
SELECT pg.target_agent_version
|
||||
FROM patch_agent_groups pag
|
||||
JOIN patch_groups pg ON pg.id = pag.group_id
|
||||
WHERE pag.agent_id = ?
|
||||
ORDER BY pg.sort_order ASC
|
||||
LIMIT 1
|
||||
`).get(agent.id);
|
||||
if (groupRow?.target_agent_version) version = groupRow.target_agent_version;
|
||||
} catch { /* kein Gruppe zugewiesen → global */ }
|
||||
}
|
||||
|
||||
const setupPath = path.join(__dirname, `../../agent/IT-Nexus-Agent-Setup-v${version}.exe`);
|
||||
if (!fs.existsSync(setupPath)) {
|
||||
return res.status(404).json({ status: 'error', message: 'Setup nicht gefunden' });
|
||||
|
||||
Reference in New Issue
Block a user