From 81b28b2663d7d532b0f7702f1f294c33e0507f52 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Wed, 16 Nov 2022 13:48:19 +0100 Subject: [PATCH] add script --- scripts/create_new_hid.py | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 scripts/create_new_hid.py diff --git a/scripts/create_new_hid.py b/scripts/create_new_hid.py new file mode 100644 index 00000000..0be8c5c1 --- /dev/null +++ b/scripts/create_new_hid.py @@ -0,0 +1,46 @@ +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() + db.session.commit() + + +if __name__ == '__main__': + main()