diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/topotests/lib/common_config.py | 66 | 
1 files changed, 34 insertions, 32 deletions
diff --git a/tests/topotests/lib/common_config.py b/tests/topotests/lib/common_config.py index 54142e8526..a19c61b19d 100644 --- a/tests/topotests/lib/common_config.py +++ b/tests/topotests/lib/common_config.py @@ -330,13 +330,12 @@ def create_common_configurations(      for router in routers:          fname = "{}/{}/{}".format(tgen.logdir, router, FRRCFG_FILE)          try: -            frr_cfg_fd = open(fname, mode) -            if config_type: -                frr_cfg_fd.write(config_map[config_type]) -            for line in config_dict[router]: -                frr_cfg_fd.write("{} \n".format(str(line))) -            frr_cfg_fd.write("\n") - +            with open(fname, mode) as frr_cfg_fd: +                if config_type: +                    frr_cfg_fd.write(config_map[config_type]) +                for line in config_dict[router]: +                    frr_cfg_fd.write("{} \n".format(str(line))) +                frr_cfg_fd.write("\n")          except IOError as err:              logger.error("Unable to open FRR Config '%s': %s" % (fname, str(err)))              return False @@ -487,12 +486,13 @@ def save_initial_config_on_routers(tgen):      procs = {}      for rname in router_list:          logger.debug("Fetching running config for router %s", rname) -        procs[rname] = router_list[rname].popen( -            ["/usr/bin/env", "vtysh", "-c", "show running-config no-header"], -            stdin=None, -            stdout=open(target_cfg_fmt.format(rname), "w"), -            stderr=subprocess.PIPE, -        ) +        with open(target_cfg_fmt.format(rname), "w") as target_cfg_fd: +            procs[rname] = router_list[rname].popen( +                ["/usr/bin/env", "vtysh", "-c", "show running-config no-header"], +                stdin=None, +                stdout=target_cfg_fd, +                stderr=subprocess.PIPE, +            )      for rname, p in procs.items():          _, error = p.communicate()          if p.returncode: @@ -543,12 +543,13 @@ def reset_config_on_routers(tgen, routerName=None):      procs = {}      for rname in router_list:          logger.debug("Fetching running config for router %s", rname) -        procs[rname] = router_list[rname].popen( -            ["/usr/bin/env", "vtysh", "-c", "show running-config no-header"], -            stdin=None, -            stdout=open(run_cfg_fmt.format(rname, gen), "w"), -            stderr=subprocess.PIPE, -        ) +        with open(run_cfg_fmt.format(rname, gen), "w") as run_cfg_fd: +            procs[rname] = router_list[rname].popen( +                ["/usr/bin/env", "vtysh", "-c", "show running-config no-header"], +                stdin=None, +                stdout=run_cfg_fd, +                stderr=subprocess.PIPE, +            )      for rname, p in procs.items():          _, error = p.communicate()          if p.returncode: @@ -567,19 +568,20 @@ def reset_config_on_routers(tgen, routerName=None):          logger.debug(              "Generating delta for router %s to new configuration (gen %d)", rname, gen          ) -        procs[rname] = tgen.net.popen( -            [ -                "/usr/lib/frr/frr-reload.py", -                "--test-reset", -                "--input", -                run_cfg_fmt.format(rname, gen), -                "--test", -                target_cfg_fmt.format(rname), -            ], -            stdin=None, -            stdout=open(delta_fmt.format(rname, gen), "w"), -            stderr=subprocess.PIPE, -        ) +        with open(delta_fmt.format(rname, gen), "w") as delta_fd: +            procs[rname] = tgen.net.popen( +                [ +                    "/usr/lib/frr/frr-reload.py", +                    "--test-reset", +                    "--input", +                    run_cfg_fmt.format(rname, gen), +                    "--test", +                    target_cfg_fmt.format(rname), +                ], +                stdin=None, +                stdout=delta_fd, +                stderr=subprocess.PIPE, +            )      for rname, p in procs.items():          _, error = p.communicate()          if p.returncode:  | 
