refactor(server): server updates can now only be done from a dev pc
All checks were successful
Build and Push LST Docker Image / docker (push) Successful in 1m54s

This commit is contained in:
2026-04-21 19:01:52 -05:00
parent f716de1a58
commit 7962463927
2 changed files with 81 additions and 74 deletions

1
.gitignore vendored
View File

@@ -149,3 +149,4 @@ dist
.yarn/install-state.gz
.pnp.*
frontend/.tanstack/tmp/2249110e-da91fb0b1b87b6c4cc3e2c2cd25037fd

View File

@@ -48,7 +48,7 @@ export const Route = createFileRoute("/admin/servers")({
const ServerTable = () => {
const { data, refetch } = useSuspenseQuery(servers());
const columnHelper = createColumnHelper<any>();
const okToUpdate = ["localhost", "usmcd1olp082"];
const columns = [
columnHelper.accessor("name", {
header: ({ column }) => (
@@ -75,81 +75,86 @@ const ServerTable = () => {
),
cell: (i) => <span>{i.getValue()}</span>,
}),
columnHelper.accessor("lastUpdated", {
header: ({ column }) => (
<SearchableHeader column={column} title="Last Update" />
),
cell: (i) => <span>{format(i.getValue(), "M/d/yyyy HH:mm")}</span>,
}),
columnHelper.accessor("buildNumber", {
header: ({ column }) => (
<SearchableHeader column={column} title="Build" />
),
cell: (i) => <span>{i.getValue()}</span>,
}),
columnHelper.accessor("update", {
header: ({ column }) => (
<SearchableHeader column={column} title="Update" searchable={false} />
),
filterFn: "includesString",
cell: (i) => {
// biome-ignore lint: just removing the lint for now to get this going will maybe fix later
const [activeToggle, setActiveToggle] = useState(false);
const onToggle = async () => {
setActiveToggle(true);
toast.success(
`${i.row.original.name} just started the upgrade monitor logs for errors.`,
);
try {
const res = await axios.post(
`/lst/api/admin/build/updateServer`,
{
server: i.row.original.server,
destination: i.row.original.serverLoc,
token: i.row.original.plantToken,
},
{ withCredentials: true },
);
if (res.data.success) {
toast.success(
`${i.row.original.name} has completed its upgrade.`,
);
refetch();
setActiveToggle(false);
}
} catch (error) {
setActiveToggle(false);
console.error(error);
}
};
return (
<div>
<div className="flex items-center space-x-2">
<Button
variant="ghost"
disabled={activeToggle}
onClick={() => onToggle()}
>
{activeToggle ? (
<span>
<Spinner />
</span>
) : (
<span>
<CircleFadingArrowUp />
</span>
)}
</Button>
</div>
</div>
);
},
}),
];
if (okToUpdate.includes(window.location.hostname)) {
columns.push(
columnHelper.accessor("lastUpdated", {
header: ({ column }) => (
<SearchableHeader column={column} title="Last Update" />
),
cell: (i) => <span>{format(i.getValue(), "M/d/yyyy HH:mm")}</span>,
}),
columnHelper.accessor("buildNumber", {
header: ({ column }) => (
<SearchableHeader column={column} title="Build" />
),
cell: (i) => <span>{i.getValue()}</span>,
}),
columnHelper.accessor("update", {
header: ({ column }) => (
<SearchableHeader column={column} title="Update" searchable={false} />
),
filterFn: "includesString",
cell: (i) => {
// biome-ignore lint: just removing the lint for now to get this going will maybe fix later
const [activeToggle, setActiveToggle] = useState(false);
const onToggle = async () => {
setActiveToggle(true);
toast.success(
`${i.row.original.name} just started the upgrade monitor logs for errors.`,
);
try {
const res = await axios.post(
`/lst/api/admin/build/updateServer`,
{
server: i.row.original.server,
destination: i.row.original.serverLoc,
token: i.row.original.plantToken,
},
{ withCredentials: true },
);
if (res.data.success) {
toast.success(
`${i.row.original.name} has completed its upgrade.`,
);
refetch();
setActiveToggle(false);
}
} catch (error) {
setActiveToggle(false);
console.error(error);
}
};
return (
<div>
<div className="flex items-center space-x-2">
<Button
variant="ghost"
disabled={activeToggle}
onClick={() => onToggle()}
>
{activeToggle ? (
<span>
<Spinner />
</span>
) : (
<span>
<CircleFadingArrowUp />
</span>
)}
</Button>
</div>
</div>
);
},
}),
);
}
return <LstTable data={data} columns={columns} />;
};
@@ -158,6 +163,7 @@ function RouteComponent() {
const columnHelper = createColumnHelper<any>();
console.log(window.location);
const logColumns = [
columnHelper.accessor("timestamp", {
header: ({ column }) => (