Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cyber-sandbox-creator
Manage
Activity
Members
Labels
Plan
Issues
10
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
MUNI-KYPO-CSC
cyber-sandbox-creator
Commits
5a301c48
Commit
5a301c48
authored
4 years ago
by
Attila Farkas
Committed by
Jan Vykopal
4 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Revert "add usage graphics"
This reverts commit
73516ffb
parent
eeb5ef6e
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
create.py
+1
-1
1 addition, 1 deletion
create.py
modules/ansible_generator.py
+15
-4
15 additions, 4 deletions
modules/ansible_generator.py
modules/file_manager.py
+11
-5
11 additions, 5 deletions
modules/file_manager.py
modules/input_argument_parser.py
+4
-0
4 additions, 0 deletions
modules/input_argument_parser.py
with
31 additions
and
10 deletions
create.py
+
1
−
1
View file @
5a301c48
...
...
@@ -18,7 +18,7 @@ device_definitions = open_yaml(INPUT_FILE_NAME)
validate_device_definitions
(
device_definitions
)
preprocess
(
device_definitions
,
FLAGS
)
prepare_directories
(
device_definitions
)
prepare_directories
(
device_definitions
,
FLAGS
)
generate_vagrantfile
(
device_definitions
,
FLAGS
)
generate_playbooks
(
device_definitions
,
FLAGS
)
...
...
This diff is collapsed.
Click to expand it.
modules/ansible_generator.py
+
15
−
4
View file @
5a301c48
"""
Contain functions for ansible file generation.
"""
from
modules.file_manager
import
generate_file
,
copy_template_file
from
modules.file_manager
import
generate_file
,
copy_template_file
,
\
copy_user_provisioning_dir
from
modules.ansible_vars_generator
import
generate_ansible_vars
from
conf.border_router
import
BORDER_ROUTER_NAME
...
...
@@ -27,8 +28,9 @@ def _create_config_playbooks(input_definitions, flags):
device
[
"
name
"
]
+
"
/tasks/main.yml
"
)
def
_create_user_playbooks
(
input_definitions
):
"""
Generate template playbooks and roles for users.
"""
def
_generate_user_playbooks
(
input_definitions
):
"""
Generate example user playbooks.
"""
copy_template_file
(
"
playbook
"
,
"
provisioning/playbook.yml
"
)
if
input_definitions
[
"
hosts
"
]:
copy_template_file
(
"
user_hosts
"
,
...
...
@@ -48,6 +50,15 @@ def _create_user_playbooks(input_definitions):
"
/tasks/main.yml
"
,
router_name
=
router
[
"
name
"
])
def
_create_user_playbooks
(
input_definitions
,
flags
):
"""
Copy or generate template playbooks and roles for users.
"""
if
"
provisioning_dir
"
in
flags
and
flags
[
"
provisioning_dir
"
]:
copy_user_provisioning_dir
(
flags
[
"
provisioning_dir
"
])
else
:
_generate_user_playbooks
(
input_definitions
)
def
generate_playbooks
(
input_definitions
,
flags
):
"""
Generate ansible vars and playbooks.
...
...
@@ -56,4 +67,4 @@ def generate_playbooks(input_definitions, flags):
"""
generate_ansible_vars
(
input_definitions
,
flags
)
_create_config_playbooks
(
input_definitions
,
flags
)
_create_user_playbooks
(
input_definitions
)
_create_user_playbooks
(
input_definitions
,
flags
)
This diff is collapsed.
Click to expand it.
modules/file_manager.py
+
11
−
5
View file @
5a301c48
...
...
@@ -81,7 +81,7 @@ def _load_template(template_name):
def
_copy_directory
(
source
,
destination
):
"""
Copy directory recursively form templates dir to the destination.
"""
try
:
shutil
.
copytree
(
"
./templates/
"
+
source
,
destination
)
shutil
.
copytree
(
source
,
destination
)
except
OSError
:
cleanup_and_exit
(
"
Could not copy directory
"
+
str
(
source
)
+
"
.
"
)
...
...
@@ -124,7 +124,7 @@ def _create_provisioning_directories(directory, device_definitions):
cleanup_and_exit
(
"
Could not create directories for provisioning.
"
)
def
prepare_directories
(
device_definitions
):
def
prepare_directories
(
device_definitions
,
flags
):
"""
Prepare the necessary directory structure.
"""
_remove_sandbox
()
...
...
@@ -135,14 +135,20 @@ def prepare_directories(device_definitions):
"
.
"
)
_create_provisioning_directories
(
"
base_provisioning
"
,
device_definitions
)
_create_provisioning_directories
(
"
provisioning
"
,
device_definitions
)
if
"
provisioning_dir
"
not
in
flags
or
not
flags
[
"
provisioning_dir
"
]:
_create_provisioning_directories
(
"
provisioning
"
,
device_definitions
)
_copy_directory
(
"
interface
"
,
OUTPUT_DIRECTORY
+
_copy_directory
(
"
./templates/
interface
"
,
OUTPUT_DIRECTORY
+
"
/base_provisioning/roles/interface
"
)
_copy_directory
(
"
common
"
,
OUTPUT_DIRECTORY
+
_copy_directory
(
"
./templates/
common
"
,
OUTPUT_DIRECTORY
+
"
/base_provisioning/roles/common
"
)
def
copy_user_provisioning_dir
(
path
):
"""
Copy provisioning files provided by the user to the correct dir.
"""
_copy_directory
(
path
,
OUTPUT_DIRECTORY
+
"
/provisioning
"
)
def
_remove_sandbox
():
"""
Remove the existing sandbox.
"""
shutil
.
rmtree
(
OUTPUT_DIRECTORY
,
True
)
...
...
This diff is collapsed.
Click to expand it.
modules/input_argument_parser.py
+
4
−
0
View file @
5a301c48
...
...
@@ -24,11 +24,15 @@ def parse_input_args():
parser
.
add_argument
(
"
--border_router
"
,
help
=
"
creates a border router with connection to
"
"
all routers
"
,
action
=
"
store_true
"
)
parser
.
add_argument
(
"
--provisioning_dir
"
,
help
=
"
path to directory with user provisioning files
"
,
action
=
"
store
"
)
args
=
parser
.
parse_args
()
input_file_name
=
args
.
definition_file
flags
[
"
ansible_local
"
]
=
args
.
ansible_local
flags
[
"
verbose_ansible
"
]
=
args
.
verbose_ansible
flags
[
"
border_router
"
]
=
args
.
border_router
flags
[
"
provisioning_dir
"
]
=
args
.
provisioning_dir
return
input_file_name
,
flags
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment