ui(admin): server edit cleanup, fix startup form

This commit is contained in:
Matthew Penner 2021-09-16 14:59:22 -06:00
parent 95f3eb54db
commit df895f4a9f
No known key found for this signature in database
GPG key ID: 030E4AB751DC756F
12 changed files with 422 additions and 322 deletions

View file

@ -71,8 +71,7 @@ export interface Server {
eggId: number;
container: {
startupCommand: string;
defaultStartup: string;
startup: string;
image: string;
environment: Map<string, string>;
}
@ -121,8 +120,7 @@ export const rawDataToServer = ({ attributes }: FractalResponseData): Server =>
eggId: attributes.egg_id,
container: {
startupCommand: attributes.container.startup_command,
defaultStartup: '',
startup: attributes.container.startup,
image: attributes.container.image,
environment: attributes.container.environment,
},

View file

@ -6,17 +6,21 @@ export interface Values {
name: string;
ownerId: number;
memory: number;
swap: number;
disk: number;
io: number;
cpu: number;
threads: string;
oomDisabled: boolean;
limits: {
memory: number;
swap: number;
disk: number;
io: number;
cpu: number;
threads: string;
oomDisabled: boolean;
}
databases: number;
allocations: number;
backups: number;
featureLimits: {
allocations: number;
backups: number;
databases: number;
}
allocationId: number;
addAllocations: number[];
@ -24,16 +28,36 @@ export interface Values {
}
export default (id: number, server: Partial<Values>, include: string[] = []): Promise<Server> => {
const data = {};
Object.keys(server).forEach((key) => {
const key2 = key.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);
// @ts-ignore
data[key2] = server[key];
});
return new Promise((resolve, reject) => {
http.patch(`/api/application/servers/${id}`, data, { params: { include: include.join(',') } })
http.patch(
`/api/application/servers/${id}`,
{
external_id: server.externalId,
name: server.name,
owner_id: server.ownerId,
limits: {
memory: server.limits?.memory,
swap: server.limits?.swap,
disk: server.limits?.disk,
io: server.limits?.io,
cpu: server.limits?.cpu,
threads: server.limits?.threads,
oom_disabled: server.limits?.oomDisabled,
},
feature_limits: {
allocations: server.featureLimits?.allocations,
backups: server.featureLimits?.backups,
databases: server.featureLimits?.databases,
},
allocation_id: server.allocationId,
add_allocations: server.addAllocations,
remove_allocations: server.removeAllocations,
},
{ params: { include: include.join(',') } }
)
.then(({ data }) => resolve(rawDataToServer(data)))
.catch(reject);
});

View file

@ -0,0 +1,28 @@
import http from '@/api/http';
import { Server, rawDataToServer } from '@/api/admin/servers/getServers';
export interface Values {
startup: string;
environment: Record<string, any>;
eggId: number;
image: string;
skipScripts: boolean;
}
export default (id: number, values: Partial<Values>, include: string[] = []): Promise<Server> => {
return new Promise((resolve, reject) => {
http.patch(
`/api/application/servers/${id}/startup`,
{
startup: values.startup,
environment: values.environment,
egg_id: values.eggId,
image: values.image,
skip_scripts: values.skipScripts,
},
{ params: { include: include.join(',') } }
)
.then(({ data }) => resolve(rawDataToServer(data)))
.catch(reject);
});
};