From ab83a69b71edb684e13ac4eb8db5dbaf8f20aac9 Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Thu, 31 Jan 2019 04:39:40 +0000 Subject: [ipxe builder] Disable building/cleaning if a build process is already running --- server/api/ipxe.js | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'server/api/ipxe.js') diff --git a/server/api/ipxe.js b/server/api/ipxe.js index 549eb6f..5d95fa2 100644 --- a/server/api/ipxe.js +++ b/server/api/ipxe.js @@ -7,10 +7,6 @@ var router = express.Router() var noAuthRouter = express.Router() // GET requests. -router.get('/build', (req, res) => { - shell.buildIpxe(req, res) -}) - router.get('/:version/script', (req, res) => { res.setHeader('content-type', 'text/plain') res.sendFile(path.join(__appdir, 'ipxe', 'embedded_' + req.params.version + '.ipxe')) @@ -64,14 +60,31 @@ router.put('/:version/:filename', (req, res) => { * @return: Rebuild the ipxe. */ router.get('/:version/build', async (req, res) => { - if (req.params.version === 'efi' || req.params.version === 'bios') await shell.buildIpxe(req, res) - res.status(200).send({ status: 'success' }) + if (req.params.version === 'efi' || req.params.version === 'bios') { + shell.buildIpxe(req, res) + } else { + res.status(400).send({ status: 'error', msg: 'Unknown ipxe version (' + req.params.version + ')' }) + } +}) + +noAuthRouter.get('/:version/stop', async (req, res) => { + if (req.params.version === 'efi' || req.params.version === 'bios') { + shell.stopBuilding(req, res) + } else { + res.status(400).send({ status: 'error', msg: 'Unknown ipxe version (' + req.params.version + ')' }) + } }) router.get('/:version/clean', (req, res) => { - if (req.params.version === 'efi') shell.clean('efi') - else if (req.params.version === 'bios') shell.clean('bios') - res.send() + if (req.params.version === 'efi' || req.params.version === 'bios') { + shell.clean(req, res) + } else { + res.status(400).send({ status: 'error', msg: 'Unknown ipxe version (' + req.params.version + ')' }) + } +}) + +router.get('/:version/status', (req, res) => { + res.send({ status: 'SUCCESS', data: shell.status(req.params.version) }) }) module.exports.router = router -- cgit v1.2.3-55-g7522