""" | |
Device database manipulation | |
File: devices.py | |
Author: Jakub Man <xmanja00@stud.fit.vutbr.cz> | |
""" | |
import json | |
from flask import request | |
from bson.objectid import ObjectId | |
# import netconf2 as nc | |
def get_saved_devices(username, db_coll): | |
list = [] | |
for item in db_coll.find({'owner': username}): | |
item['_id'] = str(item['_id']) | |
item['id'] = str(item['_id']) | |
list.append(item) | |
return list | |
def add_device(username, device, db_coll): | |
device['owner'] = username | |
# Check if device parameter has all required keys | |
if all (k in device for k in ('hostname', 'port', 'username')): | |
return str(db_coll.insert_one(device).inserted_id) | |
return False | |
def get_device_by_id(device_id: str, db_coll): | |
device = db_coll.find_one({'_id': ObjectId(device_id)}) | |
if device is not None: | |
device['_id'] = str(device['_id']) | |
device['id'] = str(device['_id']) | |
return device | |
def update_device(device_id, update_dict, db_coll): | |
db_coll.update_one({'_id': ObjectId(device_id)}, {'$set': update_dict}) | |
def update_hexa(device_id, new_hexa, db_coll): | |
db_coll.update_one({'_id': ObjectId(device_id)}, {'$set': {'fingerprint': new_hexa}}) | |
def update_hexa_by_device(device, new_hexa, db_coll): | |
db_coll.update_one({'hostname': device['hostname'], 'port': device['port'], 'username': device['username']}, | |
{'$set': {'fingerprint': new_hexa}}) | |
def get_device_from_session_data(host, port, owner, username, db_coll): | |
print(host) | |
device = db_coll.find_one({'hostname': host, 'port': port, 'owner': owner, 'username': username}) | |
if device is None and host == '127.0.0.1': | |
device = db_coll.find_one({'hostname': 'localhost', 'port': port, 'owner': owner, 'username': username}) | |
if device is not None: | |
device['_id'] = str(device['_id']) | |
device['id'] = str(device['_id']) | |
return device |