summaryrefslogtreecommitdiff
path: root/src/db.py
diff options
context:
space:
mode:
authorKristofer Hallin <kristofer@sunet.se>2022-04-12 11:03:53 +0200
committerKristofer Hallin <kristofer@sunet.se>2022-04-12 11:03:53 +0200
commit2aebcdeca17f9b46d90f5255dd4d03caa358701e (patch)
tree1e2eba51916736496b453338626659e5c15d84fa /src/db.py
parent951f2d1678b3b3274d81b4ea0c024b384978d9b8 (diff)
Use the schema when creating indexes, also validate data before writing to CouchDB.
Diffstat (limited to 'src/db.py')
-rwxr-xr-xsrc/db.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/db.py b/src/db.py
index d186616..6f25ec3 100755
--- a/src/db.py
+++ b/src/db.py
@@ -12,7 +12,7 @@ import sys
import time
import couch
-import index
+from schema import as_index_list, validate_collector_data
class DictDB():
@@ -47,7 +47,7 @@ class DictDB():
print("Creating database and indexes.")
self.couchdb = self.server.create(self.database)
- for i in index.as_list():
+ for i in as_index_list():
self.couchdb.index(i)
self._ts = time.time()
@@ -72,9 +72,15 @@ class DictDB():
if type(data) is list:
for item in data:
+ error = validate_collector_data(item)
+ if error != "":
+ return error
item['_id'] = str(self.unique_key())
ret = self.couchdb.save_bulk(data)
else:
+ error = validate_collector_data(data)
+ if error != "":
+ return error
data['_id'] = str(self.unique_key())
ret = self.couchdb.save(data)