summaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
Diffstat (limited to 'src/db')
-rwxr-xr-xsrc/db/db.py9
-rw-r--r--src/db/scanner.py30
2 files changed, 17 insertions, 22 deletions
diff --git a/src/db/db.py b/src/db/db.py
index cbb87ce..3926fda 100755
--- a/src/db/db.py
+++ b/src/db/db.py
@@ -1,12 +1,3 @@
-# A database storing dictionaries, keyed on a timestamp. value = A
-# dict which will be stored as a JSON object encoded in UTF-8. Note
-# that dict keys of type integer or float will become strings while
-# values will keep their type.
-
-# Note that there's a (slim) chance that you'd stomp on the previous
-# value if you're too quick with generating the timestamps, ie
-# invoking time.time() several times quickly enough.
-
import os
import sys
import time
diff --git a/src/db/scanner.py b/src/db/scanner.py
index e9ac8c3..625fd8e 100644
--- a/src/db/scanner.py
+++ b/src/db/scanner.py
@@ -1,7 +1,7 @@
import enum
from datetime import datetime
-from sqlalchemy import (Boolean, Column, DateTime, Integer, Unicode,
+from sqlalchemy import (JSON, Boolean, Column, DateTime, Integer, Unicode,
UniqueConstraint, create_engine)
from sqlalchemy.exc import IntegrityError
from sqlalchemy.ext.declarative import declarative_base
@@ -22,13 +22,12 @@ class Scanner(Base):
id = Column(Integer, autoincrement=True, primary_key=True)
uuid = Column(Unicode(37), nullable=False)
- enabled = Column(Boolean, nullable=False)
+ enabled = Column(Boolean, default=False, nullable=False)
first_seen = Column(DateTime, default=datetime.utcnow, nullable=False)
last_seen = Column(DateTime, default=datetime.utcnow,
onupdate=datetime.utcnow, nullable=False)
- comment = Column(Unicode(255), nullable=True)
- scanners = Column(Unicode(2048), nullable=False)
- targets = Column(Unicode(255), nullable=True)
+ comment = Column(Unicode(255), default="", nullable=True)
+ scanners = Column(JSON, nullable=True)
def as_dict(self):
"""Return JSON serializable dict."""
@@ -47,7 +46,8 @@ class Scanner(Base):
@classmethod
def comment(cls, uuid, comment):
with SqlDB.sql_session() as session:
- scanner: Scanner = session.query(Scanner).filter(Scanner.uuid == uuid).one_or_none()
+ scanner: Scanner = session.query(Scanner).filter(
+ Scanner.uuid == uuid).one_or_none()
if scanner:
scanner.comment = comment
@@ -58,7 +58,8 @@ class Scanner(Base):
@classmethod
def enable(cls, uuid):
with SqlDB.sql_session() as session:
- scanner: Scanner = session.query(Scanner).filter(Scanner.uuid == uuid).one_or_none()
+ scanner: Scanner = session.query(Scanner).filter(
+ Scanner.uuid == uuid).one_or_none()
if scanner:
scanner.enabled = True
@@ -69,7 +70,8 @@ class Scanner(Base):
@classmethod
def disable(cls, uuid):
with SqlDB.sql_session() as session:
- scanner: Scanner = session.query(Scanner).filter(Scanner.uuid == uuid).one_or_none()
+ scanner: Scanner = session.query(Scanner).filter(
+ Scanner.uuid == uuid).one_or_none()
if scanner:
scanner.enabled = False
@@ -84,9 +86,11 @@ class Scanner(Base):
with SqlDB.sql_session() as session:
if scanner_id:
- scanner: Scanner = session.query(Scanner).filter(Scanner.id == scanner_id).one_or_none()
+ scanner: Scanner = session.query(Scanner).filter(
+ Scanner.id == scanner_id).one_or_none()
elif uuid:
- scanner: Scanner = session.query(Scanner).filter(Scanner.uuid == uuid).one_or_none()
+ scanner: Scanner = session.query(Scanner).filter(
+ Scanner.uuid == uuid).one_or_none()
else:
return None
@@ -104,7 +108,7 @@ class Scanner(Base):
scanner = Scanner()
scanner.uuid = uuid
scanner.enabled = False
- scanner.scanners = "None"
+ scanner.scanners = {}
session.add(scanner)
session.flush()
@@ -113,11 +117,11 @@ class Scanner(Base):
except IntegrityError:
return None
-
@classmethod
def is_enabled(cls, uuid):
with SqlDB.sql_session() as session:
- scanner: Scanner = session.query(Scanner).filter(Scanner.uuid == uuid).one_or_none()
+ scanner: Scanner = session.query(Scanner).filter(
+ Scanner.uuid == uuid).one_or_none()
if scanner is None:
return None