diff options
author | Quentin Dufour <quentin@deuxfleurs.fr> | 2022-09-15 17:00:02 +0200 |
---|---|---|
committer | Quentin Dufour <quentin@deuxfleurs.fr> | 2022-09-15 17:00:02 +0200 |
commit | 62e4ed55a47f04546a195e3d514b060fe3ac23cb (patch) | |
tree | 762a2c14e61abb98ec5ec81eab0fb0ce45dcb915 /mknet | |
parent | cfd3e500feb59ba3c1bd1247dac3b4537c8592ba (diff) | |
download | mknet-62e4ed55a47f04546a195e3d514b060fe3ac23cb.tar.gz mknet-62e4ed55a47f04546a195e3d514b060fe3ac23cb.zip |
Implement scenario subcommand
Diffstat (limited to 'mknet')
-rwxr-xr-x | mknet | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -349,22 +349,31 @@ def destroy(): net.ns.forget("unconfined") os.remove(".current_state.yml") +def scenario(config, cmd): + create(config) + runall(cmd) + destroy() + if __name__ == "__main__": if len(sys.argv) < 2: progname = os.path.basename(sys.argv[0]) if len(sys.argv) > 0 else "mknet" print(f"""Usage: - {progname} create [config_path] # create a new network. config_path defailt to config.yml + {progname} scenario <config_path> <cmd> [args...] # all in one simulation: create a network, run the command on all nodes, destroy the network + + {progname} create [config_path] # create a new network. config_path defailt to topo/with-vdsl.yml {progname} run-all <cmd> [args...] # run a command as each host. set the IP, NAME and ZONE environment variables {progname} run <name> [cmd [args...]] # run command in host named <name>. Use zonename:name if multiple zones hosts server with same name. If cmd is empty, run a shell {progname} destroy # destroy the current environment""") exit() cmd = sys.argv[1] if cmd == "create": - create(sys.argv[2] if len(sys.argv) > 2 else "config.yml") + create(sys.argv[2] if len(sys.argv) > 2 else "topo/with-vdsl.yml") elif cmd == "run": run(sys.argv[2], sys.argv[3:]) elif cmd == "run-all": runall(sys.argv[2:]) + elif cmd == "scenario": + scenario(sys.argv[2], sys.argv[3:]) elif cmd == "destroy": destroy() else: |