You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
portainer/app/docker/services/networkService.js

58 lines
2.5 KiB

import { createNetwork } from '@/react/docker/networks/queries/useCreateNetworkMutation';
import { getNetwork } from '@/react/docker/networks/queries/useNetwork';
import { getNetworks } from '@/react/docker/networks/queries/useNetworks';
import { deleteNetwork } from '@/react/docker/networks/queries/useDeleteNetworkMutation';
import { disconnectContainer } from '@/react/docker/networks/queries/useDisconnectContainerMutation';
import { connectContainer } from '@/react/docker/networks/queries/useConnectContainerMutation';
import { NetworkViewModel } from '../models/network';
angular.module('portainer.docker').factory('NetworkService', NetworkServiceFactory);
/* @ngInject */
function NetworkServiceFactory(AngularToReact) {
const { useAxios, injectEnvironmentId } = AngularToReact;
return {
create: useAxios(injectEnvironmentId(createNetwork)), // create network
network: useAxios(injectEnvironmentId(networkAngularJS)), // service edit
networks: useAxios(injectEnvironmentId(networksAngularJS)), // macvlan form + container edit + dashboard + service create + service edit + custom templates list + templates list
remove: useAxios(injectEnvironmentId(deleteNetwork)), // networks list
disconnectContainer: useAxios(injectEnvironmentId(disconnectContainer)), // container edit
connectContainer: useAxios(injectEnvironmentId(connectContainerAngularJS)), // container edit
};
/**
* @param {EnvironmentId} environmentId filled by AngularToReact
* @param {NetworkId} networkId
* @param {string?} nodeName
* @returns NetworkViewModel
*/
async function networkAngularJS(environmentId, networkId, nodeName) {
const data = await getNetwork(environmentId, networkId, { nodeName });
return new NetworkViewModel(data);
}
/**
* @param {EnvironmentId} environmentId filled by AngularToReact
* @param {boolean?} localNetworks
* @param {boolean?} swarmNetworks
* @param {boolean?} swarmAttachableNetworks
* @param {*} filters
* @returns NetworkViewModel[]
*/
async function networksAngularJS(environmentId, local, swarm, swarmAttachable, filters) {
const data = await getNetworks(environmentId, { local, swarm, swarmAttachable, filters });
return data.map((n) => new NetworkViewModel(n));
}
/**
* @param {EnvironmentId} environmentId filled by AngularToReact
* @param {NetworkId} networkId
* @param {ContainerId} containerId
*/
async function connectContainerAngularJS(environmentId, networkId, containerId) {
return connectContainer({ environmentId, containerId, networkId });
}
}