UNPKG

balena-cli

Version:

The official balena Command Line Interface

148 lines (146 loc) 5.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require("@oclif/core"); const cf = require("../../utils/common-flags"); const helpers_1 = require("../../utils/helpers"); const lazy_1 = require("../../utils/lazy"); const messages_1 = require("../../utils/messages"); class DeviceCmd extends core_1.Command { async run() { var _a; const { args: params, flags: options } = await this.parse(DeviceCmd); const balena = (0, lazy_1.getBalenaSdk)(); const device = (await balena.models.device.get(params.uuid, options.json ? { $expand: { device_tag: { $select: ['tag_key', 'value'], }, ...helpers_1.expandForAppName.$expand, }, } : { $select: [ 'device_name', 'id', 'overall_status', 'is_online', 'ip_address', 'mac_address', 'last_connectivity_event', 'uuid', 'supervisor_version', 'is_web_accessible', 'note', 'os_version', 'memory_usage', 'memory_total', 'public_address', 'storage_block_device', 'storage_usage', 'storage_total', 'cpu_usage', 'cpu_temp', 'cpu_id', 'is_undervolted', ], ...helpers_1.expandForAppName, })); if (options.view) { const open = await Promise.resolve().then(() => require('open')); const dashboardUrl = balena.models.device.getDashboardUrl(device.uuid); await open(dashboardUrl, { wait: false }); return; } device.status = device.overall_status; device.dashboard_url = balena.models.device.getDashboardUrl(device.uuid); const belongsToApplication = device.belongs_to__application; device.fleet = (belongsToApplication === null || belongsToApplication === void 0 ? void 0 : belongsToApplication[0]) ? belongsToApplication[0].slug : 'N/a'; device.device_type = device.is_of__device_type[0].slug; const isRunningRelease = device.is_running__release; device.commit = (isRunningRelease === null || isRunningRelease === void 0 ? void 0 : isRunningRelease[0]) ? isRunningRelease[0].commit : 'N/a'; device.last_seen = (_a = device.last_connectivity_event) !== null && _a !== void 0 ? _a : undefined; device.memory_usage_mb = device.memory_usage; device.memory_total_mb = device.memory_total; device.storage_usage_mb = device.storage_usage; device.storage_total_mb = device.storage_total; device.cpu_temp_c = device.cpu_temp; device.cpu_usage_percent = device.cpu_usage; if (device.is_undervolted) { device.undervoltage_detected = device.is_undervolted; } if (device.memory_usage != null && device.memory_total != null && device.memory_total !== 0) { device.memory_usage_percent = Math.round((device.memory_usage / device.memory_total) * 100); } if (device.storage_usage != null && device.storage_total != null && device.storage_total !== 0) { device.storage_usage_percent = Math.round((device.storage_usage / device.storage_total) * 100); } if (options.json) { console.log(JSON.stringify(device, null, 4)); return; } console.log((0, lazy_1.getVisuals)().table.vertical(device, [ `$${device.device_name}$`, 'id', 'device_type', 'status', 'is_online', 'ip_address', 'public_address', 'mac_address', 'fleet', 'last_seen', 'uuid', 'commit', 'supervisor_version', 'is_web_accessible', 'note', 'os_version', 'dashboard_url', 'cpu_usage_percent', 'cpu_temp_c', 'cpu_id', 'memory_usage_mb', 'memory_total_mb', 'memory_usage_percent', 'storage_block_device', 'storage_usage_mb', 'storage_total_mb', 'storage_usage_percent', 'undervoltage_detected', ])); } } DeviceCmd.description = (0, lazy_1.stripIndent) ` Show info about a single device. Show information about a single device. ${messages_1.jsonInfo.split('\n').join('\n\t\t')} `; DeviceCmd.examples = [ '$ balena device 7cf02a6', '$ balena device 7cf02a6 --view', '$ balena device 7cf02a6 --json', ]; DeviceCmd.args = { uuid: core_1.Args.string({ description: 'the device uuid', required: true, }), }; DeviceCmd.flags = { json: cf.json, view: core_1.Flags.boolean({ default: false, description: 'open device dashboard page', }), }; DeviceCmd.authenticated = true; DeviceCmd.primary = true; exports.default = DeviceCmd; //# sourceMappingURL=index.js.map