mirror of https://github.com/portainer/portainer
43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
import { Registry } from '@/react/portainer/registries/types/registry';
|
|
import { buildImageFullURI } from '@/react/docker/images/utils';
|
|
|
|
import { baseFormUtils } from './BaseForm';
|
|
import { capabilitiesTabUtils } from './CapabilitiesTab';
|
|
import { commandsTabUtils } from './CommandsTab';
|
|
import { labelsTabUtils } from './LabelsTab';
|
|
import { networkTabUtils } from './NetworkTab';
|
|
import { resourcesTabUtils } from './ResourcesTab';
|
|
import { volumesTabUtils } from './VolumesTab';
|
|
import { CreateContainerRequest } from './types';
|
|
import { restartPolicyTabUtils } from './RestartPolicyTab';
|
|
import { envVarsTabUtils } from './EnvVarsTab';
|
|
import { Values } from './useInitialValues';
|
|
|
|
export function toRequest(
|
|
values: Values,
|
|
registry?: Registry,
|
|
ignoreCapabilities?: boolean
|
|
) {
|
|
let config: CreateContainerRequest = {
|
|
HostConfig: {},
|
|
NetworkingConfig: {},
|
|
};
|
|
|
|
config = commandsTabUtils.toRequest(config, values.commands);
|
|
config = volumesTabUtils.toRequest(config, values.volumes);
|
|
config = networkTabUtils.toRequest(config, values.network, '');
|
|
config = labelsTabUtils.toRequest(config, values.labels);
|
|
config = restartPolicyTabUtils.toRequest(config, values.restartPolicy);
|
|
config = resourcesTabUtils.toRequest(config, values.resources);
|
|
config = capabilitiesTabUtils.toRequest(
|
|
config,
|
|
values.capabilities,
|
|
!!ignoreCapabilities
|
|
);
|
|
config = baseFormUtils.toRequest(config, values);
|
|
config = envVarsTabUtils.toRequest(config, values.env);
|
|
config.Image = buildImageFullURI(values.image.image, registry);
|
|
|
|
return config;
|
|
}
|