项目文件夹

文件
2026-07-13 12:08:39 +08:00

30 行
985 B
JavaScript

import _ from 'lodash-es';
import { ExternalStackViewModel } from '@/react/docker/stacks/view-models/external-stack';
import { validateYAML } from '@/react/docker/stacks/common/stackYamlValidation';
angular.module('portainer.app').factory('StackHelper', [
function StackHelperFactory() {
'use strict';
var helper = {};
helper.getExternalStacksFromContainers = function (containers) {
return getExternalStacksFromLabel(containers, 'com.docker.compose.project', 2);
};
helper.getExternalStacksFromServices = function (services) {
return getExternalStacksFromLabel(services, 'com.docker.stack.namespace', 1);
};
function getExternalStacksFromLabel(items, label, type) {
return _.uniqBy(
items.filter((item) => item.Labels && item.Labels[label]).map((item) => new ExternalStackViewModel(item.Labels[label], type, item.Created)),
'Name'
);
}
helper.validateYAML = validateYAML;
return helper;
},
]);