From 82c53ef9ac97d28934821e65dd1c28ce93a4b6fc Mon Sep 17 00:00:00 2001
From: Blake Fitch <blake.fitch@tuebingen.mpg.de>
Date: Sat, 28 May 2022 15:14:50 +0200
Subject: [PATCH] check before examining old SHA512SUMB64 key because they
 aren't always there

---
 pymods/irods_utils/irods_utils.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/pymods/irods_utils/irods_utils.py b/pymods/irods_utils/irods_utils.py
index 3cdc95a..bf11b05 100644
--- a/pymods/irods_utils/irods_utils.py
+++ b/pymods/irods_utils/irods_utils.py
@@ -316,10 +316,14 @@ def confirmed_put( irods_sesh, file, new_obj_ipath, metadata_dict=None, datatype
             # Get the existing objects metadata as a python dict
             existing_obj_dict = irods_avus_to_pydict( new_obj )
 
-            if metadata_dict[ "SHA512SUMB64" ] != existing_obj_dict[ "SHA512SUMB64" ] :
-                logging.error( "WEIRD ERROR: iRODS sha226 sum matched but MrData sha512 AVU mismatched."
-                             + ' metadata_dict[ "SHA512SUMB64" ] '     + metadata_dict[ "SHA512SUMB64" ]
-                             + ' existing_obj_dict[ "SHA512SUMB64" ] ' + existing_obj_dict[ "SHA512SUMB64" ] )
+            if "SHA512SUMB64" in existing_obj_dict:
+                if metadata_dict[ "SHA512SUMB64" ] != existing_obj_dict[ "SHA512SUMB64" ] :
+                    logging.error( "WEIRD ERROR: iRODS sha226 sum matched but MrData sha512 AVU mismatched."
+                                 + ' metadata_dict[ "SHA512SUMB64" ] '     + metadata_dict[ "SHA512SUMB64" ]
+                                 + ' existing_obj_dict[ "SHA512SUMB64" ] ' + existing_obj_dict[ "SHA512SUMB64" ] )
+            else:
+                logging.error( "WEIRD ERROR: iRODS sha226 sum but object has no MrData SHA512SUMB64 AVU."
+                             + ' metadata_dict[ "SHA512SUMB64" ] '     + metadata_dict[ "SHA512SUMB64" ] )
 
             if existing_obj_dict == None:
                 logging.error( "Object exists but fetching avus as py dict failed."
-- 
GitLab