iobroker.bee 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/build/lib/adapterCommand.js +135 -0
- package/build/lib/adapterCommand.js.map +1 -0
- package/build/lib/commands.js +5 -1
- package/build/lib/commands.js.map +1 -1
- package/build/lib/logs.js +220 -0
- package/build/lib/logs.js.map +1 -0
- package/build/lib/protocol.js +3 -1
- package/build/lib/protocol.js.map +1 -1
- package/build/main.js +148 -5
- package/build/main.js.map +1 -1
- package/io-package.json +9 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -60,7 +60,9 @@ From the asset detail a technician (permission `operate`) can start, stop and re
|
|
|
60
60
|
- Instances: the same way admin does it, through the instance object (`common.enabled`, or rewriting it for a restart). Only instances of this host; `bee` itself can be restarted but not stopped from afar.
|
|
61
61
|
- Restart of ioBroker: host command `restartController` of js-controller.
|
|
62
62
|
- OS updates: js-controller (6 and newer, Linux) lists upgradeable packages (`apt list --upgradeable`) on every update of the repository, admin triggers that daily, and writes them to `system.host.<host>.osPackageUpdates`. The agent reports this list in the inventory, together with `/var/run/reboot-required`, and on request passes the chosen packages to the host command `upgradeOsPackages`, which runs apt (with sudo if ioBroker does not run as root). Packages that js-controller did not list are refused.
|
|
63
|
+
- Adapter version (since 0.2.6, permission `assign`): installs one version of one adapter right away, from npm or from a package of the own server (checked like the packages of a job), like an installation from admin: `iobroker upgrade <adapter>@<version>` (with `--force` downwards), `iobroker add` for a new adapter, `iobroker url` for a package. Only for an asset without desired profile in managed mode (otherwise the next job would turn it back; there the version is changed in the profile or set for the asset), never js-controller, without backup. It runs with the detached runner of the jobs under its own file (`adapter-runner.json`), so it survives the restart of the agent when the agent updates itself; the answer then comes from the new process. The emergency stop stops it too.
|
|
63
64
|
- Nothing of this while a job (update) is running, and one command at a time.
|
|
65
|
+
- Log files: the agent lists the files in the directories of the file transports of `iobroker.json` (`iobroker-data/iobroker.json`, found as js-controller finds it; without a file transport `log` below the ioBroker directory; only `*.log` and `*.gz`, no symbolic links like `iobroker.current.log`), and on request uploads one of them to its own server, compressed with gzip (a `.gz` file as it is), with the one-time ticket of the request and at most 50 MB compressed. The upload URL must belong to the server of the enrollment or the broker. This works also during a job, one upload at a time.
|
|
64
66
|
|
|
65
67
|
## Configuration
|
|
66
68
|
|
|
@@ -108,6 +110,15 @@ npm test # unit tests of planner, preflight and diff
|
|
|
108
110
|
|
|
109
111
|
## Changelog
|
|
110
112
|
|
|
113
|
+
### 0.2.6 (2026-11-11)
|
|
114
|
+
|
|
115
|
+
- Log files: the list was empty on normal installations, the agent now finds `iobroker.json` in `iobroker-data` as js-controller does
|
|
116
|
+
- Command `adapter`: install a version of an adapter right away on an asset without desired profile
|
|
117
|
+
|
|
118
|
+
### 0.2.5 (2026-11-10)
|
|
119
|
+
|
|
120
|
+
- Log files of ioBroker for the fleet management: list them, upload one compressed on request
|
|
121
|
+
|
|
111
122
|
### 0.2.4 (2026-11-10)
|
|
112
123
|
|
|
113
124
|
- Settings, tab *Remote access*: "Remote access in progress" instead of "Access right now", and `info.remoteAccessBy` says `keiner` when nobody accesses the system
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ADAPTER_COMMAND_TIMEOUT = void 0;
|
|
4
|
+
exports.adapterCommandPaths = adapterCommandPaths;
|
|
5
|
+
exports.adapterRefusal = adapterRefusal;
|
|
6
|
+
exports.adapterStep = adapterStep;
|
|
7
|
+
exports.startAdapterCommand = startAdapterCommand;
|
|
8
|
+
exports.adapterCommandState = adapterCommandState;
|
|
9
|
+
exports.clearAdapterCommand = clearAdapterCommand;
|
|
10
|
+
const node_child_process_1 = require("node:child_process");
|
|
11
|
+
const promises_1 = require("node:fs/promises");
|
|
12
|
+
const node_path_1 = require("node:path");
|
|
13
|
+
const util_1 = require("./util");
|
|
14
|
+
/**
|
|
15
|
+
* Command 'adapter' of the fleet management: one version of one adapter right away, for an asset without
|
|
16
|
+
* desired profile (or a self-managed one), like an installation from admin. It runs with the detached runner
|
|
17
|
+
* of the jobs under its own file, so it does not get in the way of a job, and it survives the restart of the
|
|
18
|
+
* agent when the agent updates itself. After such a restart the agent answers from the files.
|
|
19
|
+
*/
|
|
20
|
+
const ADAPTER_NAME = /^[a-z0-9][a-z0-9_-]*$/;
|
|
21
|
+
const VERSION = /^\d+\.\d+\.\d+(?:-[\w.-]+)?(?:\+[\w.-]+)?$/;
|
|
22
|
+
/** Longer than the runner needs for one step (30 minutes per call of the CLI, at most two calls) */
|
|
23
|
+
exports.ADAPTER_COMMAND_TIMEOUT = 65 * 60_000;
|
|
24
|
+
function adapterCommandPaths(dataDir) {
|
|
25
|
+
return { runner: (0, node_path_1.join)(dataDir, 'adapter-runner.json'), command: (0, node_path_1.join)(dataDir, 'adapter-command.json') };
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Why the command is refused; null if it may run
|
|
29
|
+
*
|
|
30
|
+
* @param req the request of the server
|
|
31
|
+
* @param desired the desired state the agent has
|
|
32
|
+
*/
|
|
33
|
+
function adapterRefusal(req, desired) {
|
|
34
|
+
if (!req || typeof req.name !== 'string' || !ADAPTER_NAME.test(req.name)) {
|
|
35
|
+
return 'Ungültiger Adaptername';
|
|
36
|
+
}
|
|
37
|
+
if (req.name === 'js-controller') {
|
|
38
|
+
return 'js-controller wird nicht über diesen Befehl aktualisiert';
|
|
39
|
+
}
|
|
40
|
+
if (typeof req.version !== 'string' || !VERSION.test(req.version)) {
|
|
41
|
+
return 'Ungültige Version';
|
|
42
|
+
}
|
|
43
|
+
if (desired?.profile && desired.mode === 'managed') {
|
|
44
|
+
// the next job would turn it back
|
|
45
|
+
return 'Die Anlage folgt einem Sollprofil: die Version im Profil ändern oder für diese Anlage festlegen';
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The step for the runner: a new adapter with one instance, or an up- or downgrade
|
|
51
|
+
*
|
|
52
|
+
* @param name adapter
|
|
53
|
+
* @param version wanted version
|
|
54
|
+
* @param installed installed version, undefined if the adapter is not installed
|
|
55
|
+
* @param fromPackage from a package of the server: also with the same version number (a build that kept it)
|
|
56
|
+
* @returns null if there is nothing to do
|
|
57
|
+
*/
|
|
58
|
+
function adapterStep(name, version, installed, fromPackage) {
|
|
59
|
+
if (!installed) {
|
|
60
|
+
return { action: 'install', adapter: name, from: null, to: version, status: 'pending' };
|
|
61
|
+
}
|
|
62
|
+
const c = (0, util_1.compareVersions)(version, installed);
|
|
63
|
+
if (c === 0 && !fromPackage) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return { action: c < 0 ? 'downgrade' : 'upgrade', adapter: name, from: installed, to: version, status: 'pending' };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Starts the runner for the step, detached from the agent
|
|
70
|
+
*
|
|
71
|
+
* @param paths see adapterCommandPaths
|
|
72
|
+
* @param command what to remember
|
|
73
|
+
* @param step see adapterStep
|
|
74
|
+
* @param opts where and how
|
|
75
|
+
* @param opts.iobrokerJs iobroker.js of js-controller
|
|
76
|
+
* @param opts.cwd directory of ioBroker
|
|
77
|
+
* @param opts.haltFile halt file of the jobs: the emergency stop stops this command too
|
|
78
|
+
* @param opts.logFile log of the runner
|
|
79
|
+
* @param opts.file local package (tgz) instead of npm
|
|
80
|
+
*/
|
|
81
|
+
async function startAdapterCommand(paths, command, step, opts) {
|
|
82
|
+
const runner = {
|
|
83
|
+
mode: 'apply',
|
|
84
|
+
steps: [step],
|
|
85
|
+
...(opts.file ? { files: { [step.adapter]: opts.file } } : {}),
|
|
86
|
+
iobroker: opts.iobrokerJs,
|
|
87
|
+
cwd: opts.cwd,
|
|
88
|
+
haltFile: opts.haltFile,
|
|
89
|
+
logFile: opts.logFile,
|
|
90
|
+
phase: 'start',
|
|
91
|
+
};
|
|
92
|
+
await (0, util_1.writeJsonAtomic)(paths.command, command);
|
|
93
|
+
await (0, util_1.writeJsonAtomic)(paths.runner, runner);
|
|
94
|
+
const child = (0, node_child_process_1.spawn)(process.execPath, [(0, node_path_1.join)(__dirname, '..', 'runner.js'), paths.runner], {
|
|
95
|
+
detached: true,
|
|
96
|
+
stdio: 'ignore',
|
|
97
|
+
cwd: opts.cwd,
|
|
98
|
+
windowsHide: true,
|
|
99
|
+
});
|
|
100
|
+
child.unref();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* State of the command from its files
|
|
104
|
+
*
|
|
105
|
+
* @param paths see adapterCommandPaths
|
|
106
|
+
* @param now current time, for the timeout
|
|
107
|
+
* @returns undefined without a command, null while it runs, else its outcome
|
|
108
|
+
*/
|
|
109
|
+
async function adapterCommandState(paths, now = Date.now()) {
|
|
110
|
+
const command = await (0, util_1.readJson)(paths.command);
|
|
111
|
+
if (!command) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
const runner = await (0, util_1.readJson)(paths.runner);
|
|
115
|
+
const what = `${command.name} ${command.version}`;
|
|
116
|
+
if (runner?.phase === 'done') {
|
|
117
|
+
return { command, state: 'done', message: `${what} installiert` };
|
|
118
|
+
}
|
|
119
|
+
if (runner?.phase === 'failed' || runner?.phase === 'halted') {
|
|
120
|
+
const step = runner.steps[0];
|
|
121
|
+
const reason = runner.phase === 'halted'
|
|
122
|
+
? 'durch Not-Aus angehalten'
|
|
123
|
+
: [runner.error, step?.detail].filter(Boolean).join(': ') || 'fehlgeschlagen';
|
|
124
|
+
return { command, state: 'error', message: `${what}: ${reason}` };
|
|
125
|
+
}
|
|
126
|
+
if (now - command.startedAt > exports.ADAPTER_COMMAND_TIMEOUT) {
|
|
127
|
+
return { command, state: 'error', message: `${what}: keine Rückmeldung des Runners` };
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
/** Forgets the command once it is answered */
|
|
132
|
+
async function clearAdapterCommand(paths) {
|
|
133
|
+
await (0, promises_1.rm)(paths.command, { force: true });
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=adapterCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapterCommand.js","sourceRoot":"","sources":["../../src/lib/adapterCommand.ts"],"names":[],"mappings":"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"}
|
package/build/lib/commands.js
CHANGED
|
@@ -16,12 +16,16 @@ const util_1 = require("./util");
|
|
|
16
16
|
*/
|
|
17
17
|
/** Exists on Debian and Ubuntu when an update asks for a reboot of the system */
|
|
18
18
|
exports.REBOOT_REQUIRED = '/var/run/reboot-required';
|
|
19
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* What this system can do: OS updates need Linux and js-controller 6 (it lists them and runs apt);
|
|
21
|
+
* logs: list and upload log files
|
|
22
|
+
*/
|
|
20
23
|
function supportedCommands(jsController, platform = process.platform) {
|
|
21
24
|
const commands = ['instance', 'restart'];
|
|
22
25
|
if (platform === 'linux' && jsController && (0, util_1.compareVersions)(jsController, '6.0.0') >= 0) {
|
|
23
26
|
commands.push('osUpgrade');
|
|
24
27
|
}
|
|
28
|
+
commands.push('logs', 'adapter');
|
|
25
29
|
return commands;
|
|
26
30
|
}
|
|
27
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/lib/commands.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/lib/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.configFile = configFile;
|
|
7
|
+
exports.readConfig = readConfig;
|
|
8
|
+
exports.logDirs = logDirs;
|
|
9
|
+
exports.validLogName = validLogName;
|
|
10
|
+
exports.listLogFiles = listLogFiles;
|
|
11
|
+
exports.findLogFile = findLogFile;
|
|
12
|
+
exports.uploadLog = uploadLog;
|
|
13
|
+
const node_fs_1 = require("node:fs");
|
|
14
|
+
const promises_1 = require("node:fs/promises");
|
|
15
|
+
const node_http_1 = __importDefault(require("node:http"));
|
|
16
|
+
const node_https_1 = __importDefault(require("node:https"));
|
|
17
|
+
const node_path_1 = require("node:path");
|
|
18
|
+
const node_stream_1 = require("node:stream");
|
|
19
|
+
const promises_2 = require("node:stream/promises");
|
|
20
|
+
const node_zlib_1 = require("node:zlib");
|
|
21
|
+
const protocol_1 = require("./protocol");
|
|
22
|
+
/**
|
|
23
|
+
* Log files of ioBroker for the fleet management: the agent lists them (command logList) and uploads one
|
|
24
|
+
* of them to its own server on request (logFetch), compressed with gzip. Only files in the directories of
|
|
25
|
+
* the file transports of iobroker.json, the way js-controller finds them for admin.
|
|
26
|
+
*/
|
|
27
|
+
/** At most this many files in a list (one per day, older ones compressed) */
|
|
28
|
+
const MAX_FILES = 200;
|
|
29
|
+
/**
|
|
30
|
+
* Path of iobroker.json, found like js-controller does (getConfigFileName): IOBROKER_DATA_DIR, iobroker-data
|
|
31
|
+
* next to node_modules, then the places of a development installation. Not utils.getConfig() of adapter-core:
|
|
32
|
+
* that reads only conf/iobroker.json of js-controller, which a normal installation does not have.
|
|
33
|
+
*
|
|
34
|
+
* @param controllerDir directory of js-controller, e.g. /opt/iobroker/node_modules/iobroker.js-controller
|
|
35
|
+
* @param env environment of the process
|
|
36
|
+
* @returns null if there is none
|
|
37
|
+
*/
|
|
38
|
+
function configFile(controllerDir, env = process.env) {
|
|
39
|
+
const dataDir = env.IOBROKER_DATA_DIR;
|
|
40
|
+
const candidates = [
|
|
41
|
+
...(dataDir ? [(0, node_path_1.join)((0, node_path_1.isAbsolute)(dataDir) ? dataDir : (0, node_path_1.join)(controllerDir, dataDir), 'iobroker.json')] : []),
|
|
42
|
+
(0, node_path_1.join)(controllerDir, '..', '..', 'iobroker-data', 'iobroker.json'),
|
|
43
|
+
(0, node_path_1.join)(controllerDir, 'conf', 'iobroker.json'),
|
|
44
|
+
(0, node_path_1.join)(controllerDir, 'data', 'iobroker.json'),
|
|
45
|
+
];
|
|
46
|
+
return candidates.find(f => (0, node_fs_1.existsSync)(f)) ?? null;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Content of iobroker.json
|
|
50
|
+
*
|
|
51
|
+
* @param controllerDir see configFile
|
|
52
|
+
* @param env see configFile
|
|
53
|
+
* @returns null if there is none; throws if it is not readable
|
|
54
|
+
*/
|
|
55
|
+
function readConfig(controllerDir, env = process.env) {
|
|
56
|
+
const file = configFile(controllerDir, env);
|
|
57
|
+
return file ? JSON.parse((0, node_fs_1.readFileSync)(file, 'utf8')) : null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Directories of the file transports in iobroker.json (log.transport.*.filename, e.g. "log/iobroker").
|
|
61
|
+
* Without any (no iobroker.json, no file transport) the default of js-controller: log below the root.
|
|
62
|
+
*
|
|
63
|
+
* @param config content of iobroker.json
|
|
64
|
+
* @param root directory of ioBroker, e.g. /opt/iobroker; relative names are below it
|
|
65
|
+
*/
|
|
66
|
+
function logDirs(config, root) {
|
|
67
|
+
const transports = config?.log?.transport ?? {};
|
|
68
|
+
const dirs = new Set();
|
|
69
|
+
for (const t of Object.values(transports)) {
|
|
70
|
+
if (t?.type !== 'file') {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const filename = String(t.filename || 'log/iobroker').replace(/\\/g, '/');
|
|
74
|
+
const dir = filename.includes('/') ? filename.slice(0, filename.lastIndexOf('/')) || '/' : '.';
|
|
75
|
+
dirs.add((0, node_path_1.isAbsolute)(dir) || /^[A-Za-z]:/.test(dir) ? (0, node_path_1.normalize)(dir) : (0, node_path_1.resolve)(root, dir));
|
|
76
|
+
}
|
|
77
|
+
return dirs.size ? [...dirs] : [(0, node_path_1.resolve)(root, 'log')];
|
|
78
|
+
}
|
|
79
|
+
/** A file name the fleet management may ask for: no path, a log or a compressed log */
|
|
80
|
+
function validLogName(name) {
|
|
81
|
+
return (typeof name === 'string' &&
|
|
82
|
+
name.length <= 200 &&
|
|
83
|
+
/^[\w@+-][\w.@+-]*\.(log|gz)$/.test(name) &&
|
|
84
|
+
(0, node_path_1.basename)(name) === name &&
|
|
85
|
+
!name.includes('..'));
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The log files in these directories, newest first. Without symbolic links: iobroker.current.log only
|
|
89
|
+
* points to the file of today.
|
|
90
|
+
*
|
|
91
|
+
* @param dirs see logDirs
|
|
92
|
+
*/
|
|
93
|
+
async function listLogFiles(dirs) {
|
|
94
|
+
const files = new Map();
|
|
95
|
+
for (const dir of dirs) {
|
|
96
|
+
let names;
|
|
97
|
+
try {
|
|
98
|
+
names = await (0, promises_1.readdir)(dir);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
for (const name of names) {
|
|
104
|
+
if (!validLogName(name) || files.has(name)) {
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
const s = await (0, promises_1.lstat)((0, node_path_1.join)(dir, name));
|
|
109
|
+
if (s.isFile()) {
|
|
110
|
+
files.set(name, { name, size: s.size, mtime: Math.round(s.mtimeMs) });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
// rotated away in between
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return [...files.values()].sort((a, b) => b.mtime - a.mtime || b.name.localeCompare(a.name)).slice(0, MAX_FILES);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Path of a log file out of the list; null if there is no such file
|
|
122
|
+
*
|
|
123
|
+
* @param dirs see logDirs
|
|
124
|
+
* @param name file name out of the list
|
|
125
|
+
*/
|
|
126
|
+
async function findLogFile(dirs, name) {
|
|
127
|
+
if (!validLogName(name)) {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
for (const dir of dirs) {
|
|
131
|
+
try {
|
|
132
|
+
if ((await (0, promises_1.lstat)((0, node_path_1.join)(dir, name))).isFile()) {
|
|
133
|
+
return (0, node_path_1.join)(dir, name);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
// not in this directory
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
/** Counts the bytes going through and stops above the limit */
|
|
143
|
+
function limiter(max, count) {
|
|
144
|
+
let total = 0;
|
|
145
|
+
return new node_stream_1.Transform({
|
|
146
|
+
transform(chunk, _encoding, callback) {
|
|
147
|
+
total += chunk.length;
|
|
148
|
+
count(total);
|
|
149
|
+
callback(total > max ? new Error(`komprimiert größer als ${Math.round(max / 1024 / 1024)} MB`) : null, chunk);
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Uploads a log file to the server, compressed with gzip (a .gz file as it is)
|
|
155
|
+
*
|
|
156
|
+
* @param file path of the log file
|
|
157
|
+
* @param url upload URL of the own server (checked by the caller)
|
|
158
|
+
* @param ticket one-time ticket of the server
|
|
159
|
+
* @param ca trusted CAs for the certificate of the server
|
|
160
|
+
* @returns the bytes sent
|
|
161
|
+
*/
|
|
162
|
+
async function uploadLog(file, url, ticket, ca) {
|
|
163
|
+
const u = new URL(url);
|
|
164
|
+
let sent = 0;
|
|
165
|
+
const req = (u.protocol === 'https:' ? node_https_1.default : node_http_1.default).request(url, {
|
|
166
|
+
method: 'POST',
|
|
167
|
+
ca: ca.length ? ca : undefined,
|
|
168
|
+
timeout: 120_000,
|
|
169
|
+
headers: {
|
|
170
|
+
authorization: `Bearer ${ticket}`,
|
|
171
|
+
'content-type': 'application/gzip',
|
|
172
|
+
'x-file-name': encodeURIComponent((0, node_path_1.basename)(file)),
|
|
173
|
+
},
|
|
174
|
+
});
|
|
175
|
+
const answer = new Promise((resolveAnswer, reject) => {
|
|
176
|
+
req.on('response', res => {
|
|
177
|
+
let body = '';
|
|
178
|
+
res.setEncoding('utf8');
|
|
179
|
+
res.on('data', (d) => (body = (body + d).slice(0, 2000)));
|
|
180
|
+
res.on('end', () => {
|
|
181
|
+
if (res.statusCode === 200) {
|
|
182
|
+
resolveAnswer();
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
let reason = body;
|
|
186
|
+
try {
|
|
187
|
+
reason = JSON.parse(body).error || body;
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
// plain text
|
|
191
|
+
}
|
|
192
|
+
reject(new Error(`Server: HTTP ${res.statusCode}${reason ? ` ${reason.slice(0, 200)}` : ''}`));
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
res.on('error', reject);
|
|
196
|
+
});
|
|
197
|
+
req.on('timeout', () => req.destroy(new Error('Zeitüberschreitung')));
|
|
198
|
+
req.on('error', reject);
|
|
199
|
+
});
|
|
200
|
+
// an error of the request also ends the pipeline; then the answer tells why
|
|
201
|
+
answer.catch(() => { });
|
|
202
|
+
const source = (0, node_fs_1.createReadStream)(file);
|
|
203
|
+
const steps = file.endsWith('.gz')
|
|
204
|
+
? [source, limiter(protocol_1.MAX_LOG_UPLOAD_BYTES, n => (sent = n)), req]
|
|
205
|
+
: [source, (0, node_zlib_1.createGzip)(), limiter(protocol_1.MAX_LOG_UPLOAD_BYTES, n => (sent = n)), req];
|
|
206
|
+
try {
|
|
207
|
+
await (0, promises_2.pipeline)(steps);
|
|
208
|
+
}
|
|
209
|
+
catch (e) {
|
|
210
|
+
req.destroy();
|
|
211
|
+
// the answer of the server is the better reason, if there is one
|
|
212
|
+
await answer.catch(err => {
|
|
213
|
+
throw err.message === 'socket hang up' ? e : err;
|
|
214
|
+
});
|
|
215
|
+
throw e;
|
|
216
|
+
}
|
|
217
|
+
await answer;
|
|
218
|
+
return sent;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/lib/logs.ts"],"names":[],"mappings":"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"}
|
package/build/lib/protocol.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* WebSocket to TUNNEL_PATH of the server and carries the connections of the browser (see tunnel.ts).
|
|
21
21
|
*/
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.TERMINAL_JOB_STATES = exports.TUNNEL_PATH = exports.ACCESS_KINDS = exports.INSTANCE_ID = exports.MAX_COMMENT_LENGTH = exports.PROTOCOL_VERSION = void 0;
|
|
23
|
+
exports.TERMINAL_JOB_STATES = exports.TUNNEL_PATH = exports.ACCESS_KINDS = exports.MAX_LOG_UPLOAD_BYTES = exports.INSTANCE_ID = exports.MAX_COMMENT_LENGTH = exports.PROTOCOL_VERSION = void 0;
|
|
24
24
|
exports.deviceTopic = deviceTopic;
|
|
25
25
|
exports.controlTopic = controlTopic;
|
|
26
26
|
exports.normalizeComment = normalizeComment;
|
|
@@ -63,6 +63,8 @@ function parseOsPackage(line) {
|
|
|
63
63
|
}
|
|
64
64
|
/** Instance id as the commands accept it, e.g. "javascript.0" */
|
|
65
65
|
exports.INSTANCE_ID = /^[a-z0-9][a-z0-9_-]*\.\d{1,4}$/;
|
|
66
|
+
/** Largest log file the agent uploads, compressed (nginx in front of the server allows 52 MB) */
|
|
67
|
+
exports.MAX_LOG_UPLOAD_BYTES = 50 * 1024 * 1024;
|
|
66
68
|
exports.ACCESS_KINDS = ['admin', 'vis', 'console'];
|
|
67
69
|
/** WebSocket path of the tunnel endpoint on the server */
|
|
68
70
|
exports.TUNNEL_PATH = '/tunnel';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/lib/protocol.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAMH,kCAEC;AAED,oCAEC;AASD,4CAWC;AAkHD,wCAMC;AAtJY,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAIlC,SAAgB,WAAW,CAAC,QAAgB,EAAE,QAAgB,EAAE,KAAY;IACxE,OAAO,SAAS,QAAQ,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;AACpD,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB;IACzC,OAAO,SAAS,QAAQ,UAAU,CAAC;AACvC,CAAC;AAED,kFAAkF;AACrE,QAAA,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,CAAC,GAAG,KAAK;SACV,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;SACzB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,0BAAkB,CAAC;SAC5B,IAAI,EAAE,CAAC;IACZ,OAAO,CAAC,IAAI,SAAS,CAAC;AAC1B,CAAC;AA8GD;;;GAGG;AACH,SAAgB,cAAc,CAAC,IAAY;IACvC,MAAM,CAAC,GAAG,uEAAuE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,iEAAiE;AACpD,QAAA,WAAW,GAAG,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/lib/protocol.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAMH,kCAEC;AAED,oCAEC;AASD,4CAWC;AAkHD,wCAMC;AAtJY,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAIlC,SAAgB,WAAW,CAAC,QAAgB,EAAE,QAAgB,EAAE,KAAY;IACxE,OAAO,SAAS,QAAQ,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;AACpD,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB;IACzC,OAAO,SAAS,QAAQ,UAAU,CAAC;AACvC,CAAC;AAED,kFAAkF;AACrE,QAAA,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,CAAC,GAAG,KAAK;SACV,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;SACzB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,0BAAkB,CAAC;SAC5B,IAAI,EAAE,CAAC;IACZ,OAAO,CAAC,IAAI,SAAS,CAAC;AAC1B,CAAC;AA8GD;;;GAGG;AACH,SAAgB,cAAc,CAAC,IAAY;IACvC,MAAM,CAAC,GAAG,uEAAuE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,iEAAiE;AACpD,QAAA,WAAW,GAAG,gCAAgC,CAAC;AAe5D,iGAAiG;AACpF,QAAA,oBAAoB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAmHxC,QAAA,YAAY,GAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAetE,0DAA0D;AAC7C,QAAA,WAAW,GAAG,SAAS,CAAC;AAyBxB,QAAA,mBAAmB,GAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC"}
|
package/build/main.js
CHANGED
|
@@ -47,6 +47,7 @@ const instances_1 = require("./lib/instances");
|
|
|
47
47
|
const enrollment_1 = require("./lib/enrollment");
|
|
48
48
|
const inventory_1 = require("./lib/inventory");
|
|
49
49
|
const jobs_1 = require("./lib/jobs");
|
|
50
|
+
const logs_1 = require("./lib/logs");
|
|
50
51
|
const node_1 = require("./lib/node");
|
|
51
52
|
const packages_1 = require("./lib/packages");
|
|
52
53
|
const planner_1 = require("./lib/planner");
|
|
@@ -56,6 +57,7 @@ const remote_1 = require("./lib/remote");
|
|
|
56
57
|
const transport_1 = require("./lib/transport");
|
|
57
58
|
const tunnel_1 = require("./lib/tunnel");
|
|
58
59
|
const util_1 = require("./lib/util");
|
|
60
|
+
const adapterCommand_1 = require("./lib/adapterCommand");
|
|
59
61
|
/** Host of the broker for the status, e.g. "bee.iobroker.click" */
|
|
60
62
|
function hostOf(url) {
|
|
61
63
|
try {
|
|
@@ -84,6 +86,9 @@ class BeeAdapter extends utils.Adapter {
|
|
|
84
86
|
reconciling = false;
|
|
85
87
|
/** A command of the fleet management is being carried out (one at a time) */
|
|
86
88
|
commandRunning = false;
|
|
89
|
+
/** Waits for the runner of the command 'adapter' (also one started before a restart of the agent) */
|
|
90
|
+
adapterWaiting = false;
|
|
91
|
+
logUploading = false;
|
|
87
92
|
lastWaitReason = '';
|
|
88
93
|
unloading = false;
|
|
89
94
|
/** Open remote access sessions by session id */
|
|
@@ -248,6 +253,8 @@ class BeeAdapter extends utils.Adapter {
|
|
|
248
253
|
else if (this.persisted.lastResult) {
|
|
249
254
|
await this.transport?.publish('result', this.persisted.lastResult);
|
|
250
255
|
}
|
|
256
|
+
// an adapter installed on request, e.g. the agent itself: the answer comes from the new process
|
|
257
|
+
void this.waitAdapterCommand();
|
|
251
258
|
}
|
|
252
259
|
async onDesired(msg) {
|
|
253
260
|
this.desired = msg;
|
|
@@ -280,15 +287,82 @@ class BeeAdapter extends utils.Adapter {
|
|
|
280
287
|
else if (msg.cmd === 'tunnel' && msg.tunnel) {
|
|
281
288
|
await this.openTunnel(msg.tunnel, false);
|
|
282
289
|
}
|
|
283
|
-
else if (msg.ref &&
|
|
290
|
+
else if (msg.ref &&
|
|
291
|
+
(msg.cmd === 'instance' || msg.cmd === 'restart' || msg.cmd === 'osUpgrade' || msg.cmd === 'adapter')) {
|
|
284
292
|
await this.runCommand(msg);
|
|
285
293
|
}
|
|
294
|
+
else if (msg.ref && msg.cmd === 'logList') {
|
|
295
|
+
// only reads: also during a job or another command
|
|
296
|
+
await this.logListCommand(msg.ref);
|
|
297
|
+
}
|
|
298
|
+
else if (msg.ref && msg.cmd === 'logFetch') {
|
|
299
|
+
// may take minutes on a mobile connection: the other messages go on meanwhile
|
|
300
|
+
void this.logFetchCommand(msg.ref, msg.by || 'Flottenverwaltung', msg.logFetch);
|
|
301
|
+
}
|
|
286
302
|
}
|
|
287
303
|
// ------------------------------------------------------------------ commands of the fleet management
|
|
288
|
-
async reply(ref, state, message) {
|
|
289
|
-
const msg = {
|
|
304
|
+
async reply(ref, state, message, files) {
|
|
305
|
+
const msg = {
|
|
306
|
+
v: protocol_1.PROTOCOL_VERSION,
|
|
307
|
+
ts: Date.now(),
|
|
308
|
+
ref,
|
|
309
|
+
state,
|
|
310
|
+
...(message ? { message } : {}),
|
|
311
|
+
...(files ? { files } : {}),
|
|
312
|
+
};
|
|
290
313
|
await this.transport?.publish('reply', msg);
|
|
291
314
|
}
|
|
315
|
+
/** Directories of the log files of ioBroker (file transports of iobroker.json) */
|
|
316
|
+
logDirs() {
|
|
317
|
+
let config = null;
|
|
318
|
+
try {
|
|
319
|
+
config = (0, logs_1.readConfig)(utils.controllerDir);
|
|
320
|
+
}
|
|
321
|
+
catch (e) {
|
|
322
|
+
this.log.warn(`iobroker.json not readable: ${e.message}`);
|
|
323
|
+
}
|
|
324
|
+
return (0, logs_1.logDirs)(config, (0, node_path_1.join)(utils.controllerDir, '..', '..'));
|
|
325
|
+
}
|
|
326
|
+
async logListCommand(ref) {
|
|
327
|
+
try {
|
|
328
|
+
const dirs = this.logDirs();
|
|
329
|
+
const files = await (0, logs_1.listLogFiles)(dirs);
|
|
330
|
+
await this.reply(ref, 'done', `${files.length} Log-Dateien in ${dirs.join(', ')}`, files);
|
|
331
|
+
}
|
|
332
|
+
catch (e) {
|
|
333
|
+
await this.reply(ref, 'error', e.message);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
/** Uploads a log file to the own server, one at a time */
|
|
337
|
+
async logFetchCommand(ref, by, req) {
|
|
338
|
+
try {
|
|
339
|
+
if (this.logUploading) {
|
|
340
|
+
throw new Error('Es wird schon eine Log-Datei übertragen');
|
|
341
|
+
}
|
|
342
|
+
if (!req || typeof req.url !== 'string' || typeof req.ticket !== 'string') {
|
|
343
|
+
throw new Error('Unvollständige Anfrage');
|
|
344
|
+
}
|
|
345
|
+
if (!(0, packages_1.trustedPackageUrl)(req.url, [this.config.enrollUrl, this.creds?.mqttUrl || ''])) {
|
|
346
|
+
throw new Error(`${req.url} gehört nicht zum Flottenserver`);
|
|
347
|
+
}
|
|
348
|
+
const file = await (0, logs_1.findLogFile)(this.logDirs(), req.file);
|
|
349
|
+
if (!file) {
|
|
350
|
+
throw new Error(`Log-Datei ${String(req.file)} gibt es nicht`);
|
|
351
|
+
}
|
|
352
|
+
this.logUploading = true;
|
|
353
|
+
this.log.info(`Log file ${req.file} is uploaded on request of ${by} (fleet management)`);
|
|
354
|
+
await this.reply(ref, 'running', `${req.file} wird komprimiert übertragen`);
|
|
355
|
+
const bytes = await (0, logs_1.uploadLog)(file, req.url, req.ticket, (0, transport_1.trustedCas)(this.creds?.ca || ''));
|
|
356
|
+
await this.reply(ref, 'done', `${req.file}: ${(bytes / 1024 / 1024).toFixed(1)} MB übertragen`);
|
|
357
|
+
}
|
|
358
|
+
catch (e) {
|
|
359
|
+
this.log.warn(`Log file ${String(req?.file)} for ${by}: ${e.message}`);
|
|
360
|
+
await this.reply(ref, 'error', e.message);
|
|
361
|
+
}
|
|
362
|
+
finally {
|
|
363
|
+
this.logUploading = false;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
292
366
|
/** Sends the inventory again a while after a command, when the instances show its effect */
|
|
293
367
|
inventorySoon() {
|
|
294
368
|
for (const ms of [5_000, 30_000]) {
|
|
@@ -302,7 +376,7 @@ class BeeAdapter extends utils.Adapter {
|
|
|
302
376
|
await this.reply(ref, 'error', 'Während eines Auftrags (Update) nicht möglich');
|
|
303
377
|
return;
|
|
304
378
|
}
|
|
305
|
-
if (this.commandRunning) {
|
|
379
|
+
if (this.commandRunning || (await (0, adapterCommand_1.adapterCommandState)((0, adapterCommand_1.adapterCommandPaths)(this.dataDir))) === null) {
|
|
306
380
|
await this.reply(ref, 'error', 'Es läuft schon ein Befehl');
|
|
307
381
|
return;
|
|
308
382
|
}
|
|
@@ -320,6 +394,9 @@ class BeeAdapter extends utils.Adapter {
|
|
|
320
394
|
else if (msg.cmd === 'osUpgrade') {
|
|
321
395
|
await this.osUpgradeCommand(ref, by, msg.osUpgrade);
|
|
322
396
|
}
|
|
397
|
+
else if (msg.cmd === 'adapter') {
|
|
398
|
+
await this.adapterCommand(ref, by, msg.adapter);
|
|
399
|
+
}
|
|
323
400
|
}
|
|
324
401
|
catch (e) {
|
|
325
402
|
this.log.warn(`Command ${msg.cmd} of ${by} failed: ${e.message}`);
|
|
@@ -352,6 +429,72 @@ class BeeAdapter extends utils.Adapter {
|
|
|
352
429
|
this.inventorySoon();
|
|
353
430
|
}
|
|
354
431
|
}
|
|
432
|
+
/** Installs one version of one adapter right away, for an asset without desired profile */
|
|
433
|
+
async adapterCommand(ref, by, req) {
|
|
434
|
+
const refusal = (0, adapterCommand_1.adapterRefusal)(req, this.desired);
|
|
435
|
+
if (refusal || !req) {
|
|
436
|
+
await this.reply(ref, 'error', refusal || 'Adapter fehlt');
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
const obj = await this.getForeignObjectAsync(`system.adapter.${req.name}`);
|
|
440
|
+
const installed = typeof obj?.common?.version === 'string' ? obj.common.version : undefined;
|
|
441
|
+
let file;
|
|
442
|
+
if (req.tarball) {
|
|
443
|
+
await this.reply(ref, 'running', `Paket für ${req.name} wird geladen`);
|
|
444
|
+
file = await (0, packages_1.ensurePackage)((0, node_path_1.join)(this.dataDir, 'packages'), req.tarball, {
|
|
445
|
+
serverUrls: [this.config.enrollUrl, this.creds?.mqttUrl || ''],
|
|
446
|
+
ca: (0, transport_1.trustedCas)(this.creds?.ca || ''),
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
const step = (0, adapterCommand_1.adapterStep)(req.name, req.version, installed, !!file);
|
|
450
|
+
if (!step) {
|
|
451
|
+
await this.reply(ref, 'done', `${req.name} ${req.version} ist schon installiert`);
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
this.log.info(`Adapter ${req.name}: ${step.action} ${installed ?? '-'} -> ${req.version} on request of ${by} (fleet management)`);
|
|
455
|
+
await (0, adapterCommand_1.startAdapterCommand)((0, adapterCommand_1.adapterCommandPaths)(this.dataDir), { ref, by, name: req.name, version: req.version, startedAt: Date.now() }, step, {
|
|
456
|
+
iobrokerJs: (0, node_path_1.join)(utils.controllerDir, 'iobroker.js'),
|
|
457
|
+
cwd: (0, node_path_1.join)(utils.controllerDir, '..', '..'),
|
|
458
|
+
haltFile: (0, node_path_1.join)(this.dataDir, 'halt'),
|
|
459
|
+
logFile: (0, node_path_1.join)(this.dataDir, 'runner.log'),
|
|
460
|
+
file,
|
|
461
|
+
});
|
|
462
|
+
await this.reply(ref, 'running', installed
|
|
463
|
+
? `${req.name} ${installed} → ${req.version} wird installiert`
|
|
464
|
+
: `${req.name} ${req.version} wird installiert`);
|
|
465
|
+
await this.waitAdapterCommand();
|
|
466
|
+
}
|
|
467
|
+
/** Waits for the runner of the command 'adapter' and answers the server */
|
|
468
|
+
async waitAdapterCommand() {
|
|
469
|
+
if (this.adapterWaiting || !this.dataDir) {
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
472
|
+
this.adapterWaiting = true;
|
|
473
|
+
const paths = (0, adapterCommand_1.adapterCommandPaths)(this.dataDir);
|
|
474
|
+
try {
|
|
475
|
+
while (!this.unloading) {
|
|
476
|
+
const result = await (0, adapterCommand_1.adapterCommandState)(paths);
|
|
477
|
+
if (result === undefined) {
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
if (result) {
|
|
481
|
+
if (!this.transport?.connected) {
|
|
482
|
+
// answered after the next connect
|
|
483
|
+
return;
|
|
484
|
+
}
|
|
485
|
+
await this.reply(result.command.ref, result.state, result.message);
|
|
486
|
+
this.log[result.state === 'done' ? 'info' : 'warn'](`Adapter command of ${result.command.by}: ${result.message}`);
|
|
487
|
+
await (0, adapterCommand_1.clearAdapterCommand)(paths);
|
|
488
|
+
this.inventorySoon();
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
491
|
+
await (0, util_1.sleep)(2000);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
finally {
|
|
495
|
+
this.adapterWaiting = false;
|
|
496
|
+
}
|
|
497
|
+
}
|
|
355
498
|
/** Upgrade OS packages through js-controller, only those it listed itself */
|
|
356
499
|
async osUpgradeCommand(ref, by, req) {
|
|
357
500
|
const host = `system.host.${this.host}`;
|
|
@@ -719,7 +862,7 @@ class BeeAdapter extends utils.Adapter {
|
|
|
719
862
|
}
|
|
720
863
|
/** Converges on the desired state if possible. Never runs two jobs at once. */
|
|
721
864
|
async reconcile() {
|
|
722
|
-
if (this.reconciling || this.unloading || !this.jobs || this.jobs.isActive()) {
|
|
865
|
+
if (this.reconciling || this.unloading || !this.jobs || this.jobs.isActive() || this.adapterWaiting) {
|
|
723
866
|
return;
|
|
724
867
|
}
|
|
725
868
|
this.reconciling = true;
|
package/build/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "bee",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.6",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.2.6": {
|
|
7
|
+
"en": "Installs a version of an adapter right away on an asset without desired profile, like from admin; the list of log files was empty on normal installations, the agent now finds iobroker.json in iobroker-data as js-controller does",
|
|
8
|
+
"de": "Installiert eine Version eines Adapters sofort auf einer Anlage ohne Sollprofil, wie aus admin heraus; die Liste der Log-Dateien war auf normalen Installationen leer, der Agent findet iobroker.json jetzt wie js-controller in iobroker-data"
|
|
9
|
+
},
|
|
10
|
+
"0.2.5": {
|
|
11
|
+
"en": "Log files of ioBroker for the fleet management: lists them and uploads one compressed on request",
|
|
12
|
+
"de": "Log-Dateien von ioBroker für die Flottenverwaltung: listet sie auf und überträgt auf Anforderung eine davon komprimiert"
|
|
13
|
+
},
|
|
6
14
|
"0.2.4": {
|
|
7
15
|
"en": "Updates Node.js to the major line of the profile as the first step of a job, and goes back to the old version if the instances do not run again under the new one; settings show the connection in color and the server; instances without a process refuse commands",
|
|
8
16
|
"de": "Hebt Node.js als ersten Schritt eines Auftrags auf die Hauptversion des Profils und kehrt zur alten Version zurück, wenn die Instanzen unter der neuen nicht wieder laufen; die Einstellungen zeigen die Verbindung farbig und den Server; Instanzen ohne Prozess lehnen Befehle ab"
|
package/package.json
CHANGED