On some BMCs (notably Supermicro), a GET immediately after SET
returns the old value until the BMC applies the change. This made
rspconfig output misleading for network setting operations.
- Store the canonical SET value after normalization and compare
with the GET readback for ip, netmask, gateway, and backupgateway.
When they differ, annotate the output:
"BMC Gateway: 10.20.0.1 (requested 10.20.0.254, not yet reflected)"
- Consolidate ip/netmask/gateway/backupgateway display into one block
- Fix backupgateway SET: was routed through the gateway branch
writing parameter 0x0C instead of 0x0E. Now has its own branch
writing the correct IPMI parameter.
- ip=dhcp is unaffected (separate code path, never stores a value)
Tested on Supermicro IPMI BMC (10.20.0.51).
Fixes#3445
rspconfig vlan= only accepted values 1-4096 with no way to disable
VLAN tagging. Users had to resort to raw IPMI commands to clear a
stale VLAN after ip=dhcp.
- Accept vlan=off/disable/disabled to clear VLAN tagging via
standard IPMI parameter 0x14 with the enable bit unset
- Fix valid range from 1-4096 to 1-4094 (IEEE 802.1Q)
- Use strict digit matching to reject malformed inputs
To clear VLAN after a DHCP reset: rspconfig <node> vlan=off
Tested on Supermicro IPMI BMC (10.20.0.51).
Partially addresses #3725
Two pre-existing bugs in the alert on/off conditions:
1. Operator precedence: 'and' with 'or' without parens caused any
subcommand with argument matching /^en/ or /^dis/ to silently
trigger the alert handler.
2. Loose prefix matching: /^en/ and /^dis/ accepted typos like
"enterprise" or "discover". Replace with exact token matching
while preserving the "en"/"dis" abbreviations used by snmpmon.pm.
The old regex matches product IDs containing a 0 (like 1230 or 1023, ...), too.
This causes issues for some x86 Supermicro servers resulting in the following error:
rpower node01 cycle
node01: [xcat]: Error: unsupported command rpower cycle for OpenPOWER
The new regex fixes this issue and matches ^0$ only.
This commit add recover option for rflash command to upload
bmc image with tftp when the BMC is in Brick Protection state.
Example:
```
rflash <node> --recover <image>
```
implement #3873