DataWipe instead of ToErased

This commit is contained in:
Cayo Puigdefabregas 2021-07-29 12:45:43 +02:00
parent f8ce81cc19
commit bfe56a8626
8 changed files with 19 additions and 21 deletions

View file

@ -57,8 +57,8 @@ def upgrade():
op.create_index('document_type_index', 'document', ['type'], unique=False, postgresql_using='hash', schema=f'{get_inv()}')
# ToErased table
op.create_table('to_erased',
# DataWipe table
op.create_table('data_wipe',
sa.Column('document_id', sa.BigInteger(), nullable=True),
sa.Column('id', postgresql.UUID(as_uuid=True), nullable=False),
sa.ForeignKeyConstraint(['document_id'], [f'{get_inv()}.document.id'], ),
@ -69,5 +69,5 @@ def upgrade():
def downgrade():
op.drop_table('to_erased', schema=f'{get_inv()}')
op.drop_table('data_wipe', schema=f'{get_inv()}')
op.drop_table('document', schema=f'{get_inv()}')

View file

@ -199,9 +199,9 @@ class ToPrepareDef(ActionDef):
SCHEMA = schemas.ToPrepare
class ToErasedDef(ActionDef):
class DataWipeDef(ActionDef):
VIEW = None
SCHEMA = schemas.ToErased
SCHEMA = schemas.DataWipe
class AllocateDef(ActionDef):

View file

@ -1327,7 +1327,7 @@ class ToPrepare(ActionWithMultipleDevices):
pass
class ToErased(JoinedTableMixin, ActionWithMultipleDevices):
class DataWipe(JoinedTableMixin, ActionWithMultipleDevices):
"""The device has been selected for insert one proof of erease disk.
"""
document_comment = """The user that gets the device due this deal."""
@ -1338,7 +1338,7 @@ class ToErased(JoinedTableMixin, ActionWithMultipleDevices):
backref=backref('actions',
lazy=True,
cascade=CASCADE_OWN),
primaryjoin='ToErased.document_id == Document.id')
primaryjoin='DataWipe.document_id == Document.id')
class Prepare(ActionWithMultipleDevices):

View file

@ -431,11 +431,9 @@ class Prepare(ActionWithMultipleDevices):
__doc__ = m.Prepare.__doc__
class ToErased(ActionWithMultipleDevices):
__doc__ = m.ToErased.__doc__
class DataWipe(ActionWithMultipleDevices):
__doc__ = m.DataWipe.__doc__
document = NestedOn(s_generic_document.Document, only_query='id')
# document = NestedOn('EraseDocument')
# device = NestedOn(s_device.Device, only_query='id')
class Live(ActionWithOneDevice):

View file

@ -9,7 +9,7 @@ from ereuse_devicehub.resources.action.models import (Trade, Confirm, ConfirmRev
Revoke, RevokeDocument, ConfirmDocument,
ConfirmRevokeDocument)
from ereuse_devicehub.resources.user.models import User
from ereuse_devicehub.resources.action.models import ToErased
from ereuse_devicehub.resources.action.models import DataWipe
from ereuse_devicehub.resources.documents.models import Document
from ereuse_devicehub.resources.device.models import DataStorage
from ereuse_devicehub.resources.documents.schemas import Document as sh_document
@ -37,7 +37,7 @@ class ErasedView():
schema = sh_document()
[data.pop(x, None) for x in ['severity', 'devices', 'name', 'description']]
doc_data = schema.load(data)
doc_data['type'] = 'ToErased'
doc_data['type'] = 'DataWipe'
self.document = Document(**doc_data)
db.session.add(self.document)
@ -57,5 +57,5 @@ class ErasedView():
self.data['devices'].add(component)
self.data['document'] = self.document
self.erased = ToErased(**self.data)
self.erased = DataWipe(**self.data)
db.session.add(self.erased)

View file

@ -251,7 +251,7 @@ class ActionView(View):
confirm_revoke = trade_view.ConfirmRevokeDocumentView(json, resource_def, self.schema)
return confirm_revoke.post()
if json['type'] == 'ToErased':
if json['type'] == 'DataWipe':
erased = ErasedView(json, resource_def.schema)
return erased.post()

View file

@ -700,10 +700,10 @@ class Computer(Device):
def external_document_erasure(self):
"""Returns the external ``DataStorage`` proof of erasure.
"""
from ereuse_devicehub.resources.action.models import ToErased
from ereuse_devicehub.resources.action.models import DataWipe
urls = set()
try:
ev = self.last_action_of(ToErased)
ev = self.last_action_of(DataWipe)
urls.add(ev.document.url.to_text())
except LookupError:
pass
@ -902,9 +902,9 @@ class DataStorage(JoinedComponentTableMixin, Component):
def external_document_erasure(self):
"""Returns the external ``DataStorage`` proof of erasure.
"""
from ereuse_devicehub.resources.action.models import ToErased
from ereuse_devicehub.resources.action.models import DataWipe
try:
ev = self.last_action_of(ToErased)
ev = self.last_action_of(DataWipe)
return ev.document.url.to_text()
except LookupError:
return None

View file

@ -2419,10 +2419,10 @@ def test_action_web_erase(user: UserClient, client: Client):
bfile = BytesIO(b'abc')
hash3 = hashlib.sha3_256(bfile.read()).hexdigest()
snap, _ = user.post(file('acer.happy.battery.snapshot'), res=models.Snapshot)
request = {'type': 'ToErased', 'devices': [snap['device']['id']], 'name': 'borrado universal', 'severity': 'Info', 'description': 'nada que describir', 'url': 'http://www.google.com/', 'documentId': '33', 'endTime': '2021-07-07T22:00:00.000Z', 'filename': 'Certificado de borrado1.pdf', 'hash': hash3}
request = {'type': 'DataWipe', 'devices': [snap['device']['id']], 'name': 'borrado universal', 'severity': 'Info', 'description': 'nada que describir', 'url': 'http://www.google.com/', 'documentId': '33', 'endTime': '2021-07-07T22:00:00.000Z', 'filename': 'Certificado de borrado1.pdf', 'hash': hash3}
user.post(res=models.Action, data=request)
action = models.ToErased.query.one()
action = models.DataWipe.query.one()
for dev in action.devices:
assert action in dev.actions