cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
444
Views
0
Helpful
1
Replies

random-detect discard class on xr gives error : ydk.errors.YModelError: 'int' object is not iterable--->input type list of int required

arynair
Cisco Employee
Cisco Employee

Hi,

i am trying to configure the line "random-detect discard-class 1 10 ms 12 ms" under policy map on iosxr

 

my code snippet:

#importing all required libraries here
from ydk.models.cisco_ios_xr import Cisco_IOS_XR_infra_policymgr_cfg as  xr_infra_policymgr_cfg
from ydk.services import CRUDService
from ydk.providers import NetconfServiceProvider
 
#configure policy map
        policy_map_obj = self.qos_config_obj.policy_maps.PolicyMap()
        policy_map_obj.type = xr_infra_policymgr_cfg.PolicyMapType.qos
        policy_map_obj.name = policy_map1_name
        class_map_obj = policy_map_obj.PolicyMapRule()
        class_map_obj.class_name = self.pm1_class1_name
        class_map_obj.class_type = xr_infra_policymgr_cfg.PmapClassMapType.qos
        policy_map_obj.policy_map_rule.append(class_map_obj)
#random detect
               
        random_detect_obj = class_map_obj.RandomDetect()
        random_detect_obj.threshold_min_value = 9
        random_detect_obj.threshold_min_units = "ms"
        random_detect_obj.threshold_max_value = 10
        random_detect_obj.threshold_max_units = "ms"
        random_detect_obj.discard_class = 1
#documentation says  type: list of int range: 0..7  -----> what should be the correct input?
        class_map_obj.random_detect.append(random_detect_obj)
        policy_map_obj.policy_map_rule.append(class_map_obj)
        self.qos_config_obj.policy_maps.policy_map.append(policy_map_obj)
 
when eliminating the discard class line, the code works fine. "random-detect 10 ms 12 ms" gets configured
else I get the following error:
File "master.py", line 200, in QOS_config_main
qos_config_obj = qos_config(policy_map1_name,pm1_class1_name,pm1_class1_bandwidth_percent,pm1_class1_priority_level,device_netconf)
File "/root/ydk-py/volume_test/ba_provisioning2/Qos_config.py", line 22, in __init__
self.qos_config(device_netconf)
File "/root/ydk-py/volume_test/ba_provisioning2/Qos_config.py", line 105, in qos_config
random_detect_obj.discard_class = 1
File "/usr/local/lib/python3.5/dist-packages/ydk/models/cisco_ios_xr/Cisco_IOS_XR_infra_policymgr_cfg.py", line 4130, in __setattr__
self._perform_setattr(PolicyManager.PolicyMaps.PolicyMap.PolicyMapRule.RandomDetect, ['threshold_min_value', 'threshold_min_units', 'threshold_max_value', 'threshold_max_units', 'cos', 'discard_class', 'dscp', 'mpls_exp', 'precedence', 'dei', 'ecn'], name, value)
File "/usr/local/lib/python3.5/dist-packages/ydk/types/py_types.py", line 383, in _perform_setattr
super(Entity, self).__setattr__(name, value)
File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.5/dist-packages/ydk/errors/error_handler.py", line 95, in handle_type_error
_raise(_exc)
File "/usr/local/lib/python3.5/dist-packages/ydk/errors/error_handler.py", line 54, in _raise
exec("raise exc from None")
File "<string>", line 1, in <module>
ydk.errors.YModelError: 'int' object is not iterable
2020-11-28 03:55:36,951 - ydk - INFO - Disconnected from device
 
please help resolve this
1 Accepted Solution

Accepted Solutions

arynair
Cisco Employee
Cisco Employee

random_detect_obj.discard_class.append(1)

View solution in original post

1 Reply 1

arynair
Cisco Employee
Cisco Employee

random_detect_obj.discard_class.append(1)