Skip to content

Conversation

@gmaiyani-crest
Copy link

@gmaiyani-crest gmaiyani-crest commented Oct 24, 2025

Description

Adding support of python v3.13 and migrating from pysnmplib to lextudio's pysnmp v7.1.8

  • Replaced pysnmplib with lextudio’s pysmp v7.1.8
  • Replaced pysnmp-pyasn1 to lextudio's pyasn1
  • Replaced pysnmp-pysmi to lextudio's pysmi
  • Included pysnmpcrypto (maintained by lextudio's) for stronger crypto algorithms with pysnmp v6+
  • Made SC4SNMP compatible with Python 3.13
  • Updated SNMP walk implementation from bulkCmd to custom multi_bulk_walk_cmd
  • Introduced deploymentUser in values.yaml to make the sc4snmp entirely compatible with lextudio's pysnmp.
  • Added DEPLOYMENT_USER variable for Docker Compose deployment.
  • Introduces multi_bulk_walk_cmd to walk multiple OID trees simultaneously with lexicographic mode control per varbind.

Notes

Added custom multi_bulk_walk_cmd function for Multi-Varbind SNMP Walking.

Why?

  • bulk_walk_cmd supports only a single varbind at a time and already includes lexicographic mode handling.
    However, to achieve the same behavior for multiple varbinds (from different OID subtrees), each varbind must be walked separately in sequence.
  • Current bulk_cmd of lextuido's pysnmp does not support lexicographic option as a result we can not use bulk_cmd of lextudio's pysnmp for the same purpose.
  • The new custom multi_bulk_walk_cmd addresses this by allowing multiple varbinds to be walked in parallel within a single session, maintaining lexicographic consistency while significantly reducing network roundtrips and improving overall efficiency as compare to previous bulkCmd.
  • Feature request PR for adding multi_bulk_walk_cmd at Lextudio — raised here: [PR-LINK]

Key Changes

  • Added multi_bulk_walk_cmd function for parallel walking of multiple OID subtrees
  • Implemented lexicographic mode control for each varbind
  • Restored etingof's bulkCmd multi-varbind with lexicographic capability with modern async/await patterns
  • Implemented precise maxRows handling that counts actual OIDs (not iterations) with automatic truncation
  • Added per-varbind completion tracking for independent state management

Type of change

Please delete options that are not relevant.

  • Dependency update
  • New feature
  • Refactor/improvement
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

Checklist

  • My commit message is conventional
  • I have run pre-commit on all files before creating the PR
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have checked my code and corrected any misspellings

ikheifets-splunk and others added 30 commits June 10, 2025 08:42
* feat: mTLS support for Splunk 10

* docs: fix typo

---------

Co-authored-by: Olga <[email protected]>
Co-authored-by: ajasnosz <[email protected]>
# [1.13.0-beta.1](v1.12.3...v1.13.0-beta.1) (2025-06-10)

### Features

* mTLS for Splunk 10 ([#1197](#1197)) ([e8cb2a4](e8cb2a4))
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
# [1.13.0-beta.2](v1.13.0-beta.1...v1.13.0-beta.2) (2025-06-10)

### Bug Fixes

* python and dependency update ([#1200](#1200)) ([dd39338](dd39338))
* chore: update microk8s
* chore: add changelog
* chore(deps): update dependency urllib3 to v2 [security]

* test: test [run-int-tests]

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: omrozowicz-splunk <[email protected]>
* feat: add discovery for docker

* chore: update replica count

* chore: update replica count
* feat: Added deployment for k8s

* Changed the queue name from autodiscover to discovery
* fix: add option to change "-" to an "_" to be compatible with metric schema in Splunk

* fix: doc fix and docker-compose change

* fix: add docs

* chore: pre-commit run

* doc: refine

* doc: address PR comments, update CHANGELOG
# [1.13.0-beta.3](v1.13.0-beta.2...v1.13.0-beta.3) (2025-07-09)

### Bug Fixes

* replace - with _ for metrics ([#1213](#1213)) ([cd44b56](cd44b56))
# [1.13.0-beta.4](v1.13.0-beta.3...v1.13.0-beta.4) (2025-07-22)

### Features

* add partial walk ([#1215](#1215)) ([0e1f32f](0e1f32f))
* test: add one more worker

* chore: add parallelism to docker-compose tests

* chore: move some polling tests to worker
* fix: problems with interpreting scientific value as float

* fix: unnecessary import

* fix: run pre-commit

* fix: check regex only if value is an instance of str

* fix: wrong function

* test: delete unnecessary test case

* test: rename test file

* chore: run pre-commit

* chore: update CHANGELOG
# [1.13.0-beta.5](v1.13.0-beta.4...v1.13.0-beta.5) (2025-07-30)

### Bug Fixes

* problem with casting strings of scientific notation ([#1219](#1219)) ([80818aa](80818aa))
# [1.13.0-beta.6](v1.13.0-beta.5...v1.13.0-beta.6) (2025-07-31)

### Bug Fixes

* add ipv6 flag for worker poller ([#1218](#1218)) ([57d44ae](57d44ae))
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* feat: initial commit with application code

* Added logic for mounting the final output csv file

* feat: addressed review comments

* chore: removed the init container and handled the volume mounting without it

* feat: added support for scaling discovery worker pods

* chore: Updated port validation

* feat: Added support for snmp version 3 in docker and handled volume mounting

* fix: Corrected the discovery paths in environment variable and removed unnecessary variables
#1224)

* feat: added configurable parameter for SNMP request's retry and timeout. Handled tasktimeout configurable parameter for discovery

* fix: handled race condition when discovery tasks tries to update the output csv file concurrently

* chore: Executed make render command with the latest yaml changes

* chore: removed --min-rate as nmap dynamically detects a suitable rate at which packets should be sent

* chore: incorporated the pr review changes
* fix: disable mongo logs, fix traps logging

* fix: run pre-commit, fix conflicts

* fix: run pre-commit

* fix: make mongo logging configurable

* fix: make mongo logging configurable

* fix: add docs

* fix: fix traps helm template 

* fix: add CHANGELOG
# [1.13.0-beta.7](v1.13.0-beta.6...v1.13.0-beta.7) (2025-08-13)

### Bug Fixes

* logging ([#1223](#1223)) ([a98987c](a98987c))
# [1.13.0-beta.8](v1.13.0-beta.7...v1.13.0-beta.8) (2025-08-13)

### Bug Fixes

* update dependencies ([#1229](#1229)) ([fcf8805](fcf8805))
* docs: Added doc changes for discovery feature

* docs: spell checks

* chore: resolved pr review comments
* fix: add decode method security engine ID

* chore: add missing import

* fix: unit tests

* fix: run pre-commit

* fix: update docker env file, docs and changelog

* fix: update method description

---------

Co-authored-by: ajasnosz <[email protected]>
@gmaiyani-crest gmaiyani-crest changed the title feat: replaced pysnmplib with lextudio's pysnmp v7.1.0 feat: replaced pysnmplib with lextudio's pysnmp v7.1.8 Oct 30, 2025
@gmaiyani-crest gmaiyani-crest force-pushed the feat/migrate-pysnmplib-to-lextudio-pysnmp-v7.1.0 branch from 62784f2 to dcd181c Compare November 10, 2025 09:06
…0' of github.com:splunk/splunk-connect-for-snmp into feat/migrate-autodiscovery
…k-connect-for-snmp into feat/migrate-autodiscovery
…-connect-for-snmp into feat/migrate-autodiscovery
…'s pysnmp and python 3.13

- Migrate auto-discovery feature to make compitable with lextuio's pysnmp and python 3.13
- Replace the thread-pool executor with semaphore asyncio for concurrency control
@gmaiyani-crest gmaiyani-crest merged commit e4afa46 into feat/support-of-python-3.13-and-replaced-pysnmplib-to-lextudio-pysnmp Dec 2, 2025
2 checks passed
@gmaiyani-crest gmaiyani-crest deleted the feat/migrate-pysnmplib-to-lextudio-pysnmp-v7.1.0 branch December 2, 2025 12:32
@github-actions github-actions bot locked and limited conversation to collaborators Dec 2, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants