mirror of
https://github.com/portainer/portainer.git
synced 2025-07-18 21:09:40 +02:00
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
51 lines
2 KiB
JavaScript
51 lines
2 KiB
JavaScript
import { isFulfilled } from '@/portainer/helpers/promise-utils';
|
|
import { getInfo } from '@/react/docker/proxy/queries/useInfo';
|
|
import { aggregateData, getPlugins } from '@/react/docker/proxy/queries/useServicePlugins';
|
|
|
|
angular.module('portainer.docker').factory('PluginService', PluginServiceFactory);
|
|
|
|
/* @ngInject */
|
|
function PluginServiceFactory(AngularToReact) {
|
|
const { useAxios, injectEnvironmentId } = AngularToReact;
|
|
|
|
return {
|
|
volumePlugins: useAxios(injectEnvironmentId(volumePlugins)), // volume create
|
|
networkPlugins: useAxios(injectEnvironmentId(networksPlugins)), // network create
|
|
loggingPlugins: useAxios(injectEnvironmentId(loggingPlugins)), // service create + service edit
|
|
};
|
|
}
|
|
|
|
/**
|
|
* @param {EnvironmentId} environmentId Injected
|
|
* @param {boolean} systemOnly
|
|
*/
|
|
async function volumePlugins(environmentId, systemOnly) {
|
|
const { systemPluginsData, pluginsData } = await getAllPlugins(environmentId);
|
|
return aggregateData(systemPluginsData, pluginsData, systemOnly, 'Volume');
|
|
}
|
|
|
|
/**
|
|
* @param {EnvironmentId} environmentId Injected
|
|
* @param {boolean} systemOnly
|
|
*/
|
|
async function networksPlugins(environmentId, systemOnly) {
|
|
const { systemPluginsData, pluginsData } = await getAllPlugins(environmentId);
|
|
return aggregateData(systemPluginsData, pluginsData, systemOnly, 'Network');
|
|
}
|
|
|
|
/**
|
|
* @param {EnvironmentId} environmentId Injected
|
|
* @param {boolean} systemOnly
|
|
*/
|
|
async function loggingPlugins(environmentId, systemOnly) {
|
|
const { systemPluginsData, pluginsData } = await getAllPlugins(environmentId);
|
|
return aggregateData(systemPluginsData, pluginsData, systemOnly, 'Log');
|
|
}
|
|
|
|
async function getAllPlugins(environmentId) {
|
|
const [system, plugins] = await Promise.allSettled([getInfo(environmentId), getPlugins(environmentId)]);
|
|
const systemPluginsData = isFulfilled(system) ? system.value.Plugins : undefined;
|
|
const pluginsData = isFulfilled(plugins) ? plugins.value : undefined;
|
|
|
|
return { systemPluginsData, pluginsData };
|
|
}
|