-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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 #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. |
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: