UNPKG

n8n-nodes-netbox

Version:

n8n community node for NetBox API integration with comprehensive DCIM, IPAM, Virtualization, Circuits, Wireless, and data center management operations

379 lines (378 loc) 18.2 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.executeOperation = executeOperation; const devicesMethods = __importStar(require("../methods/dcim/devices/devices.methods")); const deviceTypesMethods = __importStar(require("../methods/dcim/device-types/device-types.methods")); const interfacesMethods = __importStar(require("../methods/dcim/interfaces/interfaces.methods")); const manufacturersMethods = __importStar(require("../methods/dcim/manufacturers/manufacturers.methods")); // Temporarily disabled for community node compilation // import * as modulesMethods from '../methods/dcim/modules/modules.methods'; // import * as moduleBaysMethods from '../methods/dcim/module-bays/module-bays.methods'; // import * as moduleTypesMethods from '../methods/dcim/module-types/module-types.methods'; const platformsMethods = __importStar(require("../methods/dcim/platforms/platforms.methods")); const sitesMethods = __importStar(require("../methods/dcim/sites/sites.methods")); const regionsMethods = __importStar(require("../methods/dcim/regions/regions.methods")); const prefixesMethods = __importStar(require("../methods/ipam/prefixes/prefixes.methods")); const vlansMethods = __importStar(require("../methods/ipam/vlans/vlans.methods")); const rolesMethods = __importStar(require("../methods/ipam/roles/roles.methods")); const vlanGroupsMethods = __importStar(require("../methods/ipam/vlan-groups/vlan-groups.methods")); const aggregatesMethods = __importStar(require("../methods/ipam/aggregates/aggregates.methods")); const ipAddressesMethods = __importStar(require("../methods/ipam/ip-addresses/ip-addresses.methods")); const tenantsMethods = __importStar(require("../methods/tenancy/tenants/tenants.methods")); const tagsMethods = __importStar(require("../methods/extras/tags/tags.methods")); const configContextsMethods = __importStar(require("../methods/extras/config-contexts/config-contexts.methods")); const journalEntriesMethods = __importStar(require("../methods/extras/journal-entries/journal-entries.methods")); const reportsMethods = __importStar(require("../methods/extras/reports/reports.methods")); const configTemplatesMethods = __importStar(require("../methods/extras/config-templates/config-templates.methods")); const clustersMethods = __importStar(require("../methods/virtualization/clusters/clusters.methods")); const clusterGroupsMethods = __importStar(require("../methods/virtualization/cluster-groups/cluster-groups.methods")); const clusterTypesMethods = __importStar(require("../methods/virtualization/cluster-types/cluster-types.methods")); const virtualMachinesMethods = __importStar(require("../methods/virtualization/virtual-machines/virtual-machines.methods")); const vmInterfacesMethods = __importStar(require("../methods/virtualization/vm-interfaces/vm-interfaces.methods")); const providersMethods = __importStar(require("../methods/circuits/providers/providers.methods")); const providerAccountsMethods = __importStar(require("../methods/circuits/provider-accounts/provider-accounts.methods")); const providerNetworksMethods = __importStar(require("../methods/circuits/provider-networks/provider-networks.methods")); const circuitTypesMethods = __importStar(require("../methods/circuits/circuit-types/circuit-types.methods")); const circuitsMethods = __importStar(require("../methods/circuits/circuits/circuits.methods")); const circuitTerminationsMethods = __importStar(require("../methods/circuits/circuit-terminations/circuit-terminations.methods")); const wirelessLANGroupsMethods = __importStar(require("../methods/wireless/wireless-lan-groups/wireless-lan-groups.methods")); const wirelessLANsMethods = __importStar(require("../methods/wireless/wireless-lans/wireless-lans.methods")); const wirelessLinksMethods = __importStar(require("../methods/wireless/wireless-links/wireless-links.methods")); const handlers = { dcim: { devices: { list: devicesMethods.listDevices, get: devicesMethods.getDevice, create: devicesMethods.createDevice, update: devicesMethods.updateDevice, delete: devicesMethods.deleteDevice, getInterfaces: devicesMethods.getInterfaces, getConsolePorts: devicesMethods.getConsolePorts, getConfigContext: devicesMethods.getConfigContext, assignTag: devicesMethods.assignTag, }, 'device-types': { list: deviceTypesMethods.listDeviceTypes, get: deviceTypesMethods.getDeviceType, create: deviceTypesMethods.createDeviceType, update: deviceTypesMethods.updateDeviceType, delete: deviceTypesMethods.deleteDeviceType, }, interfaces: { list: interfacesMethods.listInterfaces, get: interfacesMethods.getInterface, create: interfacesMethods.createInterface, update: interfacesMethods.updateInterface, delete: interfacesMethods.deleteInterface, getConnections: interfacesMethods.getConnections, }, manufacturers: { list: manufacturersMethods.listManufacturers, get: manufacturersMethods.getManufacturer, create: manufacturersMethods.createManufacturer, update: manufacturersMethods.updateManufacturer, delete: manufacturersMethods.deleteManufacturer, }, // Temporarily disabled for community node compilation // modules: { // list: modulesMethods.listModules, // get: modulesMethods.getModule, // create: modulesMethods.createModule, // update: modulesMethods.updateModule, // delete: modulesMethods.deleteModule, // }, // 'module-bays': { // list: moduleBaysMethods.listModuleBays, // get: moduleBaysMethods.getModuleBay, // create: moduleBaysMethods.createModuleBay, // update: moduleBaysMethods.updateModuleBay, // delete: moduleBaysMethods.deleteModuleBay, // }, // 'module-types': { // list: moduleTypesMethods.listModuleTypes, // get: moduleTypesMethods.getModuleType, // create: moduleTypesMethods.createModuleType, // update: moduleTypesMethods.updateModuleType, // delete: moduleTypesMethods.deleteModuleType, // }, platforms: { list: platformsMethods.listPlatforms, get: platformsMethods.getPlatform, create: platformsMethods.createPlatform, update: platformsMethods.updatePlatform, delete: platformsMethods.deletePlatform, }, sites: { list: sitesMethods.listSites, get: sitesMethods.getSite, create: sitesMethods.createSite, update: sitesMethods.updateSite, delete: sitesMethods.deleteSite, getDevices: sitesMethods.getDevices, getRacks: sitesMethods.getRacks, }, regions: { list: regionsMethods.listRegions, get: regionsMethods.getRegion, create: regionsMethods.createRegion, update: regionsMethods.updateRegion, delete: regionsMethods.deleteRegion, getSites: regionsMethods.getSites, }, }, ipam: { prefixes: { list: prefixesMethods.listPrefixes, get: prefixesMethods.getPrefix, create: prefixesMethods.createPrefix, update: prefixesMethods.updatePrefix, delete: prefixesMethods.deletePrefix, getAvailableIPs: prefixesMethods.getAvailableIPs, addTags: prefixesMethods.addTags, }, vlans: { list: vlansMethods.listVlans, getById: vlansMethods.getVlanById, getByName: vlansMethods.getVlanByName, getByVid: vlansMethods.getVlanByVid, create: vlansMethods.createVlan, update: vlansMethods.updateVlan, delete: vlansMethods.deleteVlan, addTag: vlansMethods.addTag, removeTag: vlansMethods.removeTag, }, roles: { list: rolesMethods.listRoles, get: rolesMethods.getRole, create: rolesMethods.createRole, update: rolesMethods.updateRole, delete: rolesMethods.deleteRole, }, vlanGroups: { list: vlanGroupsMethods.listVlanGroups, get: vlanGroupsMethods.getVlanGroup, create: vlanGroupsMethods.createVlanGroup, update: vlanGroupsMethods.updateVlanGroup, delete: vlanGroupsMethods.deleteVlanGroup, }, aggregates: { list: aggregatesMethods.listAggregates, get: aggregatesMethods.getAggregate, create: aggregatesMethods.createAggregate, update: aggregatesMethods.updateAggregate, delete: aggregatesMethods.deleteAggregate, }, 'ip-addresses': { list: ipAddressesMethods.listIPAddresses, get: ipAddressesMethods.getIPAddress, create: ipAddressesMethods.createIPAddress, update: ipAddressesMethods.updateIPAddress, delete: ipAddressesMethods.deleteIPAddress, }, }, tenancy: { tenants: { list: tenantsMethods.listTenants, get: tenantsMethods.getTenant, create: tenantsMethods.createTenant, update: tenantsMethods.updateTenant, delete: tenantsMethods.deleteTenant, }, }, extras: { tags: { list: tagsMethods.listTags, get: tagsMethods.getTag, create: tagsMethods.createTag, update: tagsMethods.updateTag, delete: tagsMethods.deleteTag, }, 'config-contexts': { list: configContextsMethods.listConfigContexts, get: configContextsMethods.getConfigContext, create: configContextsMethods.createConfigContext, update: configContextsMethods.updateConfigContext, delete: configContextsMethods.deleteConfigContext, }, 'journal-entries': { list: journalEntriesMethods.listJournalEntries, get: journalEntriesMethods.getJournalEntry, create: journalEntriesMethods.createJournalEntry, update: journalEntriesMethods.updateJournalEntry, delete: journalEntriesMethods.deleteJournalEntry, }, reports: { list: reportsMethods.listReports, get: reportsMethods.getReport, run: reportsMethods.runReport, }, 'config-templates': { list: configTemplatesMethods.listConfigTemplates, get: configTemplatesMethods.getConfigTemplate, create: configTemplatesMethods.createConfigTemplate, update: configTemplatesMethods.updateConfigTemplate, delete: configTemplatesMethods.deleteConfigTemplate, render: configTemplatesMethods.renderConfigTemplate, }, }, virtualization: { clusters: { list: clustersMethods.listClusters, get: clustersMethods.getCluster, create: clustersMethods.createCluster, update: clustersMethods.updateCluster, delete: clustersMethods.deleteCluster, }, 'cluster-groups': { list: clusterGroupsMethods.listClusterGroups, get: clusterGroupsMethods.getClusterGroup, create: clusterGroupsMethods.createClusterGroup, update: clusterGroupsMethods.updateClusterGroup, delete: clusterGroupsMethods.deleteClusterGroup, }, 'cluster-types': { list: clusterTypesMethods.listClusterTypes, get: clusterTypesMethods.getClusterType, create: clusterTypesMethods.createClusterType, update: clusterTypesMethods.updateClusterType, delete: clusterTypesMethods.deleteClusterType, }, 'virtual-machines': { list: virtualMachinesMethods.listVirtualMachines, get: virtualMachinesMethods.getVirtualMachine, create: virtualMachinesMethods.createVirtualMachine, update: virtualMachinesMethods.updateVirtualMachine, delete: virtualMachinesMethods.deleteVirtualMachine, getInterfaces: virtualMachinesMethods.getVirtualMachineInterfaces, }, 'vm-interfaces': { list: vmInterfacesMethods.listVMInterfaces, get: vmInterfacesMethods.getVMInterface, create: vmInterfacesMethods.createVMInterface, update: vmInterfacesMethods.updateVMInterface, delete: vmInterfacesMethods.deleteVMInterface, }, }, circuits: { providers: { list: providersMethods.listProviders, get: providersMethods.getProvider, create: providersMethods.createProvider, update: providersMethods.updateProvider, delete: providersMethods.deleteProvider, }, 'provider-accounts': { list: providerAccountsMethods.listProviderAccounts, get: providerAccountsMethods.getProviderAccount, create: providerAccountsMethods.createProviderAccount, update: providerAccountsMethods.updateProviderAccount, delete: providerAccountsMethods.deleteProviderAccount, }, 'provider-networks': { list: providerNetworksMethods.listProviderNetworks, get: providerNetworksMethods.getProviderNetwork, create: providerNetworksMethods.createProviderNetwork, update: providerNetworksMethods.updateProviderNetwork, delete: providerNetworksMethods.deleteProviderNetwork, }, 'circuit-types': { list: circuitTypesMethods.listCircuitTypes, get: circuitTypesMethods.getCircuitType, create: circuitTypesMethods.createCircuitType, update: circuitTypesMethods.updateCircuitType, delete: circuitTypesMethods.deleteCircuitType, }, circuits: { list: circuitsMethods.listCircuits, get: circuitsMethods.getCircuit, create: circuitsMethods.createCircuit, update: circuitsMethods.updateCircuit, delete: circuitsMethods.deleteCircuit, getTerminations: circuitsMethods.getCircuitTerminations, }, 'circuit-terminations': { list: circuitTerminationsMethods.listCircuitTerminations, get: circuitTerminationsMethods.getCircuitTermination, create: circuitTerminationsMethods.createCircuitTermination, update: circuitTerminationsMethods.updateCircuitTermination, delete: circuitTerminationsMethods.deleteCircuitTermination, }, }, wireless: { 'wireless-lan-groups': { list: wirelessLANGroupsMethods.listWirelessLANGroups, get: wirelessLANGroupsMethods.getWirelessLANGroup, create: wirelessLANGroupsMethods.createWirelessLANGroup, update: wirelessLANGroupsMethods.updateWirelessLANGroup, delete: wirelessLANGroupsMethods.deleteWirelessLANGroup, }, 'wireless-lans': { list: wirelessLANsMethods.listWirelessLANs, get: wirelessLANsMethods.getWirelessLAN, create: wirelessLANsMethods.createWirelessLAN, update: wirelessLANsMethods.updateWirelessLAN, delete: wirelessLANsMethods.deleteWirelessLAN, }, 'wireless-links': { list: wirelessLinksMethods.listWirelessLinks, get: wirelessLinksMethods.getWirelessLink, create: wirelessLinksMethods.createWirelessLink, update: wirelessLinksMethods.updateWirelessLink, delete: wirelessLinksMethods.deleteWirelessLink, }, }, }; async function executeOperation() { const domain = this.getNodeParameter('domain', 0); const resource = this.getNodeParameter('resource', 0); const operation = this.getNodeParameter('operation', 0); try { // Check if handler exists if (!handlers[domain] || !handlers[domain][resource] || !handlers[domain][resource][operation]) { throw new Error(`Operation ${domain}:${resource}:${operation} not implemented`); } // Call the appropriate handler const handler = handlers[domain][resource][operation]; const result = await handler.call(this); return result; // Return directly without wrapping } catch (error) { console.log('Error in executeOperation:', error); throw error; } }