UNPKG

n8n-nodes-proxmox

Version:

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

379 lines (378 loc) 11.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.backupFields = exports.backupOperations = void 0; const baseProperties_1 = require("./baseProperties"); exports.backupOperations = { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['backup'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a backup of VM/Container', action: 'Create backup', }, { name: 'Restore', value: 'restore', description: 'Restore VM/Container from backup', action: 'Restore from backup', }, { name: 'Get All', value: 'getAll', description: 'Get all backups', action: 'Get all backups', }, { name: 'Delete', value: 'delete', description: 'Delete a backup file', action: 'Delete backup', }, { name: 'Get Jobs', value: 'getJobs', description: 'Get backup jobs configuration', action: 'Get backup jobs', }, ], default: 'getAll', }; exports.backupFields = [ // Common fields { 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: ['backup'], operation: ['create', 'restore', 'getAll', 'delete'], }, }, }, // Create backup fields { displayName: baseProperties_1.vmIdOption.displayName, name: baseProperties_1.vmIdOption.name, type: baseProperties_1.vmIdOption.type, required: baseProperties_1.vmIdOption.required, default: baseProperties_1.vmIdOption.default, typeOptions: baseProperties_1.vmIdOption.typeOptions, description: baseProperties_1.vmIdOption.description, displayOptions: { show: { resource: ['backup'], operation: ['create'], }, }, }, { displayName: 'Storage', name: 'storage', type: 'string', required: true, default: 'local', placeholder: 'local', description: 'Storage location for the backup', displayOptions: { show: { resource: ['backup'], operation: ['create'], }, }, }, // Restore fields { displayName: 'Backup File', name: 'archive', type: 'string', required: true, default: '', placeholder: 'local:backup/vzdump-qemu-100-2023_01_01-12_00_00.tar.gz', description: 'Full path to the backup file including storage prefix', displayOptions: { show: { resource: ['backup'], operation: ['restore'], }, }, }, { displayName: 'New VM/Container ID', name: 'newVmId', type: 'number', required: true, default: 100, typeOptions: { minValue: 100, maxValue: 999999999, }, description: 'ID for the restored VM/Container', displayOptions: { show: { resource: ['backup'], operation: ['restore'], }, }, }, // Delete backup fields { displayName: 'Backup File', name: 'backupFile', type: 'string', required: true, default: '', placeholder: 'backup/vzdump-qemu-100-2023_01_01-12_00_00.tar.gz', description: 'Path to the backup file to delete', displayOptions: { show: { resource: ['backup'], operation: ['delete'], }, }, }, { displayName: 'Storage', name: 'storage', type: 'string', required: true, default: 'local', placeholder: 'local', description: 'Storage location of the backup file', displayOptions: { show: { resource: ['backup'], operation: ['delete'], }, }, }, // Wait for task options { displayName: baseProperties_1.waitForTaskOption.displayName, name: baseProperties_1.waitForTaskOption.name, type: baseProperties_1.waitForTaskOption.type, default: baseProperties_1.waitForTaskOption.default, description: baseProperties_1.waitForTaskOption.description, displayOptions: { show: { resource: ['backup'], operation: ['create', 'restore'], }, }, }, { displayName: baseProperties_1.taskTimeoutOption.displayName, name: baseProperties_1.taskTimeoutOption.name, type: baseProperties_1.taskTimeoutOption.type, default: baseProperties_1.taskTimeoutOption.default, typeOptions: baseProperties_1.taskTimeoutOption.typeOptions, description: baseProperties_1.taskTimeoutOption.description, displayOptions: { show: { resource: ['backup'], operation: ['create', 'restore'], waitForTask: [true], }, }, }, // 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: ['backup'], operation: ['getAll', 'getJobs'], }, }, }, { 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: ['backup'], operation: ['getAll', 'getJobs'], returnAll: [false], }, }, }, // Create backup options { displayName: 'Backup Options', name: 'backupOptions', type: 'collection', placeholder: 'Add Option', default: {}, displayOptions: { show: { resource: ['backup'], operation: ['create'], }, }, options: [ { displayName: 'Compression', name: 'compress', type: 'options', options: [ { name: 'None', value: '0' }, { name: 'LZO', value: 'lzo' }, { name: 'GZIP', value: 'gzip' }, { name: 'ZSTD', value: 'zstd' }, ], default: 'zstd', description: 'Compression algorithm for the backup', }, { displayName: 'Mode', name: 'mode', type: 'options', options: [ { name: 'Snapshot', value: 'snapshot' }, { name: 'Suspend', value: 'suspend' }, { name: 'Stop', value: 'stop' }, ], default: 'snapshot', description: 'Backup mode', }, { displayName: 'Include RAM', name: 'includeRam', type: 'boolean', default: false, description: 'Include RAM in backup', }, { displayName: 'Mail Notification', name: 'mailto', type: 'string', default: '', placeholder: 'admin@example.com', description: 'Email address for backup notifications', }, { displayName: 'Notes', name: 'notes', type: 'string', default: '', description: 'Notes for the backup', }, { displayName: 'Remove', name: 'remove', type: 'boolean', default: true, description: 'Remove the original backup file after successful restore', }, ], }, // Restore options { displayName: 'Restore Options', name: 'restoreOptions', type: 'collection', placeholder: 'Add Option', default: {}, displayOptions: { show: { resource: ['backup'], operation: ['restore'], }, }, options: [ { displayName: 'Storage', name: 'storage', type: 'string', default: 'local-lvm', description: 'Storage location for restored VM/Container', }, { displayName: 'Force', name: 'force', type: 'boolean', default: false, description: 'Force restore even if VM/Container already exists', }, { displayName: 'Start After Restore', name: 'start', type: 'boolean', default: false, description: 'Start VM/Container after restore', }, { displayName: 'Unique', name: 'unique', type: 'boolean', default: false, description: 'Generate unique properties (MAC addresses, UUIDs)', }, { displayName: 'Bandwidth Limit (MB/s)', name: 'bwlimit', type: 'number', default: 0, typeOptions: { minValue: 0, }, description: 'Bandwidth limit for restore operation (0 = unlimited)', }, ], }, // Get backups filter options { displayName: 'Filter Options', name: 'filterOptions', type: 'collection', placeholder: 'Add Filter', default: {}, displayOptions: { show: { resource: ['backup'], operation: ['getAll'], }, }, options: [ { displayName: 'VM/Container ID', name: 'vmid', type: 'number', default: '', description: 'Filter backups by VM/Container ID', }, { displayName: 'Content Type', name: 'content', type: 'options', options: [ { name: 'All', value: '' }, { name: 'Backups Only', value: 'backup' }, ], default: 'backup', description: 'Filter by content type', }, ], }, ];