Skip to content

'delete' and 'replace' filters do not work properly with gNMI and CRUD service #881

@111pontes

Description

@111pontes
from ydk.path import Repository
from ydk.gnmi.providers import gNMIServiceProvider
from ydk.services import CRUDService
from ydk.models.openconfig import openconfig_interfaces as oc_interfaces
from ydk.models.ietf import iana_if_type
from ydk.filters import YFilter

interfaces = oc_interfaces.Interfaces()
interface = interfaces.Interface()
interface.name = name
interface.config.name = name
interface.config.type = iana_if_type.EthernetCsmacd()
interface.config.description = ''
interface.config.enabled = False
#interface.subinterfaces.yfilter = YFilter.delete
interfaces.interface.append(interface)
interfaces.yfilter = YFilter.replace

crud.update(gnmi, interfaces)
2019-02-20 18:27:03,299 - ydk - INFO - gNMIServiceProvider Connected to 198.18.1.11 via Insecure Channel
2019-02-20 18:27:03,326 - ydk - INFO - Executing CRUD update operation on [openconfig-interfaces:interfaces]
2019-02-20 18:27:03,326 - ydk - INFO - Executing set gRPC operation 'update' on entity 'openconfig-interfaces:interfaces'
2019-02-20 18:27:03,351 - ydk - INFO - 
=============== Set Request Sent ================
update {
  path {
    origin: "openconfig-interfaces"
    elem {
      name: "interfaces"
    }
  }
  val {
    json_ietf_val: "{\"interface\":[{\"name\":\"GigabitEthernet0/0/0/0\",\"config\":{\"type\":\"iana-if-type:ethernetCsmacd\",\"name\":\"GigabitEthernet0/0/0/0\",\"description\":\"\",\"enabled\":false},\"subinterfaces\":{\"@\":{\"ietf-netconf:operation\":\"delete\"}}}]}"
  }
}


2019-02-20 18:27:03,393 - ydk - ERROR - SetRequest failed with error:
gNMI: set-request update/replace: unknown-element: Unknown element is specified: @
Traceback (most recent call last):
  File "./remove_peer_interface.py", line 100, in <module>
    crud.update(provider, interfaces)
  File "/usr/local/lib/python3.6/dist-packages/ydk/errors/error_handler.py", line 112, in helper
    return func(self, provider, entity, *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/ydk/services/crud_service.py", line 98, in update
    return self._crud.update(provider, entity)
  File "/usr/lib/python3.6/contextlib.py", line 99, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python3.6/dist-packages/ydk/errors/error_handler.py", line 82, in handle_runtime_error
    _raise(_exc)
  File "/usr/local/lib/python3.6/dist-packages/ydk/errors/error_handler.py", line 54, in _raise
    exec("raise exc from None")
  File "<string>", line 1, in <module>
ydk.errors.YServiceProviderError:  SetRequest failed with error:
gNMI: set-request update/replace: unknown-element: Unknown element is specified: @
2019-02-20 18:27:03,488 - ydk - INFO - Disconnected from device
$ pip list | grep ydk
ydk                     0.8.1.post1
ydk-models-cisco-ios-xr 6.5.1.post1
ydk-models-ietf         0.1.5.post2
ydk-models-openconfig   0.1.6.post1
ydk-service-gnmi        0.4.0.post1
$ 

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions