From ec0c147ad0b281b333027de63df955ab31fef3ad Mon Sep 17 00:00:00 2001 From: James Wettenhall Date: Thu, 28 Jul 2016 15:30:09 +1000 Subject: [PATCH 1/2] Adding attributes to POST data for DataFile uploads. - DataFile modification date/time is now included. - Uploader UUID and MyData SSH key fingerprint are now included for uploads to /api/v1/mydata_dataset_file/ to allow the mytardis-app-mydata server-side app to easily find the uploader registration request containing the approved storage box to save the DataFile into. --- mydata/controllers/uploads.py | 24 +++++++++++++++++------- mydata/models/folder.py | 10 ++++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/mydata/controllers/uploads.py b/mydata/controllers/uploads.py index a7580478..79bc4b4b 100644 --- a/mydata/controllers/uploads.py +++ b/mydata/controllers/uploads.py @@ -201,13 +201,23 @@ def Md5ProgressCallback(bytesProcessed): datasetUri = self.folderModel.GetDatasetModel().GetResourceUri() dataFileCreatedTime = \ self.folderModel.GetDataFileCreatedTime(self.dataFileIndex) - dataFileJson = {"dataset": datasetUri, - "filename": dataFileName, - "directory": dataFileDirectory, - "md5sum": dataFileMd5Sum, - "size": dataFileSize, - "mimetype": dataFileMimeType, - "created_time": dataFileCreatedTime} + dataFileModifiedTime = \ + self.folderModel.GetDataFileModifiedTime(self.dataFileIndex) + dataFileJson = { + "dataset": datasetUri, + "filename": dataFileName, + "directory": dataFileDirectory, + "md5sum": dataFileMd5Sum, + "size": dataFileSize, + "mimetype": dataFileMimeType, + "created_time": dataFileCreatedTime, + "modification_time": dataFileModifiedTime, + } + if self.foldersController.uploadMethod == \ + UploadMethod.VIA_STAGING: + dataFileJson['uploader_uuid'] = self.settingsModel.GetUuid() + dataFileJson['requester_key_fingerprint'] = \ + self.settingsModel.GetSshKeyPair().GetFingerprint() if self.uploadModel.Canceled(): self.foldersController.SetCanceled() diff --git a/mydata/models/folder.py b/mydata/models/folder.py index 6be765bd..bebfd6ca 100644 --- a/mydata/models/folder.py +++ b/mydata/models/folder.py @@ -124,6 +124,16 @@ def GetDataFileCreatedTime(self, dataFileIndex): logger.error(traceback.format_exc()) return None + def GetDataFileModifiedTime(self, dataFileIndex): + absoluteFilePath = self.GetDataFilePath(dataFileIndex) + try: + modifiedTimeIsoString = datetime.fromtimestamp( + os.stat(absoluteFilePath).st_mtime).isoformat() + return modifiedTimeIsoString + except: # pylint: disable=bare-except + logger.error(traceback.format_exc()) + return None + def SetExperiment(self, experimentModel): self.experimentModel = experimentModel From 29f2f4fb18b8496cf8a770703a791f52fa2386e1 Mon Sep 17 00:00:00 2001 From: James Wettenhall Date: Thu, 28 Jul 2016 15:48:57 +1000 Subject: [PATCH 2/2] Incrementing version to v0.6.0-beta5 --- mydata/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mydata/__init__.py b/mydata/__init__.py index 775f20a0..09c89ece 100644 --- a/mydata/__init__.py +++ b/mydata/__init__.py @@ -3,7 +3,7 @@ """ import sys -__version__ = "0.6.0-beta4" +__version__ = "0.6.0-beta5" try: