mirror of
https://github.com/portainer/portainer.git
synced 2025-07-22 23:09:41 +02:00
refactor(containers): migrate view to react [EE-2212] (#6577)
Co-authored-by: LP B <xAt0mZ@users.noreply.github.com>
This commit is contained in:
parent
5ee570e075
commit
bed4257194
71 changed files with 1616 additions and 875 deletions
87
app/react/docker/containers/utils.ts
Normal file
87
app/react/docker/containers/utils.ts
Normal file
|
@ -0,0 +1,87 @@
|
|||
import _ from 'lodash';
|
||||
|
||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
||||
|
||||
import { DockerContainer, ContainerStatus } from './types';
|
||||
import { DockerContainerResponse } from './types/response';
|
||||
|
||||
export function parseViewModel(
|
||||
response: DockerContainerResponse
|
||||
): DockerContainer {
|
||||
const resourceControl =
|
||||
response.Portainer?.ResourceControl &&
|
||||
new ResourceControlViewModel(response?.Portainer?.ResourceControl);
|
||||
const nodeName = response.Portainer?.Agent?.NodeName || '';
|
||||
|
||||
const ip =
|
||||
Object.values(response?.NetworkSettings?.Networks || {})[0]?.IPAddress ||
|
||||
'';
|
||||
|
||||
const labels = response.Labels || {};
|
||||
const stackName =
|
||||
labels['com.docker.compose.project'] ||
|
||||
labels['com.docker.stack.namespace'];
|
||||
|
||||
const status = createStatus(response.Status);
|
||||
|
||||
const ports = _.compact(
|
||||
response.Ports?.map(
|
||||
(p) =>
|
||||
p.PublicPort && {
|
||||
host: p.IP,
|
||||
private: p.PrivatePort,
|
||||
public: p.PublicPort,
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
return {
|
||||
...response,
|
||||
ResourceControl: resourceControl,
|
||||
NodeName: nodeName,
|
||||
IP: ip,
|
||||
StackName: stackName,
|
||||
Status: status,
|
||||
Ports: ports,
|
||||
StatusText: response.Status,
|
||||
Gpus: '',
|
||||
};
|
||||
}
|
||||
|
||||
function createStatus(statusText = ''): ContainerStatus {
|
||||
const status = statusText.toLowerCase();
|
||||
|
||||
if (status.includes(ContainerStatus.Paused)) {
|
||||
return ContainerStatus.Paused;
|
||||
}
|
||||
|
||||
if (status.includes(ContainerStatus.Dead)) {
|
||||
return ContainerStatus.Dead;
|
||||
}
|
||||
|
||||
if (status.includes(ContainerStatus.Created)) {
|
||||
return ContainerStatus.Created;
|
||||
}
|
||||
|
||||
if (status.includes(ContainerStatus.Stopped)) {
|
||||
return ContainerStatus.Stopped;
|
||||
}
|
||||
|
||||
if (status.includes(ContainerStatus.Exited)) {
|
||||
return ContainerStatus.Exited;
|
||||
}
|
||||
|
||||
if (status.includes('(healthy)')) {
|
||||
return ContainerStatus.Healthy;
|
||||
}
|
||||
|
||||
if (status.includes('(unhealthy)')) {
|
||||
return ContainerStatus.Unhealthy;
|
||||
}
|
||||
|
||||
if (status.includes('(health: starting)')) {
|
||||
return ContainerStatus.Starting;
|
||||
}
|
||||
|
||||
return ContainerStatus.Running;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue