minecluster/lib/k8s/server-files.js

36 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-12-16 09:28:06 -07:00
import ftp from "basic-ftp";
import { ERR } from "../util/logging.js";
import { getServerAssets } from "./k8s-server-control.js";
const namespace = process.env.MCL_SERVER_NAMESPACE;
export async function listFiles(req, res) {
const serverSpec = req.body;
if (!serverSpec) return res.sendStatus(400);
if (!serverSpec.name) return res.status(400).send("Server name required!");
const { name } = serverSpec;
const server = await getServerAssets(name);
if (!server)
return res.status(404).send("No Resources for that server were found!");
if (!server.service)
return res
.status(409)
.send("Service doesn't exist, please contact your hosting provider!");
const client = new ftp.Client(0);
client.ftp.verbose = true;
try {
await client.access({
host: `${server.service.metadata.name}.${namespace}.svc.cluster.local`,
user: "minecluster",
password: "minecluster",
});
const files = await client.list();
res.json(files);
} catch (err) {
console.log(err);
ERR("SERVER FILES", "Error loading client files:");
res.status(500).send(err);
}
client.close();
}