Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updating to master repo #3

Merged
merged 123 commits into from
Mar 17, 2021
Merged

Conversation

ANISH-GOTTAPU
Copy link
Owner

updating to master repo

wangxin and others added 30 commits February 20, 2021 09:05
Somehow Ansible is not able to figure out correct credential for accessing vlab-04 in KVM testing. This change is to add the default credentials for vlab-04 in the veos_vtb inventory file just like the other KVM sonic hosts.

Signed-off-by: Xin Wang <[email protected]>
Approach
What is the motivation for this PR?
Add tunnel traffic check utility.

How did you do it?
Add fixture tunnel_traffic_monitor that returns a context manager that could support verifying traffic with the following usage:
```
    with tunnel_traffic_monitor(upper_tor, lower_tor):
        testutils.send(ptfadapter, int(t1_lower_tor_intfs[0].strip('eth')), packet, count=1)
```
…e causing it fail to read the output of fdbshow and show arp (#3009)
* [advanced-reboot] improve logging and assertions

This commit includes 3 improvements/changes:
    * Logs from SSH VM thread for better debugging
    * Improved assertion handling, added reasonable messages on
      assertions. This fixes the issue when SSH thread fails
      with AssertionError in parse_logs() leaving "fails" dict
      empty and making the main thread fail with KeyError when
      it tries to get failures for a particular VM in the dict.
      This double failure produces unreadable test log and confuses
      when analyzing issues.
    * Relaxed a condition for BGP v4 vs v6 establishement time
      difference assertion. Originally it was set to 20 sec and
      a special patch in sonic-quagga was made for that, but not
      for frr. Also, the reasonability for this check is questionable.
      This is discussed seperately
      #2610.
      For now, increased the time difference threshold to 40 sec

Signed-off-by: Stepan Blyschak <[email protected]>
* Check if packet is ICMP before trying to access ICMP layer
* Change ICMP responder start/stop log level

Signed-off-by: Lawrence Lee <[email protected]>
Approach
What is the motivation for this PR?
The existing PDU controller implementation cannot handle if DUT connects to 2 different PDUs. The outlet_id was an index in return list, when there is more than one controller, the index will collide. Existing client code uses the outlet_id to access specific outlet. Which will not work in multi-PDU scenario.

How did you do it?
Introduce PDU manager to separate the client from the implementation of pdu controllers.
Change client to toggle outlet with the whole outlet dictionary, so that client don't have to rely on the value of outlet_id.
PDU manager manages all PDU controllers associated with a DUT.
Change devutils to use PDU manager instead of invoking controller directly.
Signed-off-by: Ying Xie [email protected]
Added BGPMON verification for allow list test case. This was done to make so sure BGPMON (since it is iBGP Peer) receive all the routes irrespective if allow list action being permit or deny

Also to support above made bgpmon session creation and route verification as common fixture and helper routines.
* Stop pfcwd on dual tor testbeds to avoid the continuous log messages seen due to missing buffer templates

* Added fixture to skip the pfcwd tests on dual tor and also ensure that pfcwd does not get started on dual tor testbeds in other testcases as well

Signed-off-by: Neetha John <[email protected]>
Azure Pipeline configuration for testing continuous warmboot.
Steps for the pipeline:
Checkout repo -> Download SONiC KVM image. -> Setup T0 testbed -> Run warm reboot test - single iteration.
Collect and report the artifacts (available per iteration). Repeat
For every successful iteration the results are available instantly for analysis - syslog, sairec, test log, etc.
Tested the pipeline on KVM T0 testbed.
This PR is to update mux simulator control utility.

Refactor helper function into function level fixture
Change argument physical_port to interface_name
Add a new fixture simulator_server_down to simulate server down scenario.
- Fix -i option in the script.
- Update USER env variable
Refactoring the existing methods as part of drop-counters testcase to be reused in measuring drops in dualtor testcases.
Move the useful methods already present as part of drop-counter test to helpers dir. This is done so that these methods can now be used by other tests, such as dualtor testcases which require drop measurements.

The present methods are parameterized to receive the packet count for generalized verification.
Tested test_drop_counter on single tor T1 testbed and no regressions were seen. Tested sample test on dualtor.
* Update QoS base class to use multi-asic framework. Use 'dut_asic' instance instead of 'duthost'. Added 'ssh tunnel' fixture to facilitate communication with syncd-rpc running in non-default namespace on multi ASIC platforms. Added few other utility APIs.

There is no new functionality added or changed.
…to check common SONiC CLI commands (#3016)

Add the most commonly used CLI commands in the tests test_ro_user_allowed_command and test_ro_user_banned_command

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <[email protected]>
…d 8 interfaces (#2858)

What is the motivation for this PR?
sonic-net/sonic-buildimage#6558 will add new hwsku msft_four_asic_vs which is a 4 asic hwsku with 8 front panel interfaces. With this change, add supporting files to sonic-mgmt so that the new 4 asic hwsku testbed can be brought up.
How did you do it?
Add new t1-lag topo file to support 8 front panel interfaces.
Modify sonic.xml.j2 file to use higher number of vcpus based on the multi-asic hwsku, 6 asic hwsku will require more vcpus.
Add new testbed for msft_four_asic_vs and new DUT vlab-08.
Add a new minigraph for mutli-asic vlab-08 DUT to come up with t1-lag topology.
Start topology service before load_minigraph for multi-asic vs platform.
How did you verify/test it?
Bring up multi-asic vs image with 4-asics testbed using add-topo:
./testbed-cli.sh -t vtestbed.csv -m veos_vtb -k ceos add-topo vms-kvm-four-asic-t1-lag password.txt
Copy the minigraph to virtual switch.
Start topology service (systemctl start topology.service)
load minigraph.
Ensure that all internal and external interfaces are up and all BGP sessions are up.
* [testplan/console] Add Console Switch Test Plan

Signed-off-by: Jing Kan <[email protected]>
This commit introduced several playbook to recover vmhost server automatically.
It's extremely time consuming to redeploy all testbeds on a host server if the server is down or rebooted. This PR adds a new option in testbed-cli.sh to do a cleanup of host server, and adds a respin of vm that failed to start.
)

- What is the motivation for this PR?
Add test cases for shared headroom pool on top of the dynamic buffer calculation.

- How did you do it?
Update the existing test cases for the dynamic buffer calculation in the following aspects:
When checking the pool size, take shared headroom pool related parameters into account
Replace "headroom" with "size" as the it stands for size of the PG.
Add test case for shared headroom pool configuration test.

- How did you verify/test it?
Run the regression test.

Signed-off-by: Stephen Sun <[email protected]>
…ated to python3 yet, (#3026)

- What is the motivation for this PR?
To fix a platform API test issue on the Mellanox platform, part of the Mellanox platform APIs not migrated to python3 yet, for these have to start the test with python2 instead of python3.

- How did you do it?
Before starting the platform API test server, judge the test class name and the ASIC type, if the condition hits, start the test with python2.

- How did you verify/test it?
run the related platform API test on the Mellanox platform

Signed-off-by: Kebo Liu <[email protected]>
)

LAG ports in T1 TOPO need to be removed in Mellanox devices

How did you do it?
Remove LAG ports if the device is Mellanox

How did you verify/test it?
Visual inspection.
Fixes for platform API test cases:
- Update list of expected transceiver info keys
- Fix typo in fan_drawer_fans test
- Extend num_fans check in fan_drawer test 

Signed-off-by: Antonina Melnyk <[email protected]>
Description of PR
Add hwsku Nokia-7215 to port_utils,py

Summary:
Fixes # (issue)

Approach
What is the motivation for this PR?
Add support for Nokia-7215 hwsku in port_utils.py used to get port alias map

How did you do it?
Use existing mapping for et6448m as Nokia-7215 uses same mapping:

How did you verify/test it?
verified config facts and minigraph facts are correct for hwsku Nokia-7215
Description of PR
Initial test plan document for IxANVL BGP conformance test

Summary:
Test plan to include IxANVL test for BGP conformance into sonic-mgmt.
Description of PR
Summary:
Fixes platform API test failure due to thermals with low thresholds too low or high thresholds too high.
Thermals vary vastly with low bounds being -55 or lower, and high bounds with 115 or higher. It's hard to set a good threshold while still making the test useful.

Approach
What is the motivation for this PR?
In Arista's testing we found thermal sensors that do not conform to existing checks.

Co-authored-by: Zhi Yuan Carl Zhao <[email protected]>
Approach
What is the motivation for this PR?
Improve test case test_dynamic_minimum_table and test_set_psu_fan_speed:

remove time.sleep and replace with wait_until to make the test case more stable
change global logger to local logger
add more loggers to make the test result better undserstandable
How did you do it?
remove time.sleep and replace with wait_until to make the test case more stable
change global logger to local logger
add more loggers to make the test result better undserstandable
How did you verify/test it?
Run the test cases with --count 20, all passed
…of values to tests, and refactor test_sfp into smaller tests (#2965)

Summary:
The following modifications are made to some of the legacy platform tests:
- conftest.py:
    - Some of the platform tests run only on a supervisor card for a chassis.
      So, needed to change rand_one_dut_hostname to enum_dut_supervisor_hostname.
      However, in a multi-dut testbed that has no supervisor card (like DualTor),
      we would raise an exception that no supervisor card is present. Instead,
      we will now just return the first dut in the testbed.
    - Modified generate_params_supervisor_hostname function for this behavior.
- test_xcvr_info_in_db.py:
    - Use enum_rand_one_per_hwsku_frontend_hostname to run test against frontend
      node instead of rand_one_dut_hostname that could give us a supervisor card.

- test_sfp:
    - Use enum_rand_one_per_hwsku_frontend_hostname to run test against frontend
      node instead of rand_one_dut_hostname
    - Some of the new platforms don't support sfputils. So, added a check based
      on the presence of file /usr/share/sonic/device/<platform>/plugins/spfutil.py"
      If the file is not present, then we assume that sfputils is not supported.
      In this case, we don't do sfputils related steps in test_check_sfp_status_and_configure_sfp test.
      and skip test_check_sfp_low_power_mode test.

- test_show_platform.py:
    - Use enum_rand_one_per_hwsku_frontend_hostname to run tests against frontend
      node instead of rand_one_dut_hostname
    - test_show_platform_summary:
       - Added validation of fields in 'show platform summary' based on values in the inventory if defined.
          - hwsku - based on 'hwsku' variable in the inventory
          - platform - based on 'sonic_hw_platform' variable in the inventory
          - asic - based on 'asic_type' variable in the inventory
          - asic count - based on 'num_asics' variable in the inventory
    - test_show_syseeprom:
       - Validate values against 'syseeprom_info' dictionary if defined in the inventory
    - test_show_platform_psustatus:
       - Validate that atleast one of the PSU's shows status as OK.
    - test_show_platform_fan:
       - Validate that atleast one of the fans shows status as OK.


Approach
What is the motivation for this PR?
Need to run the legacy platform tests against a T2 chassis. However, some of the tests would run only on supervisor card, while others would run only on frontend nodes (linecards).

So, need to convert these tests to use the enum_* fixtures for dut selection, rather than rand_one_dut_hostname.

Also, we need to add some validation of the commands based on some variables that are defined in the inventory file - similar to the new PMON API validation.

How did you do it?
The following modifications are made to some of the legacy platform tests:

conftest.py:

Some of the platform tests run only on a supervisor card for a chassis. So, needed to change rand_one_dut_hostname to enum_dut_supervisor_hostname. However, in a multi-dut testbed that has no supervisor card (like DualTor), we would raise an exception that no supervisor card is present. Instead, we will now just return the first dut in the testbed.
Modified generate_params_supervisor_hostname function for this behavior.
test_xcvr_info_in_db.py:

Use enum_rand_one_per_hwsku_frontend_hostname to run test against frontend node instead of rand_one_dut_hostname that could give us a supervisor card.
test_sfp:

Broke into 3 smaller test for the 3 modules being tested
sfpshow
sfputil
show interface transceiver
These tests were added as a directory 'sfp' under platform_tests
In these tests:
Use enum_rand_one_per_hwsku_frontend_hostname to run test against frontend node instead of rand_one_dut_hostname
Added validation of 'sfpshow presence' and 'sfpshow eeprom'.
test_show_platform.py:

Use enum_rand_one_per_hwsku_frontend_hostname to run tests against frontend node instead of rand_one_dut_hostname
test_show_platform_summary:
Added validation of fields in 'show platform summary' based on values in the inventory if defined.
hwsku - based on 'hwsku' variable in the inventory
platform - based on 'sonic_hw_platform' variable in the inventory
asic - based on 'asic_type' variable in the inventory
asic count - based on 'num_asics' variable in the inventory
test_show_syseeprom:
Validate values against 'syseeprom_info' dictionary if defined in the inventory
test_show_platform_psustatus:
Validate that atleast one of the PSU's shows status as OK.
test_show_platform_fan:
Validate that atleast one of the fans shows status as OK.
How did you verify/test it?
Validated the modified tests against a chassis and also a pizza box.
This PR is to update recover_server.py

1. Add tests to syspath to address FactsCache issue
2. start-topo-vm -> start-vms.
wangxin and others added 29 commits March 10, 2021 13:41
When execute an ansible module, the detailed arguments and module result are logged
at DEBUG level by default. Sometimes, the module result could be too huge to be logged
even at DEBUG level.

This change added keyword option "verbose" to the method in AnsibleHostBase class
for executing ansible modules. Default value of "verbose" is "True". If "verbose" is set to
"False", only simplified messages will be logged at DEBUG level. This change also updated
some test scripts and the sanity check scripts to use this option.

Signed-off-by: Xin Wang <[email protected]>
…3113)

Common timer values in watchdog.yml file for testing watchdog API for DellEMC platforms

Co-authored-by: V P Subramaniam <[email protected]>
What/Why I did:

Enhanced test_po_cleanup.py for multi-asic platforms.

Also instead of stopping teamd stopping swss. This is done because when we stop teamd swss sends continuously lot of Error message like below because of which logAnalyzer is not able to capture end marker message in /tmp/syslog which is resulting VS test failure. This does not happen consistently and will need further debug. With this change /tmp/syslog size reduce from Mb to Kb
…atform (#3025)

What is the motivation for this PR?
Minigraph template changes to support minigraph generation for multi-asic platform.

How did you do it?
Pre-requisite: #3024
Add changes to minigraph templates to use the new data structure asic_topo_config and include asic topology.

How did you verify/test it?
With the changes in PR#3024:
Bring up four-asic VS testbed using the changes in: #2858
testbed-cli.sh -t vtestbed.csv -m veos_vtb -k ceos add-topo vms-kvm-four-asic-t1-lag password.txt
Deploy minigraph using:
./testbed-cli.sh -t vtestbed.csv -m veos_vtb deploy-mg vms-kvm-four-asic-t1-lag lab password.txt
With this, minigraph should be generated and deployed on the multi-asic VS DUT.
Check all interfaces status and BGP status.
With this PR made following changes:

Use asic_instance() to always return ASIC object

Rename get_asic() to get_asic_or_sonic_host() which will return sonic host if asic_index is None else return asic host object. This API is useful if we want to execute/run something on host as well on asic in multi-asic platforms

Updated all the testcases to use correct set of API's.

Fix the issue
#3103
…l message (#3123)

### Description of PR
If there is PortChannel inside Vlan, original code with throw and the module will fail with a short message like
```
E           RunAnsibleModuleFail: run module minigraph_facts failed, Ansible Results =>
E           {
E               "changed": false,
E               "failed": true,
E               "invocation": {
E                   "module_args": {
E                       "filename": null,
E                       "host": "str-msn2700-20"
E                   }
E               },
E               "msg": "PortChannel101"
E           }
```


### Type of change

- [ ] Bug fix
- [x] Testbed and Framework(new/improvement)
- [ ] Test case(new/improvement)

### Approach

#### How did you verify/test it?
Test `vlan/test_vlan.py` with
1. DUT SKU: Mellanox-SN2700-D48C8
2. topo: t0-56-po2vlan
What is the motivation for this PR?
#3024 introduced a new function with an argument called 'type'.
This will override existing python 'type' function. To avoid this, modify the argument name to 'neigh_type'
which can be 'VMs' or 'NEIGH_ASIC' based on the topo file being parsed.

How did you do it?
Modify the argument name to 'neigh_type'.

How did you verify/test it?
Bring up single-asic and multi-asic VS testbed with this change.

Signed-off-by: Suvarna Meenakshi <[email protected]>
… info fields missing (#3120)

Some vendors currently use their own SFP EEPROM parsing logic instead of using common logic in the sonic-platform-common repo. Thus, when a new field is added in the common code, if a vendor does not utilize the common code but rather implements their own parsing logic, their parser will not provide this field until the vendor adds logic to do so.

We are planning to refactor the sonic_sfp code in sonic-platform-common in hopes of making it easier for vendors to utilize the common code and move away from using their own parsers. Until then, this patch prevents the test case from failing if recently-added fields are not present, and instead logs warning messages, which should alert the vendor that they need to parse the new field(s).
In PR #2741, test script for announcing IP routes to PTF docker container was deprecated.
The function of announcing IP routes is moved to 'testbed-cli.sh add-topo'. Then we do
not need to run the test script to announce IP routes after a new topology is deployed.

However, there are still occasions that people may want to re-announce the IP routes to
PTF docker containers. Because announcing routes is part of add-topo, then the only
possible way to re-announce routes is to run 'testbed-cli.sh remove-topo' and
'testbed-cli.sh add-topo'. This is inconvenient and time consuming.

This change added a new 'announce-routes' sub-command to the testbed-cli.sh tool.
We can now just re-announce IP routes using command like below:
    ./testbed-cli.sh -t vtestbed.csv vms-kvm-t0 password.txt

Other changes:
* Corrected the inv_name field in vtestbed.csv file.
* Moved the 'announce_routes.py' module from ansible/roles/vm_set/library to ansible/library

Signed-off-by: Xin Wang <[email protected]>
What is the motivation for this PR?
1. The original cached decorator has limitations that it only supports being used for methods of class AnsibleBaseHost and its derivatives.
2. FactsCache returns None in either the FactsCache fails to find cached facts or the decorated function returns None.
3. utils functions in tests/common/utilities that try to retrieve host variables share a similar call pattern that the arguments all have hostname defined and have the same logic to check the inventory in cache reading or add the inventory in cache writing.

How did you do it?
1. Add a zone_getter argument to the cached decorator to let it receives a customizable function to get the zone.2
2. When FactsCache fails to find cached facts, let it returns FactsCache.NOTEXIST instead of None(None is a valid return from the decorated function)
3. Add arguments after_write and before_read to the cached decorator to let it have extra functionalities to process the facts after the cache reading/before the cache writing.
* Covers all three traffic scenarios (upstream, downstream via active toR, downstream via standby ToR) for the following cases:
    * Normal operation (no switchover/disruption)
    * Config reload
    * CLI switchover
* dhcp dual tor testing

* minor update on comment

* minor update

* always check state before each test starts

* move setup and teardown into a fixture function

* fix output type

* reset failed before and after restart
What is the motivation for this PR?
Coverage of sub-ports feature by test cases to improve the quality of SONiC.

How did you do it?
Added new test cases to PyTest.
Implementation is based on the Sub-ports design spec (https://github.com/Azure/SONiC/blob/master/doc/subport/sonic-sub-port-intf-hld.md)

How did you verify/test it?
py.test --testbed=testbed-t0 --inventory=../ansible/lab --testbed_file=../ansible/testbed.csv --host-pattern=testbed-t0 -- module-path=../ansible/library sub_port_interfaces

Any platform specific information?
SONiC Software Version: SONiC.master.130-dirty-20210221.030317
Distribution: Debian 10.8
Kernel: 4.19.0-12-2-amd64
Build commit: ce3b2cbf
Build date: Sun Feb 21 10:23:58 UTC 2021
Platform: x86_64-accton_wedge100bf_32x-r0
HwSKU: montara
ASIC: barefoot

Supported testbed topology if it's a new test case?
T0, T1

Signed-off-by: Oleksandr Kozodoi <[email protected]>
This is PR continuation of #2627 where infra changes were done to support copp on multi-asic platforms. In this PR test is enhanced to work on multi-asic platforms. Following are major changes:

Multi-asic as of now will support installing of nanomsg and ptf_nn_agent in syncd directly mode. This way test case will randomly select any front-asic syncd for verification. To support this needed to add iptable rules for HTTP and PTF Traffic forwarding from host to asic namespace. swap_syncd mode is not supported as of now.

All the docker name are translated to particular namespace/asic that is under test. (Added utility api for same).

Remove disable_lldp_for_testing fixture as noted below since test case is not dependent on that.
* Add PFC watchdog all-to-all test

Signed-off-by: Wei Bai [email protected]

How did you do it?
- Rename tests/ixia/pfcwd/files/pfcwd_2sender_2receiver_helper.py to tests/ixia/pfcwd/files/pfcwd_multi_node_helper.py
- Implement few new functions in pfcwd_multi_node_helper.py
- Modify test_pfcwd_2sender_2receiver.py to use new helper functions
- Add test_pfcwd_a2a.py to test PFC watchdog under all-to-all pattern

How did you verify/test it?
I did test using SONiC switches and IXIA chassis. The Tgen API version is 0.0.75. The IXIA Linux API server version is 9.10.

Supported testbed topology if it's a new test case?
T0 topology using IXIA chassis as the fanout
What is the motivation for this PR?
Strip the ip prefix in the ip address passed to simple_ip_packet

How did you do it?
Strip the prefix.

Signed-off-by: Longxiang Lyu <[email protected]>
* Improve post test sanity check

Currently if post test sanity check is enabled, the exactly same set of checks
will be performed just like pre test sanity check. Sometimes we may want to
perform different set of checks for post test sanity check.

This change improved sanity check in many ways:
* Added --post_check command line option.
* Added --post_check_items command line option for fine tuning post test sanity
  check items.
* Added 'post_check_items' keyword argument for the sanity_check marker for fine
  tuning post test sanity check items.
* Added support of passing arguments to the check functions defined in check
  fixtures.
* Added argument 'stage' to 'do_checks' function. Then the check functions
  would be able to know the stage (pre or post test) of checking.
* Used shell_cmds module to run the batch of commands for collecting logs in
  the print_logs function. This change reduced test execution time.
* Updated the document.

Signed-off-by: Xin Wang <[email protected]>
Only really less frequently changed content is cached. Although It is rare that cached content is inaccurate, it still could happen. Then it would be difficult to debug.

This change added code in run_tests.sh to cleanup cache before running pytest. Without cached
content, executing the first script may need extra time to gather facts again, but executing
subsequent scripts still can benefit from content cached while executing the first script.

Signed-off-by: Xin Wang <[email protected]>
…te (#3134)

Configure proper DUT router MAC pfc_asym.py saitest and fix storm stop template for Arista fanout

Signed-off-by: Vitaliy Senchyshyn <[email protected]>

What is the motivation for this PR?
- During SAI thrift switch initialization the default router MAC is configured (https://github.com/Azure/sonic-mgmt/blob/master/tests/saitests/switch.py#L79) instead of the one passed to the test. Due to this the traffic sent from PTF isn't forwarded by the DUT.
- The PFC storm stop template for Arista fanout wasn't updated to support pfc_asym which caused the pfc_gen.py script not stopped after each test case execution.

How did you verify/test it?
Ran pfc_asym and pfc_wd tests on BFN platform
Update the "show ip interface" command for multi asic to use -n <namespace> and -d all options

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <[email protected]>
…es mocker (#3145)

- What is the motivation for this PR?
On master/202012 branch, mellanox platform support getting gearbox temperature threshold. But the test case still expect "N/A" when mock gearbox temperature data. This PR is to fix it.

- How did you do it?
On master or newer branch, mock gearbox temperature threshold data.

- How did you verify/test it?
Manually run test case "test_show_platform_temperature_mocked"

- Any platform specific information?
Mellanox
- Fix interface name in msft_multi_asic_vs topo file.
- Pass num_asics parameter to port_alias.py only when
run on localhost. When port_alias.py is run on the DUT,
use library function to get number of asics.
-  Add parameters required for mulit-asic DUT in the veos_vtb
inventory file.

Signed-off-by: Suvarna Meenakshi <[email protected]>
Test cases:
- Upstream traffic:
    - Reboot active ToR
    - Reboot standby ToR
- Downstream to active:
    - Reboot standby ToR
- Downstream to standby:
    - Reboot active ToR

Signed-off-by: Lawrence Lee <[email protected]>
* Add the secureboot sanity check

* Fix bug

* Add the rule to ignore pyc files

* Fix no check result issue

* Fix bug

* Improve test script

* Fix space intent issue

* Remove no use parameter

* Add module_ignore_errors for shell

* Improve regex pattern
Performance improvement when shutting down multiple interfaces

Create shutdown_multiple and no_shutdown_multiple in eos.py and sonic.py to allow passing multiple interface names to be shutdown. Since these methods only need to connect to the device once, the operation is much faster (only a few seconds).

In fanout.py:shutdown() check if self.host has a shutdown_multiple attribute when a list of interface names is passed.
@ANISH-GOTTAPU ANISH-GOTTAPU merged commit c581d61 into ANISH-GOTTAPU:master Mar 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.