From 550ac0ab5ea3899b4efe9fed5b905e088466988d Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Wed, 17 Apr 2019 20:44:07 +0000 Subject: [server/registration] If domain gets updated without a hostname, use clientname as hostname --- server/api/registration.js | 7 ++++++- server/lib/external-backends/backends/idoit-backend.js | 2 +- server/lib/external-backends/backends/infoblox-backend.js | 5 ++--- server/lib/shell.js | 2 +- server/lib/wolhelper.js | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) (limited to 'server') diff --git a/server/api/registration.js b/server/api/registration.js index 2ebf522..5c5437b 100644 --- a/server/api/registration.js +++ b/server/api/registration.js @@ -232,9 +232,14 @@ noAuthRouter.postAsync('/clients/:uuid', async (req, res) => { const clientDb = await db.client.findOne({ where: { uuid: req.params.uuid } }) if (!clientDb) return res.status(404).send({ error: 'CLIENT_NOT_FOUND', message: 'There is no client matching the provided uuid.' }) if (client.name) clientDb.update({ name: client.name }) - else client.name = clientDb.name client.id = clientDb.id + // If domain gets updated without a hostname, set the hostname as name. + for (let index in client.networks) { + const network = client.networks[index] + if (network.domain && !network.hostname) network.hostname = clientDb.name + } + if (client && client.system) { // System data. Sometime just string with whitespaces only. if (!/\S/.test(client.system.manufacturer)) client.system.manufacturer = 'unavailable' diff --git a/server/lib/external-backends/backends/idoit-backend.js b/server/lib/external-backends/backends/idoit-backend.js index 350fc85..169f08b 100644 --- a/server/lib/external-backends/backends/idoit-backend.js +++ b/server/lib/external-backends/backends/idoit-backend.js @@ -418,7 +418,7 @@ class IdoitBackend extends ExternalBackends { for (let index in client.networks) { const network = client.networks[index] - if (network.ip && network.hostname, network.domain) { + if (network.ip && network.hostname && network.domain) { // Update ip addresses let paramsIp = { 'object': client.id, diff --git a/server/lib/external-backends/backends/infoblox-backend.js b/server/lib/external-backends/backends/infoblox-backend.js index cc7f149..e639270 100644 --- a/server/lib/external-backends/backends/infoblox-backend.js +++ b/server/lib/external-backends/backends/infoblox-backend.js @@ -158,9 +158,8 @@ class InfobloxBackend extends ExternalBackends { for (let index in client.networks) { const network = client.networks[index] - network.domain = 'public.ads.uni-freiburg.de' - if (client.name && network.domain) { - data.name = client.name + '.' + network.domain + if (client.hostname && network.domain) { + data.name = client.hostname + '.' + network.domain } let ipv4addr = {} diff --git a/server/lib/shell.js b/server/lib/shell.js index bc6a216..863e06b 100644 --- a/server/lib/shell.js +++ b/server/lib/shell.js @@ -2,7 +2,7 @@ var path = require('path') var shell = require('shelljs') // var child = require('child_process') -//var ipxeGIT = 'git://git.ipxe.org/ipxe.git' +// var ipxeGIT = 'git://git.ipxe.org/ipxe.git' var ipxeGIT = 'http://git.ipxe.org/ipxe.git' var io = require(path.join(__appdir, 'lib', 'socketio')) const fs = require('fs') diff --git a/server/lib/wolhelper.js b/server/lib/wolhelper.js index fb5bd95..e9cb3b0 100644 --- a/server/lib/wolhelper.js +++ b/server/lib/wolhelper.js @@ -14,4 +14,4 @@ function wakeUp (clients) { loop() } -module.exports = { wakeUp } \ No newline at end of file +module.exports = { wakeUp } -- cgit v1.2.3-55-g7522