Hello everyone,
I ' m new in python programming language, but I would like to use it to accomplish the following task: If a data object or a collection is older than 5 years, then it will be automatically removed/deleted from irods.
...
def slot_delete (self):
"comment here"
global MY_SESSION, DICT_HAMSTER
global FILESIZES_SCAN, NFILES_SCAN, FILESIZES_SCAN_MB
current_collection = DICT_HAMSTER.get ("current_collection")
selection_fullpath = DICT_HAMSTER.get ("selection_fullpath")
del_coll = ""
if selection_fullpath:
if selection_fullpath.endswith ('/'):
# collection
del_coll = selection_fullpath[:-1]
msg = "Delete '" + del_coll + "'\n("
FILESIZES_SCAN = 0
NFILES_SCAN = 0
scan_collections_and_objects (del_coll)
FILESIZES_SCAN_MB = FILESIZES_SCAN // 1024 // 1024
msg += str (NFILES_SCAN) + " files, " + \
str (FILESIZES_SCAN_MB) + " MB, " + \
str (FILESIZES_SCAN) + " bytes)\n"
# question, information, warning, critical
button = QtWidgets.QMessageBox.information (self, \
"Delete Collection", msg, buttons = \
QtWidgets.QMessageBox.Ok | QtWidgets.QMessageBox.Cancel)
if button == QtWidgets.QMessageBox.Ok:
self.status_message (msg)
try:
MY_SESSION.collections.remove (del_coll)
if del_coll == current_collection:
n_2 = current_collection.rfind ('/')
current_collection = current_collection[0:n_2]
update_dict (DICT_HAMSTER,
'current_collection', current_collection)
self.update_collections_and_dataobjects_view (current_collection)
except CollectionDoesNotExist:
self.log_message ("Unable to delete collection \'" + del_coll + "\'")
else:
# data object
msg = "Delete '" + selection_fullpath + "'"
button = QtWidgets.QMessageBox.information (self, \
"Delete Dataobject", \
msg, \
buttons=QtWidgets.QMessageBox.Ok | QtWidgets.QMessageBox.Cancel)
if button == QtWidgets.QMessageBox.Ok:
try:
self.status_message (msg)
# OLD: MY_SESSION.data_objects.unlink (selection_fullpath)
MY_SESSION.data_objects.unlink (selection_fullpath, force = True)
self.update_collections_and_dataobjects_view (current_collection)
except USER_FILE_DOES_NOT_EXIST:
self.log_message ("Unable to delete dataobject \'" \
+ selection_fullpath + "\'")
...
def clear_form (self):
from datetime import datetime
from dateutil.relativedelta import relativedelta
creationTime = datetime.now().strftime('%d/%m/%Y %H:%M:%S')
expiration = datetime.now() + relativedelta(years=5)
expirationTime = expiration.strftime('%d/%m/%Y %H:%M:%S')
self.lineEdit_dc_creation_date.setText (creationTime)
self.lineEdit_dc_expiration_date.setText (expirationTime)
...