36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
|
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();
|
||
|
}
|