mirror of https://github.com/portainer/portainer
107 lines
2.5 KiB
TypeScript
107 lines
2.5 KiB
TypeScript
import { Stack, StackStatus, StackType } from '@/react/common/stacks/types';
|
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
|
import { EnvironmentId } from '@/react/portainer/environments/types';
|
|
import {
|
|
AutoUpdateResponse,
|
|
RepoConfigResponse,
|
|
} from '@/react/portainer/gitops/types';
|
|
|
|
import { IResource } from '../../components/datatable/createOwnershipColumn';
|
|
|
|
export class StackViewModel implements IResource {
|
|
Id: number;
|
|
|
|
Type: StackType;
|
|
|
|
Name: string;
|
|
|
|
EndpointId: EnvironmentId;
|
|
|
|
SwarmId: string;
|
|
|
|
Env: { name: string; value: string }[];
|
|
|
|
Option: { Prune: boolean; Force: boolean } | undefined;
|
|
|
|
IsComposeFormat: boolean;
|
|
|
|
ResourceControl?: ResourceControlViewModel;
|
|
|
|
Status: StackStatus;
|
|
|
|
CreationDate: number;
|
|
|
|
CreatedBy: string;
|
|
|
|
UpdateDate: number;
|
|
|
|
UpdatedBy: string;
|
|
|
|
Regular: boolean;
|
|
|
|
External: boolean;
|
|
|
|
Orphaned: boolean;
|
|
|
|
OrphanedRunning: boolean;
|
|
|
|
GitConfig: RepoConfigResponse | undefined;
|
|
|
|
FromAppTemplate: boolean;
|
|
|
|
AdditionalFiles: string[] | undefined;
|
|
|
|
AutoUpdate: AutoUpdateResponse | undefined;
|
|
|
|
Webhook: string | undefined;
|
|
|
|
StackFileVersion: string;
|
|
|
|
PreviousDeploymentInfo: unknown;
|
|
|
|
SupportRelativePath: boolean;
|
|
|
|
FilesystemPath: string;
|
|
|
|
constructor(stack: Stack, orphaned = false) {
|
|
this.Id = stack.Id;
|
|
this.Type = stack.Type;
|
|
this.Name = stack.Name;
|
|
this.EndpointId = stack.EndpointID;
|
|
this.SwarmId = stack.SwarmID;
|
|
this.Env = stack.Env ? stack.Env : [];
|
|
this.Option = stack.Option;
|
|
this.IsComposeFormat = stack.IsComposeFormat;
|
|
|
|
if (stack.ResourceControl && stack.ResourceControl.Id !== 0) {
|
|
this.ResourceControl = new ResourceControlViewModel(
|
|
stack.ResourceControl
|
|
);
|
|
}
|
|
|
|
this.Status = stack.Status;
|
|
|
|
this.CreationDate = stack.CreationDate;
|
|
this.CreatedBy = stack.CreatedBy;
|
|
|
|
this.UpdateDate = stack.UpdateDate;
|
|
this.UpdatedBy = stack.UpdatedBy;
|
|
|
|
this.GitConfig = stack.GitConfig;
|
|
this.FromAppTemplate = stack.FromAppTemplate;
|
|
this.AdditionalFiles = stack.AdditionalFiles;
|
|
this.AutoUpdate = stack.AutoUpdate;
|
|
this.Webhook = stack.Webhook;
|
|
this.StackFileVersion = stack.StackFileVersion;
|
|
this.PreviousDeploymentInfo = stack.PreviousDeploymentInfo;
|
|
|
|
this.Regular = !orphaned;
|
|
this.External = false;
|
|
this.Orphaned = orphaned;
|
|
this.OrphanedRunning = false;
|
|
|
|
this.SupportRelativePath = stack.SupportRelativePath;
|
|
this.FilesystemPath = stack.FilesystemPath;
|
|
}
|
|
}
|