UNPKG

domotz-remote-pawn

Version:

Domotz Agent

90 lines (88 loc) 3.99 kB
/** This file is part of Domotz Agent. * Copyright (C) 2016 Domotz Ltd * * Domotz Agent is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Domotz Agent is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Domotz Agent. If not, see <http://www.gnu.org/licenses/>. **/ /** * * Created by Iacopo Papalini <ipapalini@domotz.com> on 08/09/15. */ const os = require('os'); module.exports.get = function (resourceLocator) { var pkgJson = resourceLocator.pkg.json; var host = resourceLocator.discovery.host; var status = resourceLocator.status; var log = resourceLocator.log; var configuration = resourceLocator.configuration; var myConsole = resourceLocator.log.decorateLogs(); var restricted = status.get() === status.RESTRICTED; var DEFAULT_TENANT = 'domotz'; var result; result = function (req, res) { resourceLocator.utils.platform .getNmapInfo() .then(function (nmap) { var body = { status: 'ok', mode: status.get(), default_gateway: host.getDefaultGateway(), default_interface: host.getInterface(), log: log.getInfo(), tenant: process.env.TENANT || DEFAULT_TENANT, interfaces_list: host.getInterfacesList(), package: { pkg_platform: process.env.DPLATFORM, pkg_architecture: process.env.DARCHITECTURE, pkg_toolchain: process.env.DTOOLCHAIN, pkg_version: process.env.DVERSION, full_platform: resourceLocator.utils.platform.getFullPlatform(), agent_version: pkgJson.version, node_version: resourceLocator.utils.platform.getNodeVersion(), nmap: nmap, }, modules: resourceLocator.availableModules, portal_api_endpoint: process.env.PORTAL_API_ENDPOINT || 'https://portal.domotz.com/portal-api/v1/', uptime: { system: os.uptime(), process: process.uptime(), }, loadavg: os.loadavg(), cpus: os.cpus(), freemem: os.freemem(), }; if (resourceLocator.diagnostic) { body.diagnostic = { iteration_counter: resourceLocator.diagnostic.getDiscoveryIterationCounter(), actual_discovery_counter: resourceLocator.diagnostic.getActualDiscoveryCounter(), missed_discovery_counter: resourceLocator.diagnostic.getMissedDiscoveryCounter(), ignored_errors: resourceLocator.utils.errorCounter.getAll(), }; } if (resourceLocator.telemetry) { body.telemetry = resourceLocator.telemetry.getTelemetry(); } if (configuration !== undefined && configuration.type) { body.type = configuration.type; } if (!restricted) { body.udp_listener_info = resourceLocator.udp.listener.debugInfo(); } res.json(body); }) .catch(function () { myConsole.error('Error getting nmap info'); }); }; return result; };