From ff448e9c7f1a196e2b8a8732e85bca830e58f63d Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Mon, 9 Dec 2024 21:19:10 -0800 Subject: [PATCH] core: manage cluster through ui --- plugins/core/src/main.ts | 14 ++++++++++++++ server/.vscode/launch.json | 4 ++-- server/package-lock.json | 4 ++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/plugins/core/src/main.ts b/plugins/core/src/main.ts index 72007b284..dfb55238a 100644 --- a/plugins/core/src/main.ts +++ b/plugins/core/src/main.ts @@ -15,6 +15,7 @@ import { ConsoleServiceNativeId, PluginSocketService, ReplServiceNativeId } from import { ScriptCore, ScriptCoreNativeId, newScript } from './script-core'; import { TerminalService, TerminalServiceNativeId } from './terminal-service'; import { UsersCore, UsersNativeId } from './user'; +import { ClusterCore, ClusterCoreNativeId } from './cluster'; const { deviceManager, endpointManager } = sdk; @@ -27,6 +28,7 @@ class ScryptedCore extends ScryptedDeviceBase implements HttpRequestHandler, Dev publicRouter: any = Router(); mediaCore: MediaCore; scriptCore: ScriptCore; + clusterCore: ClusterCore; aggregateCore: AggregateCore; automationCore: AutomationCore; users: UsersCore; @@ -102,6 +104,16 @@ class ScryptedCore extends ScryptedDeviceBase implements HttpRequestHandler, Dev this.indexHtml = readFileAsString('dist/index.html'); + (async () => { + await deviceManager.onDeviceDiscovered( + { + name: 'Cluster', + nativeId: ClusterCoreNativeId, + interfaces: [ScryptedInterface.Settings, ScryptedInterface.Readme], + type: ScryptedDeviceType.Builtin, + }, + ); + })(); (async () => { await deviceManager.onDeviceDiscovered( { @@ -214,6 +226,8 @@ class ScryptedCore extends ScryptedDeviceBase implements HttpRequestHandler, Dev } async getDevice(nativeId: string) { + if (nativeId === ClusterCoreNativeId) + return this.clusterCore ||= new ClusterCore(ClusterCoreNativeId); if (nativeId === 'launcher') return new LauncherMixin('launcher'); if (nativeId === 'mediacore') diff --git a/server/.vscode/launch.json b/server/.vscode/launch.json index d62c2f62e..6801c023c 100644 --- a/server/.vscode/launch.json +++ b/server/.vscode/launch.json @@ -97,9 +97,9 @@ ], "env": { "SCRYPTED_CLUSTER_WORKER_NAME": "Macaroni 2", - "SCRYPTED_CLUSTER_LABELS": "@scrypted/coreml,compute", + "SCRYPTED_CLUSTER_LABELS": "@scrypted/coreml,compute,compute.preferred", "SCRYPTED_CLUSTER_MODE": "client", - "SCRYPTED_CLUSTER_SERVER": "192.168.2.124", + "SCRYPTED_CLUSTER_SERVER": "192.168.2.130", "SCRYPTED_CLUSTER_SECRET": "swordfish", "SCRYPTED_CAN_RESTART": "true", "SCRYPTED_VOLUME": "/Users/koush/.scrypted-cluster/volume-client", diff --git a/server/package-lock.json b/server/package-lock.json index 528e2c8cc..9be40c85b 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/server", - "version": "0.123.61", + "version": "0.123.62", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@scrypted/server", - "version": "0.123.61", + "version": "0.123.62", "hasInstallScript": true, "license": "ISC", "dependencies": {