summaryrefslogtreecommitdiffstats
path: root/server/api/ipxe.js
diff options
context:
space:
mode:
authorJannik Schönartz2018-08-17 08:39:55 +0200
committerJannik Schönartz2018-08-17 08:39:55 +0200
commit1667e801098e334e30b5c8a19919084f6063b42e (patch)
tree532630c936cb5c7395b658faf24319a4bd7e0201 /server/api/ipxe.js
parent[server/router] Fix eslint errors (diff)
downloadbas-1667e801098e334e30b5c8a19919084f6063b42e.tar.gz
bas-1667e801098e334e30b5c8a19919084f6063b42e.tar.xz
bas-1667e801098e334e30b5c8a19919084f6063b42e.zip
[firstregistration] First start of the new client registration
Router now also can use non auth methods. (Used for the registration calls) Added ipxe scripts for the registration Added backend methods for dynamic ipxe scripts and first try of a dhcp api call
Diffstat (limited to 'server/api/ipxe.js')
-rw-r--r--server/api/ipxe.js62
1 files changed, 17 insertions, 45 deletions
diff --git a/server/api/ipxe.js b/server/api/ipxe.js
index 2d776bf..bed61a1 100644
--- a/server/api/ipxe.js
+++ b/server/api/ipxe.js
@@ -1,8 +1,10 @@
/* global __appdir */
var path = require('path')
+const fs = require('fs')
var shell = require(path.join(__appdir, 'lib', 'shell'))
var express = require('express')
var router = express.Router()
+var noAuthRouter = express.Router()
// GET requests.
@@ -15,50 +17,20 @@ router.get('/build', (req, res) => {
module.exports.router = router
-module.exports.get = {
- loadScript: function (req, res) {
- res.setHeader('content-type', 'text/plain')
- res.status(200).send(`#!ipxe
-dhcp
-
-:start
-menu Please choose a webserver to load the ipxe menu:
-item pxelnx PxeLinux
-item c32boot C32Boot
-item exit Exit
-item exit0 Exit0
-item exit1 Exit1
-item sh [Shell]
-choose target && goto \${target}
+noAuthRouter.get('/load/script', (req, res) => {
+ res.setHeader('content-type', 'text/plain')
+ fs.readFile(path.join(__appdir, 'ipxe', 'exitTestScript.ipxe'), 'utf-8', function (err, content) {
+ if (err) res.end()
+ res.send(content)
+ })
+})
-:exit
-exit
-:exit0
-exit 0
-:exit1
-exit 1
-:pxelnx
-# set 210:string https://bas.stfu-kthx.net:8888/
-# chain \${210:string}pxelinux.0 || goto start
-# chain https://bas.stfu-kthx.net:8888/pxelinux.0
-# set next-server bas-stfu-kthx.net:8888
-# set 209:string https://bas.stfu-kthx.net:8888/pxelinux.cfg
-# imgload pxelinux.0
-set net0/next-server 192.52.3.91 ||
-set netX/next-server 192.52.3.91 ||
-set next-server 192.52.3.91 ||
-# set 209:string pxelinux.cfg/default
-# set 210:string bas.stfu-kthx.net
-# shell ||
-boot tftp://bas.stfu-kthx.net/pxelinux.0 || goto start
-:c32boot
-set net0/next-server 192.52.3.91 ||
-set netX/next-server 192.52.3.91 ||
-set next-server 192.52.3.91 ||
-boot tftp://bas.stfu-kthx.net/chain.c32 || goto start
+noAuthRouter.get('/load/registration', (req, res) => {
+ res.setHeader('content-type', 'text/plain')
+ fs.readFile(path.join(__appdir, 'ipxe', 'registration.ipxe'), 'utf-8', function (err, content) {
+ if (err) res.end()
+ res.send(content)
+ })
+})
-:sh
-shell
-goto start`)
- }
-}
+module.exports.noAuthRouter = noAuthRouter