Skip to content

Feat: Closes #44 - Cisco EoX API integration#159

Draft
cflanderscpc wants to merge 1 commit into
DanSheps:mainfrom
cflanderscpc:close-44
Draft

Feat: Closes #44 - Cisco EoX API integration#159
cflanderscpc wants to merge 1 commit into
DanSheps:mainfrom
cflanderscpc:close-44

Conversation

@cflanderscpc
Copy link
Copy Markdown

This pull request introduces a major new feature: integration with the Cisco EoX (End-of-Life) API to automatically synchronize hardware lifecycle information for Cisco devices and modules. It includes database schema changes, background job automation, secure credential management, new forms and navigation, and comprehensive documentation for the new functionality.

The most important changes are:

Cisco EoX API Integration

  • Adds a new background job (CiscoEoXSyncJob) that periodically queries the Cisco EoX API for end-of-life data based on DeviceType and ModuleType, updating or creating HardwareLifecycle records accordingly. The job supports both serial number and part number lookups and reschedules itself according to the configured interval.
  • Introduces a singleton model CiscoEoXSettings to securely store API credentials (with Fernet encryption for the client secret), sync interval, and manufacturer names. Includes migration to create this model. [1] [2] [3]
  • Adds a form (CiscoEoXSettingsForm) for editing Cisco EoX settings via the Web UI, ensuring the client secret is never echoed back and is only updated when a new value is provided.

Configuration and Settings

  • Extends plugin configuration (PLUGINS_CONFIG) and documentation to support Cisco EoX settings as a fallback when no database settings exist, and documents the precedence and security recommendations for credential storage. [1] [2]
  • Provides detailed documentation in README.md explaining the Cisco EoX integration, configuration options, lookup order, and mapping of Cisco API fields to the plugin's model fields.

User Interface and Navigation

  • Adds a new navigation entry for "Cisco EoX Settings" in the plugin menu, allowing users with the appropriate permission to access and manage EoX integration settings.
  • Registers the background job and ensures it is available and scheduled when settings are updated.

These changes together provide automated, secure, and user-friendly synchronization of Cisco hardware lifecycle data, significantly enhancing the plugin's capabilities for NetBox users managing Cisco equipment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant