From f28f21b2f67f5e152e6e9d13814150a4adf316c7 Mon Sep 17 00:00:00 2001 From: Udo Walter Date: Wed, 27 Nov 2019 17:20:15 +0000 Subject: [configloader] bugfixes in the beta configloader: add hook sources correct handeling of multiple sources remove merging of multiple sources with the same config --- server/api/configloader.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'server/api') diff --git a/server/api/configloader.js b/server/api/configloader.js index ba395d0..dc3a29d 100644 --- a/server/api/configloader.js +++ b/server/api/configloader.js @@ -7,10 +7,12 @@ var noAuthRouter = decorateApp(express.Router()) const config = require(path.join(__appdir, 'config', 'config')) const url = config.https.host + ':' + config.https.port const configHelper = require(path.join(__appdir, 'lib', 'confighelper')) +const log = require(path.join(__appdir, 'lib', 'log')) noAuthRouter.getAsync(['/test/group/:id', '/test/group/'], async (req, res) => { const list = req.query.list !== undefined && req.query.list !== 'false' - const config = await configHelper.getGroupConfig(req.params.id, list) + const group = await db.group.findOne({ where: { id: req.params.id } }) + const config = await configHelper.getGroupConfig(group, list) if (!config) return res.status(404).end() if (!list) { res.set('Content-Type', 'text/plain') @@ -22,8 +24,18 @@ noAuthRouter.getAsync(['/test/group/:id', '/test/group/'], async (req, res) => { noAuthRouter.getAsync(['/test/:uuid', '/test/'], async (req, res) => { const list = req.query.list !== undefined && req.query.list !== 'false' - const config = await configHelper.getConfig(req.params.uuid, list) + const client = await db.client.findOne({ where: { uuid: req.params.uuid } }) + const config = await configHelper.getConfig(client, list) if (!list) { + const logEntry = { + category: 'CLIENT_BOOT', + description: 'Client booted iPXE config [' + config.id + '] ' + config.name + '.\n' + + 'Client UUID: ' + req.params.uuid + '\n' + + 'Config ID: ' + config.id + '\n' + + 'Config Name: ' + config.name, + } + if (client) logEntry.clientId = client.id + log(logEntry) res.set('Content-Type', 'text/plain') res.send(config.script) } else { @@ -125,7 +137,7 @@ noAuthRouter.getAsync('/:uuid', async (req, res) => { } // No config found, use default config // await sendFilePromise(res, path.join(__appdir, 'ipxe', 'default.ipxe')) - res.send(await configHelper.getDefaultConfig(client)) + res.send(configHelper.getDefaultConfig(client)) }) // load config by given id -- cgit v1.2.3-55-g7522