summaryrefslogtreecommitdiffstats
path: root/server/lib/external-backends/backends/infoblox-backend.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/external-backends/backends/infoblox-backend.js')
-rw-r--r--server/lib/external-backends/backends/infoblox-backend.js23
1 files changed, 17 insertions, 6 deletions
diff --git a/server/lib/external-backends/backends/infoblox-backend.js b/server/lib/external-backends/backends/infoblox-backend.js
index 0571841..71f0a4b 100644
--- a/server/lib/external-backends/backends/infoblox-backend.js
+++ b/server/lib/external-backends/backends/infoblox-backend.js
@@ -32,13 +32,24 @@ class InfobloxBackend extends ExternalBackends {
ip: c.url,
apiVersion: c.version
})
- const response = await ipam.login(c.username, c.password)
- if (response) {
- return true
- } else {
- return { error: 'LOGIN_FAILED', message: 'Login failed' }
- }
+ // Add custom timeout to the infoblox login
+ return await Promise.race([
+ new Promise(async (resolve, reject) => {
+ try {
+ const result = await ipam.login(c.username, c.password)
+ if (!result) resolve({ error: 'LOGIN_FAILED', message: 'Login failed' })
+ else resolve(result)
+ } catch (e) {
+ resolve({ error: 'LOGIN_FAILED', message: e })
+ }
+ }),
+ new Promise((resolve, reject) => {
+ let wait = setTimeout(() => {
+ clearTimeout(wait)
+ resolve({ error: 'LOGIN_FAILED', message: 'Timeout' })
+ }, 15000)
+ })])
}
/*