[REV] Adjusted servers table
This commit is contained in:
parent
f732710c7c
commit
e94aca7c96
3 changed files with 19 additions and 23 deletions
|
@ -10,7 +10,7 @@ import { sendError } from "../util/ExpressClientError.js";
|
||||||
export async function listFiles(req, res) {
|
export async function listFiles(req, res) {
|
||||||
const serverSpec = req.body;
|
const serverSpec = req.body;
|
||||||
if (!serverSpec) return res.sendStatus(400);
|
if (!serverSpec) return res.sendStatus(400);
|
||||||
if (!serverSpec.name) return res.status(400).send("Server name required!");
|
if (!serverSpec.host) return res.status(400).send("Server name required!");
|
||||||
listServerFiles(serverSpec)
|
listServerFiles(serverSpec)
|
||||||
.then((f) => {
|
.then((f) => {
|
||||||
const fileData = f.map((fi, i) => ({
|
const fileData = f.map((fi, i) => ({
|
||||||
|
@ -29,7 +29,7 @@ export async function listFiles(req, res) {
|
||||||
export async function createFolder(req, res) {
|
export async function createFolder(req, res) {
|
||||||
const serverSpec = req.body;
|
const serverSpec = req.body;
|
||||||
if (!serverSpec) return res.sendStatus(400);
|
if (!serverSpec) return res.sendStatus(400);
|
||||||
if (!serverSpec.name) return res.status(400).send("Server name required!");
|
if (!serverSpec.host) return res.status(400).send("Server name required!");
|
||||||
if (!serverSpec.path) return res.status(400).send("Path required!");
|
if (!serverSpec.path) return res.status(400).send("Path required!");
|
||||||
createServerFolder(serverSpec)
|
createServerFolder(serverSpec)
|
||||||
.then(() => res.sendStatus(200))
|
.then(() => res.sendStatus(200))
|
||||||
|
@ -39,7 +39,7 @@ export async function createFolder(req, res) {
|
||||||
export async function deleteItem(req, res) {
|
export async function deleteItem(req, res) {
|
||||||
const serverSpec = req.body;
|
const serverSpec = req.body;
|
||||||
if (!serverSpec) return res.sendStatus(400);
|
if (!serverSpec) return res.sendStatus(400);
|
||||||
if (!serverSpec.name) return res.status(400).send("Server name required!");
|
if (!serverSpec.host) return res.status(400).send("Server name required!");
|
||||||
if (!serverSpec.path) return res.status(400).send("Path required!");
|
if (!serverSpec.path) return res.status(400).send("Path required!");
|
||||||
if (serverSpec.isDir === undefined || serverSpec.isDir === null)
|
if (serverSpec.isDir === undefined || serverSpec.isDir === null)
|
||||||
return res.status(400).send("IsDIr required!");
|
return res.status(400).send("IsDIr required!");
|
||||||
|
@ -50,7 +50,7 @@ export async function deleteItem(req, res) {
|
||||||
|
|
||||||
export async function uploadItem(req, res) {
|
export async function uploadItem(req, res) {
|
||||||
const serverSpec = req.body;
|
const serverSpec = req.body;
|
||||||
if (!serverSpec.name) return res.status(400).send("Server name required!");
|
if (!serverSpec.host) return res.status(400).send("Server name required!");
|
||||||
if (!serverSpec.path) return res.status(400).send("Path required!");
|
if (!serverSpec.path) return res.status(400).send("Path required!");
|
||||||
uploadServerItem(serverSpec, req.file)
|
uploadServerItem(serverSpec, req.file)
|
||||||
.then(() => res.sendStatus(200))
|
.then(() => res.sendStatus(200))
|
||||||
|
@ -59,7 +59,7 @@ export async function uploadItem(req, res) {
|
||||||
|
|
||||||
export async function getItem(req, res) {
|
export async function getItem(req, res) {
|
||||||
const serverSpec = req.body;
|
const serverSpec = req.body;
|
||||||
if (!serverSpec.name) return res.status(400).send("Server name required!");
|
if (!serverSpec.host) return res.status(400).send("Server name required!");
|
||||||
if (!serverSpec.path) return res.status(400).send("Path required!");
|
if (!serverSpec.path) return res.status(400).send("Path required!");
|
||||||
getServerItem(serverSpec, res)
|
getServerItem(serverSpec, res)
|
||||||
.then(({ ds, ftpTransfer }) => {
|
.then(({ ds, ftpTransfer }) => {
|
||||||
|
|
|
@ -6,32 +6,24 @@ import {
|
||||||
getServerEntry,
|
getServerEntry,
|
||||||
} from "../database/queries/server-queries.js";
|
} from "../database/queries/server-queries.js";
|
||||||
import { sendError } from "../util/ExpressClientError.js";
|
import { sendError } from "../util/ExpressClientError.js";
|
||||||
import {
|
|
||||||
startServerContainer,
|
|
||||||
stopServerContainer,
|
|
||||||
} from "../k8s/server-control.js";
|
|
||||||
import { toggleServer } from "../k8s/k8s-server-control.js";
|
import { toggleServer } from "../k8s/k8s-server-control.js";
|
||||||
|
|
||||||
function payloadFilter(req, res) {
|
function payloadFilter(req, res) {
|
||||||
const serverSpec = req.body;
|
const serverSpec = req.body;
|
||||||
if (!serverSpec) return res.sendStatus(400);
|
if (!serverSpec) return res.sendStatus(400);
|
||||||
const { name, host, version, serverType, difficulty, gamemode, memory } =
|
const { name, host, version, serverType, memory } =
|
||||||
serverSpec;
|
serverSpec;
|
||||||
if (!name) return res.status(400).send("Server name is required!");
|
if (!name) return res.status(400).send("Server name is required!");
|
||||||
if (!host) return res.status(400).send("Server host is required!");
|
if (!host) return res.status(400).send("Server host is required!");
|
||||||
if (!version) return res.status(400).send("Server version is required!");
|
if (!version) return res.status(400).send("Server version is required!");
|
||||||
if (!difficulty)
|
|
||||||
return res.status(400).send("Server difficulty is required!");
|
|
||||||
if (!serverType) return res.status(400).send("Server type is required!");
|
if (!serverType) return res.status(400).send("Server type is required!");
|
||||||
if (!gamemode) return res.status(400).send("Server Gamemode is required!");
|
|
||||||
if (!memory) return res.status(400).send("Memory is required!");
|
if (!memory) return res.status(400).send("Memory is required!");
|
||||||
req.body.name = req.body.name.toLowerCase();
|
|
||||||
return "filtered";
|
return "filtered";
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkServerName(serverSpec) {
|
function checkServerHost(serverSpec) {
|
||||||
if (!serverSpec) throw new ExpressClientError({ c: 400 });
|
if (!serverSpec) throw new ExpressClientError({ c: 400 });
|
||||||
if (!serverSpec.name)
|
if (!serverSpec.host)
|
||||||
throw new ExpressClientError({ c: 400, m: "Server name required!" });
|
throw new ExpressClientError({ c: 400, m: "Server name required!" });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +31,7 @@ export async function createServer(req, res) {
|
||||||
if (payloadFilter(req, res) !== "filtered") return;
|
if (payloadFilter(req, res) !== "filtered") return;
|
||||||
const serverSpec = req.body;
|
const serverSpec = req.body;
|
||||||
try {
|
try {
|
||||||
const serverSpecs = await getServerEntry(serverSpec.name);
|
const serverSpecs = await getServerEntry(serverSpec.id);
|
||||||
if (serverSpecs.length !== 0) throw Error("Server already exists in DB!");
|
if (serverSpecs.length !== 0) throw Error("Server already exists in DB!");
|
||||||
await createServerResources(serverSpec);
|
await createServerResources(serverSpec);
|
||||||
await createServerEntry(serverSpec);
|
await createServerEntry(serverSpec);
|
||||||
|
@ -53,11 +45,11 @@ export async function deleteServer(req, res) {
|
||||||
// Ensure spec is safe
|
// Ensure spec is safe
|
||||||
const serverSpec = req.body;
|
const serverSpec = req.body;
|
||||||
try {
|
try {
|
||||||
checkServerName(serverSpec);
|
checkServerHost(serverSpec);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return sendError(res)(e);
|
return sendError(res)(e);
|
||||||
}
|
}
|
||||||
const deleteEntry = deleteServerEntry(serverSpec.name);
|
const deleteEntry = deleteServerEntry(serverSpec.id);
|
||||||
const deleteResources = deleteServerResources(serverSpec);
|
const deleteResources = deleteServerResources(serverSpec);
|
||||||
Promise.all([deleteEntry, deleteResources])
|
Promise.all([deleteEntry, deleteResources])
|
||||||
.then(() => res.sendStatus(200))
|
.then(() => res.sendStatus(200))
|
||||||
|
@ -68,7 +60,7 @@ export async function startServer(req, res) {
|
||||||
// Ensure spec is safe
|
// Ensure spec is safe
|
||||||
const serverSpec = req.body;
|
const serverSpec = req.body;
|
||||||
try {
|
try {
|
||||||
checkServerName(serverSpec);
|
checkServerHost(serverSpec);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return sendError(res)(e);
|
return sendError(res)(e);
|
||||||
}
|
}
|
||||||
|
@ -82,7 +74,7 @@ export async function stopServer(req, res) {
|
||||||
// Ensure spec is safe
|
// Ensure spec is safe
|
||||||
const serverSpec = req.body;
|
const serverSpec = req.body;
|
||||||
try {
|
try {
|
||||||
checkServerName(serverSpec);
|
checkServerHost(serverSpec);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return sendError(res)(e);
|
return sendError(res)(e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,16 @@
|
||||||
CREATE SEQUENCE servers_id_seq;
|
CREATE SEQUENCE servers_id_seq;
|
||||||
CREATE TABLE servers (
|
CREATE TABLE servers (
|
||||||
id bigint NOT NULL DEFAULT nextval('servers_id_seq') PRIMARY KEY,
|
id bigint NOT NULL DEFAULT nextval('servers_id_seq') PRIMARY KEY,
|
||||||
name varchar(255) DEFAULT NULL,
|
|
||||||
host varchar(255) DEFAULT NULL,
|
host varchar(255) DEFAULT NULL,
|
||||||
|
name varchar(255) DEFAULT NULL,
|
||||||
version varchar(63) DEFAULT 'latest',
|
version varchar(63) DEFAULT 'latest',
|
||||||
server_type varchar(63) DEFAULT 'VANILLA',
|
server_type varchar(63) DEFAULT 'VANILLA',
|
||||||
|
cpu varchar(63) DEFAULT '500',
|
||||||
memory varchar(63) DEFAULT '512',
|
memory varchar(63) DEFAULT '512',
|
||||||
CONSTRAINT unique_name UNIQUE(name),
|
backup_host varchar(255) DEFAULT NULL,
|
||||||
|
backup_bucket_path varchar(255) DEFAULT NULL,
|
||||||
|
backup_user varchar(255) DEFAULT NULL,
|
||||||
|
backup_pass varchar(255) DEFAULT NULL,
|
||||||
CONSTRAINT unique_host UNIQUE(host)
|
CONSTRAINT unique_host UNIQUE(host)
|
||||||
);
|
);
|
||||||
ALTER SEQUENCE servers_id_seq OWNED BY servers.id;
|
ALTER SEQUENCE servers_id_seq OWNED BY servers.id;
|
Loading…
Add table
Add a link
Reference in a new issue