This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
devicehub-teal/scripts/create_new_hid.py
2022-11-16 17:40:59 +01:00

55 lines
1.2 KiB
Python

import json
import sys
from ereuse_devicehub.db import db
from ereuse_devicehub.devicehub import Devicehub
from ereuse_devicehub.resources.action.models import Snapshot
def open_snapshot():
path = sys.argv[2]
f = open(path)
txt = f.read()
return json.loads(txt)
def get_family(snapshot):
debug = snapshot.get('debug', {})
lshw = debug.get('lshw', {})
return lshw.get('configuration', {}).get('family', '')
def get_device(uuid):
snapshot = Snapshot.query.filter_by(uuid=uuid).first()
if snapshot:
return snapshot.device
def main():
schema = sys.argv[1]
app = Devicehub(inventory=schema)
app.app_context().push()
snapshot = open_snapshot()
uuid = snapshot.get('uuid')
if not uuid:
return
family = get_family(snapshot)
device = get_device(uuid)
if not device:
return
device.family = family
device.set_hid()
for c in device.components:
c.set_hid()
if device.binding:
device.binding.device.family = family
device.binding.device.set_hid()
for c in device.binding.device.components:
c.set_hid()
db.session.commit()
if __name__ == '__main__':
main()