From 662aa2c20a4f53f79e6f21fcb255cabc1b6c2bc8 Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Wed, 4 Jan 2017 10:25:44 +0000
Subject: [PATCH] Task #9931: make unspecified sip for last_retry_attempt

---
 .../lib/ingestpipeline.py                     | 31 +++++++++++--------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/LTA/LTAIngest/LTAIngestServer/LTAIngestTransferServer/lib/ingestpipeline.py b/LTA/LTAIngest/LTAIngestServer/LTAIngestTransferServer/lib/ingestpipeline.py
index 3c57b6e52f3..ae106b82136 100755
--- a/LTA/LTAIngest/LTAIngestServer/LTAIngestTransferServer/lib/ingestpipeline.py
+++ b/LTA/LTAIngest/LTAIngestServer/LTAIngestTransferServer/lib/ingestpipeline.py
@@ -240,13 +240,12 @@ class IngestPipeline():
             except Exception as e:
                 logger.error('Getting SIP from MoM failed for %s: %s', self.JobId, e)
 
-                if 'does not validate against schema' in str(e) or 'has invalid content' in str(e):
+                if ('does not validate against schema' in str(e) or
+                    'has invalid content' in str(e) or
+                    self.job.get('last_retry_attempt', False)):
                     logger.info('making unspecified SIP for %s', self.JobId)
                     self.SIP = makeSIP(self.Project, self.ObsId, self.ArchiveId, self.ticket, self.FileName, self.FileSize, self.MD5Checksum, self.Adler32Checksum, self.Type)
                     self.FileType = FILE_TYPE_UNSPECIFIED
-                elif '712561' in self.ExportID:
-                    self.SIP = makeSIP(self.Project, self.ObsId, self.ArchiveId, self.ticket, self.FileName, self.FileSize, self.MD5Checksum, self.Adler32Checksum, self.Type)
-                    self.FileType = FILE_TYPE_UNSPECIFIED
                 else:
                     raise
 
@@ -276,9 +275,20 @@ class IngestPipeline():
                     raise Exception('SIP for %s does not validate against schema' % self.JobId)
 
             except:
-                logger.exception('Getting SIP from EoR failed')
-                raise
-            logger.info('SIP received for %s from EoR with size %d (%s): \n%s' % (self.JobId, len(self.SIP), humanreadablesize(len(self.SIP)), self.SIP[0:1024]))
+                logger.exception('Getting SIP from SIPLocation %s failed', self.job['SIPLocation'])
+
+                if self.job.get('last_retry_attempt', False):
+                    logger.info('making unspecified SIP for %s', self.JobId)
+                    self.SIP = makeSIP(self.Project, self.ObsId, self.ArchiveId, self.ticket, self.FileName, self.FileSize, self.MD5Checksum, self.Adler32Checksum, self.Type)
+                    self.FileType = FILE_TYPE_UNSPECIFIED
+                else:
+                    raise
+
+            logger.info('SIP received for %s from SIPLocation %s with size %d (%s): \n%s' % (self.JobId,
+                                                                                             self.job['SIPLocation'],
+                                                                                             len(self.SIP),
+                                                                                             humanreadablesize(len(self.SIP)),
+                                                                                             self.SIP[0:1024]))
         else:
             self.SIP = makeSIP(self.Project, self.ObsId, self.ArchiveId, self.ticket, self.FileName, self.FileSize, self.MD5Checksum, self.Adler32Checksum, self.Type)
             self.FileType = FILE_TYPE_UNSPECIFIED
@@ -287,12 +297,7 @@ class IngestPipeline():
         try:
             self.ltaClient.SendSIP(self.JobId, self.SIP, self.ticket)
         except Exception as e:
-            if self.ExportID == '712561':
-                self.SIP = makeSIP(self.Project, self.ObsId, self.ArchiveId, self.ticket, self.FileName, self.FileSize, self.MD5Checksum, self.Adler32Checksum, self.Type)
-                self.FileType = FILE_TYPE_UNSPECIFIED
-                self.ltaClient.SendSIP(self.JobId, self.SIP, self.ticket)
-            else:
-                raise PipelineError(e.message, PipelineJobFailedError)
+            raise PipelineError(e.message, PipelineJobFailedError)
 
     def RollBack(self):
         try:
-- 
GitLab