summaryrefslogtreecommitdiffstats
path: root/server/lib
diff options
context:
space:
mode:
authorJannik Schönartz2019-04-08 05:17:38 +0200
committerJannik Schönartz2019-04-08 05:17:38 +0200
commitba5482abf1aa5c308f9f2d16748014335bc3444f (patch)
treec31fb5e493e699a2c70b3b7563ee38b3fb5dd010 /server/lib
parent[webapp/external-backends] Remove console logs. lul ^^ (diff)
downloadbas-ba5482abf1aa5c308f9f2d16748014335bc3444f.tar.gz
bas-ba5482abf1aa5c308f9f2d16748014335bc3444f.tar.xz
bas-ba5482abf1aa5c308f9f2d16748014335bc3444f.zip
[server/external-backends] Fix dhcp registration stuff
Diffstat (limited to 'server/lib')
-rw-r--r--server/lib/external-backends/backends/infoblox-backend.js40
1 files changed, 29 insertions, 11 deletions
diff --git a/server/lib/external-backends/backends/infoblox-backend.js b/server/lib/external-backends/backends/infoblox-backend.js
index 27aa0b4..6076217 100644
--- a/server/lib/external-backends/backends/infoblox-backend.js
+++ b/server/lib/external-backends/backends/infoblox-backend.js
@@ -101,21 +101,39 @@ class InfobloxBackend extends ExternalBackends {
const network = JSON.parse(await ipam.getNetworkFromIp(ipv4))
ipv4 = 'func:nextavailableip:' + network[0].network
}
- const domain = await ipam.getDomain()
- const createHost = await ipam.create('record:host?_return_fields%2B=ipv4addrs&_return_as_object=1', {
- 'name': name + '.' + domain,
- 'ipv4addrs': [
- {
- 'ipv4addr': ipv4,
- 'mac': mac
- }
- ]
- })
+ const domain = (await ipam.getDomain())[0]
+
+ // Set fixed ip if the name is not set (Automatic registration)
+ let path = ''
+ let data = {}
+
+ if (!name) {
+ path = 'fixedaddress?_return_fields%2B=ipv4addr&_return_as_object=1'
+ data = {
+ 'ipv4addr': ipv4,
+ 'mac': mac
+ }
+ } else {
+ path = 'record:host?_return_fields%2B=ipv4addrs&_return_as_object=1'
+ data = {
+ 'name': name + '.' + domain,
+ 'ipv4addrs': [
+ {
+ 'ipv4addr': ipv4,
+ 'mac': mac
+ }
+ ]
+ }
+ }
+ const createHost = await ipam.create(path, data)
// Return error if there is one
if (createHost.Error) {
return { error: 'ERROR_INFOBLOX', msg: createHost.text }
- } else return { host: createHost.result.ipv4addrs[0].host, ip: createHost.result.ipv4addrs[0].ipv4addr }
+ } else {
+ if (!name) return { ip: createHost.result.ipv4addr }
+ else return { host: createHost.result.ipv4addrs[0].host, ip: createHost.result.ipv4addrs[0].ipv4addr }
+ }
}
isDhcp () {