cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
519
Views
15
Helpful
2
Replies

shutdown multiple interfaces in one commit

DrikusBrits
Level 1
Level 1

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,

1 Accepted Solution

Accepted Solutions

DrikusBrits
Level 1
Level 1

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>

View solution in original post

2 Replies 2

DrikusBrits
Level 1
Level 1

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>

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