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
$