59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
|
import logging
|
||
|
from django.conf import settings
|
||
|
|
||
|
from utils.constants import ALGOS
|
||
|
|
||
|
|
||
|
logger = logging.getLogger('django')
|
||
|
|
||
|
|
||
|
class BuildMix:
|
||
|
def __init__(self, evidence_json):
|
||
|
self.json = evidence_json
|
||
|
self.uuid = self.json['uuid']
|
||
|
self.manufacturer = ""
|
||
|
self.model = ""
|
||
|
self.serial_number = ""
|
||
|
self.chassis = ""
|
||
|
self.sku = ""
|
||
|
self.mac = ""
|
||
|
self.tpy = ""
|
||
|
self.version = ""
|
||
|
self.get_details()
|
||
|
self.generate_chids()
|
||
|
|
||
|
def get_hid(self, algo):
|
||
|
algorithm = ALGOS.get(algo, [])
|
||
|
hid = ""
|
||
|
for f in algorithm:
|
||
|
if hasattr(self, f):
|
||
|
hid += getattr(self, f)
|
||
|
return hid
|
||
|
|
||
|
def generate_chids(self):
|
||
|
self.algorithms = {
|
||
|
'hidalgo1': self.get_hid('hidalgo1'),
|
||
|
}
|
||
|
if settings.DPP:
|
||
|
self.algorithms["legacy_dpp"] = self.get_hid("legacy_dpp")
|
||
|
|
||
|
def get_doc(self):
|
||
|
self._get_components()
|
||
|
for c in self.components:
|
||
|
c.pop("actions", None)
|
||
|
|
||
|
components = sorted(self.components, key=lambda x: x.get("type"))
|
||
|
device = self.algorithms.get('legacy_dpp')
|
||
|
|
||
|
doc = [("computer", device)]
|
||
|
|
||
|
for c in components:
|
||
|
doc.append((c.get("type"), self.get_id_hw_dpp(c)))
|
||
|
|
||
|
def get_id_hw_dpp(self, d):
|
||
|
algorithm = ALGOS.get("legacy_dpp", [])
|
||
|
hid = ""
|
||
|
for f in algorithm:
|
||
|
hid += d.get(f, '')
|
||
|
return hid
|