Expose the node's upload_size on the client server resource and reject files over it in the file manager before any bytes are sent.
75 lines
2.7 KiB
TypeScript
75 lines
2.7 KiB
TypeScript
import type { Server } from '@/api/server/types';
|
|
import type { ServerCardModel } from './dashboard';
|
|
import { statMetric } from './server/state';
|
|
|
|
export interface TestServerOptions {
|
|
identifier?: string;
|
|
uuid?: string;
|
|
name?: string;
|
|
owner?: boolean;
|
|
permissions?: string[];
|
|
status?: Server['attributes']['status'];
|
|
eggFeatures?: string[];
|
|
eggTags?: string[];
|
|
}
|
|
|
|
/** A server payload for fixtures and tests. */
|
|
export function createTestServer(options: TestServerOptions = {}): Server {
|
|
const identifier = options.identifier ?? 'test-server';
|
|
const owner = options.owner ?? true;
|
|
|
|
return {
|
|
object: 'server',
|
|
attributes: {
|
|
identifier,
|
|
uuid: options.uuid ?? '11111111-1111-4111-8111-111111111111',
|
|
__deprecated_uuid_short: identifier,
|
|
server_identifier: identifier,
|
|
internal_id: 1,
|
|
server_owner: owner,
|
|
name: options.name ?? 'Test server',
|
|
node: 'Test node',
|
|
is_node_under_maintenance: false,
|
|
upload_size: 100,
|
|
sftp_details: { ip: '127.0.0.1', port: 2022 },
|
|
description: null,
|
|
limits: { memory: 1024, swap: 0, disk: 1024, io: 500, cpu: 100, threads: null, oom_disabled: true },
|
|
invocation: 'run',
|
|
docker_image: 'test/image',
|
|
egg_features: options.eggFeatures ?? [],
|
|
egg_tags: options.eggTags ?? [],
|
|
feature_limits: { databases: 1, allocations: 1, backups: 1 },
|
|
status: options.status ?? null,
|
|
is_suspended: options.status === 'suspended',
|
|
is_installing: options.status === 'installing',
|
|
is_transferring: false,
|
|
skip_scripts: false,
|
|
},
|
|
meta: { is_server_owner: owner, user_permissions: options.permissions ?? [] },
|
|
};
|
|
}
|
|
|
|
const noop = () => {};
|
|
|
|
/** A running server's card, with every permission; `options` replace its fields. */
|
|
export function createTestServerCard(options: Partial<ServerCardModel> = {}): ServerCardModel {
|
|
return {
|
|
identifier: 'test-server',
|
|
uuid: '11111111-1111-4111-8111-111111111111',
|
|
name: 'Test server',
|
|
description: null,
|
|
address: '127.0.0.1:25565',
|
|
state: {
|
|
kind: 'ready',
|
|
power: 'running',
|
|
cpu: statMetric(12, 100),
|
|
memory: statMetric(256 * 1024 * 1024, 1024 * 1024 * 1024),
|
|
disk: statMetric(512 * 1024 * 1024, 2048 * 1024 * 1024),
|
|
},
|
|
permissions: { start: true, stop: true, restart: true, console: true },
|
|
actions: { start: noop, stop: noop, restart: noop },
|
|
sending: false,
|
|
...options,
|
|
};
|
|
}
|