n8n-nodes-arubacentralnextgen
Version:
n8n community node for Aruba Central NextGen API integration with modern monitoring and management capabilities
420 lines (419 loc) • 23.3 kB
JavaScript
"use strict";
// helpers/executeOperation.ts
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;
// Monitoring domain imports
const devices_1 = require("../methods/monitoring/devices");
const clients_1 = require("../methods/monitoring/clients");
const accessPoints_1 = require("../methods/monitoring/accessPoints");
const sites_1 = require("../methods/monitoring/sites");
const siteHealth_1 = require("../methods/monitoring/siteHealth");
const gateways_1 = require("../methods/monitoring/gateways");
// Configuration domain imports
const scopeManagementMethods = __importStar(require("../methods/configuration/scopeManagement.methods"));
const apProfiles_methods_1 = require("../methods/configuration/apProfiles.methods");
// VLANs & Networks domain imports
const vlansNetworksMethods = __importStar(require("../methods/configuration/vlansNetworks.methods"));
// Roles & Policy domain imports
const rolesPolicyMethods = __importStar(require("../methods/configuration/rolesPolicy.methods"));
// Wireless domain imports
const wirelessMethods = __importStar(require("../methods/configuration/wireless.methods"));
// Named Object domain imports
const namedObjectMethods = __importStar(require("../methods/configuration/namedObject.methods"));
// Configuration Health domain imports
const configHealthMethods = __importStar(require("../methods/configuration/configHealth.methods"));
// Network Services domain imports
const networkServicesMethods = __importStar(require("../methods/networkServices/networkServices.methods"));
// Security domain imports
const securityMethods = __importStar(require("../methods/security/security.methods"));
// System domain imports
const configAssignment_1 = require("../methods/system/configAssignment");
// Interfaces domain imports
const interfacesMethods = __importStar(require("../methods/interfaces/interfaces.methods"));
// Routing domain imports
const routingMethods = __importStar(require("../methods/routing/routing.methods"));
// System domain expanded imports
const ntpMethods = __importStar(require("../methods/system/ntp"));
const snmpMethods = __importStar(require("../methods/system/snmp"));
const syslogMethods = __importStar(require("../methods/system/syslog"));
const dumpServerMethods = __importStar(require("../methods/system/dumpServer"));
// Management domain imports
const managementMethods = __importStar(require("../methods/management/management.methods"));
// Import logger directly to avoid circular dependencies
const logger = __importStar(require("./logger"));
async function executeOperation() {
try {
const debugMode = logger.isDebugMode(this);
const domain = this.getNodeParameter('domain', 0);
const resource = this.getNodeParameter('resource', 0);
const operation = this.getNodeParameter('operation', 0);
if (debugMode) {
logger.debug('Executing operation', { domain, resource, operation }, this);
}
const handlers = {
monitoring: {
devices: {
getAllDevices: devices_1.getAllDevices,
getDeviceInventory: devices_1.getDeviceInventory,
},
clients: {
getAllClients: clients_1.getAllClients,
},
aps: {
getAllAPs: accessPoints_1.getAllAPs,
getAPDetails: accessPoints_1.getAPDetails,
getTopAPsByWirelessUsage: accessPoints_1.getTopAPsByWirelessUsage,
getAPThroughputTrends: accessPoints_1.getAPThroughputTrends,
getAPCPUUtilization: accessPoints_1.getAPCPUUtilization,
getAPMemoryUtilization: accessPoints_1.getAPMemoryUtilization,
getAPPowerConsumption: accessPoints_1.getAPPowerConsumption,
getRadioDetails: accessPoints_1.getRadioDetails,
getRadioPerformance: accessPoints_1.getRadioPerformance,
getAPsWithIssues: accessPoints_1.getAPsWithIssues,
getAPPortFrameTrends: accessPoints_1.getAPPortFrameTrends,
getAllRadios: accessPoints_1.getAllRadios,
getRadioChannelUtilization: accessPoints_1.getRadioChannelUtilization,
getRadioChannelQuality: accessPoints_1.getRadioChannelQuality,
getRadioNoiseFloor: accessPoints_1.getRadioNoiseFloor,
getRadioTransmissionInfo: accessPoints_1.getRadioTransmissionInfo,
getAPPortCRCErrors: accessPoints_1.getAPPortCRCErrors,
getAPPortCollisionErrors: accessPoints_1.getAPPortCollisionErrors,
getAPRadioThroughputTrend: accessPoints_1.getAPRadioThroughputTrend,
getAPPortThroughputTrend: accessPoints_1.getAPPortThroughputTrend,
getAPRadiosList: accessPoints_1.getAPRadiosList,
getAPPortsList: accessPoints_1.getAPPortsList,
getAllWLANs: accessPoints_1.getAllWLANs,
getWLANByName: accessPoints_1.getWLANByName,
getAPWLANsList: accessPoints_1.getAPWLANsList,
getAPWLANThroughputTrend: accessPoints_1.getAPWLANThroughputTrend,
getAPTunnelsList: accessPoints_1.getAPTunnelsList,
getAPTunnelDetails: accessPoints_1.getAPTunnelDetails,
getAPTunnelThroughputTrend: accessPoints_1.getAPTunnelThroughputTrend,
getAPTunnelPacketLossTrend: accessPoints_1.getAPTunnelPacketLossTrend,
getAPTunnelJitterTrend: accessPoints_1.getAPTunnelJitterTrend,
getAPTunnelLatencyTrend: accessPoints_1.getAPTunnelLatencyTrend,
getAPTunnelMOSScoreTrend: accessPoints_1.getAPTunnelMOSScoreTrend,
getWLANThroughputTrend: accessPoints_1.getWLANThroughputTrend,
},
sites: {
getAllSites: sites_1.getAllSites,
},
siteHealth: {
listSitesHealthOverview: siteHealth_1.listSitesHealthOverview,
getSiteInformation: siteHealth_1.getSiteInformation,
listSitesDeviceHealth: siteHealth_1.listSitesDeviceHealth,
getDeviceHealthOverview: siteHealth_1.getDeviceHealthOverview,
},
gateways: {
listGateways: gateways_1.listGateways,
getGatewayDetails: gateways_1.getGatewayDetails,
getClusterLeaderDetails: gateways_1.getClusterLeaderDetails,
getClusterVlanMismatchSummary: gateways_1.getClusterVlanMismatchSummary,
getClusterConnectivityGraph: gateways_1.getClusterConnectivityGraph,
getGatewayVlanDetail: gateways_1.getGatewayVlanDetail,
listClusterMembers: gateways_1.listClusterMembers,
getGatewayTunnelDetail: gateways_1.getGatewayTunnelDetail,
listGatewayWiredInterfaces: gateways_1.listGatewayWiredInterfaces,
listClusterTunnels: gateways_1.listClusterTunnels,
listGatewayVlans: gateways_1.listGatewayVlans,
listGatewayLanTunnels: gateways_1.listGatewayLanTunnels,
listGatewayWanInterfaces: gateways_1.listGatewayWanInterfaces,
getGatewayCpuUtilizationTrend: gateways_1.getGatewayCpuUtilizationTrend,
getGatewayMemoryUtilizationTrend: gateways_1.getGatewayMemoryUtilizationTrend,
getGatewayLanTunnelThroughputTrend: gateways_1.getGatewayLanTunnelThroughputTrend,
getGatewayLanTunnelStatusTrend: gateways_1.getGatewayLanTunnelStatusTrend,
getClusterCapacityTrend: gateways_1.getClusterCapacityTrend,
getClusterMemberCapacityTrend: gateways_1.getClusterMemberCapacityTrend,
getGatewayInterfaceThroughputTrend: gateways_1.getGatewayInterfaceThroughputTrend,
getClusterTunnelHealthSummary: gateways_1.getClusterTunnelHealthSummary,
getClusterTunnelStatusSummary: gateways_1.getClusterTunnelStatusSummary,
getGatewayTunnelHealthSummary: gateways_1.getGatewayTunnelHealthSummary,
getGatewayWanAvailabilityTrend: gateways_1.getGatewayWanAvailabilityTrend,
getGatewayVpnAvailabilityTrend: gateways_1.getGatewayVpnAvailabilityTrend,
getGatewayPortFramesTrend: gateways_1.getGatewayPortFramesTrend,
getGatewayPortFramesErrorsTrend: gateways_1.getGatewayPortFramesErrorsTrend,
getGatewayPortFramesPacketsTrend: gateways_1.getGatewayPortFramesPacketsTrend,
getGatewayTunnelDroppedPacketsTrend: gateways_1.getGatewayTunnelDroppedPacketsTrend,
listGatewayWanTunnels: gateways_1.listGatewayWanTunnels,
getGatewayWanTunnelDetail: gateways_1.getGatewayWanTunnelDetail,
getGatewayWanTunnelHealthSummary: gateways_1.getGatewayWanTunnelHealthSummary,
getGatewayUplinkDetails: gateways_1.getGatewayUplinkDetails,
getGatewayUplinkThroughputTrend: gateways_1.getGatewayUplinkThroughputTrend,
getGatewayWanCompressionTrends: gateways_1.getGatewayWanCompressionTrends,
listGatewayUplinkProbes: gateways_1.listGatewayUplinkProbes,
listGatewayUplinkPerformanceTrends: gateways_1.listGatewayUplinkPerformanceTrends,
getGatewayUplinkModemStats: gateways_1.getGatewayUplinkModemStats,
getGatewayUplinkWanAvailabilityTrends: gateways_1.getGatewayUplinkWanAvailabilityTrends,
getGatewayUplinkVpnAvailabilityTrends: gateways_1.getGatewayUplinkVpnAvailabilityTrends,
},
},
configuration: {
scopeManagement: scopeManagementMethods,
profiles: {
getAllAPProfiles: apProfiles_methods_1.getAllAPProfiles,
createAPProfile: apProfiles_methods_1.createAPProfile,
updateAPProfile: apProfiles_methods_1.updateAPProfile,
deleteAPProfile: apProfiles_methods_1.deleteAPProfile,
},
// VLANs & Networks resource
vlansNetworks: vlansNetworksMethods,
// Roles & Policy resource
rolesPolicy: rolesPolicyMethods,
// Wireless resource
wireless: wirelessMethods,
// Named Object resource
namedObject: namedObjectMethods,
// Configuration Health resource
configHealth: configHealthMethods,
},
system: {
configAssignment: {
listConfigAssignments: configAssignment_1.listConfigAssignments,
getConfigAssignment: configAssignment_1.getConfigAssignment,
createConfigAssignment: configAssignment_1.createConfigAssignment,
deleteConfigAssignment: configAssignment_1.deleteConfigAssignment,
},
ntp: {
getAllNTP: ntpMethods.getAllNTP,
getNTP: ntpMethods.getNTP,
createNTP: ntpMethods.createNTP,
updateNTP: ntpMethods.updateNTP,
deleteNTP: ntpMethods.deleteNTP,
},
snmp: {
getAllSNMP: snmpMethods.getAllSNMP,
getSNMP: snmpMethods.getSNMP,
createSNMP: snmpMethods.createSNMP,
updateSNMP: snmpMethods.updateSNMP,
deleteSNMP: snmpMethods.deleteSNMP,
},
syslog: {
getAllSyslog: syslogMethods.getAllSyslog,
getSyslog: syslogMethods.getSyslog,
createSyslog: syslogMethods.createSyslog,
updateSyslog: syslogMethods.updateSyslog,
deleteSyslog: syslogMethods.deleteSyslog,
},
dumpServer: {
getAllDumpServer: dumpServerMethods.getAllDumpServer,
getDumpServer: dumpServerMethods.getDumpServer,
createDumpServer: dumpServerMethods.createDumpServer,
updateDumpServer: dumpServerMethods.updateDumpServer,
deleteDumpServer: dumpServerMethods.deleteDumpServer,
},
},
routing: {
staticRoute: {
getAllStaticRoute: routingMethods.getAllStaticRoute,
getStaticRoute: routingMethods.getStaticRoute,
createStaticRoute: routingMethods.createStaticRoute,
updateStaticRoute: routingMethods.updateStaticRoute,
deleteStaticRoute: routingMethods.deleteStaticRoute,
},
ospfv2: {
getAllOSPFv2: routingMethods.getAllOSPFv2,
getOSPFv2: routingMethods.getOSPFv2,
createOSPFv2: routingMethods.createOSPFv2,
updateOSPFv2: routingMethods.updateOSPFv2,
deleteOSPFv2: routingMethods.deleteOSPFv2,
},
bgp: {
getAllBGP: routingMethods.getAllBGP,
getBGP: routingMethods.getBGP,
createBGP: routingMethods.createBGP,
updateBGP: routingMethods.updateBGP,
deleteBGP: routingMethods.deleteBGP,
},
vrf: {
getAllVRF: routingMethods.getAllVRF,
getVRF: routingMethods.getVRF,
createVRF: routingMethods.createVRF,
updateVRF: routingMethods.updateVRF,
deleteVRF: routingMethods.deleteVRF,
},
},
management: {
configCheckpoint: {
getAllConfigCheckpoint: managementMethods.getAllConfigCheckpoint,
getConfigCheckpoint: managementMethods.getConfigCheckpoint,
createConfigCheckpoint: managementMethods.createConfigCheckpoint,
updateConfigCheckpoint: managementMethods.updateConfigCheckpoint,
deleteConfigCheckpoint: managementMethods.deleteConfigCheckpoint,
},
personaAssignment: {
getAllPersonaAssignment: managementMethods.getAllPersonaAssignment,
getPersonaAssignment: managementMethods.getPersonaAssignment,
createPersonaAssignment: managementMethods.createPersonaAssignment,
updatePersonaAssignment: managementMethods.updatePersonaAssignment,
deletePersonaAssignment: managementMethods.deletePersonaAssignment,
},
firmwarePolicy: {
getAllFirmwarePolicy: managementMethods.getAllFirmwarePolicy,
getFirmwarePolicy: managementMethods.getFirmwarePolicy,
createFirmwarePolicy: managementMethods.createFirmwarePolicy,
updateFirmwarePolicy: managementMethods.updateFirmwarePolicy,
deleteFirmwarePolicy: managementMethods.deleteFirmwarePolicy,
},
ha: {
getAllHA: managementMethods.getAllHA,
getHA: managementMethods.getHA,
createHA: managementMethods.createHA,
updateHA: managementMethods.updateHA,
deleteHA: managementMethods.deleteHA,
},
},
networkServices: {
dhcp: {
getAllDHCP: networkServicesMethods.getAllDHCP,
getDHCP: networkServicesMethods.getDHCP,
createDHCP: networkServicesMethods.createDHCP,
updateDHCP: networkServicesMethods.updateDHCP,
deleteDHCP: networkServicesMethods.deleteDHCP,
},
qos: {
getAllQoS: networkServicesMethods.getAllQoS,
getQoS: networkServicesMethods.getQoS,
createQoS: networkServicesMethods.createQoS,
updateQoS: networkServicesMethods.updateQoS,
deleteQoS: networkServicesMethods.deleteQoS,
},
},
security: {
firewall: {
getAllFirewall: securityMethods.getAllFirewall,
getFirewall: securityMethods.getFirewall,
createFirewall: securityMethods.createFirewall,
updateFirewall: securityMethods.updateFirewall,
deleteFirewall: securityMethods.deleteFirewall,
},
portSecurity: {
getAllPortSecurity: securityMethods.getAllPortSecurity,
getPortSecurity: securityMethods.getPortSecurity,
createPortSecurity: securityMethods.createPortSecurity,
updatePortSecurity: securityMethods.updatePortSecurity,
deletePortSecurity: securityMethods.deletePortSecurity,
},
macAuth: {
getAllMACAuth: securityMethods.getAllMACAuth,
getMACAuth: securityMethods.getMACAuth,
createMACAuth: securityMethods.createMACAuth,
updateMACAuth: securityMethods.updateMACAuth,
deleteMACAuth: securityMethods.deleteMACAuth,
},
},
interfaces: {
ethernetInterface: {
getAllEthernetInterface: interfacesMethods.getAllEthernetInterface,
getEthernetInterface: interfacesMethods.getEthernetInterface,
createEthernetInterface: interfacesMethods.createEthernetInterface,
updateEthernetInterface: interfacesMethods.updateEthernetInterface,
deleteEthernetInterface: interfacesMethods.deleteEthernetInterface,
},
portChannel: {
getAllPortChannel: interfacesMethods.getAllPortChannel,
getPortChannel: interfacesMethods.getPortChannel,
createPortChannel: interfacesMethods.createPortChannel,
updatePortChannel: interfacesMethods.updatePortChannel,
deletePortChannel: interfacesMethods.deletePortChannel,
},
lacp: {
getAllLACP: interfacesMethods.getAllLACP,
getLACP: interfacesMethods.getLACP,
createLACP: interfacesMethods.createLACP,
updateLACP: interfacesMethods.updateLACP,
deleteLACP: interfacesMethods.deleteLACP,
},
loopback: {
getAllLoopback: interfacesMethods.getAllLoopback,
getLoopback: interfacesMethods.getLoopback,
createLoopback: interfacesMethods.createLoopback,
updateLoopback: interfacesMethods.updateLoopback,
deleteLoopback: interfacesMethods.deleteLoopback,
},
lldp: {
getAllLLDP: interfacesMethods.getAllLLDP,
getLLDP: interfacesMethods.getLLDP,
createLLDP: interfacesMethods.createLLDP,
updateLLDP: interfacesMethods.updateLLDP,
deleteLLDP: interfacesMethods.deleteLLDP,
},
},
};
if (!handlers[domain]) {
const error = `Domain "${domain}" is not implemented`;
logger.error(error);
throw new Error(error);
}
if (!handlers[domain][resource]) {
const error = `Resource "${resource}" is not implemented for domain "${domain}"`;
logger.error(error);
throw new Error(error);
}
if (!handlers[domain][resource][operation]) {
const error = `Operation "${operation}" is not implemented for resource "${resource}" in domain "${domain}"`;
logger.error(error);
throw new Error(error);
}
if (debugMode) {
logger.debug(`Executing handler for ${domain}/${resource}/${operation}`, undefined, this);
}
const result = await handlers[domain][resource][operation].call(this);
if (debugMode) {
logger.debug(`Handler execution complete`, {
itemCount: result.length,
}, this);
}
return [result];
}
catch (error) {
// Fix error handling to properly handle undefined cases
let errorMessage = 'Unknown error in operation execution';
if (error) {
if (typeof error === 'string') {
errorMessage = error;
}
else if (error instanceof Error) {
errorMessage = error.message || 'Error in operation execution';
}
else if (typeof error === 'object' && error !== null) {
// Try to extract a message from the error object
errorMessage = error.message || JSON.stringify(error);
}
}
logger.error('Error in operation execution', new Error(errorMessage));
throw new Error(errorMessage);
}
}