provision: add route to detect ipv4 and ipv6
This commit is contained in:
+14
-1
@@ -18,7 +18,8 @@ exports = module.exports = {
|
||||
|
||||
getIPv4,
|
||||
hasIPv6,
|
||||
getIPv6
|
||||
getIPv6,
|
||||
detectIP
|
||||
};
|
||||
|
||||
const assert = require('assert'),
|
||||
@@ -162,3 +163,15 @@ async function getIPv6() {
|
||||
if (!result) return null;
|
||||
return ipaddr.parse(result).toRFC5952String();
|
||||
}
|
||||
|
||||
async function detectIP() {
|
||||
const genericProvider = require('./network/generic.js');
|
||||
|
||||
const [error4, ipv4] = await safe(genericProvider.getIPv4({}));
|
||||
const [error6, ipv6] = await safe(genericProvider.getIPv6({}));
|
||||
|
||||
return {
|
||||
ipv4: error4 ? null : ipv4,
|
||||
ipv6: error6 ? null : ipv6
|
||||
};
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ exports = module.exports = {
|
||||
getStatus,
|
||||
setupTokenAuth,
|
||||
getBlockDevices,
|
||||
detectIP
|
||||
};
|
||||
|
||||
const assert = require('assert'),
|
||||
@@ -16,6 +17,7 @@ const assert = require('assert'),
|
||||
BoxError = require('../boxerror.js'),
|
||||
HttpError = require('connect-lastmile').HttpError,
|
||||
HttpSuccess = require('connect-lastmile').HttpSuccess,
|
||||
network = require('../network.js'),
|
||||
paths = require('../paths.js'),
|
||||
provision = require('../provision.js'),
|
||||
safe = require('safetydance'),
|
||||
@@ -149,3 +151,8 @@ async function getBlockDevices(req, res, next) {
|
||||
|
||||
next(new HttpSuccess(200, { devices }));
|
||||
}
|
||||
|
||||
async function detectIP(req, res, next) {
|
||||
const result = await network.detectIP();
|
||||
next(new HttpSuccess(200, { ipv4: result.ipv4, ipv6: result.ipv6 }));
|
||||
}
|
||||
|
||||
@@ -87,6 +87,7 @@ async function initializeExpressSync() {
|
||||
router.post('/api/v1/provision/restore', json, verifyUnprovisioned, setupTokenAuth, routes.provision.restore);
|
||||
router.post('/api/v1/provision/activate', json, verifyUnprovisioned, setupTokenAuth, routes.provision.activate);
|
||||
router.get ('/api/v1/provision/block_devices', verifyUnprovisioned, routes.provision.getBlockDevices);
|
||||
router.post('/api/v1/provision/detect_ip', verifyUnprovisioned, routes.provision.detectIP);
|
||||
router.get ('/api/v1/provision/status', routes.provision.getStatus);
|
||||
|
||||
// auth routes
|
||||
|
||||
Reference in New Issue
Block a user