Put instance runtime state into InstanceInfo class

Use the data class pattern for storing the instance data on the
controller.  Improves documentation for plugins trying to use it.
This commit is contained in:
Hornwitser committed 2023-02-24 02:00:12 +01:00
1 parent 6a2aaf3d26
commit 496ebd18a5
5 files changed
+57 -7

No files matched your search

+3 -2
View File
@@ -20,6 +20,7 @@ const libPrometheus = require("@clusterio/lib/prometheus");
const { logger } = require("@clusterio/lib/logging");
const HttpCloser = require("./HttpCloser");
const InstanceInfo = require("./InstanceInfo");
const metrics = require("./metrics");
const routes = require("./routes");
const UserManager = require("./UserManager");
@@ -68,7 +69,7 @@ class Controller {
/**
* Mapping of instance id to instance info
* @type {Map<number, Object>}
* @type {Map<number, module:controller/src/InstanceInfo>}
*/
this.instances = null;
@@ -379,7 +380,7 @@ class Controller {
let instanceConfig = new libConfig.InstanceConfig("controller");
await instanceConfig.load(serializedConfig);
let status = instanceConfig.get("instance.assigned_host") === null ? "unassigned" : "unknown";
let instance = { config: instanceConfig, status };
let instance = new InstanceInfo({ config: instanceConfig, status });
instances.set(instanceConfig.get("instance.id"), instance);
}