add wbid and owner in snapshot_errors
This commit is contained in:
parent
e37e3b4c12
commit
b9a04b59f5
|
@ -1,10 +1,12 @@
|
||||||
from citext import CIText
|
from citext import CIText
|
||||||
|
from flask import g
|
||||||
from sqlalchemy import BigInteger, Column, Sequence, SmallInteger
|
from sqlalchemy import BigInteger, Column, Sequence, SmallInteger
|
||||||
from sqlalchemy.dialects.postgresql import UUID
|
from sqlalchemy.dialects.postgresql import UUID
|
||||||
|
|
||||||
from ereuse_devicehub.db import db
|
from ereuse_devicehub.db import db
|
||||||
from ereuse_devicehub.resources.enums import Severity
|
from ereuse_devicehub.resources.enums import Severity
|
||||||
from ereuse_devicehub.resources.models import Thing
|
from ereuse_devicehub.resources.models import Thing
|
||||||
|
from ereuse_devicehub.resources.user.models import User
|
||||||
|
|
||||||
|
|
||||||
class SnapshotErrors(Thing):
|
class SnapshotErrors(Thing):
|
||||||
|
@ -12,8 +14,16 @@ class SnapshotErrors(Thing):
|
||||||
|
|
||||||
id = Column(BigInteger, Sequence('snapshot_errors_seq'), primary_key=True)
|
id = Column(BigInteger, Sequence('snapshot_errors_seq'), primary_key=True)
|
||||||
description = Column(CIText(), default='', nullable=False)
|
description = Column(CIText(), default='', nullable=False)
|
||||||
|
wbid = Column(CIText(), nullable=True)
|
||||||
severity = Column(SmallInteger, default=Severity.Info, nullable=False)
|
severity = Column(SmallInteger, default=Severity.Info, nullable=False)
|
||||||
snapshot_uuid = Column(UUID(as_uuid=True), nullable=False)
|
snapshot_uuid = Column(UUID(as_uuid=True), nullable=False)
|
||||||
|
owner_id = db.Column(
|
||||||
|
UUID(as_uuid=True),
|
||||||
|
db.ForeignKey(User.id),
|
||||||
|
nullable=False,
|
||||||
|
default=lambda: g.user.id,
|
||||||
|
)
|
||||||
|
owner = db.relationship(User, primaryjoin=owner_id == User.id)
|
||||||
|
|
||||||
def save(self, commit=False):
|
def save(self, commit=False):
|
||||||
db.session.add(self)
|
db.session.add(self)
|
||||||
|
|
|
@ -314,6 +314,7 @@ class ParseSnapshotLsHw:
|
||||||
def __init__(self, snapshot, default="n/a"):
|
def __init__(self, snapshot, default="n/a"):
|
||||||
self.default = default
|
self.default = default
|
||||||
self.uuid = snapshot.get("uuid")
|
self.uuid = snapshot.get("uuid")
|
||||||
|
self.wbid = snapshot.get("wbid")
|
||||||
self.dmidecode_raw = snapshot["data"]["dmidecode"]
|
self.dmidecode_raw = snapshot["data"]["dmidecode"]
|
||||||
self.smart = snapshot["data"]["smart"]
|
self.smart = snapshot["data"]["smart"]
|
||||||
self.hwinfo_raw = snapshot["data"]["hwinfo"]
|
self.hwinfo_raw = snapshot["data"]["hwinfo"]
|
||||||
|
@ -347,8 +348,9 @@ class ParseSnapshotLsHw:
|
||||||
except ValidationError as err:
|
except ValidationError as err:
|
||||||
txt = "{}".format(err)
|
txt = "{}".format(err)
|
||||||
uuid = self.snapshot_json.get('uuid')
|
uuid = self.snapshot_json.get('uuid')
|
||||||
|
wbid = self.snapshot_json.get('wbid')
|
||||||
error = SnapshotErrors(
|
error = SnapshotErrors(
|
||||||
description=txt, snapshot_uuid=uuid, severity=Severity.Error
|
description=txt, snapshot_uuid=uuid, severity=Severity.Error, wbid=wbid
|
||||||
)
|
)
|
||||||
error.save(commit=True)
|
error.save(commit=True)
|
||||||
raise err
|
raise err
|
||||||
|
@ -403,8 +405,8 @@ class ParseSnapshotLsHw:
|
||||||
def get_ram_size(self, ram):
|
def get_ram_size(self, ram):
|
||||||
size = ram.get("Size")
|
size = ram.get("Size")
|
||||||
if not len(size.split(" ")) == 2:
|
if not len(size.split(" ")) == 2:
|
||||||
txt = "Error: Snapshot: {uuid} have this ram Size: {size}".format(
|
txt = "Error: Snapshot: {uuid}, tag: {wbid} have this ram Size: {size}".format(
|
||||||
uuid=self.uuid, size=size
|
uuid=self.uuid, size=size, wbid=self.wbid
|
||||||
)
|
)
|
||||||
self.errors(txt)
|
self.errors(txt)
|
||||||
return 128
|
return 128
|
||||||
|
@ -414,8 +416,8 @@ class ParseSnapshotLsHw:
|
||||||
def get_ram_speed(self, ram):
|
def get_ram_speed(self, ram):
|
||||||
speed = ram.get("Speed", "100")
|
speed = ram.get("Speed", "100")
|
||||||
if not len(speed.split(" ")) == 2:
|
if not len(speed.split(" ")) == 2:
|
||||||
txt = "Error: Snapshot: {uuid} have this ram Speed: {speed}".format(
|
txt = "Error: Snapshot: {uuid}, tag: {wbid} have this ram Speed: {speed}".format(
|
||||||
uuid=self.uuid, speed=speed
|
uuid=self.uuid, speed=speed, wbid=self.wbid
|
||||||
)
|
)
|
||||||
self.errors(txt)
|
self.errors(txt)
|
||||||
return 100
|
return 100
|
||||||
|
@ -449,8 +451,8 @@ class ParseSnapshotLsHw:
|
||||||
uuid.UUID(dmi_uuid)
|
uuid.UUID(dmi_uuid)
|
||||||
except (ValueError, AttributeError) as err:
|
except (ValueError, AttributeError) as err:
|
||||||
self.errors("{}".format(err))
|
self.errors("{}".format(err))
|
||||||
txt = "Error: Snapshot: {uuid} have this uuid: {device}".format(
|
txt = "Error: Snapshot: {uuid} tag: {wbid} have this uuid: {device}".format(
|
||||||
uuid=self.uuid, device=dmi_uuid
|
uuid=self.uuid, device=dmi_uuid, wbid=self.wbid
|
||||||
)
|
)
|
||||||
self.errors(txt)
|
self.errors(txt)
|
||||||
dmi_uuid = None
|
dmi_uuid = None
|
||||||
|
@ -493,7 +495,9 @@ class ParseSnapshotLsHw:
|
||||||
try:
|
try:
|
||||||
DataStorageInterface(interface.upper())
|
DataStorageInterface(interface.upper())
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
txt = "interface {} is not in DataStorageInterface Enum".format(interface)
|
txt = "tag: {}, interface {} is not in DataStorageInterface Enum".format(
|
||||||
|
interface, self.wbid
|
||||||
|
)
|
||||||
self.errors("{}".format(err))
|
self.errors("{}".format(err))
|
||||||
self.errors(txt)
|
self.errors(txt)
|
||||||
return "ATA"
|
return "ATA"
|
||||||
|
@ -539,6 +543,6 @@ class ParseSnapshotLsHw:
|
||||||
logger.error(txt)
|
logger.error(txt)
|
||||||
self._errors.append(txt)
|
self._errors.append(txt)
|
||||||
error = SnapshotErrors(
|
error = SnapshotErrors(
|
||||||
description=txt, snapshot_uuid=self.uuid, severity=severity
|
description=txt, snapshot_uuid=self.uuid, severity=severity, wbid=self.wbid
|
||||||
)
|
)
|
||||||
error.save()
|
error.save()
|
||||||
|
|
Reference in New Issue