This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository mum. See http://git.chorem.org/mum.git commit 5175283672a985cfd006a06a633dcf4834a09152 Author: Alexis Guilbaud <guilbaud@codelutin.com> Date: Thu Apr 9 13:59:59 2015 +0200 The conn modules must now specify which port it usually use. Then on init_conn, a connection is created if a open port of same number exists on the loaded conn mod --- app/module_loader.py | 3 +++ app/modules/connection_modules/ssh.py | 4 ++++ app/modules/storage_modules/shelve_db.py | 13 ++++++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/module_loader.py b/app/module_loader.py index 0e89ef1..7347484 100644 --- a/app/module_loader.py +++ b/app/module_loader.py @@ -315,6 +315,7 @@ class ModuleLoader: infos_mod['imported'] = loaded_mod infos_mod['class_name'] = getattr(mod_inst, 'get_name')() infos_mod['params'] = getattr(mod_inst, 'get_parameters')() + infos_mod['known_port'] = getattr(mod_inst, 'get_known_port')() self.loaded_mod_conn[mod_name] = infos_mod except AttributeError: print "Error : internal connection module " + mod_name + " could not have been loaded. " @@ -346,12 +347,14 @@ class ModuleLoader: mod_name: { 'params': {param1: type1, param2: type2, ...} => the parameters necessary to create the connection + 'known_port': int => the usual port used for this connection } } """ res = {} for mod in self.loaded_mod_conn: res[mod] = self.loaded_mod_conn[mod]['params'] + res[mod]['known_port'] = self.loaded_mod_conn[mod]['known_port'] return res def load_all_notification_modules(self): diff --git a/app/modules/connection_modules/ssh.py b/app/modules/connection_modules/ssh.py index f58dfcc..37ba540 100644 --- a/app/modules/connection_modules/ssh.py +++ b/app/modules/connection_modules/ssh.py @@ -10,6 +10,7 @@ class SSH: self.parameters = {"username": "string", "password": "string", "private_key": "file", "port": "int"} self.name = get_class_name() self.addr_host = addr_host + self.known_port = 22 self.CommandNotFoundException = cnfe if params is not None: key_path = str(key_loc) + str(params['private_key']) @@ -34,6 +35,9 @@ class SSH: def get_parameters(self): return self.parameters + def get_known_port(self): + return self.known_port + def exec_command(self, cmd): stdin, stdout, stderr = self.ssh.exec_command(cmd) out = stdout.read() diff --git a/app/modules/storage_modules/shelve_db.py b/app/modules/storage_modules/shelve_db.py index 01f1f78..122dca3 100644 --- a/app/modules/storage_modules/shelve_db.py +++ b/app/modules/storage_modules/shelve_db.py @@ -189,11 +189,12 @@ class shelve_db: def init_conn(dict_nmap_res, conn_infos): """ Returns an initialization for the connection configuration on a host. - :param dict_nmap_res: The result of the nmap detection in dictionnary form + :param dict_nmap_res: The result of the nmap detection in a dictionnary: :param conn_infos: A dictionnary containing informations about connection modules in the form : { mod_name: { 'params': {param1: type1, param2: type2, ...} + 'known_port': int } } :return: a dictionary containing: @@ -208,6 +209,16 @@ class shelve_db: dict_conn[port["portname"]][param] = None dict_conn[port["portname"]]["priority"] = 0 dict_conn[port["portname"]]["port"] = int(port["portid"]) + else: + for loaded_conn_mod in conn_infos: + if conn_infos[loaded_conn_mod]['known_port'] == int(port['portid']): + print "noob" + dict_conn[loaded_conn_mod] = {} + for param in conn_infos[loaded_conn_mod]['params']: + dict_conn[loaded_conn_mod][param] = None + dict_conn[loaded_conn_mod]["priority"] = 0 + dict_conn[loaded_conn_mod]["port"] = conn_infos[loaded_conn_mod]['known_port'] + print dict_conn return dict_conn def get_conn_param(self, args): -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.