UNPKG

n8n-nodes-proxmox

Version:

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

282 lines (281 loc) 8.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.storageFields = exports.storageOperations = void 0; const baseProperties_1 = require("./baseProperties"); exports.storageOperations = { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['storage'], }, }, options: [ { name: 'Get All', value: 'getAll', description: 'Get all storage configurations', action: 'Get all storage', }, { name: 'Get', value: 'get', description: 'Get specific storage configuration', action: 'Get storage', }, { name: 'Get Content', value: 'getContent', description: 'Get storage content (images, ISOs, backups, etc.)', action: 'Get storage content', }, { name: 'Get Status', value: 'getStatus', description: 'Get storage status and usage', action: 'Get storage status', }, { name: 'Upload', value: 'upload', description: 'Upload file to storage', action: 'Upload to storage', }, { name: 'Delete File', value: 'deleteFile', description: 'Delete file from storage', action: 'Delete file from storage', }, ], default: 'getAll', }; exports.storageFields = [ // Storage ID field for specific operations { displayName: 'Storage ID', name: 'storageId', type: 'string', required: true, default: '', placeholder: 'local-lvm', description: 'ID of the storage', displayOptions: { show: { resource: ['storage'], operation: ['get', 'getContent', 'getStatus', 'upload', 'deleteFile'], }, }, }, // Node name for node-specific storage operations { displayName: baseProperties_1.nodeNameOption.displayName, name: baseProperties_1.nodeNameOption.name, type: baseProperties_1.nodeNameOption.type, required: baseProperties_1.nodeNameOption.required, default: baseProperties_1.nodeNameOption.default, placeholder: baseProperties_1.nodeNameOption.placeholder, description: baseProperties_1.nodeNameOption.description, displayOptions: { show: { resource: ['storage'], operation: ['getContent', 'getStatus', 'upload', 'deleteFile'], }, }, }, // Content type filter { displayName: 'Content Type', name: 'contentType', type: 'options', options: [ { name: 'All', value: '' }, { name: 'Disk Images', value: 'images' }, { name: 'ISO Images', value: 'iso' }, { name: 'Container Templates', value: 'vztmpl' }, { name: 'Backups', value: 'backup' }, { name: 'Snippets', value: 'snippets' }, ], default: '', description: 'Filter content by type', displayOptions: { show: { resource: ['storage'], operation: ['getContent'], }, }, }, // File operations { displayName: 'File Path', name: 'filePath', type: 'string', required: true, default: '', placeholder: 'backup/vm-100-backup.tar.gz', description: 'Path to the file in storage', displayOptions: { show: { resource: ['storage'], operation: ['deleteFile'], }, }, }, // Upload specific fields { displayName: 'File Content', name: 'fileContent', type: 'string', required: true, default: '', description: 'Base64 encoded file content to upload', displayOptions: { show: { resource: ['storage'], operation: ['upload'], }, }, }, { displayName: 'File Name', name: 'fileName', type: 'string', required: true, default: '', placeholder: 'upload.iso', description: 'Name of the file to upload', displayOptions: { show: { resource: ['storage'], operation: ['upload'], }, }, }, // Return all and limit options { displayName: baseProperties_1.returnAllOption.displayName, name: baseProperties_1.returnAllOption.name, type: baseProperties_1.returnAllOption.type, default: baseProperties_1.returnAllOption.default, description: baseProperties_1.returnAllOption.description, displayOptions: { show: { resource: ['storage'], operation: ['getAll', 'getContent'], }, }, }, { displayName: baseProperties_1.limitOption.displayName, name: baseProperties_1.limitOption.name, type: baseProperties_1.limitOption.type, typeOptions: baseProperties_1.limitOption.typeOptions, default: baseProperties_1.limitOption.default, description: baseProperties_1.limitOption.description, displayOptions: { show: { resource: ['storage'], operation: ['getAll', 'getContent'], returnAll: [false], }, }, }, // Additional fields for various operations { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { resource: ['storage'], operation: ['getContent', 'getAll'], }, }, options: [ { displayName: 'VM ID', name: 'vmid', type: 'number', default: '', description: 'Filter content by VM/Container ID', }, { displayName: 'Format', name: 'format', type: 'options', options: [ { name: 'All', value: '' }, { name: 'Raw', value: 'raw' }, { name: 'QCOW2', value: 'qcow2' }, { name: 'VMDK', value: 'vmdk' }, ], default: '', description: 'Filter by disk format', }, { displayName: 'Only Enabled', name: 'enabled', type: 'boolean', default: true, description: 'Show only enabled storage (for getAll operation)', }, ], }, // Upload options { displayName: 'Upload Options', name: 'uploadOptions', type: 'collection', placeholder: 'Add Option', default: {}, displayOptions: { show: { resource: ['storage'], operation: ['upload'], }, }, options: [ { displayName: 'Content Type', name: 'content', type: 'options', options: [ { name: 'ISO Image', value: 'iso' }, { name: 'Container Template', value: 'vztmpl' }, { name: 'Snippet', value: 'snippets' }, ], default: 'iso', description: 'Type of content being uploaded', }, { displayName: 'Check Hash', name: 'checksum', type: 'string', default: '', placeholder: 'sha256:abc123...', description: 'Expected checksum of the file (algorithm:hash)', }, { displayName: 'Check Hash Algorithm', name: 'checksum_algorithm', type: 'options', options: [ { name: 'SHA256', value: 'sha256' }, { name: 'SHA1', value: 'sha1' }, { name: 'MD5', value: 'md5' }, ], default: 'sha256', description: 'Algorithm used for checksum verification', displayOptions: { show: { checksum: [{ _cnd: { ne: '' } }], }, }, }, ], }, ];