Skip to content
Snippets Groups Projects
Commit 01681c23 authored by Jan Mach's avatar Jan Mach
Browse files

Reimplemented mentat-netmngr.py to work with PostgreSQL instead of MongoDB.

This commit also contains following related improvements:

* documentation enhancements
* configuration file cleanup
* runlog enhancement, better information about items created and deleted
* code simplification, the status and update command now share the same code
* coding style improvements using pylint tool

(Redmine issue: #3752)
parent ec747a09
No related branches found
No related tags found
No related merge requests found
......@@ -9,42 +9,6 @@
# Custom script configurations
#---------------------------------------------------------------------------
# Name of the host running the database.
# default: *__core_database* settings
# type: string
#
#"db_host": "localhost",
# Port number for connecting to database.
# default: *__core_database* settings
# type: integer
#
#"db_port": 27017,
# Socket timeout in miliseconds for communicating with database.
# default: *__core_database* settings
# type: integer
#
#"db_timeout": 3600000,
# Additional database connection parameters.
# default: *__core_database* settings
# type: dict
#
#"db_args": null,
# Name of the database for storing abuse group networks.
# default: *__core_database* settings
# type: string
#
#"database": "mentat",
# Name of the collection for storing abuse group networks.
# default: *__core_database* settings
# type: string
#
#"collection": "groups",
# Path to whois file containing network data.
# default: None
# type: string
......
......@@ -328,6 +328,12 @@ def t_network_record(val, source = None):
else:
record['description'] = val['description']
elif 'descr' in val:
if isinstance(val['descr'], list):
record['description'] = ', '.join(val['descr'])
else:
record['description'] = val['descr']
if 'source' in val:
record['source'] = val['source']
else:
......
......@@ -175,6 +175,22 @@ class GroupModel(MODEL):
def __str__(self):
return '{}'.format(self.name)
def groupmodel_from_typeddict(structure, defaults = None):
"""
Convenience method for creating :py:class:`mentat.datatype.sqldb.GroupModel`
object from :py:class:`mentat.datatype.internal.AbuseGroup` objects.
"""
if not defaults:
defaults = {}
sqlobj = GroupModel()
sqlobj.name = structure.get('_id')
sqlobj.source = structure.get('source')
sqlobj.description = structure.get('description', defaults.get('netname', '-- undisclosed --'))
sqlobj.createtime = structure.get('ts')
return sqlobj
class NetworkModel(MODEL):
"""
......@@ -197,6 +213,22 @@ class NetworkModel(MODEL):
def __str__(self):
return '{}'.format(self.netname)
def networkmodel_from_typeddict(structure, defaults = None):
"""
Convenience method for creating :py:class:`mentat.datatype.sqldb.NetworkModel`
object from :py:class:`mentat.datatype.internal.NetworkRecord` objects.
"""
if not defaults:
defaults = {}
sqlobj = NetworkModel()
sqlobj.network = structure.get('network')
sqlobj.source = structure.get('source')
sqlobj.netname = structure.get('netname', defaults.get('netname', '-- undisclosed --'))
sqlobj.description = structure.get('description', defaults.get('description', None))
return sqlobj
class FilterModel(MODEL):
"""
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment