summaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
authorKristofer Hallin <kristofer@sunet.se>2022-04-11 16:46:54 +0200
committerKristofer Hallin <kristofer@sunet.se>2022-04-11 16:46:54 +0200
commit16f5009ac0d630c5f25c9d6cb4e8fb026ae628f9 (patch)
tree1e9e681a86e28189c833049b3478bef462b20ee5 /src/db
parent3335f65e5e4b3132a72b46b99e50d3c55c0c58b5 (diff)
More database changes and endpoints.
Diffstat (limited to 'src/db')
-rw-r--r--src/db/sql.py37
1 files changed, 26 insertions, 11 deletions
diff --git a/src/db/sql.py b/src/db/sql.py
index f2a9ee2..fc20e36 100644
--- a/src/db/sql.py
+++ b/src/db/sql.py
@@ -1,9 +1,9 @@
import datetime
-import os
import sys
from contextlib import contextmanager
+import os
-from sqlalchemy import (Boolean, Column, Date, Integer, String, Text,
+from sqlalchemy import (Boolean, Column, Date, Integer, Serial, String, Text,
create_engine, text)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
@@ -15,8 +15,9 @@ metadata = Base.metadata
class Log(Base):
__tablename__ = "log"
- id = Column(Integer, primary_key=True)
- timestamp = Column(Date, nullable=False, default=datetime.datetime.utcnow)
+ id = Column(Serial, primary_key=True)
+ timestamp = Column(Date, nullable=False,
+ default=datetime.datetime.utcnow)
username = Column(Text, nullable=False)
logtext = Column(Text, nullable=False)
@@ -42,17 +43,20 @@ class Log(Base):
class Scanner(Base):
- __tablename__ = "scanner"
+ __tablename__ = 'scanner'
- id = Column(Integer, primary_key=True)
- runner = Column(Text, nullable=False, default="*")
- name = Column(String(128), nullable=False, unique=True)
+ id = Column(Integer, primary_key=True, server_default=text(
+ "nextval('scanner_id_seq'::regclass)"))
+ runner = Column(Text, server_default=text("'*'::text"))
+ name = Column(String(128), nullable=False)
active = Column(Boolean, nullable=False)
- interval = Column(Integer, nullable=False, server_default=text("300"))
+ interval = Column(Integer, nullable=False,
+ server_default=text("300"))
starttime = Column(Date)
- hostname = Column(String(128), nullable=False, unique=True)
+ endtime = Column(Date)
+ maxruns = Column(Integer, server_default=text("1"))
+ hostname = Column(String(128), nullable=False)
port = Column(Integer, nullable=False)
- maxruns = Column(Integer, nullable=False, default=1)
def as_dict(self):
d = {}
@@ -107,6 +111,17 @@ class Scanner(Base):
results.append(scanner.as_dict())
return results
+ @classmethod
+ def edit(cls, name, active):
+ with sqla_session() as session:
+ scanners = session.query(Scanner).filter(
+ Scanner.name == name).all()
+ if not scanners:
+ return None
+ for scanner in scanners:
+ scanner.active = active
+ return True
+
def get_sqlalchemy_conn_str(**kwargs) -> str:
try: