TWSD-1392 - SNMP: WebUI is configuring parameters incorrectly and not aligning with CLI behavior, resulting in configuration mismatches.
Review Request #1213 — Created Dec. 8, 2025 and submitted — Latest diff uploaded
| Information | |
|---|---|
| shuinvy | |
| APV10 | |
| rel_apv_10_7 | |
| TWSD-1392 | |
| Reviewers | |
| austin, kevin.poh, mingji, peteryeh, weikai | |
Enhancement for user can update SNMP config
The ticket link:
https://arraynetworks.atlassian.net/browse/TWSD-1392The changes for C file is for let password is original if user set password as '*'.
1. You can check logic for C code in the attachment: Flowchart for C code.
2. Define constant variable MASK_PASSWORD ('*')
3. Add variable for check if auth_password is MASK_PASSWORD
4. If auth_password is MASK_PASSWORD, then setuse_existing_auth_pw = 1else original logic.
5. If priv_password is MASK_PASSWORD, then setencry_priv_passwd = pInfo->host[i].privPasswordand decryptpInfo->host[i].privPasswordtodecrypt_priv_passwd
6. Setpriv_password = decrypt_priv_passwd;
7. Ifuse_existing_auth_pw= 1(auth_password is MASK_PASSWORD), then setencry_auth_passwd = pInfo->host[i].authPasswordand decryptpInfo->host[i].authPasswordtodecrypt_auth_passwd;
8. Setauth_password = decrypt_auth_passwd;The changes for Python file is for let SNMP auth can be editable (Can be updated)
1. Remove port for Server class, so port field will be different from Version1or2 and Version 3. Only Version 3 can edit Host Port field.
2. Set some fields to be editable: Host Port, Engine ID, Security Level, Authentication Password, Authentication Protocol, Private Password, Private Password Protocol (You can check attachment for WebUI, Editable fields)
3. Add function for updating SNMP auth part, update_by_version.
4. While you use CLIsnmp host, it will create default information of SNMP auth. So we always callsnmp authto update authentication of SNMP. We call update_by_version when adding SNMP Trap Server and updating Version 3 data.
5. Add function for updating in Version 3 Server.
6. In update_by_version, if there is no data, it will create data byinstance.get_field_dict()
7. Besides, the priv_password removedoptional=Trueto let this field be mandatory.
