check_drivesize: improve detection of drives out of the drive argument#410
Open
inqrphl wants to merge 10 commits into
Open
check_drivesize: improve detection of drives out of the drive argument#410inqrphl wants to merge 10 commits into
inqrphl wants to merge 10 commits into
Conversation
…t that user can type add tests that check both the status line and perdata labels using regex
…into check-drivesize-windows-improve-drive-detection-in-custom-paths
…om-paths' of https://github.com/ConSol-Monitoring/snclient into check-drivesize-windows-improve-drive-detection-in-custom-paths
…indows and improve functions overall output line always uses the format 'C:\' if its a drive. this includes uppercase conversion, adding colon if necessary, adding backslashes if necessarry, converting slashes to backslashes and compacting slashes perfdata labels append colon if necessary, change existing slashes to backslashes and compact them. perfdata labels are not kept the same due to compatibility reasons these are generated in separate functions now called cleanupPathString and getPerflabelPrefix improvements: windows CheckDrivesize.setDrives , CheckDrivesize.setVolumes , CheckDrivesize.setShares all try to populate the entry data for 'id' , 'drive' , 'drive_or_id' , 'drive_or_name' , 'drive_or_name_or_id' improved some error logs, they were not easily understandable if format strings were empty revise the windows volume discovery, it was causing check to fail due to RDP shared folder
…dows-improve-drive-detection-in-custom-paths
inqrphl
marked this pull request as draft
July 15, 2026 14:56
fix extra space when loading 'WNetGetLastErrorA ' library, there was a trailing space. Likely never encountered before add windows build tag to check_drivesize_windows_test.go fix wrong trace messages in cleanupPathString make discovery functions use consitent naming: now they all use requiredDrives fix other comments
…once discovered in drive check and once discovered in volume check
…platforms if drive itself is literally "/"
Contributor
Author
|
Fixed an issue about RDP shared folders in volume discovery, I guess I was the first one to encounter it. More fixes made using AI to review files: stop cutting trailing slash in condition keywords on non-windows platforms if drive itself is literally "/" fix extra space when loading 'WNetGetLastErrorA ' function out of library, there was a trailing space. Likely never encountered before add windows build tag to check_drivesize_windows_test.go fix wrong trace messages in cleanupPathString make discovery functions use consitent naming: now they all use requiredDrives fix other comments |
inqrphl
commented
Jul 16, 2026
inqrphl
marked this pull request as ready for review
July 16, 2026 11:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Detect and work with lowercase/uppercase , with or without semicolon, with or without slashes combinations of drive:
c
c:
c:
c:/
C
C:
C:
C:/
The previous version did not realize when C:\ was directly a drive, and tried to open it and match it to an existing drive.
This worked if it was a normal drive, but failed if it was a network mounted drive, the commit realizes that its a drive and directly uses stats provided by gopsutil. Otherwise it would try opening a handle to the drive root and fail, saying it was not mounted.
Add tests that check both the status line and perfdata labels using regex on all 8 combinations.
@sni check if the perfdata labels in tests look good.