MCPcopy Create free account
hub / github.com/OWASP/Python-Honeypot / load_all_modules

Function load_all_modules

core/get_modules.py:47–79  ·  view source on GitHub ↗

load all available modules Returns: an array of all module names

()

Source from the content-addressed store, hash-verified

45
46
47def load_all_modules():
48 """
49 load all available modules
50
51 Returns:
52 an array of all module names
53 """
54 # Search for Modules
55 # the modules are available in
56 # modules/category_name/module_name (e.g. modules/ftp/weak_password
57 # they will be listed based on the folder names and if "Dockerfile" exist!
58 # structure of module name:
59 # module_name = modules/(category_name/module_name)/__init.py
60 # example: module_name = modules/(ftp/weak_password)/__init.py
61 # = ftp/weak_password
62 module_names = []
63 module_basepath = os.path.dirname(inspect.getfile(modules))
64 path_pattern = module_basepath + '/*/*/__init__.py'
65
66 for module in glob(path_pattern):
67
68 module_dir = os.path.split(module)[0]
69 sub_module_name = os.path.split(module_dir)[1]
70 category_name = os.path.split(os.path.split(module_dir)[0])[1]
71 module_name = category_name + '/' + sub_module_name
72 dockerfile_path = os.path.join(module_dir, "Dockerfile")
73
74 if os.path.exists(dockerfile_path):
75 if module_name not in module_names:
76 module_names.append(module_name)
77 else:
78 warn(messages["module_not_available"].format(module_name))
79 return module_names

Callers 6

argv_parserFunction · 0.90
load_honeypot_engineFunction · 0.90
test_all_module_namesMethod · 0.90
test_load_all_modulesMethod · 0.90
all_module_namesFunction · 0.90

Calls 1

warnFunction · 0.90

Tested by 3

test_all_module_namesMethod · 0.72
test_load_all_modulesMethod · 0.72