diff options
Diffstat (limited to 'src/db')
-rwxr-xr-x | src/db/dictionary.py | 8 | ||||
-rw-r--r-- | src/db/index.py | 61 | ||||
-rw-r--r-- | src/db/sql.py | 28 |
3 files changed, 23 insertions, 74 deletions
diff --git a/src/db/dictionary.py b/src/db/dictionary.py index f0f5fe9..bd468f1 100755 --- a/src/db/dictionary.py +++ b/src/db/dictionary.py @@ -11,9 +11,13 @@ import os import sys import time +from log import get_logger + from db import couch from db.schema import as_index_list, validate_collector_data +logger = get_logger() + class DictDB(): def __init__(self): @@ -42,9 +46,9 @@ class DictDB(): try: self.couchdb = self.server.database(self.database) - print("Database already exists") + logger.debug("Database already exists") except couch.exceptions.NotFound: - print("Creating database and indexes.") + logger.debug("Creating database and indexes.") self.couchdb = self.server.create(self.database) for i in as_index_list(): diff --git a/src/db/index.py b/src/db/index.py deleted file mode 100644 index 688ceeb..0000000 --- a/src/db/index.py +++ /dev/null @@ -1,61 +0,0 @@ -from pydantic import BaseSettings - - -class CouchIindex(BaseSettings): - domain: dict = { - "index": { - "fields": [ - "domain", - ] - }, - "name": "domain-json-index", - "type": "json" - } - ip: dict = { - "index": { - "fields": [ - "domain", - "ip" - ] - }, - "name": "ip-json-index", - "type": "json" - } - port: dict = { - "index": { - "fields": [ - "domain", - "port" - ] - }, - "name": "port-json-index", - "type": "json" - } - asn: dict = { - "index": { - "fields": [ - "domain", - "asn" - ] - }, - "name": "asn-json-index", - "type": "json" - } - asn_country_code: dict = { - "index": { - "fields": [ - "domain", - "asn_country_code" - ] - }, - "name": "asn-country-code-json-index", - "type": "json" - } - - -def as_list(): - index_list = list() - for item in CouchIindex().dict(): - index_list.append(CouchIindex().dict()[item]) - - return index_list diff --git a/src/db/sql.py b/src/db/sql.py index c47a69c..858ab6b 100644 --- a/src/db/sql.py +++ b/src/db/sql.py @@ -15,11 +15,12 @@ metadata = Base.metadata class Log(Base): __tablename__ = "log" - id = Column(Integer, primary_key=True) - timestamp = Column(Date, nullable=False, - default=datetime.datetime.utcnow) - username = Column(Text, nullable=False) - logtext = Column(Text, nullable=False) + id = Column(Integer, primary_key=True, server_default=text( + "nextval('log_id_seq'::regclass)")) + name = Column(Text, nullable=False) + level = Column(Text, nullable=False) + msg = Column(Text, nullable=False) + func = Column(Text, nullable=True) def as_dict(self): """Return JSON serializable dict.""" @@ -34,12 +35,17 @@ class Log(Base): return d @classmethod - def add(cls, username, logtext): - with sqla_session() as session: - logentry = Log() - logentry.username = username - logentry.logtext = logtext - session.add(logentry) + def add(cls, name, level, msg, func=""): + try: + with sqla_session() as session: + logentry = Log() + logentry.name = name + logentry.level = level + logentry.msg = msg + logentry.func = func + session.add(logentry) + except Exception as e: + print(f"Failed to add logentry: {e}") class Scanner(Base): |