From 191746e499f0dc1419dfaa4affe2effefcf7d956 Mon Sep 17 00:00:00 2001 From: Jan Mach <jan.mach@cesnet.cz> Date: Tue, 24 Oct 2017 14:57:44 +0200 Subject: [PATCH] Code style improvements and lint error fixes with Pylint tool. (Redmine issue: #3443) --- .pylintrc-lib | 2 +- bin/mentat-hawat.py | 4 ++-- lib/hawat/base.py | 18 ------------------ lib/hawat/blueprints/auth_dev/__init__.py | 2 +- lib/hawat/blueprints/design/__init__.py | 2 ++ lib/hawat/blueprints/events/__init__.py | 12 +----------- lib/hawat/blueprints/geoip/__init__.py | 10 +--------- lib/hawat/blueprints/geoip/forms.py | 10 ++++------ lib/hawat/blueprints/groups/__init__.py | 2 +- lib/hawat/blueprints/reports/__init__.py | 12 +----------- lib/hawat/blueprints/skeleton/__init__.py | 12 +----------- lib/hawat/blueprints/whois/__init__.py | 10 +--------- lib/mentat/__init__.py | 10 ++++++++++ lib/mentat/datatype/sqldb.py | 4 ++-- 14 files changed, 28 insertions(+), 82 deletions(-) diff --git a/.pylintrc-lib b/.pylintrc-lib index 081573b30..56250826b 100644 --- a/.pylintrc-lib +++ b/.pylintrc-lib @@ -274,7 +274,7 @@ contextmanager-decorators=contextlib.contextmanager # List of members which are set dynamically and missed by pylint inference # system, and so shouldn't trigger E1101 when accessed. Python regular # expressions are accepted. -generated-members= +generated-members=query,commit,add,dirty,delete # Tells whether missing members accessed in mixin class should be ignored. A # mixin class is detected if its name ends with "mixin" (case insensitive). diff --git a/bin/mentat-hawat.py b/bin/mentat-hawat.py index 163802c80..9848c2eae 100755 --- a/bin/mentat-hawat.py +++ b/bin/mentat-hawat.py @@ -47,14 +47,14 @@ if __name__ == '__main__': # capabilities or for purposes of testing. Please refer to the documentation # for more information. # - app = hawat.create_app( + APP = hawat.create_app( config_object = 'hawat.config.DevelopmentConfig' ) # # Launch WSGI application, bind to localhost:5000 and enforce debug mode to True. # - app.run( + APP.run( host = '127.0.0.1', port = 5000, debug = True diff --git a/lib/hawat/base.py b/lib/hawat/base.py index 4ef4c805b..4feb84902 100644 --- a/lib/hawat/base.py +++ b/lib/hawat/base.py @@ -221,24 +221,6 @@ class HawatSimpleView(HawatBaseView): return flask.render_template(self.get_view_template(), **context) -class HawatSearchView(HawatBaseView): - """ - Base class for search form views. - """ - - @staticmethod - def get_db_handle(): - raise NotImplementedError() - - @staticmethod - def get_col_handle(): - raise NotImplementedError() - - @property - def dbcollection(self): - return hawat.db.col_get(self.get_db_handle(), self.get_col_handle()) - - class HawatCRUDLView(HawatBaseView): """ Base class for all CREATE,READ,UPDATE,DELETE,LIST views. This base class provides diff --git a/lib/hawat/blueprints/auth_dev/__init__.py b/lib/hawat/blueprints/auth_dev/__init__.py index 8a72733a9..184c5b343 100644 --- a/lib/hawat/blueprints/auth_dev/__init__.py +++ b/lib/hawat/blueprints/auth_dev/__init__.py @@ -118,7 +118,7 @@ class LoginView(hawat.base.HawatSimpleView): return flask.redirect(flask.url_for('index')) except sqlalchemy.orm.exc.MultipleResultsFound: - flask.current_app.logger.error("Multiple results found for user login '{}'.".format(user_login)) + flask.current_app.logger.error("Multiple results found for user login '{}'.".format(form.login.data)) return flask.abort(500) except sqlalchemy.orm.exc.NoResultFound: flask.flash( diff --git a/lib/hawat/blueprints/design/__init__.py b/lib/hawat/blueprints/design/__init__.py index 02f67ce69..5d75e539f 100644 --- a/lib/hawat/blueprints/design/__init__.py +++ b/lib/hawat/blueprints/design/__init__.py @@ -23,6 +23,8 @@ __author__ = "Jan Mach <jan.mach@cesnet.cz>" __credits__ = "Pavel Kácha <pavel.kacha@cesnet.cz>, Andrea Kropáčová <andrea.kropacova@cesnet.cz>" +from flask_babel import lazy_gettext + import hawat.base diff --git a/lib/hawat/blueprints/events/__init__.py b/lib/hawat/blueprints/events/__init__.py index 38988eb9b..8df62b36d 100644 --- a/lib/hawat/blueprints/events/__init__.py +++ b/lib/hawat/blueprints/events/__init__.py @@ -31,7 +31,7 @@ import hawat.base import hawat.db -class SearchView(hawat.base.HawatSearchView): +class SearchView(hawat.base.HawatBaseView): decorators = [flask_login.login_required] methods = ['GET'] @@ -59,16 +59,6 @@ class SearchView(hawat.base.HawatSearchView): def get_template_context(self): context = super().get_template_context() - storage = hawat.db.db_get() - database = storage.database('db') - collection = database.collection('col_alerts') - - events = [] - cursor = collection.find().limit(50) - for doc in cursor: - events.append(doc) - context['events'] = events - return context def dispatch_request(self): diff --git a/lib/hawat/blueprints/geoip/__init__.py b/lib/hawat/blueprints/geoip/__init__.py index faa47b3b9..5d3f062e2 100644 --- a/lib/hawat/blueprints/geoip/__init__.py +++ b/lib/hawat/blueprints/geoip/__init__.py @@ -36,7 +36,7 @@ import hawat.db from hawat.blueprints.geoip.forms import GeoipSearchForm -class SearchView(hawat.base.HawatSearchView): +class SearchView(hawat.base.HawatBaseView): decorators = [flask_login.login_required] methods = ['GET'] @@ -61,14 +61,6 @@ class SearchView(hawat.base.HawatSearchView): def get_menu_title(): return lazy_gettext('Internal geoip') - @staticmethod - def get_db_handle(): - return 'db' - - @staticmethod - def get_col_handle(): - return 'col_groups' - def dispatch_request(self): context = self.get_template_context() diff --git a/lib/hawat/blueprints/geoip/forms.py b/lib/hawat/blueprints/geoip/forms.py index 9c3a6de4c..d3d4f2ca9 100644 --- a/lib/hawat/blueprints/geoip/forms.py +++ b/lib/hawat/blueprints/geoip/forms.py @@ -17,13 +17,11 @@ __author__ = "Jan Mach <jan.mach@cesnet.cz>" __credits__ = "Pavel Kácha <pavel.kacha@cesnet.cz>, Andrea Kropáčová <andrea.kropacova@cesnet.cz>" -import re - import ipranges -import flask_wtf import wtforms -from flask_babel import gettext +import flask_wtf +from flask_babel import lazy_gettext, gettext def check_search_data(form, field): @@ -45,12 +43,12 @@ class GeoipSearchForm(flask_wtf.FlaskForm): Class representing internal geoip search form. """ search = wtforms.StringField( - gettext('Search internal geoip:'), + lazy_gettext('Search internal geoip:'), validators = [ wtforms.validators.DataRequired(), check_search_data ] ) submit = wtforms.SubmitField( - gettext('Search') + lazy_gettext('Search') ) diff --git a/lib/hawat/blueprints/groups/__init__.py b/lib/hawat/blueprints/groups/__init__.py index a51ae83b7..5b6c5a3c8 100644 --- a/lib/hawat/blueprints/groups/__init__.py +++ b/lib/hawat/blueprints/groups/__init__.py @@ -42,7 +42,7 @@ from flask_babel import gettext, lazy_gettext # import hawat.base import hawat.db -from mentat.datatype.sqldb import GroupModel +from mentat.datatype.sqldb import GroupModel, SettingsReportingModel from hawat.blueprints.groups.forms import CreateGroupForm, UpdateGroupForm,\ AdminUpdateGroupForm diff --git a/lib/hawat/blueprints/reports/__init__.py b/lib/hawat/blueprints/reports/__init__.py index 276b5afde..73bce2df4 100644 --- a/lib/hawat/blueprints/reports/__init__.py +++ b/lib/hawat/blueprints/reports/__init__.py @@ -31,7 +31,7 @@ import hawat.base import hawat.db -class SearchView(hawat.base.HawatSearchView): +class SearchView(hawat.base.HawatBaseView): decorators = [flask_login.login_required] methods = ['GET'] @@ -59,16 +59,6 @@ class SearchView(hawat.base.HawatSearchView): def get_template_context(self): context = super().get_template_context() - storage = hawat.db.db_get() - database = storage.database('db') - collection = database.collection('col_reports') - - reports = [] - cursor = collection.find().limit(30) - for doc in cursor: - reports.append(doc) - context['reports'] = reports - return context def dispatch_request(self): diff --git a/lib/hawat/blueprints/skeleton/__init__.py b/lib/hawat/blueprints/skeleton/__init__.py index bd5b47a79..9d8134acc 100644 --- a/lib/hawat/blueprints/skeleton/__init__.py +++ b/lib/hawat/blueprints/skeleton/__init__.py @@ -30,7 +30,7 @@ import hawat.base import hawat.db -class SearchView(hawat.base.HawatSearchView): +class SearchView(hawat.base.HawatBaseView): decorators = [flask_login.login_required] methods = ['GET'] @@ -50,16 +50,6 @@ class SearchView(hawat.base.HawatSearchView): def get_template_context(self): context = super().get_template_context() - storage = hawat.db.db_get() - database = storage.database('db') - collection = database.collection('col_users') - - users = [] - cursor = collection.find().limit(3) - for doc in cursor: - users.append(doc) - context['users'] = users - return context def dispatch_request(self): diff --git a/lib/hawat/blueprints/whois/__init__.py b/lib/hawat/blueprints/whois/__init__.py index 173132c95..749216e1a 100644 --- a/lib/hawat/blueprints/whois/__init__.py +++ b/lib/hawat/blueprints/whois/__init__.py @@ -36,7 +36,7 @@ import hawat.db from hawat.blueprints.whois.forms import WhoisSearchForm -class SearchView(hawat.base.HawatSearchView): +class SearchView(hawat.base.HawatBaseView): decorators = [flask_login.login_required] methods = ['GET'] @@ -61,14 +61,6 @@ class SearchView(hawat.base.HawatSearchView): def get_menu_title(): return lazy_gettext('Internal whois') - @staticmethod - def get_db_handle(): - return 'db' - - @staticmethod - def get_col_handle(): - return 'col_groups' - def dispatch_request(self): context = self.get_template_context() diff --git a/lib/mentat/__init__.py b/lib/mentat/__init__.py index 7c4517862..7409e0538 100644 --- a/lib/mentat/__init__.py +++ b/lib/mentat/__init__.py @@ -8,6 +8,16 @@ #------------------------------------------------------------------------------- +""" +*Mentat* is a distributed modular SIEM (Security Information and Event Management System) +designed to monitor networks of all sizes. Its architecture enables reception, +storage, analysis, processing and response to a great volume of security incidents +originating from various sources, such as honeypots, network probes, log analysers, +third party detection services, etc. The Mentat system has been developed as an +open-source project. +""" + + __author__ = "Jan Mach <jan.mach@cesnet.cz>" __credits__ = "Pavel Kácha <pavel.kacha@cesnet.cz>, Andrea Kropáčová <andrea.kropacova@cesnet.cz>" __version__ = "0.4.50" diff --git a/lib/mentat/datatype/sqldb.py b/lib/mentat/datatype/sqldb.py index 209524183..113dff34d 100644 --- a/lib/mentat/datatype/sqldb.py +++ b/lib/mentat/datatype/sqldb.py @@ -76,11 +76,11 @@ class MODEL: All required database objects should be implemented by extending this base model. """ @declared_attr - def id(cls): + def id(self): return sqlalchemy.Column(sqlalchemy.Integer, primary_key = True) @declared_attr - def createtime(cls): + def createtime(self): return sqlalchemy.Column(sqlalchemy.DateTime, default = datetime.datetime.utcnow) MODEL = declarative_base(cls = MODEL) -- GitLab