fix migration
This commit is contained in:
parent
27910f2c20
commit
da1feef746
|
@ -5,11 +5,11 @@ Revises: 564952310b17
|
|||
Create Date: 2022-12-13 10:14:45.500087
|
||||
|
||||
"""
|
||||
from alembic import context, op
|
||||
import sqlalchemy as sa
|
||||
import citext
|
||||
import hashlib
|
||||
|
||||
import citext
|
||||
import sqlalchemy as sa
|
||||
from alembic import context, op
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '93daff872771'
|
||||
|
@ -54,12 +54,7 @@ def upgrade():
|
|||
|
||||
upgrade_data()
|
||||
|
||||
op.alter_column(
|
||||
'computer',
|
||||
'user_trusts',
|
||||
nullable=False,
|
||||
schema=f'{get_inv()}'
|
||||
)
|
||||
op.alter_column('computer', 'user_trusts', nullable=False, schema=f'{get_inv()}')
|
||||
|
||||
|
||||
def downgrade():
|
||||
|
|
|
@ -183,6 +183,7 @@ class Device(Thing):
|
|||
phid_bk = db.Column(db.CIText(), nullable=True, unique=False)
|
||||
active = db.Column(Boolean, default=True)
|
||||
family = db.Column(db.CIText())
|
||||
chid = db.Column(db.CIText())
|
||||
|
||||
_NON_PHYSICAL_PROPS = {
|
||||
'id',
|
||||
|
@ -212,6 +213,7 @@ class Device(Thing):
|
|||
'active',
|
||||
'phid_bk',
|
||||
'dhid_bk',
|
||||
'chid',
|
||||
}
|
||||
|
||||
__table_args__ = (
|
||||
|
@ -745,76 +747,14 @@ class Device(Thing):
|
|||
|
||||
return ""
|
||||
|
||||
def set_new_hid(self):
|
||||
"""
|
||||
The order is important
|
||||
# product_vendor, is a manufacturer
|
||||
# product_family, is a new field of lshw
|
||||
# product_chassis, is a type of chassis
|
||||
# product_number, is a model
|
||||
# product_version,
|
||||
# product_sku,
|
||||
# product_serial, is a serial number
|
||||
# product_uuid,
|
||||
# board_vendor,
|
||||
# board_number,
|
||||
# board_serial,
|
||||
# board_version
|
||||
"""
|
||||
with suppress(TypeError):
|
||||
family = (self.family or '').replace(' ', '_')
|
||||
model = ((self.model or '').replace(' ', '_'),)
|
||||
chassis = self.type
|
||||
if hasattr(self, 'chassis'):
|
||||
chassis = self.chassis and self.chassis.name or ''
|
||||
version = (self.version or '').replace(' ', '_')
|
||||
sku = (self.sku or '').replace(' ', '_')
|
||||
system_uuid = ''
|
||||
if hasattr(self, 'system_uuid'):
|
||||
system_uuid = str(self.system_uuid or '')
|
||||
if not system_uuid or not self.manufacturer:
|
||||
return ''
|
||||
|
||||
board = None
|
||||
board_serial_number = ''
|
||||
board_version = ''
|
||||
board_manufacturer = ''
|
||||
board_model = ''
|
||||
|
||||
if hasattr(self, 'components'):
|
||||
for c in self.components:
|
||||
if c.type == 'Motherboard':
|
||||
board = c
|
||||
break
|
||||
|
||||
if board:
|
||||
board_manufacturer = (board.manufacturer or '').replace(' ', '_')
|
||||
board_model = (board.model or '').replace(' ', '_')
|
||||
board_serial_number = (board.serial_number or '').replace(' ', '_')
|
||||
board_version = (board.version or '').replace(' ', '_')
|
||||
|
||||
self.hid = '-'.join(
|
||||
[
|
||||
(self.manufacturer or '').replace(' ', '_'),
|
||||
family,
|
||||
chassis,
|
||||
model,
|
||||
version,
|
||||
sku,
|
||||
self.serial_number,
|
||||
system_uuid,
|
||||
board_manufacturer,
|
||||
board_model,
|
||||
board_serial_number,
|
||||
board_version,
|
||||
]
|
||||
).lower()
|
||||
|
||||
def get_hid(self):
|
||||
if self.hid:
|
||||
return hashlib.sha3_512(self.hid.encode()).hexdigest()
|
||||
|
||||
def get_from_db(self):
|
||||
try:
|
||||
from modules.device.utils import get_from_db
|
||||
|
||||
return get_from_db(self)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
if not self.hid:
|
||||
return
|
||||
|
||||
|
@ -826,11 +766,23 @@ class Device(Thing):
|
|||
).first()
|
||||
|
||||
def set_hid(self):
|
||||
try:
|
||||
from modules.device.utils import set_hid
|
||||
|
||||
self.hid = set_hid(self)
|
||||
return
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
with suppress(TypeError):
|
||||
self.hid = Naming.hid(
|
||||
self.type, self.manufacturer, self.model, self.serial_number
|
||||
)
|
||||
|
||||
def set_chid(self):
|
||||
if self.hid:
|
||||
self.chid = hashlib.sha3_256(self.hid.encode()).hexdigest()
|
||||
|
||||
def last_action_of(self, *types):
|
||||
"""Gets the last action of the given types.
|
||||
|
||||
|
@ -1107,6 +1059,7 @@ class Computer(Device):
|
|||
receiver_id = db.Column(UUID(as_uuid=True), db.ForeignKey(User.id), nullable=True)
|
||||
receiver = db.relationship(User, primaryjoin=receiver_id == User.id)
|
||||
system_uuid = db.Column(UUID(as_uuid=True), nullable=True)
|
||||
user_trusts = db.Column(Boolean(), default=True)
|
||||
|
||||
def __init__(self, *args, **kwargs) -> None:
|
||||
if args:
|
||||
|
|
Reference in New Issue