Skip to content

Commit daa4ea7

Browse files
authored
Merge pull request #795 from uw-it-aca/feature/msca-shared-drive-delete
Feature/msca shared drive delete
2 parents 9e9fd43 + 3335ef8 commit daa4ea7

File tree

3 files changed

+22
-29
lines changed

3 files changed

+22
-29
lines changed

endorsement/dao/shared_drive.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -84,25 +84,28 @@ def sync_quota_from_subscription(drive_id):
8484
raise SharedDriveRecordNotFound(drive_id)
8585

8686

87-
def expire_shared_drives(gracetime, lifetime):
87+
def expire_shared_drive(shared_drive_record):
8888
"""
89-
Expire shared drives that have exceeded their lifetime.
90-
"""
91-
for drive in shared_drives_to_expire(gracetime, lifetime):
92-
shared_drive_lifecycle_expired(drive)
89+
Mark lifecycle expired shared drive record to deleted
9390
91+
Actions:
92+
- mark expired drive for deletion in MSCA
93+
- set shared_drive_record datetime_deleted to now
94+
"""
95+
try:
96+
logger.info(
97+
"Expire shared drive "
98+
f"{shared_drive_record.shared_drive.drive_id}, "
99+
"mark for deletion")
94100

95-
def shared_drive_lifecycle_expired(shared_drive):
96-
"""
97-
Set lifecycle to expired for shared drive
101+
mark_drive_for_deletion(shared_drive_record.shared_drive.drive_id)
98102

99-
Actions:
100-
- set shared_drive quota to 0 (org_unit_name "None"? pending delete?)
101-
- set subscription end_date to today using:
102-
- expire_subscription(drive_record)
103-
"""
104-
logger.info(f"Shared drive {shared_drive.drive_id} marked for deletion")
105-
mark_drive_for_deletion(shared_drive.drive_id)
103+
shared_drive_record.datetime_deleted = timezone.now()
104+
shared_drive_record.save()
105+
except DataFailureException as ex:
106+
logger.error(
107+
f"Expire {shared_drive_record.shared_drive.drive_id} "
108+
f"failure: {ex}")
106109

107110

108111
def rescue_shared_drive_from_deletion(shared_drive):

endorsement/management/commands/expire_shared_drives.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
from django.core.management.base import BaseCommand
5-
from django.utils import timezone
65
from restclients_core.exceptions import DataFailureException
76
from endorsement.policy.shared_drive import SharedDrivePolicy
8-
from endorsement.dao.shared_drive import shared_drive_lifecycle_expired
7+
from endorsement.dao.shared_drive import expire_shared_drive
98
import csv
109
import logging
1110

@@ -52,16 +51,7 @@ def handle(self, *args, **options):
5251
f'"{record.shared_drive.drive_name}"')
5352

5453
if actually_mark_for_deletion:
55-
self.expire_drive(record)
56-
57-
def expire_drive(self, record):
58-
try:
59-
shared_drive_lifecycle_expired(record.shared_drive)
60-
record.datetime_deleted = timezone.now()
61-
record.save()
62-
except DataFailureException as ex:
63-
logger.error(
64-
"Cannot expire drive {record.shared_drive.drive_id} : {ex}")
54+
expire_shared_drive(record)
6555

6656
def _record_csv(self, record):
6757
self.drive_writer.writerow([

endorsement/views/api/google/shared_drive.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from endorsement.dao.itbill import update_itbill_subscription
77
from endorsement.dao.shared_drive import (
88
sync_quota_from_subscription,
9-
shared_drive_lifecycle_expired,
9+
expire_shared_drive,
1010
rescue_shared_drive_from_deletion)
1111
from endorsement.dao.pws import get_person
1212
from endorsement.util.auth import is_support_user
@@ -71,7 +71,7 @@ def put(self, request, *args, **kwargs):
7171
if drive.datetime_deleted:
7272
rescue_shared_drive_from_deletion(drive.shared_drive)
7373
else:
74-
shared_drive_lifecycle_expired(drive.shared_drive)
74+
expire_shared_drive(drive.shared_drive)
7575

7676
drive.set_acceptance(netid, accept, acted_as)
7777

0 commit comments

Comments
 (0)