39 lines
1 KiB
Python
39 lines
1 KiB
Python
import logging
|
|
|
|
from evidence import (
|
|
legacy_parse_details,
|
|
normal_parse_details,
|
|
old_parse_details
|
|
)
|
|
|
|
|
|
logger = logging.getLogger('django')
|
|
|
|
|
|
class ParseSnapshot:
|
|
def __init__(self, snapshot, default="n/a"):
|
|
if snapshot.get("credentialSubject"):
|
|
self.build = normal_parse_details.ParseSnapshot(
|
|
snapshot,
|
|
default=default
|
|
)
|
|
elif snapshot.get("software") != "workbench-script":
|
|
self.build = old_parse_details.ParseSnapshot(
|
|
snapshot,
|
|
default=default
|
|
)
|
|
elif snapshot.get("data",{}).get("lshw"):
|
|
self.build = legacy_parse_details.ParseSnapshot(
|
|
snapshot,
|
|
default=default
|
|
)
|
|
else:
|
|
self.build = normal_parse_details.ParseSnapshot(
|
|
snapshot,
|
|
default=default
|
|
)
|
|
|
|
self.default = default
|
|
self.device = self.build.snapshot_json.get("device")
|
|
self.components = self.build.snapshot_json.get("components")
|