From dac9cc8c82b94f054f525a9fa750a0ca36ebca1c Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Thu, 1 Feb 2024 14:33:20 +0100 Subject: [PATCH] fix(core): update --- ts/00_commitinfo_data.ts | 2 +- ts/data/server.ts | 13 +++++++++++++ ts/requests/server.ts | 40 ++++++++++++++++++++++++++++++++++------ 3 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 ts/data/server.ts diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index e3f4334..479334a 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/interfaces', - version: '1.0.9', + version: '1.0.10', description: 'interfaces for working with containers' } diff --git a/ts/data/server.ts b/ts/data/server.ts new file mode 100644 index 0000000..8f6d5d0 --- /dev/null +++ b/ts/data/server.ts @@ -0,0 +1,13 @@ +export interface IServerMetrics { + serverId: string; + cpuUsageInPercent: number; + memoryUsageinMB: number; + memoryAvailableInMB: number; + containerCount: number; + containerMetrics: Array<{ + containerId: string; + containerName: string; + cpuUsageInPercent: number; + memoryUsageInMB: number; + }>; +} \ No newline at end of file diff --git a/ts/requests/server.ts b/ts/requests/server.ts index 78cf4b9..02c42ac 100644 --- a/ts/requests/server.ts +++ b/ts/requests/server.ts @@ -1,14 +1,42 @@ -// link external types for reference -import { type IRequest_Any_Cloudly_GetServerConfig } from './config.js' - +import type { IServerMetrics } from '../data/server.js'; import * as plugins from '../plugins.js'; -export interface IRequest_Cloudly_ServerConfig_TriggerAction +/** + * This request can be used between any two players + * Examples: + * WebApp -> Cloudly (get metrics) + * Cloudly -> Webapp (send metrics) + * Cloudly -> Coreflow (get metrics) + * Coreflow -> Cloudly (send metrics) + */ +export interface IRequest_Any_Cloudly_ServerStatus +extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_Any_Cloudly_ServerStatus +> { + method: 'getOrSendServerMetrics', + request: { + getOrSend: 'get' | 'send'; + serverMetrics?: IServerMetrics; + }, + response: { + serverMetrics?: IServerMetrics; + }, +} + +/** + * this request can be used between any two players + * Examples: + * WebApp -> Cloudly + * Cloudly -> Coreflow + * Cloudly -> HostingProvider + */ +export interface IRequest_TriggerServerAction extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, - IRequest_Cloudly_ServerConfig_TriggerAction + IRequest_TriggerServerAction > { - method: 'serverConfigTriggerAction'; + method: 'triggerServerAction'; request: { actionName: 'reboot' | 'rebuild'; payload: any;