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
79 lines
2.7 KiB
JavaScript
79 lines
2.7 KiB
JavaScript
import { getVolumes } from '@/react/docker/volumes/queries/useVolumes';
|
|
import { getVolume } from '@/react/docker/volumes/queries/useVolume';
|
|
import { removeVolume } from '@/react/docker/volumes/queries/useRemoveVolumeMutation';
|
|
import { createVolume } from '@/react/docker/volumes/queries/useCreateVolumeMutation';
|
|
|
|
import { VolumeViewModel } from '../models/volume';
|
|
|
|
angular.module('portainer.docker').factory('VolumeService', VolumeServiceFactory);
|
|
|
|
/* @ngInject */
|
|
function VolumeServiceFactory(AngularToReact) {
|
|
const { useAxios, injectEnvironmentId } = AngularToReact;
|
|
|
|
return {
|
|
volumes: useAxios(injectEnvironmentId(volumesAngularJS)), // dashboard + service create + service edit + volume list
|
|
volume: useAxios(injectEnvironmentId(volumeAngularJS)), // volume edit
|
|
getVolumes: useAxios(injectEnvironmentId(getVolumesAngularJS)), // template list
|
|
remove: useAxios(injectEnvironmentId(removeAngularJS)), // volume list + volume edit
|
|
createVolume: useAxios(injectEnvironmentId(createAngularJS)), // volume create
|
|
createVolumeConfiguration, // volume create
|
|
};
|
|
|
|
/**
|
|
* @param {EnvironmentId} environmentId Injected
|
|
* @param {Filters} filters
|
|
*/
|
|
async function volumesAngularJS(environmentId, filters) {
|
|
const data = await getVolumes(environmentId, filters);
|
|
return data.map((v) => new VolumeViewModel(v));
|
|
}
|
|
|
|
/**
|
|
* @param {EnvironmentId} environmentId Injected
|
|
* @param {string} id
|
|
*/
|
|
async function volumeAngularJS(environmentId, id) {
|
|
const data = await getVolume(environmentId, id);
|
|
return new VolumeViewModel(data);
|
|
}
|
|
|
|
/**
|
|
* @param {EnvironmentId} environmentId Injected
|
|
*/
|
|
async function getVolumesAngularJS(environmentId) {
|
|
return getVolumes(environmentId);
|
|
}
|
|
|
|
/**
|
|
* @param {EnvironmentId} environmentId Injected
|
|
* @param {string} name
|
|
* @param {string?} nodeName
|
|
*/
|
|
async function removeAngularJS(environmentId, name, nodeName) {
|
|
return removeVolume(environmentId, name, { nodeName });
|
|
}
|
|
|
|
/**
|
|
* @param {string} name
|
|
* @param {string} driver
|
|
* @param {{name: string; value: string;}[]} driverOptions
|
|
*/
|
|
function createVolumeConfiguration(name, driver, driverOptions) {
|
|
return {
|
|
Name: name,
|
|
Driver: driver,
|
|
DriverOpts: driverOptions.reduce((res, { name, value }) => ({ ...res, [name]: value }), {}),
|
|
};
|
|
}
|
|
|
|
/**
|
|
* @param {EnvironmentId} environmentId Injected
|
|
* @param {VolumeConfiguration} volumeConfiguration
|
|
* @param {string?} nodeName
|
|
*/
|
|
async function createAngularJS(environmentId, volumeConfiguration, nodeName) {
|
|
const data = await createVolume(environmentId, volumeConfiguration, { nodeName });
|
|
return new VolumeViewModel(data);
|
|
}
|
|
}
|