UNPKG

n8n-nodes-proxmox

Version:

n8n community node for Proxmox Virtual Environment (VE) API integration with VM, container, storage, and cluster management capabilities

158 lines (153 loc) 3.4 kB
import { INodeProperties } from 'n8n-workflow'; import { returnAllOption, limitOption } from './baseProperties'; export const clusterOperations: INodeProperties = { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['cluster'], }, }, options: [ { name: 'Get Version', value: 'getVersion', description: 'Get ProxMox VE version information (no special permissions required)', action: 'Get version', }, { name: 'Get Status', value: 'getStatus', description: 'Get cluster status information (requires Sys.Audit permission)', action: 'Get cluster status', }, { name: 'Get Resources', value: 'getResources', description: 'List all cluster resources', action: 'Get cluster resources', }, { name: 'Get Nodes', value: 'getNodes', description: 'List all cluster nodes', action: 'Get cluster nodes', }, { name: 'Get Tasks', value: 'getTasks', description: 'List cluster tasks', action: 'Get cluster tasks', }, { name: 'Get Config', value: 'getConfig', description: 'Get cluster configuration', action: 'Get cluster configuration', }, ], default: 'getVersion', }; export const clusterFields: INodeProperties[] = [ // Get Resources fields { displayName: 'Resource Type', name: 'resourceType', type: 'options', options: [ { name: 'All', value: '' }, { name: 'VM', value: 'vm' }, { name: 'Storage', value: 'storage' }, { name: 'Node', value: 'node' }, ], default: '', description: 'Filter resources by type', displayOptions: { show: { resource: ['cluster'], operation: ['getResources'], }, }, }, { displayName: returnAllOption.displayName, name: returnAllOption.name, type: returnAllOption.type, default: returnAllOption.default, description: returnAllOption.description, displayOptions: { show: { resource: ['cluster'], operation: ['getResources', 'getTasks', 'getNodes'], }, }, }, { displayName: limitOption.displayName, name: limitOption.name, type: limitOption.type, typeOptions: limitOption.typeOptions, default: limitOption.default, description: limitOption.description, displayOptions: { show: { resource: ['cluster'], operation: ['getResources', 'getTasks', 'getNodes'], returnAll: [false], }, }, }, // Get Tasks fields { displayName: 'Running Only', name: 'runningOnly', type: 'boolean', default: false, description: 'Show only running tasks', displayOptions: { show: { resource: ['cluster'], operation: ['getTasks'], }, }, }, // Additional options for various operations { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { resource: ['cluster'], operation: ['getTasks', 'getResources'], }, }, options: [ { displayName: 'Node', name: 'node', type: 'string', default: '', description: 'Filter by specific node', }, { displayName: 'VM ID', name: 'vmid', type: 'number', default: '', description: 'Filter by specific VM/Container ID', }, { displayName: 'User', name: 'user', type: 'string', default: '', description: 'Filter by user who started the task', }, ], }, ];