@ludeo/cloud-common 1.2.257 → 1.2.258-ygbeta1
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/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/v4/contexts/cloud-session-context.d.ts +0 -1
- package/dist/v4/contexts/cloud-session-context.js +0 -5
- package/dist/v4/contexts/cloud-session-context.js.map +1 -1
- package/dist/v4/events/build-assignment-settings-ready.d.ts +0 -2
- package/dist/v4/events/build-assignment-settings-ready.js +0 -5
- package/dist/v4/events/build-assignment-settings-ready.js.map +1 -1
- package/dist/v4/events/create-game-resource-request.d.ts +0 -1
- package/dist/v4/events/create-game-resource-request.js +0 -5
- package/dist/v4/events/create-game-resource-request.js.map +1 -1
- package/dist/v4/events/export-ludeocast-logs-request.d.ts +0 -1
- package/dist/v4/events/export-ludeocast-logs-request.js +0 -4
- package/dist/v4/events/export-ludeocast-logs-request.js.map +1 -1
- package/dist/v4/events/gameplay-waiting-for-user.d.ts +1 -1
- package/dist/v4/events/gameplay-waiting-for-user.js +0 -1
- package/dist/v4/events/gameplay-waiting-for-user.js.map +1 -1
- package/dist/v4/events/index.d.ts +0 -1
- package/dist/v4/events/index.js +1 -2
- package/dist/v4/events/index.js.map +1 -1
- package/dist/v4/events/ludeocast-agent/resource-update.js.map +1 -1
- package/dist/v4/events/provisioner/provisioning-ended.d.ts +0 -2
- package/dist/v4/events/provisioner/provisioning-ended.js +0 -5
- package/dist/v4/events/provisioner/provisioning-ended.js.map +1 -1
- package/dist/v4/events/site-controller/machine-ludeocast-preempted.d.ts +0 -2
- package/dist/v4/events/site-controller/machine-ludeocast-preempted.js +0 -10
- package/dist/v4/events/site-controller/machine-ludeocast-preempted.js.map +1 -1
- package/dist/v4/events/swap-cloud-user-gameplay-request-failed.d.ts +2 -2
- package/dist/v4/events/swap-cloud-user-gameplay-request-failed.js +0 -2
- package/dist/v4/events/swap-cloud-user-gameplay-request-failed.js.map +1 -1
- package/dist/v4/events/swap-cloud-user-gameplay-request.d.ts +2 -2
- package/dist/v4/events/swap-cloud-user-gameplay-request.js +0 -2
- package/dist/v4/events/swap-cloud-user-gameplay-request.js.map +1 -1
- package/dist/v4/events/swap-cloud-user-request-failed.d.ts +1 -1
- package/dist/v4/events/swap-cloud-user-request-failed.js +0 -1
- package/dist/v4/events/swap-cloud-user-request-failed.js.map +1 -1
- package/dist/v4/events/swap-cloud-user-request.d.ts +1 -1
- package/dist/v4/events/swap-cloud-user-request.js +0 -1
- package/dist/v4/events/swap-cloud-user-request.js.map +1 -1
- package/dist/v4/events/swap-to-default-user-completed.d.ts +1 -1
- package/dist/v4/events/swap-to-default-user-completed.js +0 -1
- package/dist/v4/events/swap-to-default-user-completed.js.map +1 -1
- package/dist/v4/events/swap-to-default-user-request-failed.d.ts +1 -1
- package/dist/v4/events/swap-to-default-user-request-failed.js +0 -1
- package/dist/v4/events/swap-to-default-user-request-failed.js.map +1 -1
- package/dist/v4/events/swap-to-default-user.d.ts +1 -1
- package/dist/v4/events/swap-to-default-user.js +0 -1
- package/dist/v4/events/swap-to-default-user.js.map +1 -1
- package/dist/v4/types/build.d.ts +0 -1
- package/dist/v4/types/build.js +0 -5
- package/dist/v4/types/build.js.map +1 -1
- package/dist/v4/types/cloud/cloud-configuration-settings.js +4 -10
- package/dist/v4/types/cloud/cloud-configuration-settings.js.map +1 -1
- package/dist/v4/types/cloud/ludeocast-v2/index.d.ts +0 -2
- package/dist/v4/types/cloud/ludeocast-v2/index.js +0 -2
- package/dist/v4/types/cloud/ludeocast-v2/index.js.map +1 -1
- package/dist/v4/types/cloud/ludeocast-v2/machine-class.d.ts +1 -7
- package/dist/v4/types/cloud/ludeocast-v2/machine-class.js +0 -6
- package/dist/v4/types/cloud/ludeocast-v2/machine-class.js.map +1 -1
- package/dist/v4/types/site-controller/types.d.ts +0 -6
- package/dist/v4/types/site-controller/types.js +2 -25
- package/dist/v4/types/site-controller/types.js.map +1 -1
- package/package.json +1 -1
- package/src/v4/contexts/cloud-session-context.ts +0 -4
- package/src/v4/events/build-assignment-settings-ready.ts +0 -4
- package/src/v4/events/create-game-resource-request.ts +0 -4
- package/src/v4/events/export-ludeocast-logs-request.ts +0 -3
- package/src/v4/events/gameplay-waiting-for-user.ts +1 -2
- package/src/v4/events/index.ts +0 -1
- package/src/v4/events/ludeocast-agent/resource-update.ts +0 -4
- package/src/v4/events/provisioner/provisioning-ended.ts +1 -9
- package/src/v4/events/site-controller/machine-ludeocast-preempted.ts +0 -8
- package/src/v4/events/swap-cloud-user-gameplay-request-failed.ts +3 -5
- package/src/v4/events/swap-cloud-user-gameplay-request.ts +2 -4
- package/src/v4/events/swap-cloud-user-request-failed.ts +1 -2
- package/src/v4/events/swap-cloud-user-request.ts +1 -2
- package/src/v4/events/swap-to-default-user-completed.ts +1 -2
- package/src/v4/events/swap-to-default-user-request-failed.ts +1 -2
- package/src/v4/events/swap-to-default-user.ts +1 -2
- package/src/v4/types/build.ts +0 -4
- package/src/v4/types/cloud/cloud-configuration-settings.ts +7 -13
- package/src/v4/types/cloud/ludeocast-v2/index.ts +0 -2
- package/src/v4/types/cloud/ludeocast-v2/machine-class.ts +0 -6
- package/src/v4/types/site-controller/types.ts +2 -22
- package/.github/workflows/pr-check.yml +0 -9
- package/dist/v4/events/cloud-sessions/cloud-session-preempted.d.ts +0 -20
- package/dist/v4/events/cloud-sessions/cloud-session-preempted.js +0 -74
- package/dist/v4/events/cloud-sessions/cloud-session-preempted.js.map +0 -1
- package/dist/v4/events/cloud-sessions/index.d.ts +0 -1
- package/dist/v4/events/cloud-sessions/index.js +0 -18
- package/dist/v4/events/cloud-sessions/index.js.map +0 -1
- package/dist/v4/types/cloud/cloud-configuration-settings.spec.d.ts +0 -1
- package/dist/v4/types/cloud/cloud-configuration-settings.spec.js +0 -12
- package/dist/v4/types/cloud/cloud-configuration-settings.spec.js.map +0 -1
- package/dist/v4/types/cloud/ludeocast-v2/gpu-type.d.ts +0 -16
- package/dist/v4/types/cloud/ludeocast-v2/gpu-type.js +0 -54
- package/dist/v4/types/cloud/ludeocast-v2/gpu-type.js.map +0 -1
- package/dist/v4/types/cloud/ludeocast-v2/machine-resource-meta.d.ts +0 -3
- package/dist/v4/types/cloud/ludeocast-v2/machine-resource-meta.js +0 -3
- package/dist/v4/types/cloud/ludeocast-v2/machine-resource-meta.js.map +0 -1
- package/src/v4/events/cloud-sessions/cloud-session-preempted.ts +0 -50
- package/src/v4/events/cloud-sessions/index.ts +0 -1
- package/src/v4/types/cloud/cloud-configuration-settings.spec.ts +0 -12
- package/src/v4/types/cloud/ludeocast-v2/gpu-type.ts +0 -57
- package/src/v4/types/cloud/ludeocast-v2/machine-resource-meta.ts +0 -10
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const cloud_configuration_settings_1 = require("./cloud-configuration-settings");
|
|
4
|
-
describe("getCloudSettingsByKey", () => {
|
|
5
|
-
it("preserves SPOT_ROLLOUT 0 instead of falling back to default (100)", () => {
|
|
6
|
-
const settings = {
|
|
7
|
-
[cloud_configuration_settings_1.CloudSettingsKeys.SPOT_ROLLOUT]: 0,
|
|
8
|
-
};
|
|
9
|
-
expect((0, cloud_configuration_settings_1.getCloudSettingsByKey)(cloud_configuration_settings_1.CloudSettingsKeys.SPOT_ROLLOUT, settings)).toBe(0);
|
|
10
|
-
});
|
|
11
|
-
});
|
|
12
|
-
//# sourceMappingURL=cloud-configuration-settings.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-configuration-settings.spec.js","sourceRoot":"","sources":["../../../../src/v4/types/cloud/cloud-configuration-settings.spec.ts"],"names":[],"mappings":";;AACA,iFAA0F;AAE1F,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QACzE,MAAM,QAAQ,GAAG;YACb,CAAC,gDAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;SACrB,CAAC;QAEnB,MAAM,CAAC,IAAA,oDAAqB,EAAC,gDAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { LudeoCastV2MachineClass } from "./machine-class";
|
|
2
|
-
export declare enum LudeocastGpuType {
|
|
3
|
-
AMPERE = "ampere",
|
|
4
|
-
BOHR = "bohr",
|
|
5
|
-
T4 = "T4",
|
|
6
|
-
L4 = "L4",
|
|
7
|
-
A10G = "A10G",
|
|
8
|
-
L40S = "L40S",
|
|
9
|
-
RTXPRO6000 = "RTXPRO6000"
|
|
10
|
-
}
|
|
11
|
-
export declare const SPOT_SUFFIX = "-spot";
|
|
12
|
-
export declare const isSpotMachineClass: (machineClass: string) => boolean;
|
|
13
|
-
export declare const stripSpotSuffix: (value: string) => string;
|
|
14
|
-
export declare const MACHINE_CLASS_TO_GPU_TYPE: Record<LudeoCastV2MachineClass, LudeocastGpuType>;
|
|
15
|
-
export declare function getGpuTypeByMachineClass(machineClass: string | LudeoCastV2MachineClass): LudeocastGpuType;
|
|
16
|
-
export declare function tryResolveGpuTypeByMachineClass(machineClass: string | undefined): LudeocastGpuType | undefined;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MACHINE_CLASS_TO_GPU_TYPE = exports.stripSpotSuffix = exports.isSpotMachineClass = exports.SPOT_SUFFIX = exports.LudeocastGpuType = void 0;
|
|
4
|
-
exports.getGpuTypeByMachineClass = getGpuTypeByMachineClass;
|
|
5
|
-
exports.tryResolveGpuTypeByMachineClass = tryResolveGpuTypeByMachineClass;
|
|
6
|
-
const machine_class_1 = require("./machine-class");
|
|
7
|
-
var LudeocastGpuType;
|
|
8
|
-
(function (LudeocastGpuType) {
|
|
9
|
-
LudeocastGpuType["AMPERE"] = "ampere";
|
|
10
|
-
LudeocastGpuType["BOHR"] = "bohr";
|
|
11
|
-
LudeocastGpuType["T4"] = "T4";
|
|
12
|
-
LudeocastGpuType["L4"] = "L4";
|
|
13
|
-
LudeocastGpuType["A10G"] = "A10G";
|
|
14
|
-
LudeocastGpuType["L40S"] = "L40S";
|
|
15
|
-
LudeocastGpuType["RTXPRO6000"] = "RTXPRO6000";
|
|
16
|
-
})(LudeocastGpuType || (exports.LudeocastGpuType = LudeocastGpuType = {}));
|
|
17
|
-
exports.SPOT_SUFFIX = "-spot";
|
|
18
|
-
const isSpotMachineClass = (machineClass) => machineClass.endsWith(exports.SPOT_SUFFIX);
|
|
19
|
-
exports.isSpotMachineClass = isSpotMachineClass;
|
|
20
|
-
const stripSpotSuffix = (value) => ((0, exports.isSpotMachineClass)(value) ? value.slice(0, -exports.SPOT_SUFFIX.length) : value);
|
|
21
|
-
exports.stripSpotSuffix = stripSpotSuffix;
|
|
22
|
-
exports.MACHINE_CLASS_TO_GPU_TYPE = {
|
|
23
|
-
[machine_class_1.LudeoCastV2MachineClass.N1_STANDARD_8]: LudeocastGpuType.T4,
|
|
24
|
-
[machine_class_1.LudeoCastV2MachineClass.N1_STANDARD_16]: LudeocastGpuType.T4,
|
|
25
|
-
[machine_class_1.LudeoCastV2MachineClass.G4DN_2XLARGE]: LudeocastGpuType.T4,
|
|
26
|
-
[machine_class_1.LudeoCastV2MachineClass.G4DN_4XLARGE]: LudeocastGpuType.T4,
|
|
27
|
-
[machine_class_1.LudeoCastV2MachineClass.G5_2XLARGE]: LudeocastGpuType.A10G,
|
|
28
|
-
[machine_class_1.LudeoCastV2MachineClass.G5_4XLARGE]: LudeocastGpuType.A10G,
|
|
29
|
-
[machine_class_1.LudeoCastV2MachineClass.G2_STANDARD_16]: LudeocastGpuType.L4,
|
|
30
|
-
[machine_class_1.LudeoCastV2MachineClass.G6_2XLARGE]: LudeocastGpuType.L4,
|
|
31
|
-
[machine_class_1.LudeoCastV2MachineClass.G6_4XLARGE]: LudeocastGpuType.L4,
|
|
32
|
-
[machine_class_1.LudeoCastV2MachineClass.G6E_2XLARGE]: LudeocastGpuType.L40S,
|
|
33
|
-
[machine_class_1.LudeoCastV2MachineClass.G6E_4XLARGE]: LudeocastGpuType.L40S,
|
|
34
|
-
[machine_class_1.LudeoCastV2MachineClass.G7E_2XLARGE]: LudeocastGpuType.RTXPRO6000,
|
|
35
|
-
[machine_class_1.LudeoCastV2MachineClass.G7E_4XLARGE]: LudeocastGpuType.RTXPRO6000,
|
|
36
|
-
[machine_class_1.LudeoCastV2MachineClass.G4_STANDARD_48]: LudeocastGpuType.RTXPRO6000,
|
|
37
|
-
[machine_class_1.LudeoCastV2MachineClass.G4_STANDARD_24]: LudeocastGpuType.RTXPRO6000,
|
|
38
|
-
[machine_class_1.LudeoCastV2MachineClass.G4_STANDARD_12]: LudeocastGpuType.RTXPRO6000,
|
|
39
|
-
[machine_class_1.LudeoCastV2MachineClass.G4_STANDARD_6]: LudeocastGpuType.RTXPRO6000,
|
|
40
|
-
};
|
|
41
|
-
function getGpuTypeByMachineClass(machineClass) {
|
|
42
|
-
const baseMachineClass = (0, exports.stripSpotSuffix)(machineClass);
|
|
43
|
-
const gpuType = exports.MACHINE_CLASS_TO_GPU_TYPE[baseMachineClass];
|
|
44
|
-
if (!gpuType)
|
|
45
|
-
throw new Error(`No GPU type mapping for machine class: ${machineClass}`);
|
|
46
|
-
return gpuType;
|
|
47
|
-
}
|
|
48
|
-
function tryResolveGpuTypeByMachineClass(machineClass) {
|
|
49
|
-
if (!machineClass?.trim())
|
|
50
|
-
return undefined;
|
|
51
|
-
const base = (0, exports.stripSpotSuffix)(machineClass.trim());
|
|
52
|
-
return exports.MACHINE_CLASS_TO_GPU_TYPE[base];
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=gpu-type.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gpu-type.js","sourceRoot":"","sources":["../../../../../src/v4/types/cloud/ludeocast-v2/gpu-type.ts"],"names":[],"mappings":";;;AA4CA,4DAKC;AAGD,0EAIC;AAxDD,mDAA0D;AAE1D,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,6BAAS,CAAA;IACT,6BAAS,CAAA;IACT,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,6CAAyB,CAAA;AAC3B,CAAC,EARW,gBAAgB,gCAAhB,gBAAgB,QAQ3B;AAEY,QAAA,WAAW,GAAG,OAAO,CAAC;AAE5B,MAAM,kBAAkB,GAAG,CAAC,YAAoB,EAAW,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,mBAAW,CAAC,CAAC;AAA3F,QAAA,kBAAkB,sBAAyE;AAEjG,MAAM,eAAe,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,CAAC,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAAvH,QAAA,eAAe,mBAAwG;AAGvH,QAAA,yBAAyB,GAAsD;IAE1F,CAAC,uCAAuB,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,EAAE;IAC5D,CAAC,uCAAuB,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,EAAE;IAC7D,CAAC,uCAAuB,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,EAAE;IAC3D,CAAC,uCAAuB,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,EAAE;IAE3D,CAAC,uCAAuB,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,IAAI;IAC3D,CAAC,uCAAuB,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,IAAI;IAE3D,CAAC,uCAAuB,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,EAAE;IAC7D,CAAC,uCAAuB,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,EAAE;IACzD,CAAC,uCAAuB,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,EAAE;IAEzD,CAAC,uCAAuB,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,IAAI;IAC5D,CAAC,uCAAuB,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,IAAI;IAE5D,CAAC,uCAAuB,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,UAAU;IAClE,CAAC,uCAAuB,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,UAAU;IAClE,CAAC,uCAAuB,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,UAAU;IACrE,CAAC,uCAAuB,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,UAAU;IACrE,CAAC,uCAAuB,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,UAAU;IACrE,CAAC,uCAAuB,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,UAAU;CACrE,CAAC;AAEF,SAAgB,wBAAwB,CAAC,YAA8C;IACrF,MAAM,gBAAgB,GAAG,IAAA,uBAAe,EAAC,YAAsB,CAA4B,CAAC;IAC5F,MAAM,OAAO,GAAG,iCAAyB,CAAC,gBAAgB,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,YAAY,EAAE,CAAC,CAAC;IACxF,OAAO,OAAO,CAAC;AACjB,CAAC;AAGD,SAAgB,+BAA+B,CAAC,YAAgC;IAC9E,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAA,uBAAe,EAAC,YAAY,CAAC,IAAI,EAAE,CAA4B,CAAC;IAC7E,OAAO,iCAAyB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"machine-resource-meta.js","sourceRoot":"","sources":["../../../../../src/v4/types/cloud/ludeocast-v2/machine-resource-meta.ts"],"names":[],"mappings":""}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { LudeoEvent } from '../../../infra';
|
|
2
|
-
import { ValidateNestedType } from '../../../decorators';
|
|
3
|
-
import { IsEnum, IsNumber, IsString, IsUUID } from 'class-validator';
|
|
4
|
-
import { CloudSessionContext } from '../../contexts';
|
|
5
|
-
import { CloudSessionStatus } from '../../../v4/types/cloud/session';
|
|
6
|
-
|
|
7
|
-
export class CloudSessionPreemptedPayload {
|
|
8
|
-
@IsUUID()
|
|
9
|
-
cloudSessionId: string;
|
|
10
|
-
|
|
11
|
-
@IsUUID()
|
|
12
|
-
userId: string;
|
|
13
|
-
|
|
14
|
-
@IsEnum(CloudSessionStatus)
|
|
15
|
-
status: CloudSessionStatus;
|
|
16
|
-
|
|
17
|
-
@IsUUID()
|
|
18
|
-
machineResourceId: string;
|
|
19
|
-
|
|
20
|
-
@IsUUID()
|
|
21
|
-
machinePoolId: string;
|
|
22
|
-
|
|
23
|
-
@IsString()
|
|
24
|
-
machineClass: string;
|
|
25
|
-
|
|
26
|
-
@IsUUID()
|
|
27
|
-
gameResourceId: string;
|
|
28
|
-
|
|
29
|
-
@IsUUID()
|
|
30
|
-
ludeoResourceId: string;
|
|
31
|
-
|
|
32
|
-
@IsNumber()
|
|
33
|
-
gracePeriodMs: number;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export class CloudSessionPreempted extends LudeoEvent {
|
|
37
|
-
static readonly EVENT_NAME = 'cloud-sessions.cloud-session-preempted';
|
|
38
|
-
|
|
39
|
-
constructor(payload: CloudSessionPreemptedPayload, context: CloudSessionContext) {
|
|
40
|
-
super(CloudSessionPreempted.EVENT_NAME);
|
|
41
|
-
this.payload = payload;
|
|
42
|
-
this.context = context;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@ValidateNestedType(() => CloudSessionPreemptedPayload)
|
|
46
|
-
payload: CloudSessionPreemptedPayload;
|
|
47
|
-
|
|
48
|
-
@ValidateNestedType(() => CloudSessionContext)
|
|
49
|
-
context: CloudSessionContext;
|
|
50
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './cloud-session-preempted';
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { CloudSettings } from "./cloud-configuration-settings";
|
|
2
|
-
import { CloudSettingsKeys, getCloudSettingsByKey } from "./cloud-configuration-settings";
|
|
3
|
-
|
|
4
|
-
describe("getCloudSettingsByKey", () => {
|
|
5
|
-
it("preserves SPOT_ROLLOUT 0 instead of falling back to default (100)", () => {
|
|
6
|
-
const settings = {
|
|
7
|
-
[CloudSettingsKeys.SPOT_ROLLOUT]: 0,
|
|
8
|
-
} as CloudSettings;
|
|
9
|
-
|
|
10
|
-
expect(getCloudSettingsByKey(CloudSettingsKeys.SPOT_ROLLOUT, settings)).toBe(0);
|
|
11
|
-
});
|
|
12
|
-
});
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { LudeoCastV2MachineClass } from "./machine-class";
|
|
2
|
-
|
|
3
|
-
export enum LudeocastGpuType {
|
|
4
|
-
AMPERE = "ampere",
|
|
5
|
-
BOHR = "bohr",
|
|
6
|
-
T4 = "T4",
|
|
7
|
-
L4 = "L4",
|
|
8
|
-
A10G = "A10G",
|
|
9
|
-
L40S = "L40S",
|
|
10
|
-
RTXPRO6000 = "RTXPRO6000",
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export const SPOT_SUFFIX = "-spot";
|
|
14
|
-
|
|
15
|
-
export const isSpotMachineClass = (machineClass: string): boolean => machineClass.endsWith(SPOT_SUFFIX);
|
|
16
|
-
|
|
17
|
-
export const stripSpotSuffix = (value: string): string => (isSpotMachineClass(value) ? value.slice(0, -SPOT_SUFFIX.length) : value);
|
|
18
|
-
|
|
19
|
-
/** Canonical machine-class → gpu-type map (ludeocast pool agent / site-controller Redis & S3). */
|
|
20
|
-
export const MACHINE_CLASS_TO_GPU_TYPE: Record<LudeoCastV2MachineClass, LudeocastGpuType> = {
|
|
21
|
-
// NVIDIA T4 (Turing)
|
|
22
|
-
[LudeoCastV2MachineClass.N1_STANDARD_8]: LudeocastGpuType.T4,
|
|
23
|
-
[LudeoCastV2MachineClass.N1_STANDARD_16]: LudeocastGpuType.T4,
|
|
24
|
-
[LudeoCastV2MachineClass.G4DN_2XLARGE]: LudeocastGpuType.T4,
|
|
25
|
-
[LudeoCastV2MachineClass.G4DN_4XLARGE]: LudeocastGpuType.T4,
|
|
26
|
-
// NVIDIA A10G (Ampere)
|
|
27
|
-
[LudeoCastV2MachineClass.G5_2XLARGE]: LudeocastGpuType.A10G,
|
|
28
|
-
[LudeoCastV2MachineClass.G5_4XLARGE]: LudeocastGpuType.A10G,
|
|
29
|
-
// NVIDIA L4 (Ada Lovelace)
|
|
30
|
-
[LudeoCastV2MachineClass.G2_STANDARD_16]: LudeocastGpuType.L4,
|
|
31
|
-
[LudeoCastV2MachineClass.G6_2XLARGE]: LudeocastGpuType.L4,
|
|
32
|
-
[LudeoCastV2MachineClass.G6_4XLARGE]: LudeocastGpuType.L4,
|
|
33
|
-
// NVIDIA L40S (Ada Lovelace)
|
|
34
|
-
[LudeoCastV2MachineClass.G6E_2XLARGE]: LudeocastGpuType.L40S,
|
|
35
|
-
[LudeoCastV2MachineClass.G6E_4XLARGE]: LudeocastGpuType.L40S,
|
|
36
|
-
// NVIDIA RTX PRO 6000 Blackwell Server Edition
|
|
37
|
-
[LudeoCastV2MachineClass.G7E_2XLARGE]: LudeocastGpuType.RTXPRO6000,
|
|
38
|
-
[LudeoCastV2MachineClass.G7E_4XLARGE]: LudeocastGpuType.RTXPRO6000,
|
|
39
|
-
[LudeoCastV2MachineClass.G4_STANDARD_48]: LudeocastGpuType.RTXPRO6000,
|
|
40
|
-
[LudeoCastV2MachineClass.G4_STANDARD_24]: LudeocastGpuType.RTXPRO6000,
|
|
41
|
-
[LudeoCastV2MachineClass.G4_STANDARD_12]: LudeocastGpuType.RTXPRO6000,
|
|
42
|
-
[LudeoCastV2MachineClass.G4_STANDARD_6]: LudeocastGpuType.RTXPRO6000,
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export function getGpuTypeByMachineClass(machineClass: string | LudeoCastV2MachineClass): LudeocastGpuType {
|
|
46
|
-
const baseMachineClass = stripSpotSuffix(machineClass as string) as LudeoCastV2MachineClass;
|
|
47
|
-
const gpuType = MACHINE_CLASS_TO_GPU_TYPE[baseMachineClass];
|
|
48
|
-
if (!gpuType) throw new Error(`No GPU type mapping for machine class: ${machineClass}`);
|
|
49
|
-
return gpuType;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/** For callers using raw pool `machineClass` strings (e.g. site-controller Redis / S3 path segments). */
|
|
53
|
-
export function tryResolveGpuTypeByMachineClass(machineClass: string | undefined): LudeocastGpuType | undefined {
|
|
54
|
-
if (!machineClass?.trim()) return undefined;
|
|
55
|
-
const base = stripSpotSuffix(machineClass.trim()) as LudeoCastV2MachineClass;
|
|
56
|
-
return MACHINE_CLASS_TO_GPU_TYPE[base];
|
|
57
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Machine facts reported by the ludeocast agent on specific lifecycle milestones (not provisioning /
|
|
3
|
-
* pool `LudeoCastV2ProviderSettings`). Site-controller persists this shape under the machine resource
|
|
4
|
-
* field `meta`, merged shallowly when handling the matching MQTT `resource-update`.
|
|
5
|
-
*
|
|
6
|
-
* @example AgentReadyForCommands — include `nvidiaDriverVersion` from `nvidia-smi` in payload `meta`.
|
|
7
|
-
*/
|
|
8
|
-
export interface MachineResourceMeta {
|
|
9
|
-
nvidiaDriverVersion?: string;
|
|
10
|
-
}
|