[INTTEST-125] Improve csit/suites/netconf/scale/max_devices.robot Created: 26/Jan/21  Updated: 17/Aug/21

Status: Confirmed
Project: integration-test
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: High
Reporter: Robert Varga Assignee: Tomas Cere
Resolution: Unresolved Votes: 0
Labels: pt
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Blocks
is blocked by NETCONF-804 YANG Patch target parsing does not wo... Resolved

 Description   

This drives https://jenkins.opendaylight.org/releng/view/netconf/job/netconf-csit-1node-scale-max-devices-only-aluminium/ and does a lot of ineffecient things:

  • the devices should be setup with a single REST request
  • the devices should be torn down with a single REST request
  • checking for device tear-down should operate on 'all devices' torn down

If it's not possible to setup or tear down with a single request, it should be done using parallel threads.



 Comments   
Comment by Robert Varga [ 12/Aug/21 ]

This is hurting us quite bad, as we https://jenkins.opendaylight.org/releng/job/netconf-csit-1node-scale-max-devices-only-silicon/ takes almost 8 hours to complete (and then barfs on parsing RF logs).

Comment by Robert Varga [ 12/Aug/21 ]

 

The problem really is this block:

        ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    NetconfKeywords.Configure_Device    timeout=${timeout}                                                                                                                                               
        Exit For Loop If    '${status}' == 'FAIL'

        ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    NetconfKeywords.Wait_Connected    timeout=${timeout}    log_response=False                                                                                                                           
        Exit For Loop If    '${status}' == 'FAIL'

        ${status}    ${result} =    Run Keyword And Ignore Error    Issue_Requests_On_Devices    ${TOOLS_SYSTEM_IP}    ${devices}    ${NUM_WORKERS}            
        Exit For Loop If    '${status}' == 'FAIL'                                                                                                              
        ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    NetconfKeywords.Wait_Connected    timeout=${timeout}    log_response=False

        Exit For Loop If    '${status}' == 'FAIL'

        ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    NetconfKeywords.Deconfigure_Device    timeout=${timeout}    log_response=False  
        Exit For Loop If    '${status}' == 'FAIL'

        ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Check_Device_Deconfigured    timeout=${timeout}    log_response=False

i.e. rather than using a combo of 'Perform_Operation_On_Each_Device'  plus:

  • Configure_Device + Wait_Connected we want to have a bulk version of NetconfKeywords.Configure_Device_And_Verify
  • Wait_Connected we want to have a bulk version of NetconfKeywords.Wait_Connected
  • Deconfigure_Device + Check_Device_Deconfigured we want to have a bulk version of NetconfKeywords.Deconfigure_Device_And_Verify

 

Comment by Robert Varga [ 12/Aug/21 ]

I think the best approach is to provide a python library to handle the three use cases and map it into RF as keywords.

Comment by Robert Varga [ 17/Aug/21 ]

Okay, the patch has a functioning library, but we need rollout of NETCONF-804 to make it work.

Generated at Wed Feb 07 20:04:38 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.