chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import { isFulfilled } from '@/portainer/helpers/promise-utils';
|
||||
import { getInfo } from '@/react/docker/proxy/queries/useInfo';
|
||||
import { aggregateData, getPlugins } from '@/react/docker/proxy/queries/usePlugins';
|
||||
|
||||
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 };
|
||||
}
|
||||
Reference in New Issue
Block a user