From e456c4b39cf0d8f61b9f52cd0a6476a5ff8e5516 Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Fri, 7 Oct 2016 13:29:31 -0700 Subject: [PATCH] Add eth0 sysinfo backend --- src/sysinfo.js | 2 ++ src/sysinfo/eth0.js | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/sysinfo/eth0.js diff --git a/src/sysinfo.js b/src/sysinfo.js index 66e8a1bd1..ab1efdc68 100644 --- a/src/sysinfo.js +++ b/src/sysinfo.js @@ -10,6 +10,7 @@ var assert = require('assert'), caas = require('./sysinfo/caas.js'), config = require('./config.js'), ec2 = require('./sysinfo/ec2.js'), + eth0 = require('./sysinfo/eth0.js'), util = require('util'); var gCachedIp = null; @@ -43,6 +44,7 @@ function getApi(callback) { case 'caas': return callback(null, caas); case 'digitalocean': return callback(null, caas); case 'ec2': return callback(null, ec2); + case 'eth0': return callback(null, eth0); default: return callback(new Error('Unkown provider ' + config.provider())); } } diff --git a/src/sysinfo/eth0.js b/src/sysinfo/eth0.js new file mode 100644 index 000000000..52b62ff4b --- /dev/null +++ b/src/sysinfo/eth0.js @@ -0,0 +1,21 @@ +'use strict'; + +exports = module.exports = { + getIp: getIp +}; + +var assert = require('assert'), + os = require('os'), + SysInfoError = require('../sysinfo.js').SysInfoError; + +function getIp(callback) { + assert.strictEqual(typeof callback, 'function'); + + try { + var ip = os.networkInterfaces().eth0[0].address; + return callback(null, ip); + } catch (e) + return callback(new SysInfoError(SysInfoError.INTERNAL_ERROR, e)); + } +} +