07-31-2022 05:42 PM
Heya,
i'm trying to shutdown multiple interfaces in one commit using ydk.
I can successfully shut down one interface in a commit but I cannot see where or how to add multiple interfaces as part of the commit...
my code for a single interface commit.
<code>
from ydk.services import CRUDService
from ydk.providers import NetconfServiceProvider
from ydk.types import Empty
from ydk.models.cisco_ios_xr import Cisco_IOS_XR_ifmgr_cfg as xr_intf
crud_service = CRUDService()
ssh_ip = '10.30.1.11'
port = 8301
username = 'test'
password = 'cisco123'
device_netconf=NetconfServiceProvider(address=ssh_ip,port=port,username=username,password=password,protocol='ssh')
Interface = xr_intf.InterfaceConfigurations()
interface_configuration_instance = Interface.InterfaceConfiguration()
interface_configuration_instance.active = "act"
interface_configuration_instance.interface_name = "GigabitEthernet0/0/0/2"
interface_configuration_instance.shutdown = Empty()
Interface.interface_configuration.append(interface_configuration_instance)
crud_service.update(device_netconf,Interface)
</code>
thanks,
Solved! Go to Solution.
07-31-2022 10:14 PM
Ok, so I managed to figure it out, see below incase it helps the next struggling traveller. Now I just need to figure out how to unshut an interface or interfaces......since the ydk.types DELETE doesn't seem to be a thing anymore
<code>
Interface = xr_intf.InterfaceConfigurations()
interface_configuration_instance = Interface.InterfaceConfiguration()
interface_configuration_instance.interface_name = "GigabitEthernet0/0/0/2"
interface_configuration_instance.shutdown = Empty()
interface_configuration_instance.active = "act"
Interface.interface_configuration.append(interface_configuration_instance)
interface_configuration_instance2 = Interface.InterfaceConfiguration()
interface_configuration_instance2.interface_name = "GigabitEthernet0/0/0/3"
interface_configuration_instance2.shutdown = Empty()
interface_configuration_instance2.active = "act"
Interface.interface_configuration.append(interface_configuration_instance2)
interface_configuration_instance3 = Interface.InterfaceConfiguration()
interface_configuration_instance3.interface_name = "GigabitEthernet0/0/0/4"
interface_configuration_instance3.shutdown = Empty()
interface_configuration_instance3.active = "act"
Interface.interface_configuration.append(interface_configuration_instance3)
crud_service.update(device_netconf,Interface)
</code>
07-31-2022 10:14 PM
Ok, so I managed to figure it out, see below incase it helps the next struggling traveller. Now I just need to figure out how to unshut an interface or interfaces......since the ydk.types DELETE doesn't seem to be a thing anymore
<code>
Interface = xr_intf.InterfaceConfigurations()
interface_configuration_instance = Interface.InterfaceConfiguration()
interface_configuration_instance.interface_name = "GigabitEthernet0/0/0/2"
interface_configuration_instance.shutdown = Empty()
interface_configuration_instance.active = "act"
Interface.interface_configuration.append(interface_configuration_instance)
interface_configuration_instance2 = Interface.InterfaceConfiguration()
interface_configuration_instance2.interface_name = "GigabitEthernet0/0/0/3"
interface_configuration_instance2.shutdown = Empty()
interface_configuration_instance2.active = "act"
Interface.interface_configuration.append(interface_configuration_instance2)
interface_configuration_instance3 = Interface.InterfaceConfiguration()
interface_configuration_instance3.interface_name = "GigabitEthernet0/0/0/4"
interface_configuration_instance3.shutdown = Empty()
interface_configuration_instance3.active = "act"
Interface.interface_configuration.append(interface_configuration_instance3)
crud_service.update(device_netconf,Interface)
</code>
08-01-2022 02:26 PM - edited 08-01-2022 02:28 PM
Instead of DELETE() you should use YFilter.delete. Your script for 'no shutdown' will look like this:
from ydk.filters import YFilter
Interface = xr_intf.InterfaceConfigurations()
interface_configuration_instance = Interface.InterfaceConfiguration()
interface_configuration_instance.interface_name = "GigabitEthernet0/0/0/2"
interface_configuration_instance.shutdown = YFilter.delete
interface_configuration_instance.active = "act"
Interface.interface_configuration.append(interface_configuration_instance)
interface_configuration_instance2 = Interface.InterfaceConfiguration()
interface_configuration_instance2.interface_name = "GigabitEthernet0/0/0/3"
interface_configuration_instance2.shutdown = YFilter.delete
interface_configuration_instance2.active = "act"
Interface.interface_configuration.append(interface_configuration_instance2)
interface_configuration_instance3 = Interface.InterfaceConfiguration()
interface_configuration_instance3.interface_name = "GigabitEthernet0/0/0/4"
interface_configuration_instance3.shutdown = YFilter.delete
interface_configuration_instance3.active = "act"
Interface.interface_configuration.append(interface_configuration_instance3)
crud_service.update(device_netconf,Interface)
Yan
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide