Implement scenario subcommand
This commit is contained in:
parent
cfd3e500fe
commit
62e4ed55a4
2 changed files with 12 additions and 3 deletions
|
@ -47,7 +47,7 @@ import garage_admin_sdk
|
|||
(Not yet implemented)
|
||||
|
||||
```bash
|
||||
./mknet scenario ./scenarios/garage-s3lat ./topo/single-dc.yml
|
||||
./mknet scenario ./topo/single-dc.yml ./scenarios/garage-s3lat
|
||||
```
|
||||
|
||||
## Manual usage
|
||||
|
|
13
mknet
13
mknet
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue