Skip to content
Snippets Groups Projects
create.py 1.72 KiB
Newer Older
Attila Farkas's avatar
Attila Farkas committed
#!/usr/bin/env python3

import argparse
import sys

from cyber_sandbox_creator import creator

parser = argparse.ArgumentParser()

parser.add_argument("topology_file",
                    help="path to the topology definition")
parser.add_argument("-o", "--output-dir",
                    help="output directory for the sandbox", action="store")
parser.add_argument("-a", "--ansible-installed",
                    help="use Ansible installed on the host machine",
Attila Farkas's avatar
Attila Farkas committed
                    action="store_true")
parser.add_argument("-b", "--border-router",
                    help="create a border router", action="store_true")
parser.add_argument("--rewrite-provisioning",
                    help="generate clean user provisioning even if it exists",
                    action="store_true")
parser.add_argument("--provisioning-dir",
Attila Farkas's avatar
Attila Farkas committed
                    help="path to directory with user provisioning files",
                    action="store")
parser.add_argument("--extra-vars",
Attila Farkas's avatar
Attila Farkas committed
                    help="path to file with extra_vars for Ansible",
                    action="store")
parser.add_argument("--verbose-ansible",
                    help="set verbose output for Ansible (-vv)",
                    action="store_true")
Attila Farkas's avatar
Attila Farkas committed

args = parser.parse_args()

if args.output_dir:
    output_dir: str = args.output_dir
else:
    output_dir: str = ""
Attila Farkas's avatar
Attila Farkas committed

try:
    creator.create(args.topology_file, output_dir, args.ansible_installed,
                   args.border_router, args.provisioning_dir, args.extra_vars,
                   args.rewrite_provisioning, args.verbose_ansible)
Attila Farkas's avatar
Attila Farkas committed
except (ValueError, IOError) as e:
    print(f"Could not create intermediate sandbox definition:\n{e}")
    sys.exit(1)

print("Intermediate sandbox definition was successfully created")