-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multi-asic support for ApplyPatchDb API for gNMI #20874
Comments
Per this change GCU apply-patch to support multi-asic, the namespace/asic ID is the prefix in the path in JSON file. Will need to change MixedDbClient.ConvertToJsonPatch() to include the asic namespace in the path. Is this a known issue? If not, Cisco can work on a PR for this. |
@ganglyu please help answer? thanks. |
We haven't verified this feature with a multi-ASIC device. Your assistance in resolving this issue would be greatly appreciated. |
@xincunli-sonic is this on your radar? Please coordinate with cisco as you see fit, thanks. |
@rlhui Yes, I will be working it, ADO: 27231493. |
Hi @levhuan , @agadia-cisco, please let me know if you would already have a plan to fix this. The main change will be in ConvertToJsonPatch and its caller to append given scope or more works on each test case. Here are some references: |
@xincunli-sonic, Cisco is working on this. The fix is adding namespace/scope in JSon path. We made fix based on this understanding and evaluating the fix internally. Will update you if we face any issues with this approach. |
@xincunli-sonic We have raised &
Out of 2 TCs failing, 1 passes now, and other one viz failing is not due to We have validated our cc - @krishnagorrepati |
gNMI uses Dbus
ApplyPatchDb
API. Currently it doesn't use namespace & it has to be updated.mixed_db_client.go
callsApplyPatchDb
here,ApplyPatchDb
definition hereHow this was discovered?
when creating config checkpoint by using Dbus API; then configuration returned is the namespace config-db.
dbus-send --system --dest=org.SONiC.HostService.gcu --type=method_call --print-reply /org/SONiC/HostService/gcu org.SONiC.HostService.gcu.create_checkpoint string:'checkpoint1'
but when run
ApplyPatchDb
API, then it isn't considering the PORTS viz in the namespace config-db & if given the port name which exists inconfig_db
(not the namespace one), then alsoApplyPatchDb
API fails.dbus-send --system --dest=org.SONiC.HostService.gcu --type=method_call --print-reply /org/SONiC/HostService/gcu org.SONiC.HostService.gcu.apply_patch_db string:'[{"op": "add", "path": "/PORT/Ethernet0/admin_status", "value": "down"}]'
=> fails with error "'PORT' not found in ....(returns entireconfig_db.json
)"dbus-send --system --dest=org.SONiC.HostService.gcu --type=method_call --print-reply /org/SONiC/HostService/gcu org.SONiC.HostService.gcu.apply_patch_db string:'[{"op": "add", "path": "/localhost/PORT/Eth0~10~10~10/admin_status", "value": "down"}]'
=> "Error: Failed to apply patch on the following scopes:"The text was updated successfully, but these errors were encountered: