V2.1.6 - Bug fixes, username support, and validation improvements#21
Merged
Conversation
### Added - **Username Configuration** - Support for specifying SSH usernames per node - Added `username` field to nodes.json configuration - Username prompts in all node configuration flows (manual entry, saved nodes, IP ranges, VMID ranges) - Default username is "root" with option to specify alternatives - Display format changed to `username@ip` throughout GUI - **Dependency Checking** - Runtime validation before remote execution - `__check_remote_dependencies__()` function checks for sshpass and jq - Helpful error messages with installation commands for all major distros - Notes that sshpass is not required when using SSH keys - **Syntax Validation** - Basic shell syntax checking added to validation suite - New Check 1a. in `_RunChecks.sh` runs `bash -n` on all .sh files - Catches structural errors and orphaned code blocks - Shows file names and line numbers for syntax errors - **Enhanced Source Verification** - Improved validation of shellcheck directives - `VerifySourceCalls.py` now validates shellcheck comments have matching source statements - Detects orphaned shellcheck directives within 5 lines - Prevents mismatched documentation and code ### Changed - **Remote Execution UI** - Scripts hidden in remote mode for better UX - GUI.sh and CCPVE.sh hidden from root menu when in remote execution mode - Prevents accidental execution of control scripts on remote nodes - Scripts still shown in local mode and subdirectories - **README.md** - Clarified dependency requirements - Updated installation command to include `jq` and `sshpass` - Documented that sshpass is only needed for password-based authentication - Separated build-time tools from runtime dependencies ### Fixed - **Critical: Orphaned Error Handler** - Fixed syntax error in `Host/HostInfo.sh` - Removed orphaned error handler code block (lines 34-36) - File had error message without matching source statement - Bug prevented script execution on remote nodes - **Username Hardcoding** - Removed hardcoded "root@" from all remote operations - Updated all SSH/SCP operations in `RemoteExecutor.sh` to use configured username - `__ssh_exec__`, `__scp_exec__`, `__scp_exec_recursive__`, `__scp_download__` now accept username parameter - `ConfigManager.sh` tracks username per node in `NODE_USERNAMES` associative array - **Missing Validation** - Syntax check gap closed - `_RunChecks.sh` never validated basic syntax :C - Now catches structural errors that bash -n would detect - Prevents orphaned code and malformed control structures from entering repository ### Technical Details - `nodes.json.template` - Added username field with "root" default - `Utilities/ConfigManager.sh` - Added NODE_USERNAMES tracking and __get_node_username__() function - `Utilities/RemoteExecutor.sh` - All remote operations parameterized with username - `GUI.sh` - Dependency checking, username prompts, and script filtering - `.check/VerifySourceCalls.py` - Enhanced shellcheck directive validation - `.check/_RunChecks.sh` - Added Check 1a. for syntax validation ### Developer Notes The orphaned error handler bug existed because: - `bash -n` syntax check was not being run in validation suite - `DeadCodeCheck.py` only checks unused functions/variables, not code structure - `VerifySourceCalls.py` didn't validate orphaned error handlers The fix adds syntax validation to prevent similar issues...
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.
name: Bug fixes, username support, and validation improvements
about: Bug fixes, username support, and validation improvements
title: "[PR] Bug fixes, username support, and validation improvements"
labels: enhancement, bug
assignees: 'Coela'
Added
usernamefield to nodes.json configurationusername@ipthroughout GUI__check_remote_dependencies__()function checks for sshpass and jq_RunChecks.shrunsbash -non all .sh filesVerifySourceCalls.pynow validates shellcheck comments have matching source statementsChanged
jqandsshpassFixed
Host/HostInfo.shRemoteExecutor.shto use configured username__ssh_exec__,__scp_exec__,__scp_exec_recursive__,__scp_download__now accept username parameterConfigManager.shtracks username per node inNODE_USERNAMESassociative array_RunChecks.shnever validated basic syntax :CTechnical Details
nodes.json.template- Added username field with "root" defaultUtilities/ConfigManager.sh- Added NODE_USERNAMES tracking and get_node_username() functionUtilities/RemoteExecutor.sh- All remote operations parameterized with usernameGUI.sh- Dependency checking, username prompts, and script filtering.check/VerifySourceCalls.py- Enhanced shellcheck directive validation.check/_RunChecks.sh- Added Check 1a. for syntax validationDeveloper Notes
The orphaned error handler bug existed because:
bash -nsyntax check was not being run in validation suiteDeadCodeCheck.pyonly checks unused functions/variables, not code structureVerifySourceCalls.pydidn't validate orphaned error handlers The fix adds syntax validation to prevent similar issues...Type of Change
How Has This Been Tested?
Validated all _RunChecks.
Checklist
Related Issues
#20 (comment)